Representación de respuestas del sistema
Este ejemplo muestra cómo representar las respuestas en el tiempo y en frecuencia de sistemas lineales SISO y MIMO.
Respuestas en el tiempo
A modo de ejemplo explicativo, cree la siguiente función de transferencia de tercer orden:
sys = tf([8 18 32],[1 6 14 24])
sys = 8 s^2 + 18 s + 32 ----------------------- s^3 + 6 s^2 + 14 s + 24 Continuous-time transfer function.
Puede representar las respuestas al escalón y al impulso de este sistema utilizando los comandos step
e impulse
:
subplot(2,1,1) step(sys) subplot(2,1,2) impulse(sys)
Con el comando lsim
también puede simular la respuesta a una señal arbitraria, como por ejemplo una onda sinusoidal. La señal de entrada aparece en color gris y la respuesta del sistema, en color azul.
clf
t = 0:0.01:4;
u = sin(10*t);
lsim(sys,u,t) % u,t define the input signal
Puede utilizar los comandos de representación con modelos TF, SS o ZPK continuos o discretos. Para los modelos de espacio de estados, también puede representar la respuesta no forzada de un estado inicial dado, por ejemplo:
A = [-0.8 3.6 -2.1;-3 -1.2 4.8;3 -4.3 -1.1];
B = [0; -1.1; -0.2];
C = [1.2 0 0.6];
D = -0.6;
G = ss(A,B,C,D);
x0 = [-1;0;2]; % initial state
initial(G,x0)
grid
Respuestas en frecuencia
El análisis en el dominio de la frecuencia es clave para entender las propiedades de estabilidad y rendimiento de los sistemas de control. Los diagramas de Bode, Nyquist y Nichols son tres formas estándar de representar y analizar la respuesta en frecuencia de un sistema lineal. Estas gráficas se pueden generar mediante los comandos bode
, nichols
y nyquist
. Por ejemplo:
sys = tf([8 18 32],[1 6 14 24])
sys = 8 s^2 + 18 s + 32 ----------------------- s^3 + 6 s^2 + 14 s + 24 Continuous-time transfer function.
bode(sys) grid
nyquist(sys) grid
nichols(sys) grid
Mapas de polos y ceros y lugar de las raíces
Los polos y ceros de un sistema contienen información valiosa acerca de su dinámica, su estabilidad y los límites de su rendimiento. Por ejemplo, considere el lazo de feedback de la Figura 1, donde
Figura 1: Lazo de feedback SISO.
Para el valor de ganancia k = 0.7
, puede representar los polos y ceros de lazo cerrado utilizando pzmap
:
s = tf('s');
G = -(2*s+1)/(s^2+3*s+2);
k = 0.7;
T = feedback(G*k,1);
pzmap(T)
grid, axis([-2 0 -1 1])
Los polos de lazo cerrado (marcados con x de color azul) se encuentran en el semiplano izquierdo, por lo que el lazo de feedback es estable para esta elección de ganancia k
. Puede leer el coeficiente de amortiguamiento de los polos de lazo cerrado en esta gráfica (véanse las etiquetas de las líneas radiales). Aquí el coeficiente de amortiguamiento es de aproximadamente 0,7, lo que sugiere que se trata de una respuesta en lazo cerrado bien amortiguada, como se confirma mediante:
clf step(T)
Para comprender mejor cómo afecta la ganancia del lazo k
a la estabilidad de lazo cerrado, puede representar el lugar de los polos de lazo cerrado como una función de k
:
rlocus(G) grid
Al hacer clic en la intersección entre el lugar y el eje y, se revela que los polos de lazo cerrado se vuelven inestables cuando k = 1.51
. Por lo tanto, la ganancia del lazo debería ser siempre inferior a 1,5 para preservar la estabilidad de lazo cerrado.
Características de las respuestas
Si hace clic con el botón secundario sobre las gráficas de las respuestas, accederá a una variedad de opciones y anotaciones. En concreto, el menú Characteristics permite mostrar métricas estándar, como el tiempo de subida y el tiempo de estabilización para respuestas al escalón, o la ganancia de pico y los márgenes de estabilidad para las gráficas de respuestas en frecuencia.
Utilizando el ejemplo del apartado anterior, represente la respuesta al escalón de lazo cerrado:
step(T)
A continuación, haga clic con el botón secundario en la gráfica para mostrar las características de respuesta de pico y tiempo de estabilización. Luego, haga clic en los puntos azules para leer los valores de tiempo de rebasamiento y estabilización correspondientes:
Análisis de sistemas MIMO
Todos los comandos mencionados hasta el momento son totalmente compatibles con sistemas multientrada y multisalida (MIMO). En el caso de MIMO, estos comandos generan arreglos de gráficas. Por ejemplo, la respuesta al escalón del sistema de dos entradas y dos salidas
sys = rss(3,2,2); sys.A = [-0.5 -0.3 -0.2 ; 0 -1.3 -1.7; 0.4 1.7 -1.3];
es un arreglo de gráficas de 2 por 2, donde cada columna muestra la respuesta al escalón de un canal de entrada particular:
step(sys)
Si lo desea, puede agrupar las cuatro respuestas en una sola gráfica haciendo clic con el botón secundario sobre la gráfica y seleccionando el submenú I/O Grouping -> All (Agrupamiento E/S -> Todo). La gráfica resultante se muestra a continuación.
Las siguientes gráficas adicionales son útiles para analizar sistemas MIMO:
Gráfica de valor singular (
sigma
), que muestra las principales ganancias de la respuesta en frecuenciaMapa de polos y ceros para cada par de E/S (
iopzplot
)
Por ejemplo, represente el pico de ganancia de sys
como función de la frecuencia:
sigma(sys) grid
Comparación de sistemas
Es posible representar varios sistemas a la vez utilizando cualquiera de los comandos de gráfica de respuesta. Puede asignar un color, un marcador o un estilo de línea específico a cada sistema para facilitar las comparaciones. Utilizando el ejemplo de feedback anterior, represente la respuesta al escalón de lazo cerrado para tres valores de la ganancia de lazo k
con tres colores diferentes:
k1 = 0.4; T1 = feedback(G*k1,1); k2 = 1; T2 = feedback(G*k2,1); step(T,'b',T1,'r',T2,'g') legend('k = 0.7','k = 0.4','k = 1')