Konvertierung zwischen zeitkontinuierlichen und zeitdiskreten Systemen
Verfügbare Befehle für die Konvertierung von kontinuierlichen und diskreten Systemen
Die Befehle c2d, d2c und d2d führen die Konvertierung eines kontinuierlichen in ein diskretes System (Diskretisierung), die Konvertierung eines diskreten in ein kontinuierliches System (Interpolation) und die Konvertierung eines diskreten in ein diskretes System (erneute Abtastung bzw. Resampling) durch.
sysd = c2d(sysc,Ts) % Discretization w/ sample period Ts sysc = d2c(sysd) % Equivalent continuous-time model sysd1= d2d(sysd,Ts) % Resampling at the period Ts
Verfügbare Methoden für die Konvertierung von kontinuierlichen und diskreten Systemen
Es stehen verschiedene Methoden der Diskretisierung und Interpolation zur Verfügung, wie zum Beispiel Haltefunktion nullter Ordnung (Standard), Haltefunktion erster Ordnung, Tustin-Approximation mit oder ohne Prewarping und übereinstimmende Null-Polstelle. Beispiel:
sysd = c2d(sysc,Ts,'foh') % Uses first-order hold sysc = d2c(sysd,'tustin') % Uses Tustin approximation
Digitalisieren des diskreten Modells eines Gleichstrommotors
Sie können mit der Funktion c2d die Regelstrecke des Gleichstrommotors digitalisieren und eine geeignete Abtastzeit auswählen. Beim Auswählen der richtigen Abtastzeit sind mehrere Faktoren zu berücksichtigen, wie zum Beispiel die Leistung, die Sie erreichen möchten, die schnellste Zeitkonstante in Ihrem System und die erwartete Geschwindigkeit, mit der Ihr Regler arbeiten soll. Bei diesem Beispiel sollten Sie eine Zeitkonstante von 0,01 Sekunden wählen. Unter SISO-Beispiel: Der Gleichstrommotor finden Sie Informationen zur Konstruktion des SS-Objekts sys_dc.
Ts=0.01;
sysd=c2d(sys_dc,Ts)
a =
x1 x2
x1 0.96079 -0.00027976
x2 0.006994 0.90484
b =
u1
x1 0.019605
x2 7.1595e-005
c =
x1 x2
y1 0 1
d =
u1
y1 0
Sample time: 0.01
Discrete-time model.
Um die zeitdiskrete Null-Polstellen-Verstärkung für den digitalen Gleichstrommotor zu ermitteln, verwenden Sie zpk, um das Modell zu konvertieren.
fd=zpk(sysd) Zero/pole/gain: 7.1595e-005 (z+0.9544) ------------------------ (z-0.9608) (z-0.9049) Sample time: 0.01
Sie können die Sprungantworten von sys_dc und sysd vergleichen, indem Sie den folgenden Befehl eingeben:
step(sys_dc,sysd)

Beachten Sie die Übereinstimmung in der Sprungantwort. Kontinuierliche und mit FOH diskretisierte Sprungantworten stimmen bei Modellen ohne interne Verzögerungen überein.