Contenu principal

Conversion entre des systèmes à temps continu et à temps discret

Commandes disponibles pour la conversion continue/discrète

Les commandes c2d, d2c et d2d effectuent respectivement des conversions de continu à discret, de discret à continu et de discret à discret (rééchantillonnage).

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

Méthodes disponibles pour la conversion continue/discrète

Diverses méthodes de discrétisation/interpolation sont disponibles, notamment un bloqueur d'ordre zéro (par défaut), un bloqueur du premier ordre, l'approximation de Tustin avec ou sans pré-décalage, et la méthode d'appariement pôle-zéro. Par exemple,

sysd = c2d(sysc,Ts,'foh')   % Uses first-order hold
sysc = d2c(sysd,'tustin')   % Uses Tustin approximation

Numérisation du modèle discret de moteur DC

Vous pouvez numériser le système physique du moteur DC en utilisant la fonction c2d et en sélectionnant un pas d'échantillonnage approprié. Le choix du bon pas d'échantillonnage fait intervenir de nombreux facteurs, notamment les performances que vous souhaitez atteindre, la constante de temps la plus rapide de votre système et la vitesse à laquelle vous souhaitez que votre contrôleur fonctionne. Pour cet exemple, choisissez une constante de temps de 0,01 seconde. Voir Exemple de SISO : le moteur DC pour la construction de l'objet SS 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.

Pour voir le gain du zéro-pôle en temps discret pour le moteur numérique DC, utilisez zpk pour convertir le modèle.

fd=zpk(sysd)
 
Zero/pole/gain:
7.1595e-005 (z+0.9544)
------------------------
 (z-0.9608) (z-0.9049)
 
Sample time: 0.01

Vous pouvez comparer les réponses indicielles de sys_dc et sysd en tapant

step(sys_dc,sysd)
Cette figure montre le résultat.

Notez la correspondance de la réponse indicielle. Les réponses indicielles continues et discrétisées en FOH correspondent pour les modèles sans retard interne.