Hauptinhalt

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)
Die folgende Abbildung zeigt das Ergebnis.

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