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
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','FractDelayApproxOrder',3); sysd1 = c2d(sys,1,opt)
sysd1 = 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 ('FractDelayApproxOrder'
= 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'
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 predistorsió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 amortiguamiento basada en la fórmulaTRBDF2
solo para modelos dispersos.
Para obtener 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 frecuencia de predistorsión, 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 una exposición sobre el modelado de los retardos de tiempo en los sistemas discretizados.
Historial de versiones
Introducido antes de R2006a
Consulte también
c2dOptions
| d2c
| d2d
| thiran
| translatecov
(System Identification Toolbox) | Convert Model Rate
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
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)