Respuesta Temporal de Sistemas LTI
Respuesta temporal de
Sistemas LTI
Introducción
En la práctica anterior se han descrito comandos básicos en MATLAB para el análisis y control de sistemas.
En la presente práctica, se emplearan dichos comandos para estudiar mas profundamente y de forma practica,
mediante simulación, la respuesta temporal de sistemas.
A la hora de diseñar sistemas de control automático, una aproximación consiste en estudiar la respuesta del
sistema ante entradas características, denominadas entradas de test o prueba (algunas de ellas pueden verse en
la figura 1); en general, el objetivo será el diseño de un sistema de control de modo que optimice la respuesta
del sistema controlado ante este tipo de entradas. Para ello, también habrá que determinar criterios que
permitan comparar las respuestas de los sistemas ante entradas y controladores distintos.
En esta práctica nos centraremos en la respuesta ante entradas en escalón y entradas sinusoidales, y la relación
entre los resultados y los modelos considerados. También se mostrara como el análisis de la respuesta
temporal puede emplearse para el diseño de un controlador.
La práctica se estructura de la siguiente forma. En primer lugar se recordara y profundizara en los comandos
que permiten la definición y ejecución de operaciones con sistemas lineales e invariantes en el tiempo (LTI)
en MATLAB. A continuación se mostraran los comandos relacionados con la respuesta temporal de sistemas,
analizando la respuesta de algunos sistemas ante entradas en escalón y entradas sinusoidales. Finalmente se
presentara el denominado Visor LTI, que permite obtener en MATLAB toda la información de interés
(respuesta temporal y análisis frecuencial) para un sistema dado.
función escalón función rampa
función seno
Figura 1: Entradas características: escalón, rampa y seno
1
OA31
Respuesta Temporal de Sistemas LTI
Modelos LTI en MATLAB
En la practica anterior, se ha visto como trabajar con un sistema en MATLAB en base al numerador y
denominador de su función de transferencia. Las funciones y comandos para el estudio de sistemas
necesitaban como parámetros el numerador y denominador. Sin embargo, MATLAB, a partir de la versión 5,
tiene un nuevo tipo de variable que permite almacenar un sistema lineal e invariante en el tiempo (LTI).
Para la definición de un sistema LTI en MATLAB se tienen varios comandos. En principio, el comando mas
interesante es el que permite definir un sistema LTI a partir de su función de transferencia, el comando tf.
Dicho comando recibe como parámetros los vectores con los coeficientes que definen el numerador y el
denominador de la función de transferencia. Así
>>sysP = tf([1 3],[1 1 2 4]);
define el sistema sysP cuya función de transferencia es:
s+3
s + s 2 + 2s + 4
3
Nótese que sysP define el sistema completo, y ya no es necesario arrastrar el numerador y denominador para
realizar operaciones, como se vera. También es posible definir un sistema LTI a partir de sus polos y ceros,
mediante el comando zpk, al que se le pasan como parámetros los polos y ceros del sistema. Así:
>>%sys = zpk(ceros,polos,ganancia);
>>sysZ = zpk(-1,[-0.1 -3],2);
crea un modelo LTI con un cero en s = -1 y polos en s = -0,1 y s = -3, con ganancia 2.
2(s + 1)
(s + 0,1)(s + 3)
También es posible especificar un modelo LTI según el espacio de esta-
dos, mediante el comando ss:
>>sysS = ss(A,B,C,D);
crea un modelo LTI cuyas matrices A, B, C y D son las especificadas en la llamada de la función.
Además, es posible convertir de unos modelos a otros empleando las mismas funciones. As, si sysZ es un
modelo especificado según sus polos y ceros, la instrucción
>>sysP2 = tf(sysZ);
lo transforma al formato de función de transferencia.
Recuérdese que mediante el comando help de MATLAB es posible acceder a una descripción detallada de las
distintas instrucciones.
Operaciones con modelos LTI.
Es posible realizar operaciones con modelos LTI en MATLAB, como interconexiones, obtención de
parámetros, etc.
As, si sys1 y sys2 son dos modelos LTI, la instrucción
2
OA 31
Respuesta Temporal de Sistemas LTI
>>sys3=sys1*sys2;
almacena en sys3 la conexión serie de ambos modelos (ver figura 2).
Figura 2: Conexión serie de dos sistemas.
La instrucción
>>sys4=sys1+sys2;
Figura 3: Conexión paralelo de dos sistemas.
Almacena en sys4 la conexión paralelo de ambos modelos (ver figura 3).
Finalmente, la instrucción
>>sys5=feedback(sys1,sys2);
Almacena en sys5 la conexión mediante realimentación (negativa) de ambos modelos, según aparece en la
figura 4. Para el caso de realimentación unitaria, sys2 es igual a la unidad.
Figura 4: Conexión mediante realimentación.
Como ejercicio, el alumno debe obtener, empleando MATLAB, la función de transferencia del sistema
correspondiente a sys3 en la figura 5, siendo sys1 y sys2 los sistemas cuyos modelos se definen a continuación
3
OA31
Respuesta Temporal de Sistemas LTI
(en este caso, sys3 corresponde al sistema controlado en bucle cerrado, si consideramos sys2 como la planta a
controlar y sys1 como el controlador):
3
sys1( s ) = (1)
s
s +1
sys 2( s ) = 2 (2)
s + 2s + 1
Figura 5: Determinar la función de transferencia correspondiente a sys3 (sistema controlado en bucle
cerrado).
Análisis de Modelos LTI
Acceso a propiedades del Modelo
Mediante el comando get se puede acceder a las propiedades de un modelo de tipo LTI. Suponiendo que
previamente se hubiera creado uno de estos modelos (como función de transferencia), llamado sysP se
escribirá:
>>sysP = tf(1,[1 2 1]);
>>get(sysP);
lo cual desplegara una serie de características para el modelo en cuestión, entre las que destacan, el
numerador, denominador, retraso a la entrada, retraso a la salida (en el caso de sistemas monovariables estos
dos últimos serán lo mismo),nombre elegido para las variables de entrada y salida...etc. Para cambiar
cualquiera de estas variables se utiliza el operando "punto", de la siguiente manera:
>>sysP.InputDelay=2;\ %Retraso en segundos
>>sysP.InputName='Tension';\ %Nombre de la variable de Entrada.
>>sysP.OutputName='Par Motor';\ %Nombre de la variable de Salida.
Se obtendrá entonces:
Transfer function from input "Tension" to output "Par Motor":
1
exp(−2 * s ) *
s ^ 2 + 2s + 1
Donde, como puede observarse, ya aparece el retraso en forma de función exponencial.
Obtención de Parámetros
Mediante los comandos damp y dcgain se pueden obtener las características del modelo, relacionadas con la
respuesta temporal del mismo: El factor de amortiguamiento, la frecuencia natural y la ganancia en régimen
permanente. Para el mismo sistema anterior, se hará lo siguiente:
4
OA-PN
Respuesta Temporal de Sistemas LTI
>>dcgain(sysP)
Obteniéndose
ans =
1
Es decir, una ganancia unitaria en régimen permanente (fácilmente comprobable, sin mas que dar un escalón
al sistema). Para el caso de la frecuencia natural y la ganancia, se tendrá:
>>damp(sysP)
Produciendo como salida:
Eigenvalue Damping Freq. (rad/s)
-1.00e+000 1.00e+000 1.00e+000
-1.00e+000 1.00e+000 1.00e+000
es decir, una frecuencia natural y un factor de amortiguamiento de valor unidad, y unas raíces del polinomio
del denominador iguales ambas a 1. Puede también comprobarse a partir de la respuesta en escalón, que el
sistema no tiene oscilaciones de ningún tipo. Será más o menos rápido, dependiendo de la frecuencia natural.
Se invita al alumno a que realice la misma operación pero con otros sistemas, incluyendo alguno de orden
superior.
Análisis de la respuesta temporal de sistemas.
Una vez revisado como es posible en MATLAB introducir sistemas y las operaciones que podemos realizar
con ellos, se va a proceder al estudio mediante MATLAB de la respuesta temporal de dichos sistemas, lo que
constituye la parte fundamental de la practica.
Comandos MATLAB para el análisis temporal.
MATLAB incorpora ciertos comandos para la obtención de la respuesta de un sistema LTI ante ciertas
entradas características. Dichos comandos ya fueron descritos en la practica anterior, pero serán brevemente
repasados aquí. Recuérdese que si sysP es un sistema LTI (obtenido por ejemplo como función de
transferencia):
>>sysP=tf([4],[1 2 4]);
la respuesta del sistema ante un impulso unitario se obtiene con el comando:
>>impulse(sysP);
Para la respuesta ante escalón se tiene el comando step (probar help step para obtener mas información sobre
el funcionamiento del comando):
>>step(sysP);
Los dos comandos anteriores admiten también como parámetro el vector de tiempos sobre el que queremos
que se represente la respuesta, y permiten almacenar la respuesta:
>>t = 0:.1:10; %Definimos un vector de tiempos
>>y = step(sysP,t); %Representa la salida ante escalón entre 0 y 10 segundos. La respuesta se
almacena en y.
5
OA -PN
Respuesta Temporal de Sistemas LTI
Por ultimo, la respuesta ante una entrada cualquiera definida por el usuario se puede obtener con el comando
lsim.
>>t = 0:.1:10
>>entrada = sin(t);
>>y = lsim(sysP,entrada,t);
>>plot(t,y,'r',t,entrada,'b') % Representamos la salida y la entrada al mismo tiempo.
En este caso, y almacenara la respuesta de sysP ante la entrada definida por los vectores entrada y t, es decir,
en este caso, ante un seno de frecuencia unitaria.
Caracterización de la respuesta temporal
Tal como se ha dicho, es interesante caracterizar la respuesta de un sistema ante entradas tipo. Vamos a
limitarnos en este caso a la caracterización de la respuesta ante escalón unitario.
Respuesta ante escalón unitario
Para caracterizar la respuesta ante escalón de un sistema, se definen los siguientes parámetros.
• Sobreoscilacion: Se define como la diferencia entre el máximo valor de pico de la respuesta y el
valor de régimen permanente, relativa a dicho valor de régimen permanente (en tantos por ciento).
• Tiempo de subida: Tiempo que transcurre entre que la salida alcanza el 10% del régimen
permanente y el 90% del mismo (es posible definir otros intervalos, como entre el 0% y el 100 %).
• Tiempo de pico: Tiempo que tarda la respuesta en alcanzar su valor de pico (el máximo).
• Tiempo de retardo: Tiempo que tarda la salida en alcanzar el 50% del valor de régimen
permanente.
• Tiempo de establecimiento (5 %): Tiempo que tarda la respuesta en situarse establemente a menos
del 5% del valor de régimen permanente.
Figura 6: Parámetros relativos a la respuesta ante escalón. Arriba izquierda: sobreoscilación; arriba derecha:
tiempo de subida; abajo: tiempo de establecimiento.
6
OA-PN
Respuesta Temporal de Sistemas LTI
La figura 6 muestra de forma grafica alguno de estos parámetros. Estos parámetros permiten comparar
respuestas de diferentes sistemas, o establecer especificaciones (un ejemplo típico de especificaciones será
por ejemplo el diseño de un sistema de control de modo que el sistema controlado presente una
sobreoscilación menor del 10% y un tiempo de subida de menos de 3 segundos).
Sistemas de segundo orden
Se va a estudiar de forma breve la respuesta escalón de sistemas de segundo orden. La función de
transferencia correspondiente a un sistema de segundo orden se puede parametrizar de la siguiente forma:
Kω n2
P( s) =
s 2 + 2ξω n2 s + ω n2
donde K es la ganancia, ωn es la frecuencia natural y ξ es el denominado
factor de amortiguamiento. La respuesta temporal de un sistema de segundo orden esta caracterizada por el
valor de dichos parámetros. Analizando la respuesta temporal ante entradas en escalón, podemos ver los
siguiente casos (ver figura 7):
ξ > 1 Sistema sobre amortiguado.
ξ = 1 Sistema críticamente amortiguado.
0 < ξ < 1 Sistema subamortiguado.
ξ = 0 Sistema críticamente estable.
ξ < 0 Sistema inestable.
Dado el sistema:
4
P( s) =
s 2 + 2s + 4
determinar su frecuencia natural y factor de amortiguamiento. Generar el modelo en MATLAB y comprobar
el tipo de respuesta ante escalón mediante el comando step. Variar a continuación el parámetro ξ para
comprobar los distintas respuestas ante escalón.
También se ha comprobado en teoría la relación existente entre los parámetros de la función de transferencia
y los valores característicos de la respuesta escalón para sistemas de segundo orden (tiempo de pico, tiempo
de subida, sobreoscilación).
7
OA-PN
Respuesta Temporal de Sistemas LTI
Figura 7: Caracterización de la respuesta ante escalón para un sistema de segundo orden. De izquierda a
derecha y de arriba a abajo: Sistema sobreamortiguado, sistema críticamente amortiguado, sistema
subamortiguado, sistema críticamente estable y sistema inestable.
ξπ
1−ξ 2 (3)
so = 100e
π
tp = (4)
ωn 1− ξ 2
8
OA-PN
Respuesta Temporal de Sistemas LTI
π −ϕ
t s ( 0−100 ) = (5)
ωn 1−ξ 2
Para el sistema subamortiguado dado por la ecuación 6:
9
G(s) = 2
(6)
s + 3s + 9
determinar empleando MATLAB el tiempo de pico, tiempo de subida y la sobreoscilación, y comparar con
los valores teóricos esperados. Dado el sistema en bucle abierto (ecuación 7). determinar empleando
MATLAB el tiempo de pico, tiempo de subida y la sobreoscilación, y comparar con los valores teóricos
esperados. Dado el sistema en bucle abierto (ecuación 7)
K
G ( s) = (7)
s (s + p )
determinar los valores de k y p para que el sistema en bucle cerrado (realimentación unitaria) presente una
sobreoscilación del 20% y un tiempo de pico de 1 seg. Comprobar los resultados. También suele resultar de
interés la respuesta de un sistema ante una rampa. Determinar la respuesta ante rampa para el sistema anterior
(empleando lsim). Comprobar que el error en régimen permanente es igual a:
2ξ
ε= (8)
ωn
El análisis temporal de sistemas se puede realizar además con la herramienta ltiview que será descrita mas
adelante.
Respuesta ante entrada sinusoidal
Por ultimo, se va a estudiar la respuesta de sistemas ante entradas sinusoidales, poniendo de manifiesto la
relación entre esta y el análisis frecuencial de sistemas (diagramas de Bode). Para sistemas lineales e
invariantes en el tiempo, ante una entrada sinusoidal como:
x(t ) = Asen(ωt ) (9)
la respuesta es siempre otra señal sinusoidal de la misma frecuencia, pero que sufre una amplificación (o
atenuación) en su amplitud y un cierto desfase. Es decir, la salida y(t) será de la forma:
y (t ) = G ( jω ) . Asen(ωt + arg[G ( jω )]) (10)
donde kG(jω)k no es mas que la magnitud en el diagrama de Bode del sistema G(s) para la frecuencia ω, y
arg[G(jω)] la fase.
9
OA-PN
Respuesta Temporal de Sistemas LTI
Figura 8: Respuesta ante entrada sinusoidal. Obsérvese que la salida aparece desfasada y atenuada respecto a
la entrada (grafica azul).
Por tanto, el análisis de la respuesta de un sistema ante entradas sinusoidales de diferentes frecuencias,
permite de forma empírica construir el diagrama de Bode de un sistema. Para ello, se anotan la ganancia y el
desfase que sufre la entrada frente a la frecuencia de la misma. La ganancia se calcula comprobando la
amplitud pico a pico de la entrada y la salida:
y picopico
G ( jω ) = 20 log (11)
x picopico
El logaritmo se aplica para convertir la ganancia a decibelios. El desfase se puede calcular comprobando la
diferencia de tiempos entre 2 cruces por cero de la entrada y la salida. Para calcular el desfase
correspondiente a dicha diferencia de tiempos no hay mas que multiplicar por la frecuencia del seno
correspondiente:
arg[G ( jω )] = ω∆t (radianes ) (12)
Como ejercicio, el alumno debe calcular el diagrama de bode correspondiente al sistema cuya función de
transferencia se define mediante la ecuación:
9
G (s) = 2
(13)
s + 1.5s + 9
Para ello, se simulara la respuesta del sistema ante entradas sinusoidales de frecuencias 0.5, 1, 2, 2.5, 3, 5 y 10
rad/s, anotando en cada caso la ganancia en decibelios y el desfase en grados.
Frecuencia, ω(rad/seg) Ganancia (dB) Desfase (grados)
0.5
1
2
2.5
3
5
10
10
OA-PN