Control Automático
Práctica 6. Control de un sistema
multivariable con lazos simples.
Grado en Ingenierı́a en Tecnologı́as Aeroespaciales
Escola Superior d’Enginyeries Industrial, Aeroespacial i Audiovisual de Terrassa
Roger Jordi Martı́nez Pardell
Theo Ferreiro Plumas
Alex Pous Queralt
Diciembre de 2022
Índice
1. Introducción 2
2. Controlador PID 3
3. Simulación del sistema con simulink 5
4. Diseño analı́tico 7
5. Simulació de les respostes 9
1
1. Introducción
En este laboratorio queremos controlar un sistema multivariable de dos rotores parecido a lo que serı́a
un helicóptero. Este sistema será no lineal. Si analizamos el sistema vemos que tiene cuatro estados
(posición y velocidad angular con dos grados de libertad cada una). Una vez linealizado el sistema
obtenemos lo siguiente:
α G11 (s) G12 (s) u1
=
β G21 (s) G22 (s) u2
Para controlar los rotores usaremos un controlador PID. Controlaremos α y β por separado e ignorando
las funciones G12 y G21 . El objetivo de esta práctica será encontrar lo valores correctos de PID para
controlar el sistema de la manera que nos parezca más adecuada.
Figura 1: Imagen del rotor usado en la práctica
2
2. Controlador PID
En este apartado queremos diseñar un controlador PID con sus respectivas constantes Kp, Ki y Kd.
Para ello usaremos el fichero designroutine.m el cual analiza el lazo de un PID en la forma:
1
C(s) = Kp + Ki + Kd s
s
Para que el programa anterior funcione debemos cargar el modelo G22 el qual nos lo dan en otro
fichero. Una vez tenemos todo descargado empezaremos a probar valores de Kp, Ki y Kd siguiendo la
siguiente tabla:
Para empezar pondremos los valores de Ki y Kd en zero, seguidamente empezaremos a probar valores
de Kp hasta conseguir el mejor valor en rendimiento però sin disminuir la robustez de la respuesta.
Una vez encontrado el valor de Kp, empezaremos a probar valores de Ki hasta que obtengamos un
error estacionario 0 y una rapidez que nos parezca correcta. Por último, iremos aumentando Kd para
que la robustez de la respuesta mejore. A partir de aquı́, solo tendremos que ir acabando de ajustar
valores para obtener la respuesta que nosotros queramos.
También debemos tener en cuenta que el margen de ganancia a de ser superior a 7dB y que el margen
de fase a de ser superior a los 50º. Esto lo comprobaremos mediante el diagrama de Bode que nos
graficará el programa. Aparte también graficaremos el diagrama de Nyquist el cual nos servirá para
decir si el sistema es estable o no.
Teniendo en cuenta todo lo anterior hemos escogido usar los siguientes valores:
Kp = 0, 05
Ki = 0, 2
Kd = 1
Con estos valores obtenemos las siguientes gráficas:
3
Figura 2: Diagrama de Bode del sistema
En este primer gráfico podemos ver el diagrama de Bode de la respuesta de nuestro sistema simulado.
Antes hemos dicho que los márgenes tenı́an que cumplir ciertos criterios y como podemos ver se cumplen
para estos valores. Aunque el margen de fase sea infinito, es superior a 7dB, por tanto, también es
válido.
Figura 3: Diagrama de Nyquist del sistema
En este segundo gráfico vemos el diagrama de Nyquist de nuestro sistema simulado. En este gráfico
veremos si nuestro sistema es estable. Para ello se debe cumplir Z = N + P = 0, como no tenemos
4
ningún lazo rodeando él -1 se cumplirá que Z = 0.
Figura 4: Respuesta del sistema
En la gráfica anterior vemos la respuesta del sistema linealizado. De esta podemos decir que se esta-
biliza con bastante rapidez comparada con otras opciones que probamos que tardaban bastante más
en llegar a un punto estable sin sacrificar mucha robustez. También podemos ver que al principio hay
unas pequeñas oscilaciones que hemos decidido aceptar, ya que sino la rapidez del sistema disminuı́a
demasiado. Aun teniendo esas pequeñas oscilaciones consideramos que el sistema tiene suficiente ro-
bustez. Como se puede ver, hemos decidido obtener una respuesta no del todo robusta, pero con una
rapidez aceptable.
3. Simulación del sistema con simulink
En este apartado haremos una simulación no lineal de lo que serı́a el rotor que luego probaremos
experimentalmente. Para ello nos han proporcionado un simulink donde añadiremos los parámetros de
nuestro PID y obtendremos una simulación. El simulink en cuestión es el siguiente:
5
Figura 5: Simulink del sistema
Podemos ver que en el simulink hay un recuadro donde pone PID-2. Al clicar allı́ nos aparecerá una
pantalla donde nosotros pondremos los valores que hemos encontrado para Kp, Ki y Kd.
Una vez configurado el simulink podemos pasar a simular la respuesta. El gráfico obtenido es el si-
guiente:
6
Figura 6: Respuesta del sistema en simulink
Podemos ver que la respuesta del sistema no linealizado se estabiliza bastante rápidamente. También
observamos que hay un sobrepico, pero al no ser muy grande lo aceptamos, ya que ası́ obtenemos un
buen nivel de rapidez sin desestabilizar el sistema. En este punto podrı́amos haber variado los paráme-
tros otra vez, pero consideramos que ası́ ya obtenemos una respuesta del sistema bastante buena.
4. Diseño analı́tico
En primer lugar para comenzar este apartado se tiene que obtener la función de transferencia G22 .
Esta última esta disponible en el documente [Link] y tiene la siguiente forma:
0,1549
G22 =
s3 + 0,748 · s2 + 1,7721 · s + 1,2133
Se quiere obtener una función de transferencia equivalente de orden inferior, para ello la primera idea
que se tiene es verificar que no haya ningún polo sobrante.
Con la ayuda del programa Maple se han obtenido los siguientes polos:
s1 = −0,698 s2 = −0,0248 + 1,3179i s3 = −0,0248 − 1,3179i
es decir que se tiene un polo real y dos imaginarios conjugados, este hecho es de poca importancia, sin
embargo rápidamente se puede observar que la distancia del polo s1 al 0 és mucho mayor a la distancia
al 0 de los polos imaginarios conjugados s2 y s3 , en concreto esta distancia és 28,145 veces superior.
Con esta información se puede afirmar que el polo s1 es sobrante y por tanto se lo puede obviar en la
determinación del denominador de la función de transferencia.
Para obtener dicho denominador simplemente se tienen que multiplicar los polos entre si, tal que:
(s + 0,0248 + 1,3179i) · (s + 0,0248 − 1,318i) = s2 + 0,0496 · s + 1,737
0,1549
G22eq =
s2 + 0,0496 · s + 1,737
Ahora se tiene que verificar que los sistemas son equivalentes, y si hiciera falta aplicar una corre-
ción a la función equivalente G22eq .
7
1 1
lı́m s · · G22 = lı́m s · · G22eq · Keq
s→0 s s→0 s
1 0,222
lims→0 s · · G22 = = 0,1276
s 1,2133
1 0,222
lims→0 s · · G22eq = = 0,0891
s 1,737
0,1276
Keq = = 1,4301
0,0891
A continuación se pide diseñar un PID tal que en lazo cerrado se tenga un overshoot nulo.
Para cumplir con este objetivo en primer lugar se va a tener que deducir la función de transferencia
del sistema más el PID en lazo abierto.
1 Ki + Kp · s + Kd · s2
P ID(s) = Kp + Ki + Kd · s =
s s
0,222 · (Ki + Kp · s + Kd · s2 )
P ID(s) · G22eq (s) =
s3 + 0,0498 · s2 + 1,737 · s
Una vez se tiene esta función de transferencia en lazo abierto se ha de realizar la realimentación.
G(s)
F eedback(s) =
1 + G(s) · H(s)
Aplicado al caso presente (G(s) = P ID(s) · G22eq (s) y H(s) = 1) se obtiene la siguiente función
de transferencia:
(Ki + Kp · s + Kd · s2 )
0,222 ·
s3 + (0,0498 + 0,222 · Kd) · s2 + (1,737 + 0,222 · Kp) · s + 0,222 · Ki
Se busca un tiempo de establezimiento de 4 s, por otra parte tambien se especifı́ca un overshoot
del 0 %, conociendo la relación entre estos parámetros y la frecuencia natural ωn se puede obtener el
valor de esta última.
MP = 0 % →
− ξ=1
4
ts = 4 · τ = →
− ωn = 1
ξ · ωn
8
De los apuntes extras del tema 7 se extrae la siguiente forma, para posteriormente proceder por
identificación.
Den(s) = s3 + s2 · (2 · ξ · ωn + a) + s · (ωn2 + 2 · ξ · ωn · a) + ωn2 · a
1,737 + 0,222 · Kp = ωn2 + 2 · ξ · ωn · a
0,222 · Ki = ωn2 · a
0,0498 + 0,222 · Kd = 2 · ξ · ωn + a
Falta proporcionar un valor a la variable a, esto se hara imponiendo que el polo caracterizado por
a sea un polo dominado, para ello se encontraran primero los polos dominantes, que provendran de un
polo de segundo orden, el denominador a identificar queda por tanto tal que asi:
Den = (s + a) · (s2 + 2 · ωn · ξ + ωn2 )
dado que el overshoot es nulo rápidamente se puede ver que el par de polos dominantes sera en
realidad un polo doble situado en −ωn es decir en −1, para que el polo de a sea dominado se buscara a
que se situe a una distancia adecuada de este polo, tomando por ejemplo por valor 10 veces la distancia
al origen de ωn es decir que el polo a se situara en −10 y se tendra que a = 10
Ahora ya se tiene un sistema de 3 ecuaciones con 3 incógnitas que proporcionan el siguiente resul-
tado:
Kp = 86,77
Ki = 53,83
Kd = 45,05
Quedando por tanto como sistema:
(53,83 + 86,77 · s + 45,05 · s2 )
0,222 ·
s3 + 10,051 · s2 + 21,000 · s + 11,950
5. Simulació de les respostes
Simulación de G22:
9
Figura 7: Simulació de G22
Simulació G22 amb PID
Figura 8: Simulació de G22 amb PID
Simulación de G22eq :
10
Figura 9: Simulació de G22eq
Simulació G22eq amb PID
Figura 10: Simulació de G22eq amb PID
Simulación de G22 en el modelo no lineal de simulink:
11
Figura 11: Simulació de G22 en model no lineal
Podemos observar que las simulaciones tienden a tener una misma forma pero en cada una oscil·la
sobre unos valores que varian un poco. G22eq varia sobroe G22 debido a que, aún ser una simulación,
le hemos quitado los polos no dominantes, y por tanto, es normal que los valores no sean exactamente
iguales.
También podemos ver que la simulación hecha en simulink usando los parámetros de PID encontrados
es la más diferente de todas, cosa que se debe a que en este caso estamos trabajando con un modelo
no lineal.
12