Contenuto principale

Conversione tra sistemi a tempo continuo e a tempo discreto

Comandi disponibili per la conversione a tempo continuo/discreto

I comandi c2d, d2c e d2d eseguono rispettivamente la conversione da continuo a discreto, da discreto a continuo e da discreto a discreto (ricampionamento).

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

Metodi disponibili per la conversione a tempo continuo/discreto

Sono disponibili diversi metodi di discretizzazione/interpolazione, compreso il ricostruttore di ordine zero (ZOH, Zero-Order Hold, predefinito), il ricostruttore di ordine uno (FOH, First-Order Hold), l’approssimazione di Tustin con o senza pre-warping e metodo della corrispondenza poli/zeri. Ad esempio,

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

Discretizzazione del modello di motore DC discreto

È possibile digitalizzare l’impianto del motore DC utilizzando la funzione c2d e selezionando un tempo di campionamento adeguato. La scelta del tempo di campionamento corretto dipende da svariati fattori, compresa la performance che si intende ottenere, la costante di tempo più veloce all’interno del sistema e la velocità di funzionamento attesa per il controller. Per questo esempio, scegliere una costante di tempo di 0,01 secondi. Vedere Esempio SISO: Il motore CC per la costruzione dell’oggetto 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.

Per visualizzare il guadagno zero-poli a tempo discreto per il motore DC digitale, utilizzare zpk per convertire il modello.

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

È possibile confrontare le risposte a gradino di sys_dc e sysd digitando

step(sys_dc,sysd)
Questa figura mostra il risultato.

Osservare la corrispondenza nella risposta a gradino. Le risposte continue e a gradino discretizzate con metodo FOH corrispondono per i modelli senza ritardi interni.