c2d
Conversión de modelos de tiempo continuo a discreto
Descripción
discretiza el modelo de sistema dinámico de 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 de 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 de 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 de tiempo continuo y discretizado.
step(h,'--',hd,'-')
Desde R2024a
Cree un modelo de espacio de estados de 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 de 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 de tiempo discreto de segundo orden.
sys2d = tfest(z1,2,'Ts',0.1);
Compare la respuesta del modelo discretizado de función de transferencia de tiempo continuo, sys1d
, y del modelo de 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 de 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 de tiempo continuo, especificado como un modelo de sistema dinámico tal como tf
, ss
o zpk
. 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
idgrey
cuyoFunctionType
es'c'
. Conviértalos primero al modeloidss
.Modelos
idproc
. Conviértalos primero a un modeloidtf
oidpoly
.
El tiempo de muestreo, especificado como un escalar positivo que representa el periodo de muestreo del sistema de 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 predeformación de frecuencia (o lo que antes se conocía como método'prewarp'
), utilice la opciónPrewarpFrequency
dec2dOptions
.'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órmulaTRBDF2
solo 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 predeformación, el orden del filtro de Thiran o el método de discretización como opción.
Argumentos de salida
Modelo de 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 de 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 ensysd
es λ/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 de tiempo discreto x[0], devuelto como una matriz. El mapeo de las condiciones iniciales al vector de estado inicial es la siguiente:
Para los 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. Para los 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
| translatecov
(System Identification Toolbox) | Convert Model Rate
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)