Discretización y remuestreo de modelos
Este ejemplo muestra cómo utilizar los comandos para conversiones de tiempo continuo-discreto, discreto-continuo y discreto-discreto.
Comandos relacionados
Control System Toolbox™ ofrece una amplia compatibilidad para la discretización y el remuestreo de sistemas lineales, e incluye:
c2ddiscretiza modelos de tiempo continuod2ccalcula extensiones de tiempo continuo de modelos de tiempo discretod2dremuestrea modelos de tiempo discreto.
Hay varios algoritmos disponibles para realizar estas operaciones, que incluyen:
Retención de orden cero
Retención de primer orden
Invariante al impulso
Tustin
Polos/ceros coincidentes.

Conversión de tiempo continuo-discreto
Por ejemplo, considere el sistema de segundo orden con retardo:

Para calcular su discretización de retención de orden cero (ZOH) con una tasa de muestreo de 10 Hz, escriba
G = tf([1 -2],[1 3 20],'inputdelay',1); Ts = 0.1; % sampling interval Gd = c2d(G,Ts)
Gd =
0.07462 z - 0.09162
z^(-10) * ----------------------
z^2 - 1.571 z + 0.7408
Sample time: 0.1 seconds
Discrete-time transfer function.
Compare las respuestas al escalón de tiempo continuo y discreto:
step(G,'b',Gd,'r') legend('Continuous','Discretized')

Conversión de tiempo discreto-continuo
Por el contrario, puede utilizar d2c para calcular un "interpolante" de tiempo continuo para un sistema de tiempo discreto determinado. Comenzando con la discretización Gd calculada anteriormente, conviértala de nuevo a continua y compárela con el modelo original G:
Gc = d2c(Gd); step(G,'b',Gd,'r',Gc,'g--') legend('Original','Discretized','D2C Interpolant')

Las dos respuestas de tiempo continuo coinciden perfectamente. Es posible que no siempre obtenga una coincidencia perfecta, especialmente cuando el intervalo de muestreo Ts es demasiado grande y se produce aliasing durante la discretización:
Ts = 1; % 10 times larger than previously Hd = c2d(G,Ts); Hc = d2c(Hd); step(G,'b',Hd,'r',Hc,'g--',10) legend('Original','Discretized','D2C Interpolant')

Remuestreo de sistemas de tiempo discreto
El remuestreo consiste en cambiar el intervalo de muestreo de un sistema de tiempo discreto. Esta operación se lleva a cabo con d2d. Por ejemplo, considere la discretización de 10 Hz Gd del modelo de tiempo continuo original G. Puede remuestrearlo a 40 Hz usando:
Gr = d2d(Gd,0.025)
Gr =
0.02343 z - 0.02463
z^(-40) * ----------------------
z^2 - 1.916 z + 0.9277
Sample time: 0.025 seconds
Discrete-time transfer function.
Compare esto con una discretización directa a 40 Hz:
step(G,'b',Gr,'r',c2d(G,0.025),'g--',4) legend('Continuous','Resampled from 0.1 to 0.025','Discretized with Ts=0.025')

Observe que ambos enfoques conducen a la misma respuesta.
¿Qué algoritmo y tasa de muestreo elegir?
Consulte el ejemplo Discretizing a Notch Filter para obtener más detalles sobre cómo la elección del algoritmo y la tasa de muestreo afectan a la precisión de la discretización.