Crear modelos de tiempo continuo
Este ejemplo muestra cómo crear modelos lineales de tiempo continuo utilizando los comandos tf
, zpk
, ss
y frd
.
Tipos de modelos LTI
Control System Toolbox™ proporciona funciones para crear cuatro representaciones básicas de modelos lineales invariantes en el tiempo (LTI):
Modelos de función de transferencia (TF).
Modelos de cero-polo-ganancia (ZPK).
Modelos de espacio de estados (SS).
Modelos de datos de respuesta en frecuencia (FRD).
Estas funciones toman los datos del modelo como entrada y crean objetos que representan estos datos en una única variable de MATLAB®.
Crear modelos de función de transferencia
Las funciones de transferencia (TF) son representaciones en el dominio de la frecuencia de sistemas LTI. Una función de transferencia SISO es una relación de polinomios:
Las funciones de transferencia se especifican mediante sus polinomios del numerador y denominador, A(s)
y B(s)
. En MATLAB, un polinomio se representa mediante el vector de sus coeficientes, por ejemplo, el polinomio
se especifica como [1 2 10]
.
Para crear un objeto TF que represente la función de transferencia:
especifique los polinomios del numerador y denominador y utilice tf
para construir el objeto TF:
num = [ 1 0 ]; % Numerator: s den = [ 1 2 10 ]; % Denominator: s^2 + 2 s + 10 H = tf(num,den)
H = s -------------- s^2 + 2 s + 10 Continuous-time transfer function. Model Properties
Como alternativa, puede especificar este modelo como una expresión racional de la variable de Laplace s
:
s = tf('s'); % Create Laplace variable H = s / (s^2 + 2*s + 10)
H = s -------------- s^2 + 2 s + 10 Continuous-time transfer function. Model Properties
Crear modelos de cero-polo-ganancia
Los modelos de cero-polo-ganancia (ZPK) son la forma factorizada de las funciones de transferencia:
Estos modelos exponen las raíces z
del numerador (los ceros) y las raíces p
del denominador (los polos). El coeficiente escalar k
se denomina ganancia.
Para crear el modelo de ZPK:
especifique los vectores de polos y ceros y la ganancia k
:
z = 0; % Zeros p = [ 2 1+i 1-i ]; % Poles k = -2; % Gain H = zpk(z,p,k)
H = -2 s -------------------- (s-2) (s^2 - 2s + 2) Continuous-time zero/pole/gain model. Model Properties
En cuanto a los modelos TF, también puede especificar este modelo como una expresión racional de s
:
s = zpk('s');
H = -2*s / (s - 2) / (s^2 - 2*s + 2)
H = -2 s -------------------- (s-2) (s^2 - 2s + 2) Continuous-time zero/pole/gain model. Model Properties
Crear modelos de espacio de estados
Los modelos de espacio de estados (SS) son representaciones en el dominio del tiempo de sistemas LTI:
donde x(t)
es el vector de estado, u(t)
es el vector de entrada e y(t)
es la trayectoria de salida.
Los modelos de espacio de estados derivan de las ecuaciones diferenciales que describen la dinámica del sistema. Por ejemplo, considere la EDO de segundo orden para un motor eléctrico sencillo:
donde I
es la corriente de alimentación (entrada) y theta
es el desplazamiento angular del rotor (salida). Esta EDO se puede reescribir en la forma de espacio de estados como:
Para crear este modelo, especifique las matrices de espacio de estados A, B, C, D
y utilice ss
para construir el objeto SS:
A = [ 0 1 ; -5 -2 ]; B = [ 0 ; 3 ]; C = [ 1 0 ]; D = 0; H = ss(A,B,C,D)
H = A = x1 x2 x1 0 1 x2 -5 -2 B = u1 x1 0 x2 3 C = x1 x2 y1 1 0 D = u1 y1 0 Continuous-time state-space model. Model Properties
Crear modelos de datos de respuesta en frecuencia
Los modelos de datos de respuesta en frecuencia (FRD) permiten almacenar la respuesta en frecuencia compleja medida o simulada de un sistema en un objeto LTI. Luego, puede utilizar estos datos como un modelo subrogado para el análisis en el dominio de la frecuencia y con fines de diseño.
Por ejemplo, supongamos que obtiene los siguientes datos de un analizador de frecuencia:
Frecuencia (Hz): 10, 30, 50, 100, 500.
Respuesta: 0.0021+0.0009i, 0.0027+0.0029i, 0.0044+0.0052i, 0.0200-0.0040i, 0.0001-0.0021i.
Puede crear un objeto FRD que contenga estos datos utilizando:
freq = [10, 30, 50, 100, 500]; resp = [0.0021+0.0009i, 0.0027+0.0029i, 0.0044+0.0052i, 0.0200-0.0040i, 0.0001-0.0021i]; H = frd(resp,freq,'Units','Hz')
H = Frequency(Hz) Response ------------- -------- 10 2.100e-03 + 9.000e-04i 30 2.700e-03 + 2.900e-03i 50 4.400e-03 + 5.200e-03i 100 2.000e-02 - 4.000e-03i 500 1.000e-04 - 2.100e-03i Continuous-time frequency response. Model Properties
Tenga en cuenta que se considera que los valores de frecuencia están en rad/s, a menos que especifique que Units
sean hercios.
Crear modelos MIMO
Los comandos tf
, zpk
, ss
y frd
permiten construir tanto modelos SISO como MIMO. Para los modelos TF o ZPK, a menudo es conveniente construir modelos MIMO concatenando modelos SISO más sencillos. Por ejemplo, puede crear la función de transferencia MIMO 2x2:
utilizando:
s = tf('s');
H = [ 1/(s+1) , 0 ; (s+1)/(s^2+s+3) , -4*s/(s+2) ]
H = From input 1 to output... 1 1: ----- s + 1 s + 1 2: ----------- s^2 + s + 3 From input 2 to output... 1: 0 -4 s 2: ----- s + 2 Continuous-time transfer function. Model Properties
Analizar modelos LTI
Control System Toolbox proporciona un amplio conjunto de funciones para analizar modelos LTI. Estas funciones van desde consultas sencillas sobre el tamaño y el orden de E/S hasta análisis sofisticados de respuestas en el tiempo y la frecuencia.
Por ejemplo, puede obtener información sobre el tamaño para la función de transferencia MIMO H
especificada anteriormente escribiendo:
size(H)
Transfer function with 2 outputs and 2 inputs.
Puede calcular los polos utilizando:
pole(H)
ans = 4×1 complex
-1.0000 + 0.0000i
-0.5000 + 1.6583i
-0.5000 - 1.6583i
-2.0000 + 0.0000i
Puede preguntar si este sistema es estable utilizando:
isstable(H)
ans = logical
1
Por último, puede representar la respuesta al escalón escribiendo:
step(H)