Discretización y remuestreo de modelos
Este ejemplo muestra cómo utilizar los comandos para conversiones en 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 en tiempo continuod2ccalcula extensiones en tiempo continuo de modelos en tiempo discretod2dremuestrea modelos en 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 en 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 en tiempo continuo y discreto:
step(G,'b',Gd,'r') legend('Continuous','Discretized')

Conversión en tiempo discreto-continuo
Por el contrario, puede utilizar d2c para calcular un "interpolante" en tiempo continuo para un sistema en 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 en 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 en tiempo discreto
El remuestreo consiste en cambiar el intervalo de muestreo de un sistema en tiempo discreto. Esta operación se lleva a cabo con d2d. Por ejemplo, considere la discretización de 10 Hz Gd del modelo en 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.