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
Discretización de funciones de transferencia
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,'--')
Discretización de modelos con un retardo fraccionario absorbido en coeficientes
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.
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,'-')
Discretización de modelos con un retardo fraccionario aproximado
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.
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.
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.
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.
Discretización de modelos identificados
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.
Creación de modelos de predicción
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
sysc
— Sistema dinámico de tiempo continuo
modelo de sistema dinámico
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
.
Ts
— Tiempo de muestreo
escalar positivo
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
.
method
— Método de discretización
'zoh'
(predeterminado) | 'foh'
| 'impulse'
| 'tustin'
| 'matched'
| 'least-squares'
| 'damped'
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 de impulso invariante'tustin'
: método bilineal (Tustin). Para especificar este método con alteració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 Continuous-Discrete Conversion Methods.
opts
— Opciones de discretización
Objeto c2dOptions
Opciones de discretización, especificadas como un objeto c2dOptions
. Por ejemplo, especifique la alteración de frecuencia, el orden del filtro de Thiran o el método de discretización como opción.
Argumentos de salida
sysd
— Modelo de tiempo discreto
modelo de sistema dinámico
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
.
G
— Aplicación de las condiciones iniciales continuas del modelo de espacio de estados al vector de estado inicial de tiempo discreto
matriz
Aplicación 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. La aplicación 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 Continuous-Discrete Conversion Methods para un análisis del modelado de retardos de tiempo en los sistemas discretizados.
Historial de versiones
Introducido antes de R2006aR2024a: No se añaden estados adicionales durante la conversión
El 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 la aplicación 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"
.
R2024a: Soporte para modelos mechss
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
.
R2024a: Soporte para modelos con compensaciones y otras mejoras
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
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)