c2d
Conversión de modelos de tiempo continuo a discreto
Descripción
discretiza el modelo de sistema dinámico en tiempo continuo sysd = c2d(sysc,Ts)sysc utilizando una retención de orden cero en las entradas y un tiempo de muestreo de Ts.
Ejemplos
Discretice la siguiente función de transferencia en tiempo continuo:
Este sistema tiene un retardo de entrada de 0,3 s. Discretice el sistema utilizando la aproximación triangular (retención de primer orden) con tiempo de muestreo Ts = 0,1 s.
H = tf([1 -1],[1 4 5],'InputDelay', 0.3); Hd = c2d(H,0.1,'foh');
Compare las respuestas al escalón de los sistemas en tiempo continuo y discretizado.
step(H,'-',Hd,'--')

Discretice la siguiente función de transferencia con retardo utilizando una retención de orden cero en la entrada y una tasa de muestreo de 10 Hz.
h = tf(10,[1 3 10],'IODelay',0.25);
hd = c2d(h,0.1)hd =
0.01187 z^2 + 0.06408 z + 0.009721
z^(-3) * ----------------------------------
z^2 - 1.655 z + 0.7408
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties
En este ejemplo, el modelo discretizado hd presenta un retardo de tres periodos de muestreo. El algoritmo de discretización absorbe el retardo de medio periodo residual en los coeficientes de hd.
Compare las respuestas al escalón de los modelos en tiempo continuo y discretizado.
step(h,'--',hd,'-')

Desde R2024a
Cree un modelo de espacio de estados en tiempo continuo con dos estados y un retardo de entrada.
sys = ss(tf([1,2],[1,4,2])); sys.InputDelay = 2.7
sys =
A =
x1 x2
x1 -4 -2
x2 1 0
B =
u1
x1 2
x2 0
C =
x1 x2
y1 0.5 1
D =
u1
y1 0
Input delays (seconds): 2.7
Continuous-time state-space model.
Model Properties
Discretice el modelo utilizando el método de discretización de Tustin y un filtro de Thiran para crear el modelo de los retardos fraccionarios. Tiempo de muestreo Ts = 1 segundo.
opt = c2dOptions('Method','tustin','ThiranOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 =
A =
x1 x2
x1 -0.4286 -0.5714
x2 0.2857 0.7143
B =
u1
x1 0.5714
x2 0.2857
C =
x1 x2
y1 0.2857 0.7143
D =
u1
y1 0.2857
(values computed with all internal delays set to zero)
Internal delays (sampling periods): 1 1 1
Sample time: 1 seconds
Discrete-time state-space model.
Model Properties
De forma predeterminada, la función modela retardos adicionales como retardos internos en el modelo discretizado. Para modelar retardos adicionales como estados en el modelo discretizado, establezca la opción DelayModeling de c2dOptions en 'state'.
opt2 = c2dOptions('Method','tustin','ThiranOrder',3,'DelayModeling','state'); sysd2 = c2d(sys,1,opt2)
sysd2 =
A =
x1 x2 x3 x4 x5
x1 -0.4286 -0.5714 -0.00265 0.06954 2.286
x2 0.2857 0.7143 -0.001325 0.03477 1.143
x3 0 0 -0.2432 0.1449 -0.1153
x4 0 0 0.25 0 0
x5 0 0 0 0.125 0
B =
u1
x1 0.002058
x2 0.001029
x3 8
x4 0
x5 0
C =
x1 x2 x3 x4 x5
y1 0.2857 0.7143 -0.001325 0.03477 1.143
D =
u1
y1 0.001029
Sample time: 1 seconds
Discrete-time state-space model.
Model Properties
El modelo discretizado contiene ahora tres estados adicionales x3, x4 y x5, correspondientes a un filtro de Thiran de tercer orden. Dado que el retardo de tiempo dividido por el tiempo de muestreo es 2,7, el filtro de Thiran de tercer orden ('ThiranOrder' = 3) puede aproximar la totalidad del retardo de tiempo.
Realice la estimación de una función de transferencia en tiempo continuo y proceda a su discretización.
load iddata1 sys1c = tfest(z1,2); sys1d = c2d(sys1c,0.1,'zoh');
Realice la estimación de una función de transferencia en tiempo discreto de segundo orden.
sys2d = tfest(z1,2,'Ts',0.1);Compare la respuesta del modelo discretizado de función de transferencia en tiempo continuo, sys1d, y del modelo en tiempo discreto estimado directamente, sys2d.
compare(z1,sys1d,sys2d)

Los dos sistemas son casi idénticos.
Discretice un modelo de espacio de estados identificado para construir un predictor de un paso adelante de su respuesta.
Cree un modelo de espacio de estados en tiempo continuo identificado utilizando datos de estimación.
load iddata2
sysc = ssest(z2,4);Anticipe la respuesta prevista de un paso adelante de sysc.
predict(sysc,z2)

Discretice el modelo.
sysd = c2d(sysc,0.1,'zoh');Construya un modelo de predicción a partir del modelo discretizado, sysd.
[A,B,C,D,K] = idssdata(sysd); Predictor = ss(A-K*C,[K B-K*D],C,[0 D],0.1);
Predictor es un modelo de dos entradas que utiliza las señales de salida y entrada ([z1.y z1.u]) medidas para calcular la respuesta prevista de un paso de sysc.
Simule el modelo de predicción para obtener la misma respuesta que el comando predict.
lsim(Predictor,[z2.y,z2.u])

La simulación del modelo de predicción genera la misma respuesta que predict(sysc,z2).
Argumentos de entrada
Modelo en tiempo continuo, especificado como un modelo de sistema dinámico tal como idtf, idss o idpoly. sysc, no puede ser un modelo de datos de respuesta en frecuencia. sysc puede ser un sistema SISO o MIMO, salvo que el método de discretización 'matched' admite únicamente sistemas SISO.
sysc puede presentar retardos de tiempo de entrada-salida o internos; sin embargo, los métodos 'matched', 'impulse' y 'least-squares' no admiten modelos de espacio de estados con retardos internos.
Los siguientes sistemas lineales identificados no se pueden discretizar directamente:
Modelos
idgreycuyoFunctionTypees'c'. Conviértalos primero al modeloidss.Modelos
idproc. Conviértalos primero a un modeloidtfoidpoly.
El tiempo de muestreo, especificado como un escalar positivo que representa el periodo de muestreo del sistema en tiempo discreto resultante. El Ts se expresa en TimeUnit, que es la propiedad de sysc.TimeUnit.
Método de discretización, especificado como una de las siguientes opciones:
'zoh': retención de orden cero (valor predeterminado). Supone que las entradas de control son constantes por partes a lo largo del tiempo de muestreoTs.'foh': aproximación triangular (retención de primer orden modificada). Supone que las entradas de control son lineales por partes a lo largo del tiempo de muestreoTs.'impulse': discretización invariante al impulso'tustin': método bilineal (Tustin). Para especificar este método con precompensación de frecuencia (o lo que antes se conocía como método'prewarp'), utilice la opciónPrewarpFrequencydec2dOptions.'matched': método de correspondencia de polos y ceros'least-squares': método de mínimos cuadrados'damped': aproximación de Tustin con amortiguación basada en la fórmulaTRBDF2solo para modelossparss.
Para más información sobre los algoritmos de cada método de conversión, consulte Métodos de conversión entre tiempo continuo y discreto.
Opciones de discretización, especificadas como un objeto c2dOptions. Por ejemplo, especifique la frecuencia de precompensación de la respuesta en frecuencia, el orden del filtro de Thiran o el método de discretización como opción.
Argumentos de salida
Modelo en tiempo discreto, devuelto como un modelo de sistema dinámico del mismo tipo que el sistema de entrada sysc.
Cuando sysc es un modelo identificado (IDLTI), sysd:
Incluye los componentes medidos y de ruido de
sysc. La varianza de las innovaciones λ del modelo identificado en tiempo continuosysc, almacenada en su propiedadNoiseVariance, se interpreta como la intensidad de la densidad espectral del espectro de ruido. Por lo tanto, la varianza de ruido ensysdes λ/Ts.No incluye la covarianza del parámetro estimado de
sysc. Si desea convertir la covarianza mientras discretiza el modelo, utilicetranslatecov.
Mapeo de las condiciones iniciales de tiempo continuo x0 y u0 del modelo de espacio de estados sysc al vector de estado inicial en tiempo discreto x[0], devuelto como una matriz. El mapeo de las condiciones iniciales al vector de estado inicial es la siguiente:
En el caso de modelos de espacio de estados con retardos de tiempo, c2d rellena la matriz G con ceros para tener en cuenta los estados adicionales introducidos por la discretización de esos retardos. Consulte Métodos de conversión entre tiempo continuo y discreto para un análisis del modelado de retardos de tiempo en los sistemas discretizados.
Historial de versiones
Introducido antes de R2006aEl comando c2d ya no añade estados adicionales cuando se modelan retardos adicionales. De forma predeterminada, c2d ahora utiliza retardos internos y devuelve el modelo discretizado con el mismo número de estados. El resultado es un comportamiento más predecible y simplifica el mapeo del estado inicial de tiempo continuo a discreto.
Para volver al comportamiento anterior a la versión R2024a, cree un conjunto de opciones con c2dOptions y establezca DelayModeling en "state".
Ahora puede discretizar modelos mechss utilizando el método de aproximación bilineal de Tustin. En el caso de modelos mechss, el método 'tustin' calcula la forma de segundo orden de la discretización de Tustin. Esto equivale a aplicar Tustin al equivalente sparss de primer orden del modelo mechss.
Ahora puede utilizar c2d para discretizar modelos con compensaciones, como los modelos de variación de parámetros lineales dispuestos en cuadrículas.
Además, c2dOptions ofrece dos nuevas opciones
DelayModeling: especifica si se desea modelar los retardos adicionales como retardos internos (opción predeterminada) o estados adicionales.Consistency: aplica la coherencia de estados y retardos en arreglos de espacio de estados. Esta opción resulta útil cuando se discretizan modelos LPV o LTV dispuestos en cuadrículas.
Consulte también
c2dOptions | d2c | d2d | thiran (Control System Toolbox) | translatecov
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)