Beruflich Dokumente
Kultur Dokumente
Curso 2013/2014-1
Contenido
1. Control en el espacio de estado ............................................................................................................... 4
1.1 Descripción de sistemas en el espacio de estado .............................................................................. 4
1.1.1 Descripciones de sistemas dinámicos: ED, FT y EE ............................................................... 4
1.1.2 Conversión de FT a EE. Polos y autovalores........................................................................... 7
1.1.3 Conversión de EE a FT. Formas canónicas ............................................................................. 8
1.1.4 Solución de ecuaciones de estado. Respuestas zero input y zero state .................................. 16
1.1.5 Análisis de controlabilidad y observabilidad .......................................................................... 22
1.1.6 Análisis de estabilidad (Lyapunov) ........................................................................................ 25
1.1.7 Ventajas de las EE frente a ED y FT ...................................................................................... 26
1.2 Control modal ................................................................................................................................. 29
1.2.1 Regulador del estado. Fijación de polos ................................................................................ 29
1.2.2 Observador del estado ............................................................................................................ 34
1.2.3 Regulador basado en observador. Compensador ................................................................... 37
1.3 Control óptimo. Regulador LQ....................................................................................................... 40
1.3.1 Introducción al control óptimo ............................................................................................... 40
1.3.2 Formulación del problema del control óptimo........................................................................ 41
1.3.3 Compensación analítica vía ISE del regulador LQ ................................................................. 42
1.3.4 El regulador LQ con horizonte infinito................................................................................... 43
1.3.5 El regulador LQ con horizonte finito ...................................................................................... 47
1.3.6 Retroacción de estado con acción integral .............................................................................. 50
1.4 Control óptimo estocástico .............................................................................................................. 51
1.4.1 Enfoque estocástico ................................................................................................................ 51
1.4.2 Retroacción directa ................................................................................................................. 54
1.4.3 Reconstrucción óptima del estado. Filtro de Kalman-Bucy .................................................. 56
1.4.4 Regulador LQG ...................................................................................................................... 62
1.5 Ejercicios resueltos ......................................................................................................................... 67
2. Técnicas de control robusto................................................................................................................... 79
2.1 Conformación del lazo (loopshaping) ............................................................................................. 80
2.1.1 Condiciones de comportamiento robusto ............................................................................... 81
2.1.2 Ejemplo .................................................................................................................................. 81
2.2 Teoría cuantitativa de la retroacción (QFT) ................................................................................... 83
2.2.1 Regiones de incertidumbre ..................................................................................................... 83
2.2.2 Plantillas para el diseño .......................................................................................................... 84
2.2.3 Ejemplo .................................................................................................................................. 86
2.3 Métodos H∞ ..................................................................................................................................... 89
2.3.1 Transformación fraccional lineal (LFT) ................................................................................. 89
2.3.2 Obtención de la planta aumentada .......................................................................................... 91
2.3.3 Índices de comportamiento ..................................................................................................... 92
2.3.4 Síntesis del controlador .......................................................................................................... 92
2.3.5 Ejemplo .................................................................................................................................. 93
2.4 Ejercicio resuelto ............................................................................................................................ 99
3. Control frecuencial de sistemas MIMO ............................................................................................. 110
3.1 Modelización ................................................................................................................................. 110
3.1.1 Representación ..................................................................................................................... 110
3.1.2 Perspectiva histórica. Del control moderno al robusto ........................................................ 114
3.1.3 Herramientas matemáticas .................................................................................................... 116
3.1.4 Especificaciones ................................................................................................................... 118
3.2 Análisis .......................................................................................................................................... 121
3.2.1 Interacción y desacoplamiento ............................................................................................. 121
3.2.2 Análisis de la dominancia diagonal ...................................................................................... 124
3.2.3 Análisis de estabilidad .......................................................................................................... 126
3.3 Control MIMO por métodos frecuenciales .................................................................................... 131
En el primer tema vimos cómo un sistema dinámico podía representarse por medio de: ecuaciones
diferenciales (ED), funciones de transferencia (FT) y ecuaciones de estado (EE). En este tema nos
centraremos en la descripción vía EE:
Ecuaciones de estado
Variables de estado (VE) x(t). Resumen la historia dinámica del sistema. Junto con u(t), t>0,
permiten determinar el valor futuro de cualquier variable del sistema. También pueden verse como
el mínimo conjunto de condiciones iniciales (CI), x(0).
(Nota: Se les reconoce por estar formadas por el vector de primeras derivadas y, a la derecha,
relaciones algebraicas)
x m
l
P
u x
M
Datos: M = 2kg, m = 0.1kg, l =0.5m, g = 9.81m/s2. Se supone que el cilindro no tiene masa, por lo
que el centro de gravedad del péndulo se sitúa en la masa m. Considerar también que el momento
de inercia I del péndulo respecto a su centro de gravedad es nulo y que el ángulo es pequeño.
Solución:
Coordenadas del centro de gravedad del péndulo. Coinciden con la posición de la bola:
xG x l sin
yG l cos
Movimiento rotacional de la bola: I V l sin H l cos , donde H, V son las componentes
horizontal y vertical de la fuerza medida en el punto P.
d2
Movimiento horizontal de la bola: m ( x l sin ) H
dt 2
d2
Movimiento vertical de la bola: m 2 (l cos ) V mg
dt
I V l H l
m( x l) H
0 V mg
Mx u H
Sustituyendo I = 0 y combinando las ecuaciones (2) con (4) y (1) con (3), el resultado es:
( m M ) x ml u
ml 2 mlx mgl
( m M ) x ml u
ml 2 mlx mgl
se pide obtener la ecuación diferencial que relaciona u con (que no aparezca x ni sus derivadas) y,
a partir de ella, obtener la función de transferencia (s)/U(s). ¿Es estable el sistema?
Solución:
Mls 2 ( s ) ( m M ) g( s ) U ( s ) ,
se obtiene finalmente:
( s ) 1 1
2
U ( s ) Mls ( M m) g s 20.601
2
( m M ) x ml u
ml 2 mlx mgl
Solución:
0 1 0 0 0
( M m ) g 1
0 0 0
, b Ml , C
1 0 0 0 0
A Ml , d
0 0 0 1 0 0 0 1 0 0
mg
M 0 0 0 1
M
%planta
M=2; m=0.1; g=9.81; l=0.5;
A=[0 1 0 0;
(M+m)*g/(M*l) 0 0 0;
0 0 0 1;
-m*g/M 0 0 0];
B=[0 -1/(M*l) 0 1/M]';
C=[1 0 0 0;
0 0 1 0];
D=[0 0]';
A =
0 1.0000 0 0
20.6010 0 0 0
0 0 0 1.0000
-0.4905 0 0 0
B =
0
-1.0000
0
0.5000
C =
1 0 0 0
0 0 1 0
D =
0
0
Conversión de EE a FT
Para pasar de las ecuaciones de estado a la función de transferencia basta con aplicar la
transformada de Laplace a las EE y despejar la relación entre la salida y(t) y la entrada u(t) con CI
nulas:
x Ax Bu sX ( s ) x (0) AX ( s ) BU ( s )
⇒
y Cx Du Y ( s ) CX ( s ) DU ( s )
X ( s ) ( sI A ) 1 ( x(0) BU ( s ))
Y ( s ) C X ( s ) D U ( s ) C( sI A ) 1 x (0) C( sI A ) 1 B D U ( s )
zero input zero state
H ( s ) Y ( s )U ( s ) 1 C( sI A ) 1 B D
x ( 0 ) 0
Φ( s )
Polos y autovalores
Por ejemplo, para el caso del péndulo simple del Tema 1 tenemos lo siguiente:
Solución:
alfa=poly(A)
alfa =
1.0000 -0.0000 -20.6010 0 0
roots(alfa)
ans =
0
0
4.5388
-4.5388
Conversión de FT a EE
La conversión de FT a EE no es única pero existen ciertas formas que presentan ventajas frente a
otras. Son las formas canónicas y se obtienen aplicando de manera inversa la regla de Mason vista
en el Tema 1. A fin de eliminar los términos de productos de lazos y simplificar los términos , i,
se hace que todos los lazos se toquen (tengan al menos un nodo en común) y que todos los caminos
toquen también a todos los lazos (pasen también por dicho nodo). Cuando el nodo en común es el
nodo de entrada se obtienen las formas controlables y cuando es el de salida las observables.
bn 1 s n 1 b1 s bo bn 1 s 1 b1 s ( n 1) bo s n
H ( s)
s n a n 1 s n 1 a1 s ao 1 a n 1 s 1 a1 s ( n 1) ao s n
También llamada directa 1D. Se obtiene por inspección directa de los coeficientes de H(s) y, por
tanto, no requiere calcular ni polos ni ceros.
bn-1
bn-2
b1
… 0 1 0 0
1 b0
,b
-1 -1 -1
s s s
A
…..
u xn xn-1 x2 y
x1
0 1 0
-an-1 …
-an-2 a 0 a1 a n 1 1
-a1
-a0
c t b0 b1 bn 1
Fig. 3. Forma canónica controlable
Como en Matlab los nodos se numeran al revés, la FCC resultante obtenida con tf2ss es:
bn-1
bn-2
b1
… a n 1 a n 2 a0 1
1 b0
1
0 0 0
u
s-1 s-1 ….. s-1
A , b
x1 x2 xn-1 xn y
-an-1 … 0
-an-2 0 0 1 0
-a1
-a0 c t bn 1 bn 2 b0
Fig. 4. Forma canónica controlable (matlab)
También llamada directa 2D: Si se toma la nomenclatura de nodos de la Fig. 3, puede obtenerse por
transposición de las matrices de la FCC ( A FCO A TFCC , b FCO c tFCC T
, c tFCO b TFCC ):
bn-1
bn-2
b1
… 0 0 a0 b0
b0 1
1
s -1
s-1
s -1
a1 b1
A ,b
…..
u x1 xn-1 xn y
xn-2
-an-1
…
-an-2
0 1 an 1 bn 1
-a1
c t 0 0 1
-a0
bn 1 s n 1 b1 s bo c1 c2 cn
H ( s)
s a n 1 s a1 s ao s 1 s 2
n n 1
s n
s-1
1 c1
1 1 c2 1 0 0
1
s-1 b0 0
2 1
, b
y
u …
2
… 0 n
1 …
cn 0 0 n 1
s-1
c tn c1 c2 cn
n
bn 1 s n 1 b1 s bo b ( s z1 ) s zm
H ( s) n 1
n 1
s a n 1 s a1 s ao
n
s 2 s n
bm 1 s zm
s 1 ... s n
Pasar de una representación de estado (canónica o no) implica hacer un cambio de las variables de
estado y hacer la transformación de manera que se preserven sus características dinámicas
(estabilidad, controlabilidad y observabilidad). Por ello, la transformación debe ser de similaridad
(conserva los autovalores).
- Transformación: x Tx
- Sistema transformado: x Ax
b u
y c t x
T1AT , b T 1 b y c t c t T
donde A
La matriz de paso T debe ser una matriz unitaria, T*T=I, TT*=I, y su valor será distinto según sea
la forma canónica que queremos calcular:
La variable transformada suele denotarse por z en vez de x , y la matriz de estado resultante se suele
denominar en vez de A.
Casos especiales: Si A es companion con autovalores distintos entonces M es una matriz de Van
der Monde. Si los autovalores son complejos, será diagonal por bloques.
a1 an 1 1
1 0
Obtención de W a partir de ( ) an 1 a1 a0 : W
n n 1
an 1
1 0 0
1
La matriz que realiza la transformación es T WM o , siendo M o la matriz de observabilidad y
W la misma matriz de Toëplitz presentada en el apartado anterior.
ct
t
cA
Expresión de M o : M 0 , siendo n el número de estados.
t n 1
c A
Se pide:
4 3 1
FCC (MATLAB): A cM ;b cM ;c tcM 1 2
1 0 0
1 2
x1 s-1 x1 x 2 s-1 x2
u y
-4
-3
0 1 0
FCC (teoría): Ac ;b c ;c tc 2 1
3 4 1
1 2
x 2 s-1 x1 x2 s-1 x1
u y
-4
-3
disp('FCC toeplitz')
Mc=ctrb(a,b);
pol=poly(a);
W=[pol(2) 1; 1 0];
T=Mc*W;
aFCC=inv(T)*a*T
bFCC=inv(T)*b
cFCC=c*T
0 1 0
FCC: Ac ;b c ;c tc 2 1
3 4 1
disp('FCO toeplitz')
Mo=obsv(a,c);
T=inv(W*Mo)';
aFCO=inv(T)*a*T
bFCO=inv(T)*b
cFCO=c*T
0 3 2
FCO: Ao ;bo ;c ot 0 1
1 4 1
2 1
x1 s-1 x2 x1 s-1 x2
u y
-4
-3
s2 1 s2
H ( s)
s 4s 3 s 1 s 3
2
1 0 1
x x u
1 3 0
y 1 2 x 0 u
1
1
x1 s-1 x1 1 1 x
2 s-1 x2
2
u y
-1 -3
1 0 1
x x u
0 3 1
y 0.5 0.5x 0 u
x1 s-1 x1
1 0.5
-1
u y
x 2 s-1
x2
1 0.5
-3
5 2 4 1 1
3 1 2
A 2 1 2 ; B 3 1 ; C
1 0 0
1 1 0 1 1
Se pide:
1) Convertir las matrices A, B y C a la Forma Canónica Diagonal (Nota: Calcularla a través de
x Mz).
T =
-0.7071 0.7071 0.0000
-0.7071 -0.0000 -0.8944
-0.0000 0.7071 0.4472
D =
3.0000 0 0
0 1.0000 0
0 0 2.0000
an =
3.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
0.0000 0.0000 2.0000
bn =
-1.4142 1.4142
0.0000 0.0000
-2.2361 -2.2361
cn =
-1.4142 0.7071 0.0000
0.7071 -0.7071 -0.0000
%diagonal canon
FCD=canon(ss(a,b,c,d),'modal')
a =
x1 x2 x3
x1 3 0 0
x2 0 1 0
x3 0 0 2
b =
u1 u2
x1 -1.414 1.414
x2 5.024e-015 4.082e-015
x3 -2.236 -2.236
c =
x1 x2 x3
y1 -1.414 0.7071 4.552e-015
y2 0.7071 -0.7071 -2.913e-015
d =
u1 u2
y1 0 0
y2 0 0
Continuous-time model.
bb =
-0.0000 -0.0000
0.4472 -1.3416
-3.2863 -1.0954
cc =
-3.2660 1.7889 -0.3651
0.4082 -0.8944 0.1826
T =
-0.4082 0.4082 0.8165
0.8944 -0.0000 0.4472
-0.1826 -0.9129 0.3651
k =
2 0 0
También en el primer tema vimos cómo la respuesta de un sistema lineal estaba formada por la
superposición de dos términos:
Respuesta zero state (ZS): Respuesta del sistema debida únicamente a la excitación u(t),
suponiendo pues condiciones iniciales nulas (x(0)=0).
Respuesta zero input (ZI): Respuesta del sistema debida únicamente a la energía
almacenada en él en el instante 0, es decir, debida únicamente a las condiciones iniciales
x(0), suponiendo excitación nula, u(t)=0.
Vamos a ver cómo se obtiene la respuesta temporal a partir de las ecuaciones de estado.
x Ax Bu
sX( s ) x(0) AX( s) BU( s )
( sI A) X( s) x(0) BU( s)
X ( s ) ( sI A ) 1 x(0) BU( s )
t
x(t ) e
At
x(0) e A ( t ) Bu( )d
ZI
0
ZS
Para obtener la expresión en el tiempo de x(t) necesitamos calcular la matriz de transición. Este
cálculo se simplifica mucho si antes de obtenerla pasamos a FCD (puesto que, entonces e Λt
también será diagonal) y, después, volvemos a aplicar la transformación modal inversa: Sabemos
que x = Mz, siendo M la matriz modal,
Mz AMz Bu
z M 1 AMz M 1 Bu Λz B n u con z (0) M 1 x(0)
z (t ) e Λt z (0) e Λ (t ) B n u( )d
a) Laplace:
e At L1 ( sI A) 1 y obteniendo Φ(s ) tanto matricialmente como
topológicamente
A 2T 2
A d e AT I AT
2!
T
0
B d e d B A 1 e AT I B A 1 AT B TB
A 2t 2
c) Cayley-Hamilton (posibilita reducir la serie e At I At a un polinomio)
2!
c.1) Polinomio: e At 0I 1A n 1A n 1
c.2) Cálculo de los coeficientes: e1t o 11 n 11n 1
...
en t o 1n n 1nn 1
d) Desarrollo de Sylvester
n
d.1) Polinomio: e At e F
i 1
it
i
n
A jI
d.2) Cálculo de los coeficientes: Fi
j 1 i j
( j i )
2 e t e 2 t e t e 2 t
e At t 2 t
2e 2e e t 2e 2 t
e 1t 0 11
e At 0 I 1A t
e 0 1 2
2
Por tanto, hay que resolver el siguiente sistema a fin de hallar 0 y 1:
e 2 t 0 21
t
e 0 1 1 e 21 e 1 e t e 2 t
2t t
0 e 2 t 2e t 2e 2 t 2e t e 2 t
2e t e 2 t e t e 2 t
e At
0 I 1 A 2e t 2e 2 t ee
2 t
32 t
e t
3e
2 t
e t 2 e 2 t
Ejemplo 8. Simulación de respuestas ZI y ZS. Considerar de nuevo el péndulo simple del Tema
1,
( s ) 1 1
H ( s) 2 2
U ( s ) s s s 0.5s 10
Step Response
>> H=tf(1,[1 0.5 10]) 0.18
0.16
Transfer function:
0.14
1
--------------------- 0.12
s^2 + 0.5 s + 10
Amplitude
0.1
0.08
>> step(H)
0.06
>>
0.04
0.02
0
0 5 10 15 20 25
Time (sec)
En cambio, si trabajamos con la descripción de estado, podemos encontrar por separado ZS, ZI o la
suma de ambas. Las ecuaciones de estado del péndulo simple son:
x1 0 1 x1 0
u
x2 x2 1
x
y 1 0 1 0u
x2
Para el caso =10, =0.5, las siguientes figuras muestran respectivamente la respuesta zero input a
condiciones iniciales x(0) 0.2 0.2 y la respuesta zero state:
T
0.6
>> a=[0 1;-10 -0.5];
>> b=[0;1]; 0.4
>> c=[1 0];
>> d=0; 0.2
>> H=ss(a,b,c,d); 0
-0.2
>> x0=[0.2;-0.2];
>> [y,t,x]=initial(H,x0); -0.4
>> plot(t,x)
-0.6
-0.8
0 5 10 15 20 25
0.3
>> a=[0 1;-10 -0.5];
>> b=[0;1]; 0.2
>> c=[1 0];
>> d=0; 0.1
>> H=ss(a,b,c,d); 0
-0.1
>> [y,t,x]=step(H);
>> plot(t,x) -0.2
-0.3
-0.4
0 5 10 15 20 25
Notar que, en la segunda gráfica, la primera variable de estado (azul) coincide con la salida de la
función de transferencia.
0.3
>> a=[0 1;-10 -0.5];
>> b=[0;1]; 0.2
>> c=[1 0];
>> d=0; 0.1
>> H=ss(a,b,c,d); 0
-0.2
>> t=linspace(0,25,200);
>> u=ones(size(t));
-0.3
>> [y,t,x]=lsim(H,u,t,x0);
>> plot(t,x) -0.4
0 5 10 15 20 25
s2
H ( s)
s 4s 3
2
se trata de obtener su respuesta temporal: Las respuestas ZI, ZS y ZI+ZS del sistema con excitación
1
escalón unitario y condiciones iniciales x (0) . La descripción en EE es
1
0 1 0
x x u
3 4 1
y 2 1x 0 u
En primer lugar se calcula la respuesta zero-input tomando como condiciones iniciales (CI) a
x1 (0) 1 y x 2 (0) 1 . (Matlab: tf2ss, initial, ss, plot, title, xlabel):
zero input
3
2.5
1.5
0.5
-0.5
-1
0 1 2 3 4 5 6 7 8 9
tiempo
Ahora se calcula la respuesta zero-state a una excitación escalón unitario. (Matlab: step, ss, plot,
title, xlabel):
zero state
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7
tiempo
Ahora se calcula y representa la respuesta total (zero-state más zero-input). (Matlab: lsim, ss, plot
title, xlabel)
%total
figure(3),[y3,t,x3]=lsim(ss(a,b,c,d),t*0+1,t,x0);
plot(t,y3,t,x3,'--'),title('total'),xlabel('t'),
total
3.5
2.5
1.5
0.5
-0.5
0 1 2 3 4 5 6 7
tiempo
%plano de estado
figure(4)
for x1=-1:0.25:1
for x2=-1:0.25:1
[y,t,x]=initial(ss(a,b,c,d),[x1;x2]);
plot(x(:,1),x(:,2)),hold on
end
end
axis([-1 1 -1 1]),title('Plano de fase')
xlabel('x_1'),ylabel('x_2')
hold off
Ejemplo 10. Péndulo invertido. Simulación de la respuesta zero input. Considerar de nuevo el
péndulo invertido de la Fig. 1.
Se pide obtener la respuesta zero input a x 0 0.1 0 0 0 . Representar por separado cada
T
Solución:
8
d/dt
7 x
dx/dt
6
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
tiempo
Definiciones
Suponer que tenemos un sistema con n estados, algunos estables y otros inestables. Entonces,
El sistema es totalmente controlable si tenemos acceso a todos los estados desde el nodo de
control u.
En el caso de que no todos los estados sean controlables, se dice que el sistema es
estabilizable si, al menos, todos los estados inestables sí que son controlables desde u.
El sistema es totalmente observable si tenemos acceso a todos los estados desde el nodo de
salida y.
En el caso de que no todos los estados sean observables, se dice que el sistema es detectable
si, al menos, todos los estados inestables sí que son observables desde y.
Criterios
Existen diferentes criterios para determinar si un sistema es controlable y/o observable. Por
ejemplo se pueden usar las matrices de controlabilidad y observabilidad:
M c b Ab A n 1 b
ct
t
cA
M0
t n 1
c A
Propiedades
Dualidad: La controlabilidad del sistema A 1 , b 1 , c1t es equivalente a la observabilidad del
sistema A 2 A 1T , b 2 c1t
T
, c 2t b 1T .
2 8 0 0 1
0
3 6 0 1
A , b
0 , c t 0 1 1 0
0 0 4 0
0 0 0 5 0
Se pide:
1) Calcular la matriz de controlabilidad M c b Ab A n 1b , determinar por inspección su
rango e interpretar el resultado. (Matlab: ctrb,rank)
c=[0 1 1 0];
mc=ctrb(a,b),rc=rank(mc)
1 10 44 160
1 3 9 27
Mc 2 No controlable
0 0 0 0 c
0 0 0 0
ct
t
2) Calcular la matriz de observabilidad c A , determinar por inspección su rango e
Mo
t n 1
c A
interpretar el resultado. (Matlab: obsv, rank)
mo=obsv(a,c),ro=rank(mo)
0 1 1 0
0 3 10 0
Mo o 2 No observable
0 9 58 0
0 27 286 0
3) Hallar la Forma Canónica Diagonal e identificar los modos observables y/o controlables.
(Matlab: canon)
FCD=canon(ss(a,b,c,0),'modal')
2 0 0 0 7
0
3 0 0 8.06
FCD , b
0 0 4 0 n 0 Los modos 4 y -5 no son controlables
0 0 0 5 0
c tn 0 012
. 0.28 0 Los modos 2 y -5 no son observables
Solución:
Mc=ctrb(A,B)
rank(Mc)
Mc =
0 -1.0000 0 -20.6010
-1.0000 0 -20.6010 0
0 0.5000 0 0.4905
0.5000 0 0.4905 0
ans =
4
rank(obsv(a,c(1,:)))
ans =
2
rank(obsv(a,c(2,:)))
ans =
4
Para estudiar el signo de una matriz hay que estudiar los menores (minors) de la matriz. Éstos
pueden ser menores principales y menores principales básicos (leading)
El menor (asociado al elemento aij de una matriz A nn) es el determinante de la matriz (n-1)(n-1)
obtenida eliminando la fila i y la columna j.
s2
H ( s)
s 4s 3
2
Solución:
Primero calculamos los autovalores de dos de sus realizaciones y comprobamos que coinciden con
los polos de H ( s) . (Matlab: roots, tf2ss, canon, ssdata, eig)
Autovalores: 1 1 y 2 3
p=lyap(a',eye(2))
p11=p(1,1)
detP=det(p)
if (p11>0) & (detP>0),disp('estable'),else,('inestable'),end
La función de transferencia es una descripción entrada/salida que no tiene en cuenta lo que hay
dentro del sistema (cosa que sí hacen las EE) y por ello puede dar problemas. Veámoslo con un
ejemplo:
Ejemplo 14. Limitaciones de la FT. Estudiar la estabilidad del siguiente sistema con ayuda de la
función impulse y obteniendo la función de transferencia. Extraer conclusiones.
3 0 1
x x u
0 1 1
y 1 0x 0 u
Solución:
Impulse Response
1
7
0.9
6
0.8
0.7 5
0.6
Amplitude
4
0.5
0.4 3
0.3
2
0.2
1
0.1
0 0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.5 1 1.5 2
Time (sec)
La salida coincide con el primer estado, que es estable. Sin embargo, el segundo estado, no visible
desde la salida es inestable. Es decir, el sistema es inestable pero desde la salida no podemos
observarlo.
Así,
s 1 0 s 1
0 1 0
s 3 1 s 3 s 1 s 1 1
H ( s ) 1 0
( s) 1 ( s) ( s ) ( s 3)( s 1) s 3
¿Por qué sucede esto? La FCD nos muestra que el autovalor inestable +1 no es observable desde la
salida:
x1 s-1 x1
1 1
-3
u y
x 2 s-1 x2
1
+1
Comparación ED, FT y EE
2) Objetivo del control: Suponiendo que se ha producido una perturbación de las condiciones
iniciales x(0 ) x 0 , el objetivo es conseguir que el estado vuelva a su valor original, según una
dinámica caracterizada por un polinomio característico c() cualquiera pero razonable. En
resumen, se trata de cambiar ( ) por c ( ) .
u x x y
+ t
b c
-
+
A
k tc
Fig. 8. Retroacción de las variables de estado
4) Métodos de cálculo del vector de ganancias: El vector k tc se puede calcular de diversas
formas:
a) Por simple inspección (si las ecuaciones de estado están en FCC).
b) Por identificación de coeficientes: I A bk tc c ( )
c)
Utilizando la fórmula de Ackermann: k ct 0 0 1 M c1 c ( A )
a a M W
T 1
d) Utilizando la fórmula de Bass-Gura: k tc c c donde los coeficientes
del vector a a 0 a1 a n 1
T
se toman del polinomio característico de la planta
( ) n an 1n 1 a1 a0 , y los coeficientes de ac se toman, de manera análoga, del
polinomio deseado c ( ) a obtener una vez cerrado el lazo.
x ( A bk tc )x
y ct x donde se suele definir A c A bk tc
Comentarios
U ( s) k t X( s) k t ( s)bU ( s) k t ( s)b
Equivalencia (caso SISO): Heq ( s) t
Y ( s) c X( s) c t ( s)bU ( s) c t ( s)b
u y u y
G(s) G(s)
x
uc uc
kt
Heq(s)
U c ( s ) k t X ( s ) k t Φ( s )bU ( s )
L( s ) k t Φ( s )b
U ( s) U ( s) U ( s)
Ejemplo 15. Regulador del estado. Cálculo de la matriz de ganancias. Considerar la planta
1
G( s)
s 0s 1
2
Se pide obtener por varios métodos el vector de ganancias de estado que consigue las
(...)
especificaciones dadas por M ( s ) . Comprobar el resultado representando las
s s 0.5
2
Solución:
0 1 0
x x u
1 0 1
y 1 0x 0 u
0 1 0 1
A , Ac
1 0 0.5 1
Ac
A
b
kc
0 1 0 1 0
0.5 1 1 0 1 1 2
k k
0 0
k k
1 2
0 1 0 1
0.5 1 1 k ⇒ k c 1.5 1
1 k2
%Planta 0
Planta sin control
>> P=ss(a,b,c,d);
>> step(P), -500
Amplitude
>> polos_planta=eig(a)
-1000
polos_planta =
-1
-1500
1 0 1 2 3 4 5 6 7 8
Time (sec)
%Servo
>> ac=a-b*kc; 0
Planta con regulador de estado
-1
>> polos_servo=eig(ac) -1.5
polos_servo = -2
-0.5000 + 0.5000i
-2.5
-0.5000 - 0.5000i 0 2 4 6 8 10 12
Tiempo (s) (sec)
Ejemplo 16. Péndulo invertido. Regulador de estado. Fijación de polos. Considerar de nuevo
el péndulo invertido con carrito del Ejemplo 1.
El objetivo de control puede conseguirse aplicando sobre el cochecillo una fuerza u apropiada. Al
final del proceso se desea situar de nuevo al cochecillo en su posición de referencia x = 0. Las
especificaciones piden que el proceso sea rápido (un tiempo de establecimiento de unos 2 segundos)
y que el amortiguamiento sea razonable.
Se pide:
Solución:
z=0.5;wn=4;
p1=-z*wn+j*wn*sqrt(1-z^2)
p2=conj(p1)
p3=-10
p4=-10
[nu,alfa_c]=zp2tf([],[p1 p2 p3 p4],1);alfa_c
p1 =
-2.0000 + 3.4641i
p2 =
-2.0000 - 3.4641i
p3 =
-10
p4 =
-10
alpha_c =
1.0e+003 *
0.0010 0.0240 0.1960 0.7200 1.6000
kc =
-298.1504 -60.6972 -163.0989 -73.3945
pol_caract=poly(Ac)
autoval=eig(Ac)
Ac =
0 1.0000 0 0
-277.5494 -60.6972 -163.0989 -73.3945
0 0 0 1.0000
148.5847 30.3486 81.5494 36.6972
pol_caract =
1.0e+003 *
0.0010 0.0240 0.1960 0.7200 1.6000
autoval =
-10.0000 + 0.0000i
-10.0000 - 0.0000i
-2.0000 + 3.4641i
-2.0000 - 3.4641i
>> t=linspace(0,1);
>>x0=[0.1 0 0 0];
>> [y,t,x]=initial(ss(ac,b,c,d),x0,t);
>> plot(t,x)
0.4
0.2
-0.2
-0.4
-0.6
d/dt
-0.8 x
dx/dt
-1
0 0.2 0.4 0.6 0.8 1
tiempo
t=linspace(0,3);
x0=[0.1 0 0 0];
[y,x,t]=initial(Ac,B,C,D,x0,t);
u=kc*x';
figure(3)
plot(t,u),title('esfuerzo de control'),hold on
h=figure(2);
subplot(221),plot(t,x(:,1)),title('x_1: posic angular bola'),hold on
subplot(222),plot(t,x(:,2)),title('x_2: veloc angular bola'),hold on
subplot(223),plot(t,x(:,3)),title('x_3: posic lineal cart'),hold on
subplot(224),plot(t,x(:,4)),title('x_4: veloc lineal cart'),hold on
set(h,'name','Regulador de estados','numbertitle','off')
x Ax bu k o ( y y )
yˆ c t xˆ
3) Esquema de bloques:
u x x y
+
b c t
+
A
+
ko
-
+
u + x x y
b ct
+
A
5) Sistema global
x A 0 x b
t u
x k o c A k o c x b
t
y c t 0 x
t donde se suele definir: A o A k o c t
y 0 c x
Ejemplo 17. Observador del estado. Cálculo del vector de ganancias. Considerar la planta:
1
P( s )
s 3s 4
2
7
cuyos polos son p1, 2 1.5 j 1.5 j1.33 . Se pide estimar sus estados con una dinámica
2
del observador dada por dos polos en -15.
Solución:
t=linspace(0,1);
[y,t,x]=initial(ss(ao,bo,co,do),x0,t);
subplot(211),plot(t,x(:,[1 3])),
subplot(212),plot(t,x(:,[2 4])),
-5
0 0.2 0.4 0.6 0.8 1
Tiempo (s)
5
4
2 x2
1 x4 (x2 estimado)
0
0 0.2 0.4 0.6 0.8 1
Tiempo (s)
u u x x y
+
b ct
- +
A
+
ko
-
+
u + x x y
b ct
+
A
uc
k tc
x A bk tc x b
u
x k o c t A bk tc k o c t x b
y c t 0 x
y 0 c t x
Comentarios
N (s) o (s) N ( s)
3) La función de transferencia global es la misma: M (s) (los modos del
c (s) o (s) c (s)
observador no son controlables).
Ejemplo 18. Regulador de estado basado en observador del péndulo con carrito. Se desea
estabilizar la planta del Ejemplo 1 usando un regulador basado en observador. Investigar si es
posible y, si lo es, diseñarlo.
En primer lugar hay que notar que el sistema no es totalmente observable desde la salida y1= pero
sí lo es desde la salida y2=x.
ctrlable=rank(ctrb(a,b))
obsvable_desde_theta=rank(obsv(a,c(1,:)))
obsvable_desde_theta =
2
obsvable_desde_x=rank(obsv(a,c(2,:)))
obsvable_desde_x =
4
y el mismo regulador del ejercicio anterior (notar que el sistema total tiene 8 estados):
p=-2+j*4*sqrt(1-0.5^2);
kc=acker(a,b,[p conj(p) -10 -10])
Y verificamos su funcionamiento:
ac=[a -b*kc;ko*c(2,:) a-ko*c(2,:)-b*kc];
bc=[b;b];
cc=[c(2,:) c(2,:)*0;c(2,:)*0 c(2,:)];
dc=[0;0];
x0=[0.1 0 0 0 zeros(1,4)]';
t=linspace(0,4);
[y,t,x]=initial(ss(ac,bc,cc,dc),x0,t);
figure
plot(t,x),xlabel('Tiempo (s)'),
title('Regulador del estado del péndulo/carrito basado en observador')
0.5
-0.5
-1
-1.5
0 0.5 1 1.5 2 2.5 3 3.5 4
Tiempo (s)
figure
subplot(221),plot(t,x(:,[1 5])),title('x_1, x_5'),xlabel('Tiempo (s)'),
subplot(222),plot(t,x(:,[2 6])),title('x_2, x_6'),xlabel('Tiempo (s)'),
subplot(223),plot(t,x(:,[3 7])),title('x_3, x_7'),xlabel('Tiempo (s)'),
subplot(224),plot(t,x(:,[4 8])),title('x_4, x_8'),xlabel('Tiempo (s)'),
x1, x5 x2, x6
0.4 2
0.2 1
0 0
-0.2 -1
-0.4 -2
0 1 2 3 4 0 1 2 3 4
Tiempo (s) Tiempo (s)
x3, x7 x4, x8
0.2 1
0.1 0.5
0 0
-0.1 -0.5
-0.2 -1
0 1 2 3 4 0 1 2 3 4
Tiempo (s) Tiempo (s)
Supongamos que r = 0 y que el propósito del control es modificar las condiciones iniciales ( x 0 ) y
llevarlas al origen x 0 . Ello puede conseguirse por medio de una retroacción de estado estática,
con ganancias constantes (al contrario que en la compensación clásica, SISO-salida, en la cual se
requiere una compensación dinámica). Para calcular dicho vector de ganancias k existen dos
enfoques:
En el control modal los autovalores pueden resultar fijados demasiado lejos del origen. Ello obliga
a generar señales de control u ( t ) elevadas que requieren actuadores de gran capacidad. Todo ello
se traduce en consumo y costes. El control óptimo evita este problema pues su solución genera un
compromiso entre prestaciones (precisión, velocidad) y coste.
Como en el caso de la selección de los autovalores, la elección de la función de coste más adecuada
al problema considerado puede suponer una tarea pesada.
¿Qué es un diseño óptimo? En cierto sentido todos los diseños son óptimos ya que son lo “mejor”
que se puede hacer dadas las restricciones económicas, de tiempo, de tecnología, etc. Aunque hay
definiciones mejores que la indicada, la idea a retener es que el concepto de óptimo es altamente
subjetivo. Así, los diseñadores tienen ideas preconcebidas, basadas en su experiencia, de lo que es
un diseño “óptimo” pero, en general, les resulta difícil expresarlo de forma clara y concisa. Visto lo
anterior, no es de extrañar que al evaluar el comportamiento de un sistema de control se utilicen
diversos criterios, y aunque algunos son más aplicables que otros, ninguno lo es de un modo
universal. Por ejemplo:
1) En el diseño por Nyquist se trata de ajustar tanto el margen de fase como el margen de
ganancia, procurando hallar un compromiso razonable entre ambos.
2) En el diseño por Evans, se trata de asegurar que los polos dominantes estén lo
suficientemente a la izquierda del eje imaginario, pero procurando no exceder ciertos
límites en cuanto al ancho de banda.
Estos ejemplos sirven para ilustrar que, en esencia, los principios del diseño óptimo (maximizar o
minimizar cierto criterio) están presentes incluso en las técnicas más básicas del diseño.
Las restricciones
Los problemas de máximos y mínimos no tienen sentido en la realidad a menos que hagamos
aparecer las inevitables restricciones a que todo diseño está sometido: económicas, de tiempo,
tecnológicas, etc. Este aspecto que añade realismo al problema complica enormemente su solución.
Es el caso típico del control de tiempo mínimo con restricción |u(t)|<M.
Formulación general
tf
J ti
L(x, u, t )dt
Problema LQR
Dado el sistema lineal, x Ax Bu , con condiciones iniciales x(0+), hallar uo ( t ) que las retorne
al origen de manera que se minimice el criterio cuadrático:
J 0 (x T Qx u T Ru)dt
En muchos casos, el interés se centra en hallar la señal de control que haga que un sistema
evolucione de un estado inicial a otro final minimizando el tiempo requerido en la transición. La
situación habitual es retornar el sistema al estado de reposo x=0 a partir de una perturbación inicial.
J t (1)dt t f t 0
tf
(habitualmente t0 = 0)
0
La señal de control ha de ser finita y manejable, por lo que se ha de añadir una restricción del tipo
u( t ) M , que junto a la estructura no cuadrática llevan a una solución totalmente distinta a la del
problema LQ. Las soluciones son del tipo: u opt (t ) M sign( f (t )) , con f(t) una función a
determinar.
Formulación:
1) Planta: x Ax Bu x( t 0 ) 0
min J t (1)dt
tf
2) Objetivo:
0
con x(t f ) 0
3) Restricción: u(t ) M
Solución:
1) Hamiltoniano H 1 T Ax T Bu
2) Co-estados A T
Solucionando el sistema:
1 f 1 (t )
familia de curvas
n f n (t )
Aplicando las condiciones de contorno:
x(0) x 0
det. constantes
u M
3) Solución: u o (t ) M sign(B T o ) , donde o son las soluciones anteriores
(Nota: cuando se produce una conmutación se han de recalcular las constantes de la familia de
curvas tomando como punto “inicial” el vector de estado en el instante de conmutación)
1) la elaborada por Wiener en los años 40 (compensación ISE por métodos transformados)
2) la asociada al control moderno (regulador LQ y filtro de Kalman)
Este enfoque de compensación trata de hallar un corrector que permita ajustar óptimamente la salida
a la entrada mediante un criterio preestablecido. Naturalmente, ajustar la respuesta indicial al
escalón implica reducir tanto el tiempo de subida t r como el sobreimpulso R pt . Así se consigue
que el error en todo instante sea pequeño, lo que también tratábamos de conseguir al elegir , n y
kp .
Escogemos el ISE (Integral Squared Error) como medida para que la solución (compensador)
resulte lineal (cosa que no ocurre en casi ningún otro caso). Si el valor de la integral ISE se
mantiene pequeño la respuesta real se aproximará a la ideal.
Restricciones
En principio este enfoque de compromiso puede resultar sólo de interés académico. En la práctica
los problemas no encajan necesariamente en la función ISE. Y en los casos en que puede ser
aplicable, la solución resulta trivial.
(La solución aquí presentada no es realmente óptima sino solamente subóptima por cuanto
adoptamos desde el principio la solución de régimen permanente. En realidad, para horizontes
finitos la solución es variable, k(t). Ver siguiente apartado)
Cálculo del vector de ganancias: K opt R 1B T P , siendo la matriz simétrica P>0 solución única
de la Ecuación Algebraica Matricial de Riccati:
A T P PA Q PBR 1B T P 0
Esta ecuación es cuadrática y da lugar a dos soluciones, pero se escoge la P que sea definida
positiva. La demostración se realiza aplicando los métodos del cálculo variacional al problema LQ,
pero también es posible justificar este resultado con ayuda de la ecuación de Lyapunov:
1 T
Dem.: El valor mínimo del criterio es J ( K opt ) x (0)Px(0), donde P es la solución de la
2
ecuación de Lyapunov A c P PA c Q c . Tomando Q c Q K RK y A c A BK , se
T T
obtiene
( A BK ) T P P( A BK ) (Q K T RK )
A T P K T B T P PA PBK Q K T RK
A T P PA Q PBR 1B T P 0
Propiedades de la solución
1 T
2) Coste: El valor mínimo de la integral resulta ser J opt J ( K opt ) x (0)Px(0) ; x(0)=
2
x(0+). Este control, además de estabilizar la planta, genera una solución con evolución óptima
(de mínimo error y consumo).
x 2 x u , x(0)=1
La ley de control óptima es u opt K opt x con K opt R 1BT P donde P es la solución positiva de
A T P PA Q PBR 1B T P 0 . En nuestro caso queda como:
2 p p 2 3 p 1 4 1 p 0 4 p2 4 p 3 0
1
4 16 48 4 8
p 2
8 8 3
2
3
La solución válida es la positiva, p=3/2, por tanto, k opt R 1B T P 4 1 6
2
Un ejercicio interesante es relacionar las técnicas convencionales (Bode y Evans) con la solución
del problema de la síntesis vía retroacción de las variables de estado, tanto modal cómo óptima
(LQ). El vehículo de este tratamiento es la ecuación de Kalman. Este enfoque tiene dos ventajas:
En particular, estos métodos posibilitan la solución por técnicas gráficas sencillas. Más importante
que el ahorro de trabajo de cálculo, estos métodos (especialmente el de Evans) nos permiten una
mayor comprensión del significado del diseño vía minimización de una función de coste. En
resumen, con los métodos convencionales también podemos diseñar un sistema de control óptimo
sin tener que recurrir a las matrices.
La representación del lazo LQ en un diagrama de Nyquist revela dos propiedades muy interesantes
(resultado de que el lazo no entra nunca en el círculo unitario centrado9 en -1):
1) Desensibilización a todas las frecuencias
2) Márgenes garantizados de estabilidad: MG (margen de aumento de ganancia infinito),
MGR 1 / 2 (margen de reducción de ganancia ½) y margen de fase MF 60 .
1 G H 1 G H 1
p eq p eq
, 2 siendo T sb , T Q
Por aproximación de la respuesta frecuencial de 1 G p j H eq j , satisfaciendo la
ecuación de Kalman y de manera que sea factorizable.
J 0 (e 2 ru 2 ) dt 0 (( yr y ) 2 ru 2 )dt 0 ( y 2 ru 2 )dt
0 (x T cc T x ru 2 )dt 0 ( x T Qx 2 u 2 )dt
La descomposición de Q en Q1/2 requiere que la matriz Q se pueda expresar como CCT. Para el
caso diagonal es inmediato, pero en el caso general se requiere una descomposición vía Cholesky.
Caso general: Si elegimos Q0 general, para que la solución sea estable se requiere una condición
complementaria: que el sistema sintético A , , es decir y s x , siendo Q sea observable.
T T T
Criterio: J
0
(x T Qx 2 u 2 )dt
La ecuación de Kalman será: (1 G p Heq )(1 G p H eq ) 1
2
La solución es por factorización espectral vía lugar simétrico, con G p ( s) c t ( s)b , ( s) T ( s)b
y
U k t ( s)b d T
Heq ( s) t , x T Qx x T T x x Sx .
Y c ( s)b dt
1
Los elementos de pueden obtenerse de
n
n n n n n 1 n 1
q x x
ij i j i x x j 2 sij xi x j 1
j i
i 1 j 1 i 1 j 1 i 1 i 1
Notas:
1) El vector contiene la información esencial de la matriz Q y puede ser común a varias de
ellas.
2) (s) recibe el nombre de planta sintética.
3) ys x recibe el nombre de respuesta sintética.
T
4) Como Q es un factor del diseño puede elegirse de forma que, además de significativo, sea de
uso cómodo, por ejemplo, Q qI , ó a través de la respuesta indicial de la planta sintética.
5) qij son los elementos de Q.
Formulación
1) Planta: x Ax Bu ; x( 0 ) 0
tf
1
mín J ( x Qx u Ru)dt
T T
2) Objetivo:
2 0
donde Q>0 y R>0 (es decir, definidamente positivas)
Solución
3) Cálculo del vector de ganancias: K opt (t ) R 1B T P(t ) donde P(t) es simétrica, solución única
(si elegimos P(t)>0) de la ecuación diferencial de Riccati: A T P PA Q PBR 1B T P P
que cumple que P (t f ) 0 )
La conclusión es que los parámetros no son constantes sino función del tiempo. La solución,
P>0 y simétrica, es solución de la Ecuación de Riccati diferencial:
A T P PA Q PBR 1B T P P
Ejemplo 20. LQ escalar con horizonte finito. Resolver el mismo problema del Ejemplo 19 pero
ahora con horizonte finito.
La ecuación diferencial de Riccati es
A T P PA Q PBR 1B T P P
d d
pz x p z pz x p x pz z 1
dt dt
z 4 x x 4 3 x
x 4 x 3z
z 4 0 z
A
e 6t 6 2e 8 t 3 3e 8t
e At
4 4e 2 6e 8 t
8t
8
x (t ) x ( 0) p
e At e At 0
z (t ) z ( 0) 1
x (t ) 1 ke 8t 3 (6 2e 8t ) p0 (3 3e 8t )
p (t )
z (t ) 2 ke 8t 3 ( 4 4e 8t ) p0 ( 2 6e 8t )
dp dp dp
4 p2 4 p 3
dt
4p 4p 3
2
dt 4p 2
4p 3
dt c t c
dp dp 1 dp dp
4 p 4 p 3 4( p 3 / 2)( p 1 / 2) 8 p 23 p 12
2
1
ln p 12 1 ln p 21
3
ln p 3
2
8 8 p 2
1/ 8 1/ 8
p 23 p 23 p 3
1 ke 8t 3
ln 1
t c
1
ke t
2
ke 8t
p (t )
p 2 p 2 p 1
2 2 ke 8t 3
p0 23
Para obtener el valor de k, añadimos las CI p(0)=p0, entonces k . Así,
p0 12
1 ke 8t 3 (6 2e 8t ) p0 (3 3e 8t )
p (t )
2 ke 8t 3 ( 4 4e 8t ) p0 ( 2 6e 8t )
1 ke 8t 3 8 t f
p (t f ) 0 , p (t ) ⇒ k 3e
2 ke 8t 3
8( t t ) 8( t t )
1 ke 8t 3 3 3e f 3 1 e f
Así, p (t )
2 ke 8t 3 k 3e8 t f 2 6e 8( t t f ) 2 1 3e 8( t t f )
8 ( t t )
3 1 e f
p (t )
2 1 3e 8( t t f )
8 t
3(1 e f ) 3
p(0) lim p(t ) 8 t
, lim p(0) (coincide con el caso de horizonte infinito)
t 0 2(1 3e f ) t t f 2
>> tf=linspace(0,2);p0=(3/2)*(1-exp(-8*tf))./(1+3*exp(-8*tf));plot(tf,p0)
>> xlabel('horizonte t_f'),ylabel('condciones iniciales p_0'),axis([0 2 0 2])
1.8
1.6
1.4
condciones iniciales p0
1.2
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2
horizonte tf
3
Por otro lado, lim p(t ) y como k (t ) 4 p(t ) , lim k (t ) 6
t 2 t
tf = 0.1 tf = 0.5
6 6
4 4
2 2
k
0 0
-2 -2
0 1 2 0 1 2
t t
tf = 1 tf = 4
6 6
4 4
2 2
k
0 0
-2 -2
0 1 2 0 2 4 6
t t
>> tf=0.1;t=linspace(0,2);k=4*(3/2)*(1-exp(-8*(t-tf)))./(1+3*exp(-8*(t-tf)));
>> subplot(221),plot(t,k),xlabel('t'),ylabel('k'),title('t_f = 0.1')
>> tf=0.5;t=linspace(0,2);k=4*(3/2)*(1-exp(-8*(t-tf)))./(1+3*exp(-8*(t-tf)));
>> subplot(222),plot(t,k),xlabel('t'),ylabel('k'),title('t_f = 0.5')
>> tf=1;t=linspace(0,2);k=4*(3/2)*(1-exp(-8*(t-tf)))./(1+3*exp(-8*(t-tf)));
>> subplot(223),plot(t,k),xlabel('t'),ylabel('k'),title('t_f = 1')
>> tf=4;t=linspace(0,6);k=4*(3/2)*(1-exp(-8*(t-tf)))./(1+3*exp(-8*(t-tf)));
>> subplot(224),plot(t,k),xlabel('t'),ylabel('k'),title('t_f = 4')
x x
u k c x ki K k c ki
x A Bk c Bki x 0
Y el sistema controlado final es: r
c 0 1
Ac
Introducción
Aunque hay problemas que pueden formularse de esta manera, la situación más común es que las
perturbaciones sean aleatorias y persistentes (o al menos durante un largo periodo) tendiendo a
desviar y mantener el sistema fuera de su posición de equilibrio. Como consecuencia, el problema
radica ahora en diseñar una configuración retroactiva mediante la cual las desviaciones iniciales se
reduzcan rápidamente pero que, además, atenúe lo más posible los efectos de las perturbaciones
persistentes. La solución de este problema nos conducirá a la síntesis de un regulador estocástico.
Su estudio se desarrolla en dos partes:
1) Retroacción directa LQ: Donde se dispone en cada instante de medidas completas y exactas
del estado.
2) Regulador Lineal Cuadrático Gaussiano LQG. Supone el caso más habitual de que sólo se
dispone de medidas incompletas y ruidosas del estado, teniendo que recurrir, en este caso, a un
estimador óptimo (filtro de Kalman) que, al igual que en el control modal, puede ser calculado
independientemente del regulador gracias al principio de separación y que aquí recibe el
nombre de principio de equivalencia de certeza.
x Ax B1u B 2 w
z Cx v
donde w(t) representa las perturbaciones (ruido de proceso) que actúan sobre la misma y v(t)
representa al ruido de medida.
w
b2
v
+ + z
u x x y
+ t
b1 c +
+
A
varianza P00 E x(t 0 ) x 0 x(t 0 ) x 0
T
Ejemplo 21. Rumbo de un buque. La dinámica de una cierta embarcación viene aproximada por
el siguiente modelo de segundo orden:
0 1 0 0
0 0.001 0.0003 1 w
z 1 0 v
donde:
es el ángulo de orientación o rumbo,
es la velocidad de giro o cambio de rumbo,
es el ángulo del timón,
z es la medida ruidosa del ángulo de dirección,
w es una perturbación Gaussiana de intensidad W=0.1I que representa los efectos combinados del
viento, oleaje, corrientes, etc.
v es un ruido Gaussiano (debido al sensor) de intensidad V=1I.
Se pide representar la respuesta zero-input de la salida y(t) del sistema sin controlar en los
siguientes supuestos:
1) Medida perfecta y sin perturbaciones en el sistema. (linspace, initial, plot)
2) Medición imperfecta causada por el ruido de medida v. (randn, size)
3) Medida perfecta, pero presencia de perturbación en el proceso w. Obsérvese la
desestabilización. (lsim)
4) Medición imperfecta y sistema perturbado por ruido de proceso.
Solución:
%sin control
a=[0 1;0 -0.001];b1=[0;0.0003];b2=[0;1];c=[1 0];d=0;
W=0.1;
V=1;
Q=[100 0;0 0];
R=0.05;
x0=[12 0]';
t=linspace(0,60,200);
v=randn(size(t))'*sqrt(V);
w=randn(size(t))*sqrt(W);
y1=initial(a,b1,c,d,x0,t);
z1=y1+v;
y2=lsim(a,b2,c,d,w,t,x0);
z2=y2+v;
figure(1),subplot(224),
plot(t,z2),grid,title('con ruido de proceso y medida'),ax=axis
subplot(221),plot(t,y1),grid,title('sin ruido'),axis(ax)
subplot(222),plot(t,z1),grid,title('con ruido de medida'),axis(ax)
subplot(223),
plot(t,y2),grid,title('con ruido de proceso'),axis(ax)
10 10
0 0
-10 -10
-20 -20
0 20 40 60 0 20 40 60
10 10
0 0
-10 -10
-20 -20
0 20 40 60 0 20 40 60
En el caso estocástico, puesto que w es persistente el coste tiene a infinito, J, y por ello hay
que dividir por T para que pueda resultar finito. Así, el coste es
1 1 T 1
J E lim
2 T T
[x T Qx u T Ru]dt E [x T Qx u T Ru]
0
2
Aún así se requieren ciertas condiciones adicionales para asegurar que J resulte finito.
La diferencia con el caso determinista es que la perturbación (ruido blanco) hace imposible calcular
con exactitud cómo evolucionará el sistema (x, u). Por ello la solución no permite obtener u(t) a
priori (lazo abierto), sino que hay que considerarlo en cada instante en base a toda la información
disponible. Como la información histórica viene resumida en x(t), la ley de control ha de ser de la
forma u(t)=f(x(t)), lo que presupone que el estado puede medirse completa y exactamente en todo
instante.
La hipótesis de estado completamente accesible y limpio es poco realista, y más en nuestro caso, en
el que las medidas del estado contienen componentes aleatorios que resultan difícilmente medibles.
Por ello en los apartados siguientes se considera la inclusión del Filtro de Kalman para la
estimación de los estados no accesibles.
Para minimizar la función de coste hay que utilizar la siguiente ley de control:
1) Estructura: u ( t ) K c ( t ) x( t )
2) Ganancias: K c R 1 B 1T Pc ( t )
3) Donde Pc(t): P c (t ) A T Pc (t ) Pc (t ) A Q Pc (t )B 1 R 1 B 1T Pc (t )
4) Condición terminal: J ( t 1 ) Pc ( t 1 ) P1
1
J opt Tr Pc (t0 )x 0 Pc (t )B 2 WB T2 dt
t1
5) Valor mínimo:
2 t0
Nota: x T x Tr xx T , x T Pc x Tr Pc xx T
Normalmente la señal de control actúa durante periodos largos, es decir, que nos hallamos ante el
caso de t1. En el problema determinista constatamos que la ecuación diferencial de Riccati
presenta una solución estacionaria P cuando t1 con lo que se obtiene una ley de control
u K c x con Kc constante y que actúa en el intervalo (0, ). Se demuestra que esta misma ley,
exactamente, es la que también optimiza el regulador estocástico. No obstante el coste mínimo
puede ser muy superior.
1 T
En el caso determinista resultaba J opt x (0) Px(0) . Para el caso estocástico hay que
2
1 1 1
generalizar, J E[ J ] E x T (0)Px(0) Tr E Px(0)x T (0) Tr ( P) , donde
2 2 2n
1
E[x(0)x T (0)] I .
n
Ejemplo 22. Autopiloto. Control directo. Considerar de nuevo el buque del Ejemplo 21 donde
se evidenció la necesidad de regular el sistema (mantener el rumbo = 0º). El objetivo es mantener
el rumbo = 0º, reduciendo al mínimo el zigzagueo provocado por las perturbaciones, con el fin de
minimizar el consumo de combustible, hecho que formulamos con la siguiente función de coste:
matriz P solución de la ecuación de Riccati? ¿Cuáles son los autovalores del sistema
regulado?.
2) Suponiendo que la excitación es nula pero el ruido de proceso w está presente, representar tanto
la respuesta y(t) como su medida z(t) mediante un sensor que introduce un ruido v. Obsérvese
si se han estabilizado los zigzagueos.
Solución:
%control directo
[kc,P,aut]=lqr(a,b1,Q,R)
kc =
44.7214 542.7010
P =
1.0e+004 *
0.1221 0.7454
0.7454 9.0450
aut =
-0.0819 + 0.0819i
-0.0819 - 0.0819i
ac=a-b1*kc;
y=lsim(ac,b2,c,d,w,t,x0);
z=y+v;
figure(2),subplot(211),
plot(t,y),grid,title('retroaccion directa LQ'),axis(ax)
subplot(212),plot(t,z),grid,
title('retroaccion directa LQ con ruido de medida'),axis(ax)
retroaccion directa LQ
20
10
-10
-20
0 10 20 30 40 50 60
10
-10
-20
0 10 20 30 40 50 60
Introducción
El problema es que normalmente no tenemos acceso directo y completo a las variables de estado.
Por ello es necesario utilizar un observador estocástico. El filtro de Kalman calcula la estimación
de mínima varianza x (t) a partir de los registros de y(t), u(t). Además, resulta independiente de Q
y R (es decir, aunque se modifiquen Q, R la estimación óptima siempre es la misma).
En el control modal la elección del vector de ganancias Ko del observador (en realidad la elección
de o ( ) ) es un proceso más o menos arbitrario en el que se intenta mantener un compromiso
entre la velocidad de respuesta de dicho observador y el comportamiento frente a perturbaciones
tales como el ruido de medida. Con el observador óptimo (filtro de Kalman) el cálculo de Ko se
hace de forma que se establece este compromiso de una forma ‘óptima’. El criterio que se sigue es
el de minimizar el cuadrado del error de reconstrucción.
Previamente hay que especificar las características estadísticas de las perturbaciones que actúan
sobre el sistema tales como el ruido de la planta y el ruido de medida. En concreto, hay que tener
información de A, B1, B2, C; de las características estadísticas del ruido del proceso y del ruido de
medida; y del valor medio y la varianza de las condiciones iniciales del estado.
Planta:
x Ax B1u B 2 w
z Cx v
donde w, ruido de proceso, y v, ruido de medida, son procesos de ruido blanco Gaussianos
con media cero y matrices de intensidades W y V, respectivamente.
w(t )
E 1 w T (t 2 ), v T (t 2 ) V (t1 ) (t1 t 2 )
v(t1 )
Se supone que están incorrelados ( V12 (t ) V21 (t ) 0 ).
Además, las condiciones iniciales no se conocen con exactitud. Así pues, son también una
variable aleatoria caracterizada por su valor medio y su varianza.
Objetivo: Reconstrucción óptima del estado: Estimación de los estados a partir de las medidas de la
salida y la entrada, minimizando la suma de varianzas del vector de error de estimación
(esperanza matemática de la suma de cuadrados del vector de errores de reconstrucción):
J E x xˆ x xˆ Tr[x xˆ x xˆ ]
T T
1) Condiciones
Si el sistema lineal e invariante es completamente controlable con w(t) como entrada y
completamente observable (o al menos detectable), la ecuación de Riccati tiene una única solución
positiva Po(t) y el observador es asintóticamente estable.
b2
u x x y
+
b1 ct
+
+ + v
A
z
+
ko
-
+
u + x x y
b1 ct
+
A
3) Estructura: La estructura del observador de estado completo (se dice que un observador es
completo cuando el observador y la planta tienen el mismo orden) es:
o ( t )z ( t ) Cx
xˆ (t ) Axˆ (t ) B1u(t ) K opt ˆ (t )
E{x (t ) xˆ (t )x (t ) xˆ (t ) } Po (t )
T
0 APo Po A T B 2 WB T2 Po CT V 1CPo ( Po Po )
La matriz de ganancias del observador óptimo en régimen estacionario es:
1
o Po C V
K opt T
La matriz K opt
o (t ) de ganancias es, en general, asintóticamente estable, y esto es lo que permite
emplear el valor estacionario como valor constante de la ganancia.
El observador óptimo estacionario presenta la ventaja de que es más sencillo de implementar.
En el caso de que el sistema sea invariante este observador óptimo estacionario es óptimo en el
sentido de que hace que el lim E{e T (t )e(t )} lim E{e T (t )e(t )} sea mínimo.
t0 t
7) Metasistema:
x A 0 x B1 B 0
opt u 2 w opt v
opt
xˆ K o C A K o C xˆ B 1 0 Ko
z C 0 x I
v
yˆ 0 C xˆ 0
Propiedades de la solución
El regulador LQ y el filtro de Kalman son problemas duales. Así, tenemos la siguiente equivalencia
de matrices:
LQ A B C Pc Kc Q R
FK AT CT BT Po Ko K T
B 2 WB T V
c 2
La dualidad entre ambos problemas puede usarse para obtener las propiedades (estacionarias) del
observador óptimo a partir de las del regulador óptimo. Además, esta dualidad permite usar las
funciones de Matlab que resuelven el problema LQ (por ejemplo, lqr) para resolver el filtro de
Kalman, y al revés (función lqe).
Notas históricas
R. E. Kalman (Budapest, 1930), se graduó MS(EE) en el MIT con Guillemin, con una tesis
sobre las ecuaciones en diferencias de segundo orden en la que comprobó una diferencia
substancial con la ecuación diferencial del mismo orden (comprobó que podía incluso entrar en
régimen caótico). En 1955 pasó a la Universidad de Columbia (con Ragazzini - control digital
y Zadeh - sistemas fuzzy) donde realizó su doctorado (1957). Más tarde trabajó un año en IBM
y otros 6 en el RIAS.
Sus trabajos en Teoría de Sistemas y Álgebra. En 1953 estudiando los trabajos de Ragazzini,
descubrió que los sistemas discretos también podían ser abordados por métodos transformados
al igual que los continuos. De aquí empezó sus estudios sobre la conexión entre Teoría de
Sistemas y Álgebra. En 1954, abordó el tema de la controlabilidad, tratando de buscar un
criterio algebraico para la misma y lo halló en el rango de Mc.
Presentación del filtro de Kalman. Su trabajo despertó un gran escepticismo, por lo que
primero lo publicó en una revista de Ingeniería Mecánica. Su segundo artículo, sobre el filtro
continuo, fue rechazado. Persistió en exponer sus ideas hasta que fue aceptado por la
comunidad científica.
Primeras aplicaciones. Donde primero encontró una audiencia receptiva fue en la NASA,
donde pronto vieron sus grandes posibilidades para la estimación y control de la trayectoria del
proyecto Apolo, desarrollándose (Schmidt) el filtro de Kalman extendido para problemas no
lineales. En 1961 Battin, que ya usaba las variables de estado para el diseño e implementación
de sistemas de navegación astronáutica, incluyó el KF como parte del sistema de navegación
de a bordo. En aeronáutica el KF resolvió dos problemas: a) el de combinar los datos
asociados al radar con sensores de inercia para llegar a la estimación global de la trayectoria
del avión. b) el rechazo asociado a la detección de errores exógenos en los datos de medida.
Otras líneas de Teoría de Sistemas. En 1960 Kalman demostró que la observabilidad (en
sistemas dinámicos) tenía una relación algebraica dual en la controlabilidad y, además,
demostró que eran problemas separados. Un poco más tarde, Bucy (RIAS) sugirió a Kalman
que la ecuación integral de Wiener-Hopf era equivalente a la ecuación diferencial de Riccati
(en la hipótesis de modelo de estado de dimensión finita). Además, probaron que Riccati
puede tener solución estable a pesar de que el sistema sea inestable, pero a condición de que
sea observable y controlable. Kalman también jugó un importante papel en la teoría de la
realización (1962) que trata de hallar un modelo de estado que explique el comportamiento
entrada/salida del sistema. El impacto del KF ha sido enorme para los que trabajan en el
campo de la estimación y control, resultando una de las tecnologías básicas en la navegación
espacial.
Ejemplo 23. Autopiloto. Reconstrucción del estado. Considerar de nuevo el buque del Ejemplo
21. Dado que en realidad no tenemos acceso directo a los estados de la planta, se pide:
1) Implementar un observador óptimo de estado (filtro de Kalman-Bucy) tal que, a partir de las
medidas ruidosas de la salida del sistema z, estime las variables de estado de la planta: rumbo (
) y velocidad de giro ( r ). (función lqe). ¿Cuánto vale la ganancia del estimador óptimo?
¿Cuál es la matriz P solución de la ecuación de Riccati? ¿Cuáles son los autovalores del
estimador de estado?
2) Representar el estado del sistema y su estimación mediante dicho filtro. Comentar la bondad de
la reconstrucción del estado y su convergencia hacia el valor real.
Solución:
% filtro de kalman bucy
[ko,P,aut]=lqe(a,b2,c,W,V)
ko =
0.7943
0.3154
P =
0.7943 0.3154
0.3154 0.2509
aut =
-0.3976 + 0.3976i
-0.3976 - 0.3976i
figure(3)
subplot(211),plot(t,x(:,[1 3])),grid,title('estado x_1 y su estimacion optima x_3'),
10
-10
-20
0 10 20 30 40 50 60
estado x 2 y su estimacion optima x 4
3
-1
0 10 20 30 40 50 60
Introducción
1) La planta está sometida a excitaciones aleatorias que modelan tanto las perturbaciones
externas como las internas (ruido de proceso, incertidumbre del modelo).
2) Las mediciones, además de ser incompletas (es decir, algunas de las variables de estado son
inaccesibles), resultan enmascaradas (degradadas) por el ruido que, inevitablemente,
introducen los sensores.
En estas condiciones, la información contiene una fuerte componente de error y, por tanto, provoca
decisiones "equivocadas" del controlador, afectando así la optimalidad del resultado. Para abordar
estas situaciones que introducen elementos aleatorios en el problema, se ha desarrollado el llamado
Control (Óptimo) Estocástico, que aquí se abordará desde la perspectiva de una formulación de
estado.
Los principios del control LQR y la estimación óptima pueden aplicarse conjuntamente para
resolver el problema del COE (LQG). En el caso más general las estrategias de control y
estimación deben diseñarse concurrentemente (es decir, uno depende del otro). Sin embargo, en
una amplia gama de problemas, las estrategias de control y estimación pueden ser calculadas
independientemente y luego juntarlas para formar la solución óptima. La posibilidad de separar
estos diseños depende de la manera en que la incertidumbre entra en el problema y de la estadística
de las mismas.
Estructura:
u K opt
c x ˆ
o z y
xˆ Axˆ B1u K opt ˆ
yˆ Cxˆ
Dinámica: La dinámica del sistema en lazo cerrado queda determinada por ( A BK opt
c ) y
( A K opt
o C ), es decir, por la dinámica del problema de control LQ determinístico correspondiente
y por la del filtro óptimo.
Metasistema:
x A B 1 K opt x B2 0
opt c
w opt v
opt
xˆ K o C A B1K c K o C xˆ 0
opt
Ko
z C 0 x I
v
yˆ 0 C xˆ 0
Propiedades
Horizonte finito. El filtro de Kalman puede ser conectado en cascada con un controlador LQ
formando un posible controlador estocástico de sistemas dinámicos lineales. En realidad puede
demostrarse que esta combinación es óptima y que sus dos componentes principales pueden ser
diseñados independientemente. La función de coste sólo puede evaluarse en términos de valores
esperados que son estimaciones condicionadas de la media y varianza del estado (los operadores
esperanza E[ ] y traza Tr( ) son intercambiables), resultando
1 1 t1
J E x T (t1 )Sx(t1 ) (x T Qx u T Ru)dt
2 2 t0
1
E tr S1 (P1 x 1x 1T ) tr (Q xx
t1 T )dt tr (Ruu T )dt J CE J s
t1
2 t0 t0
(Notas: x T Qx Tr Qxx T , E xx T P xx
T ,
P E x x x x
T
Componente de equivalencia de certeza:
1
E tr S1x 1x 1T tr Qxx
t1 T t1
J CE dt tr (Ruu T )dt
2 t 0 t 0
Componente debida al error de la estimación:
1
E tr S1P1 tr QPdt
t1
JS
2 t0
Los métodos de optimizar trayectorias de duración finita son idénticos. Aunque estemos trabajando
con SLI y con Q, R constantes, los Kc, Ko resultan variables. Las trayectorias óptimas (x) y la
historia del control (u) dependen de las condiciones iniciales, y de los perfiles de w y v. Sin
embargo, los perfiles de Kc y Ko normalmente resultan con variaciones confinadas a breves
periodos al principio y al final de la trayectoria: Ko al principio (cuando las condiciones iniciales
pueden contener más (o menos) información que las medidas) tiende a crecer. Inversamente Kc es
constante al principio y aumenta hacia el final de la trayectoria (cuando el coste terminal puede
resultar más importante que el término (coste) integral).
Directo (v=0).
1 T
x 0 Pc (0)x 0 Tr Pc K o WK To dt
t1
Horizonte finito: J x
2 t0
1
(Nota: si w=0, es el determinista: J x x 0T Pc (0)x 0 )
2
Horizonte infinito: J Ax Tr Pc B 2 WB T2
1
2
Ejemplo 24. Autopiloto. Control óptimo estocástico (LQG). Considerar de nuevo el buque del
Ejemplo 21. Se pide:
1) Implementar un controlador estocástico (de mínima varianza “aumentada”) a partir de la
interconexión del controlador y del estimador óptimos calculados separadamente.
2) Representar la salida (ctx) del sistema compensado y compararla con su medida ruidosa z y con
la estimación de dicha salida realizada por el filtro de Kalman. Observar las ventajas de la
estimación sobre la medida directa en entornos ruidosos.
3) Calcular el valor del coste mínimo.
Solución:
%control optimo estocastico (LQG)
ameta=[a -b1*kc;ko*c a-ko*c-b1*kc];
bmeta=[b2 b2*0;b2*0 ko];
cmeta=[c c*0;c*0 c];
dmeta=[0 0;0 0];
[y,x]=lsim(ameta,bmeta,cmeta,dmeta,[w' v],t,[x0; 0; 0]);
z=y(:,1)+v;
figure(4)
subplot(211),plot(t,z),grid,
title('salida del sistema compensado con ruido de medida'),axis(ax)
subplot(212),plot(t,y),grid,
title('salida del sistema compensado (sin ruido de medida) y su estimacion'),axis(ax)
e=[x(:,1)-x(:,3) x(:,2)-x(:,4)];
J=e'*e,trace(J)
J =
475.9149 42.6885
42.6885 127.4428
ans =
603.3577
10
-10
-20
0 10 20 30 40 50 60
10
-10
-20
0 10 20 30 40 50 60
0 1 0
x x u
20.6 0 1
y 1 0x
donde los estados son la posición del péndulo y su velocidad, respectivamente. Las condiciones
iniciales son x(0) 1 2 . Se pide:
T
Análisis de la planta
1. Obtener los autovalores de la matriz A. ¿Es estable?
2. Obtener la respuesta a las condiciones iniciales dadas. Representar cada uno de los estados en
una gráfica diferente.
Regulador del estado
Se desea estabilizar la planta de manera que el polinomio característico del sistema regulado sea
c ( ) 2 3.6 9 . Se pide:
1. Obtener la matriz de controlabilidad y calcular su rango. ¿Existe solución al problema de
regulación?
2. Calcular el valor de la ganancia de retroacción kc con ayuda de la función acker.
3. Obtener las ecuaciones de estado del sistema regulado y representar su respuesta a las
condiciones iniciales anteriores.
Observador del estado
Suponiendo que no se puede acceder directamente a los estados del sistema, se decide diseñar un
observador que los estime según una dinámica definida por o ( ) 16 64 . Se pide:
2
(Nota: Resolver este problema con la ayuda de Matlab. Las funciones que hay que usar son: eig,
ss, initial, subplot, plot, ctrb, obsv, rank, acker, roots, poly)
Solución
Análisis de la planta
La planta es inestable puesto que uno de sus autovalores (polos) tiene parte real positiva.
ans =
4.5387 2000
x1
-4.5387
1000
x2
>> subplot(212),plot(t,x(:,2)),ylabel('x_2'), 5000
>> xlabel('Tiempo')
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Tiempo
>> rank(Mc)
ans =
2
Por tanto, el sistema es totalmente controlable (i.e., el problema del regulador de estado tiene
solución). La ganancia de retroacción de estado es:
>> kc=acker(a,b,roots([1 3.6 9]))
kc =
29.6000 3.6000
El sistema regulado es (Ac=A-bkc,b,c,d), por tanto, sólo hay que cambiar la matriz de estado:
>> ac=a-b*kc;
>> poly(ac) 0
ans =
-1
1.0000 3.6000 9.0000 0 0.5 1 1.5 2 2.5 3
>> subplot(211),plot(t,x(:,1)),ylabel('x_1'), -2
>> title('Regulador del estado') -3
>> subplot(212),plot(t,x(:,2)),ylabel('x_2'),
-4
>> xlabel('Tiempo') 0 0.5 1 1.5 2 2.5 3
Tiempo
El problema del observador tiene solución puesto que el sistema es totalmente observable (la matriz
de observabilidad Mo presenta rango completo):
>> Mo=obsv(a,c)
Mo =
1 0
0 1
>> rank(Mo)
ans =
2
Ahora calculamos la ganancia de Luenberger por dualidad. Aplicar dualidad consiste en usar la
misma fórmula de Ackermann que el problema regulador pero con los siguientes cambios: en vez
de A se usa AT, en vez de b se usa cT y el resultado de la fórmula de Ackermann también se
traspone, así:
>> ko=acker(a',c',roots([1 16 64]));ko=ko'
ko =
16.0000
84.6000
x A 0 x b
̂ t u
t
x k oc A k oc xˆ b
y c t 0 x
t
yˆ 0 c xˆ
>> ao=[a a*0;ko*c a-ko*c];
>> bo=[b;b];
>> co=[c c*0;c*0 c];
>> do=[0;0];
x ( 0) x 0
.
6
ˆ
x ( 0 ) 0
x1,x3
estimaciones es: 0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
t=linspace(0,0.4); 40
[y,t,x]=initial(ss(ao,bo,co,do),[2 1 0 0]',t);
subplot(211),plot(t,x(:,[1 3])), 30
ylabel('x_1,x_3'),
x2,x4
20
title('Observador del estado')
subplot(212),plot(t,x(:,[2 4])), 10
ylabel('x_2,x_4'),xlabel('Tiempo')
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Tiempo
x A bk tc x b
̂ t u
t
x k oc A bk c k oc xˆ b
t
y c t 0 x
t
yˆ 0 c xˆ
x(0) x 0
con condiciones iniciales .
ˆ
x ( 0) 0
>> at=[a -b*kc;ko*c a-ko*c-b*kc];
>> bt=[b;b];
>> ct=[c c*0;c*0 c];
>> dt=[0;0];
2
x1 , x3
-1
0 0.5 1 1.5 2 2.5 3
10
5
x2 , x4
-5
-10
0 0.5 1 1.5 2 2.5 3
Tiempo
5 0 0
1 T
J [x Qx u Ru]dt , Q 0 5 0,
T
R 1
2 0
0 0 5
Para ello seguir los siguientes pasos:
1) Analizar la planta sin control.
2) Diseñar el regulador LQ.
3) Estimar los estados con un filtro de Kalman.
4) Diseñar el regulador LQG.
5) Añadir acción integral a fin de seguir sin offset consignas tipo escalón.
Solución:
%planta
a=[-0.3 0.1 -0.05;1 0.1 0;-1.5 -8.9 -0.05];
Respuesta de la planta sin control
bu=[2 0 4]';bw=[0 0 1]'; 10
c=[0 0 1];
0
du=0;dw=0;
polos=eig(a) -10
-20
x0=[1 -0.6 0.4]';
-30
t=linspace(0,5,200);
-40
W=300;w=randn(size(t))*sqrt(W);w=w';
-50
y=lsim(ss(a,bw,c,dw),w,t,x0);
-60
V=2;v=randn(size(t))*sqrt(V);v=v'; -70
z=y+v; -80
figure, -90
0 1 2 3 4 5
plot(t,y+v),ax=axis; Tiempo (s)
title('Respuesta de la planta sin control')
xlabel('Tiempo (s)')
Suponiendo que todos los estados son accesibles a efectos de retroacción, estabilizar la planta
minimizando la siguiente función de coste:
5 0 0
1 T
J [x Qx u Ru]dt , Q 0 5 0,
T
R 1
2 0
0 0 5
%regulador LQ full state
Q=5*eye(3);R=1;kc=lqr(a,bu,Q,R),
ac=a-bu*kc;eig(ac)
[y,t,x]=lsim(ss(ac,bw,c,dw),w,t,x0);
figure
plot(t,y+v),xlabel('Tiempo (s)'),axis(ax);
title('Regulador LQ: Q=5xI, R=1')
figure
plot(t,x),xlabel('Tiempo (s)'),%axis(ax);
title('Estados. Regulador LQ: Q=5xI, R=1')
legend('x_1','x_2','x_3')
-60
-2
-80
-4
-100 -6
-120 -8
0 1 2 3 4 5 0 1 2 3 4 5
Tiempo (s) Tiempo (s)
kc =
11.4502 20.8138 -2.3700
polos_servo =
-9.6101
-2.0301 + 0.2683i
-2.0301 - 0.2683i
Suponiendo la planta son control y que los estados no son accesibles a efectos de retroacción,
diseñar un filtro de Kalman-Bucy que obtenga una estimación de los estados óptima en el sentido de
minimizar el error cuadrático medio de la estimación:
figure
subplot(311),plot(t,x(:,[1 4])),xlabel('Tiempo (s)'),
title('Planta sin control con estimador óptimo del estado'),
ylabel('x_1 , x_4')
subplot(312),plot(t,x(:,[2 5])),xlabel('Tiempo (s)'),
ylabel('x_2 , x_5')
subplot(313),plot(t,x(:,[3 6])),xlabel('Tiempo (s)'),
ylabel('x_3 , x_6')
Planta sin control con estimador óptimo del estado
5
x1 , x4
-5
0 1 2 3 4 5
Tiempo (s)
5
x2 , x5
-5
0 1 2 3 4 5
Tiempo (s)
50
x3 , x6
-50
0 1 2 3 4 5
Tiempo (s)
Juntamos ahora el regulador LQ y el filtro de Kalman-Bucy de los dos ejercicios anteriores a fin de
obtener un regulador LQG:
%regulador LQG
at=[a -bu*kc;ko*c a-ko*c-bu*kc];
bt=[bw 0*bw;bw*0 ko];
ct=[c c*0;c*0 c];
dt=[0 1;0 0];
[y,t,x]=lsim(ss(at,bt,ct,dt),[w v],t,[x0;0;0;0]);
figure
subplot(311),plot(t,x(:,[1 4])),xlabel('Tiempo (s)'),
title('Regulador óptimo del estado LQG'),
ylabel('x_1 , x_4')
subplot(312),plot(t,x(:,[2 5])),xlabel('Tiempo (s)'),
ylabel('x_2 , x_5')
subplot(313),plot(t,x(:,[3 6])),xlabel('Tiempo (s)'),
ylabel('x_3 , x_6')
-5
0 1 2 3 4 5
Tiempo (s)
2
x2 , x5
-2
0 1 2 3 4 5
Tiempo (s)
20
x3 , x6
-20
0 1 2 3 4 5
Tiempo (s)
La siguiente figura muestra la respuesta al escalón del regulador LQ simple. No es capaz de seguir
consignas tipo escalón:
Control LQ full state sin acción integral
0.2
0.1
%control LQ sense sorolls
Q=5*eye(3);R=1;
0
kc=lqr(a,bu,Q,R);
ac=a-bu*kc;eig(ac)
-0.1
Amplitude
figure
step(ss(ac,bu,c,du))
-0.2
xlabel('Tiempo (s)'),title('Control LQ
full state sin acción integral')
-0.3
-0.4
-0.5
0 0.5 1 1.5 2 2.5 3
Tiempo (s) (sec)
r + ki + u + x x y
s -
b c
- +
A
kc
x A 0 x B 0
u r
c 0 0
1
Ai Bi
x x
u k c x k i K k c k i
x A Bk c Bki x 0
r
c 0 1
Ac
bi=[bu;0];
br=[bu*0;1]; 1
Mc=ctrb(ai,bi);rank(Mc)
Q=5*eye(3);Qi=diagmx(Q,1);R=1; 0.8
k=lqr(ai,bi,Qi,R);kc=k(1:3),ki=-k(4),
kc = 0.6
Amplitude
-1.0000
ac=[a-bu*kc bu*ki;-c 0]; 0.2
bc=[zeros(3,1);1];
cc=[c 0]; 0
figure
step(ss(ac,bc,cc,0)); -0.2
0 5 10 15
xlabel('Tiempo (s)'),title('Control LQ Tiempo (s) (sec)
La siguiente figura muestra las fuerzas que actúan sobre el avión (sustentación/peso y
empuje/resistencia). Suponiendo vuelo de crucero a altitud y velocidad contantes estos pares de
fuerzas se cancelan entre sí. Además (aunque no es realista) se supondrá que la variación del
ángulo de cabeceo no afecta a la velocidad v.
donde es el ángulo de ataque (ángulo entre el vector velocidad y el eje del avión), q es la tasa de
variación del ángulo de cabeceo (pitch rate), es el ángulo de cabeceo y e es el ángulo del
deflector de elevación.
Las especificaciones del problema de control son recuperar el ángulo de cabeceo 0º con un tiempo
de establecimiento ts menor que 10s y un rebasamiento razonable.
G=ss(a,b,c,d);
0
t=linspace(0,20); -0.1
x0=[0.3 0 0];
-0.2
[y,t,x]=initial(G,x0,t);
Figure,plot(t,x), -0.3
title('Sin control'),
xlabel('Tiempo (s)') -0.4
0 2 4 6 8 10 12 14 16 18 20
legend('\alpha','q','\theta'), Tiempo (s)
rank(ctrb(a,b)),
ans =
3
rank(obsv(a,c)),
ans =
3
Solución:
4
Escogemos por ejemplo un par de polos dominantes con =0.9 y ts 8 , con lo que
n
n 0.556 . El tercer polo lo situamos lejano, arbitrariamente, a -10.
kc =
-10.0632 620.4765 17.3961
p1=-z*wn+j*wn*sqrt(1-z^2);
p2=conj(p1); 0.4
p3=-10;
kc=acker(a,b,[p1 p2 p3]), 0.3
0.2
ac=a-b*kc;
0.1
Gc=ss(ac,b,c,d);
[y,t,x]=initial(Gc,x0,t); 0
figure,plot(t,x), -0.1
0 2 4 6 8 10 12 14 16 18 20
title('Regulador full state'), Tiempo (s)
xlabel('Tiempo (s)')
legend('\alpha','q','\theta'),
Ejercicio 4. Observador de estado. Se pide diseñar un observador de los tres estados que forman
la planta y verificar su funcionamiento con la planta sin control.
Solución:
Aquí diseñamos un observador con los tres polos a -20 (más rápidos que los del regulador de estado
del ejercicio anterior.
0.2 0
1.0e+003 * 0.1 -1
0 -2
-9.6225
-0.1 -3
0.0204 0 5 10 15 20 0 5 10 15 20
Tiempo (s) Tiempo (s)
0.0593 x 3 y x 6: y su estimación
0
bo=[b;b]; -0.2
co=[c c*0;c*0 c]; -0.3
do=[0;0];
-0.4
0 5 10 15 20
Tiempo (s)
x0=[0.3 0 0 0 0 0];
[y,t,x]=initial(ss(ao,bo,co,do),x0,t
);
h=figure;
subplot(221),plot(t,x(:,[1 4])),xlabel('Tiempo (s)'),
title('x_1 y x_4: \alpha y su estimación')
subplot(222),plot(t,x(:,[2 5])),xlabel('Tiempo (s)'),
title('x_2 y x_5: q y su estimación')
subplot(223),plot(t,x(:,[3 6])),xlabel('Tiempo (s)'),
title('x_3 y x_6: \theta y su estimación')
set(h,'name','Planta con observador','numbertitle','off')
Solución:
0.3
[y,t,x]=initial(ss(ac,bc,cc,dc),x0,t 0.25
); 0.2
0.15
figure
0.1
plot(t,x(:,1:3)),
0.05
title('Regulador con observador'),
xlabel('Tiempo (s)') 0
legend('\alpha','q','\theta'), -0.05
0 2 4 6 8 10 12 14 16 18 20
Tiempo (s)
estimación') 0 0
subplot(222),plot(t,x(:,[2 5])), -0.2 -2
0 5 10 15 20 0 5 10 15 20
xlabel('Tiempo (s)'), Tiempo (s) Tiempo (s)
title('x_2 y x_5: q y su x 3 y x 6: y su estimación
0.3
estimación')
0.2
subplot(223),plot(t,x(:,[3 6])),
xlabel('Tiempo (s)'), 0.1
estimación') -0.1
0 5 10 15 20
set(h,'name','Regulador más Tiempo (s)
observador','numbertitle','off')
Finalmente notar que el interés, y el reto, del control robusto es que el controlador final debe ser
fijo. Ello contrapone el Control Robusto a los métodos del Control Adaptativo cuyo objetivo es la
obtención de controladores que se adaptan a las variaciones y perturbaciones de la planta. Al final
del presente apartado se presenta un ejemplo donde se comparan ambos tipos de controladores.
En este apartado nos centraremos en los sistemas SISO y en la configuración de control retroactiva
de un grado de libertad (1DOF, One Degree of Freedom) de la Fig. 15, donde K es el controlador
robusto y G la planta incierta. Las entradas exógenas r y d corresponden respectivamente a la señal
de consigna y al ruido aditivo actuando sobre el sistema.
d
r e uG y
K G
_
G u y
d
Wm
r uG
y
K G0
_
(1)
El problema general de síntesis se puede formular a grandes rasgos de la siguiente manera: Dada la
planta , obtener el controlador tal que el sistema de la Fig. 15: (i) es internamente estable
y (ii) satisface cualquier otra especificación (por ejemplo, seguimiento a consignas, rechazo de
perturbaciones,…).
Para que el problema de síntesis tenga solución, aparte de las condiciones obvias de factibilidad,
controlabilidad y observabilidad, el problema debe estar bien planteado (well posed). El problema
se dice que está bien planteado si todas las funciones de sensibilidad en (1) existen. Para ello una
condición necesaria y suficiente es que . Una condición suficiente es que K y G sean
propias y al menos una de ellas (normalmente la planta G) sea propia.
Típicamente, el lazo se conforma para que presente una ganancia alta a bajas frecuencias, una
pendiente suave en el crossover y una ganancia baja a altas frecuencias.
Finalmente, la ganancia baja a altas frecuencias es necesaria para poder filtrar el ruido de
medida y, en la medida de lo posible, atenuar el efecto de la incertidumbre a altas
frecuencias. Notar que, si , entonces y
En definitiva, si queremos seguimiento debe ser grande a bajas frecuencias. Si, además,
queremos garantías de que este seguimiento sea robusto debe ser como mínimo mayor que
.
Así, si queremos rechazo a perturbaciones, la ganancia de lazo a altas frecuencias debe ser
pequeña. Si además queremos garantizar que este rechazo sea robusto, el lazo deberá ser
como mínimo menor que .
2.1.2 Ejemplo
Vamos a ilustrar el proceso de conformación del lazo con ayuda de un ejemplo. Considerar una
planta nominal de la que sólo se sabe que presenta un exceso de polos sobre ceros de 1 y que
la cota superior de incertidumbre multiplicativa es . Se desea que el lazo
cerrado presente un buen seguimiento a señales de referencia sinusoidales con frecuencias entre 0 y
1 rad/s. Esta especificación de diseño puede expresarse por medio de la siguiente función de
ponderación:
donde será el error de seguimiento en régimen permanente. Interesa pues que sea lo mayor
posible sin comprometer la robustez del diseño.
La Fig. 17 muestra las funciones y así como las plantillas necesarias para
asegurar la robustez, a bajas frecuencias y a altas frecuencias.
|Ws |
20 20
|Wm|
10 10
Magnitud (dB)
Magnitud (dB)
0 0
-10 -10
-20 -20
-30 -30
-2 -1 0 1 2 3 -2 -1 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
Primer diseño: El caso más sencillo es conformar un lazo de primer orden (esto es, suponemos
que la planta es de primer orden y que el controlador es una simple ganancia).
El polo del lazo lo situamos en para que el lazo decaiga una vez pasada la banda útil. No
habrá problemas de estabilidad puesto que al ser de primer orden la pendiente en el crossover será
suave. En cuanto a b, el máximo valor que podemos tomar es el que asegure que se satisface la
plantilla de robustez a altas frecuencias , . Este valor es
con lo que queda el lazo mostrado en la Fig. 18(a). Con el máximo valor que puede
tomar viene dado por la condición . Puesto que es creciente y
decreciente con la frecuencia, el máximo está en el extremo de la banda útil, en . Ahí el
valor de es 13.15, con lo que el error de seguimiento es .
40 40
a=93.39
30 30
20 a=13.15 20 |L0|
Magnitud (dB)
Magnitud (dB)
10 |L0| 10
0 0
-10 -10
-30 -30
-40 -40
-2 -1 0 1 2 3 -2 -1 0 1 2 3
10 10 10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
(a) (b)
Fig. 18. Conformación del lazo. Diseños 1 y 2
En definitiva, el máximo error de seguimiento conseguido en la banda [0, 1] es del 7.6%. Para ver
el nivel de robustez alcanzado hay que calcular el valor de para todas las
frecuencias y buscar su valor máximo. Este resulta ser . Al ser menor
que la unidad, podemos asegurar que el comportamiento es robusto. Sin embargo, puesto que está
lejos de 1, vemos que aún tenemos margen para mejorar el comportamiento sin comprometer la
robustez. Por ello, nos planteamos un segundo diseño.
Segundo diseño: Si permitimos que la pendiente del lazo sea más fuerte, podremos aumentar el
nivel de . Por tanto, el segundo lazo es:
Ahora, al ser el polo doble la pendiente a partir de =1rad/s es más fuerte. El cero a -10 se
introduce para tener una pendiente suave en el crossover y el valor de 20 sirve, al igual que en el
caso anterior, para satisfacer la plantilla de altas frecuencias. Con este lazo el máximo valor
conseguido es , que corresponde a un error de seguimiento máximo del 1.07% y sigue
asegurando que el comportamiento es robusto puesto que .
(2)
Para definir las regiones basta con representar la respuesta frecuencial de las plantas “límite”.
Regiones de incertidumbre
0
-10
-20
-30
Magnitud (dB)
-40
= 0.1
=5
-50 = 10
-60
-70 = 50
-80 = 100
-90
-300 -250 -200 -150 -100 -50 0 50
Fase (grados)
De entre todas las plantas de la familia hay que escoger una que será la nominal. Aquí no es
necesario que cumpla ninguna condición especial. En este ejemplo la planta nominal corresponde a
la planta donde se han etiquetado los valores de frecuencia. Esta planta es (k0 1, 0 5 y b0 30),
Las regiones de incertidumbre anteriores junto con el modelo nominal y las especificaciones en lazo
cerrado definen unas regiones “prohibidas” en el plano de Nichols, esto es, unas regiones donde el
lazo nominal no debe entrar si queremos satisfacer las especificaciones de comportamiento de
manera robusta. Estas regiones reciben el nombre de bounds.
Im dB
‐1 Re Fase
‐180º,0dB
El criterio de estabilidad impone que ninguna de las plantas de la familia puede intersectar el punto
crítico -1 a ninguna frecuencia. Ello es equivalente a imponer la siguiente restricción de magnitud
en la función sensibilidad complementaria:
Asumiendo que el número de polos inestables es el mismo para todas las plantas de la familia, basta
con comprobar que la anterior condición se cumple en la frontera de la región de incertidumbre, .
Por otro lado, se sustituye el valor ∞ por un factor que cuantifica el margen de estabilidad. Así
pues, las plantillas definen la región donde no puede entrar el lazo nominal si queremos que se
cumpla la siguiente condición:
Un valor típico es =1.2. Este valor corresponde a un margen de fase de al menos 50º y un margen
de ganancia de al menos 1.66 (no simultáneo con el de fase). La Fig. 21(a) muestra la plantilla de
estabilidad para la familia paramétrica del ejemplo a =5rad/s y con =1.2.
10
10
5
0
Magnitud (dB)
Magnitud (dB)
0
-10
-5
-20
-10
-30
-15
-40 -20
-240 -220 -200 -180 -160 -140 -120 -100 -80 -350 -300 -250 -200 -150 -100 -50 0
Fase (grados) Fase (grados)
(a) (b)
Fig. 21. Plantilla de estabilidad robusta (=1.2) y plantilla de rechazo de perturbaciones a la entrada de la
planta (=0.01)
Im dB
‐1 Re Fase
‐180º,0dB
Im dB
‐1
Re Fase
‐180º,0dB
Fig. 23. Limitación del esfuerzo de control. Correspondencia entre Nyquist y Nichols
2.2.3 Ejemplo
Para ilustrar el procedimiento de diseño vamos a ver un ejemplo. Considerar el sistema de control
de la siguiente figura, donde la planta incierta forma parte de la familia definida en (2):
d v
r e uG y
K G
_
Las especificaciones del diseño son conseguir un margen de estabilidad robusta de =1.2
(correspondiente a un margen de fase de 50º y un margen de ganancia de 1.66 no simultáneos).
Una vez obtenidas las regiones de incertidumbre y seleccionado el modelo nominal, es posible
representar todas estas plantillas, para diversas frecuencias, en el plano de Nichols. Para facilitar el
diseño, antes de proceder a la conformación del lazo, se intersectan todas las plantillas (ver Fig. 25).
10 1 10
2
1
11 2
0 0
3
1
Magnitud (dB)
Magnitud (dB)
-10 -10
3
-20 -20
2
-30 -30
-40 -40
-50 -50
-350 -300 -250 -200 -150 -100 -50 0 -350 -300 -250 -200 -150 -100 -50 0
Fase (grados) Fase (grados)
El diseño (ganancia y posición de los polos y ceros del controlador) puede llevarse a cabo de
manera interactiva con ayuda del programa MATLAB. La siguiente figura muestra los resultados
para los casos
10 10
=0.1 =0.1
=5 =5
0 =10 =10
0
Magnitud (dB)
Magnitud (dB)
-10 -10
=50
=50
-20 -20 =100
-30 =100
-30
-40 -40
-50 -50
-350 -300 -250 -200 -150 -100 -50 0 -350 -300 -250 -200 -150 -100 -50 0
Fase (grados) Fase (grados)
El segundo controlador satisface las plantillas de comportamiento robusto en lazo abierto. También
es posible analizar el sistema en lazo cerrado resultante y ver si se satisfacen las especificaciones, es
decir, si las funciones de sensibilidad resultantes (para la planta de peor caso) están por debajo de
las cotas especificadas. La siguiente figura muestra que, efectivamente, es así para el caso del
segundo controlador:
-5
-10
Magnitud (dB)
-15
-20
-25
-30 = 1.2
cota superior de |L/(1+L)|
-35
cota inferior de |L/(1+L)|
-40
-45
-2 -1 0 1 2 3
10 10 10 10 10 10
Frecuencia (rad/s)
20 |H(j)|
cota superior de |1/(1+L)|
cota inferior de |1/(1+L)|
10
0
Magnitud (dB)
-10
-20
-30
-40
-50
-2 -1 0 1 2 3
10 10 10 10 10 10
Frecuencia (rad/s)
-40
-50
-60
Magnitud (dB)
-70
-80
-90
-100 =0.01
cota superior de |G/(1+L)|
-110
cota inferior de |G/(1+L)|
-120
-130
-2 -1 0 1 2 3
10 10 10 10 10 10
Frecuencia (rad/s)
2.3 Métodos H∞
A diferencia de las dos técnicas anteriores, donde el diseño iterativo en el dominio frecuencial es
una parte fundamental en el proceso de diseño, los métodos conocidos como H∞ son métodos de
síntesis, esto es, dados los modelos de la planta nominal, incertidumbre y especificaciones así como
un índice de comportamiento, basta con aplicar un algoritmo numérico de optimización para
obtener el controlador central. De esta manera, el peso del diseño recae en la formulación del
problema (obtención de los modelos y selección de especificaciones) y no en la solución (cálculo de
los parámetros del controlador).
Por otro lado estos métodos son muy utilizados puesto que funcionan tanto para sistemas SISO
como MIMO. En estos últimos lo que se conforma son los valores singulares tanto del lazo como
de las funciones de sensibilidad y existe una versión especial para el caso de incertidumbres
estructuradas, la síntesis , llamada así porque se basa en el uso del valor singular estructurado
definido más adelante.
Los métodos de síntesis H∞ usan una configuración de control generalizada conocida como
transformación fraccional lineal (LFT, Linear Fractional Transformation) o transformación de
Möbius. Se definen la LFT inferior y la LFT superior (ver Fig. 28).
w z
s
P s
u
y
u v
N s
K s
w z
Y la relación entre las entradas w y las salidas z viene definida por la LFT inferior , cuya
expresión matemática es:
(3)
LFT superior: La LFT superior, , también conocida como estructura N‐, se usa
para el análisis de la robustez. La relación entre las entradas y salidas es
(4)
s
u
y
w P s z
u v
K s
(5)
Por ejemplo, la Fig. 30 muestra un sistema de control cuya planta incierta está descrita por medio de
su modelo nominal y un modelo de incertidumbre multiplicativa inversa y
donde las especificaciones se refieren al esfuerzo de control u mediante la función de ponderación
Wu.
zu d
Gs u y
Wu s s Wi s
yG y
r e u uG
Ks G0 s
_
Fig. 30. Sistema con incertidumbre multiplicativa inversa y especificaciones sobre el esfuerzo de control u
s
u y
P s Wi s
y
zu z1
Wu s
w1 r
u r
w2 d
uG _ e
G0 s
u v
Ks
El coste del control se puede medir definiendo una función de coste y sometiéndola a alguna norma.
En los métodos H∞ la norma escogida es la infinita y existen diversas funciones de coste típicas, por
ejemplo, la optimización de las sensibilidades combinadas (mixed sensitivity problem):
con
En cuanto a los controladores , tampoco existe una manera directa de obtener el controlador
óptimo. En el caso de perturbaciones complejas es posible usar una aproximación conocida como
iteración D-K que consiste en minimizar una cota superior de , es decir, en calcular el K(s) tal que
minimiza donde D es una matriz de escalado.
Tanto estos algoritmos como los más recientes basados en desigualdades matriciales lineales (LMI,
Linear Matrix Inequalities) están disponibles en la Robust Control Toolbox for use with MATLAB.
En todos los casos el controlador obtenido es de hecho un controlador central que puede ser
parametrizado (de nuevo mediante LFTs) a fin de satisfacer especificaciones adicionales. La Fig.
32 muestra la parametrización de Youla donde es cualquier matriz de transferencia estable y
propia tal que . Si , entonces el controlador obtenido es el central,
.
K s
v u
Kc s
Q s
2.3.5 Ejemplo
1
m
5
r(t) , y(t)
-1
1 -2
0.2
-3
20 40 60 t 0 10 20 30
Tiempo (s)
40 50 60
Fig. 33. Variación del parámetro m en función del tiempo y comportamiento de la planta sin control
Aunque estrictamente no podemos hablar de planta incierta sino de planta variante con el tiempo,
podemos considerar que el valor nominal de m es , considerar el resto de valores de m
con , , , .
donde escogemos . Así, los otros dos casos (m 0.2 y m 0.5) quedan contemplados en la
familia. Notar que, si seleccionamos , . Y si seleccionamos
, .
Planta incierta: Si separamos la perturbación escalar del resto de términos, podemos expresar a
la planta incierta por medio de la LFT superior mostrada en la Fig. 34 y la Fig. 35.
u y
u y
A partir de la anterior realización de estado es posible hallar las matrices de la planta incierta y ver
qué parte corresponde a las matrices nominales y qué parte es incertidumbre:
r e u y
K G0
_
Se desea que el lazo presente acción integral a fin de seguir consignas de tipo escalón sin offset en
régimen permanente. Ello es equivalente a que la función de sensibilidad presente un derivador.
Así, podemos tomar como función de ponderación de las especificaciones de sensibilidad a
con .
Ds
e z
Bs 1/s Cs
As
u y
B C
x y
B0 1/s C0
A0
D12 _
r z
Ws
u e
K
Síntesis del controlador: Podemos formular nuestro problema de síntesis H en los siguientes
términos: Obtener un controlador que cumpla las siguientes condiciones: (i) es estable,
(ii) el sistema en lazo cerrado que relaciona la entrada r con la salida w es internamente
estable, y (iii) es óptimo en el sentido que minimiza la función de coste . Notar
que .
Dada la planta aumentada, podemos usar la función hinfsyn para obtener el controlador. Por
defecto, el algoritmo de solución es el DGKF, que realiza una búsqueda binaria del mínimo J,
min J , dentro del intervalo definido por el usuario [min, max]. El programa muestra los
resultados de cada iteración: tentativa, autovalores de los Hamiltonianos usados en la solución de
las dos ecuaciones de Riccati y de dichas soluciones, , , y radio espectral del producto de las
soluciones .
Análisis del controlador robusto: La Fig. 38 muestra las funciones de sensibilidad calculadas
para cada uno de los valores de m de ambos controladores robustos.
0 0
-5 -5
-10 -10
Magnitude (dB)
Magnitude (dB)
-15 -15
-20 -20
-25 -25
-30 -30
-35 -35
m=1 m=1
-40 m=5 -40 m=5
m=0.2 m=0.2
-45 -45
-2 -1 0 1 2 -2 -1 0 1 2
10 10 10 10 10 10 10 10 10 10
Frequency (rad/sec) Frequency (rad/sec)
Fig. 38. Funciones de sensibilidad (para m 1, m 5 y m 0.2) de los dos controladores robustos.
En el segundo caso, al tomar b más baja y dar más margen a M, el comportamiento es más lento
pero a cambio las funciones de sensibilidad son más parecidas por lo que la respuesta presenta
prácticamente la misma forma sea cual sea el valor de m. Ver Fig. 39.
Controlador robusto. M = 2,b = 0.7, = 4.7251 Controlador robusto. M = 10,b = 0.3, = 4.7828
2 2
1 1
r(t), y(t)
r(t), y(t)
0 0
-1 -1
-2 -2
0 10 20 30 40 50 60 0 10 20 30 40 50 60
10 1
5 0.5
u(t)
u(t)
0 0
-5 -0.5
-10 -1
0 10 20 30 40 50 60 0 10 20 30 40 50 60
Tiempo (s) Tiempo (s)
Comparación con PID: La Fig. 40(b) muestra la respuesta y el esfuerzo de control de la misma
planta pero ahora controlada mediante un regulador PID diseñado para cancelar la dinámica de la
planta en el caso nominal y ajustando su ganancia para que el polo dominante se sitúe en ‐4. A
efectos de realizabilidad se ha añadido también un polo lejano. El PID es:
Se observa que el comportamiento es perfecto cuando m 1 y muy aceptable cuando m 0.2. Sin
embargo, cuando m 5 el PID es incapaz de eliminar las oscilaciones. Los controladores robustos
anteriores no presentan un comportamiento tan bueno cuando m 1 pero mantienen la respuesta
más o menos uniforme para todos los valores de m.
Controlador PID
2
1
r(t), y(t)
-1
u
-2
0 10 20 30 40 50 60
excitación
y
x' = Ax+Bu 20
y = Cx+Du
controlador 10
u(t)
planta variante 0
-10
-20
0 10 20 30 40 50 60
Tiempo (s)
Fig. 40. Modelo Simulink usado para simular los controladores robustos y el PID. Respuesta y esfuerzo de
control del PID-cancelación
r(t), y(t)
r(t), y(t)
0
0
-1 -1
-2 -2
0 10 20 30 40 50 60 0 10 20 30 40 50 60
2 10
1 5
u(t)
u(t)
0 0
-1 -5
-2 -10
0 10 20 30 40 50 60 0 10 20 30 40 50 60
Tiempo (s) Tiempo (s)
Fig. 41. Respuesta y esfuerzo de control para los controladores adaptativos autosintonizados
Comparando este tipo de control con los controladores robustos diseñados para la misma planta
podemos concluir que los robustos tienen un comportamiento intermedio entre el caso de
estimación paramétrica simple y estimación paramétrica mejorada con factores de olvido y
desconfianza. En este último caso el regulador autosintonizado es muy superior al resto de
controladores. Sin embargo, una ventaja fundamental de los robustos frente a los adaptativos es que
los primeros son fijos, aunque el comportamiento no sea tan fino. En cualquier caso, cada
aplicación es distinta y elegir un tipo u otro de estrategia de control depende de muchos factores.
B = [0 0;
0 0;
0 0;
0 0;
30 0;
0 30];
C = [0 1 0 0 0 0;
0 0 0 1 0 0];
D = [0 0;
0 0];
Las variables de estado son: las perturbaciones alrededor del vector de velocidad (V), el ángulo de
ataque (), la velocidad de variación de la actitud (q), el ángulo de actitud (), el ángulo del primer
actuador-elevon (1) y el ángulo del segundo actuador-canard flap (2).
Las variables de control son las señales que controlan los dos actuadotes: elevon (e) y canard flap
(c).
Las variables de salida (es decir, medidas) son: el ángulo de ataque () y la actitud ().
Especificaciones:
20( s 10)
Sobre la función de transferencia complementaria T(s). W3 ( s )
s 400
0.5( s 10)
Sobre la función de transferencia S(s): W1 ( s )
( s 0.15)
Objetivo: Obtener un controlador serie estable, que estabilice al sistema y minimice la siguiente
función de coste (mixed sensitivity problem):
W1 S
W T
3
Se pide:
1) Analizar la planta sin control. Introducir las matrices de estado de la planta (ag,bg,cg,dg) y
analizar su comportamiento en lazo abierto. En concreto: (a) Obtener sus polos (función pole).
¿es estable? (b) Obtener sus ceros de transmisión (función zero). ¿hay alguno de fase no
mínima? (c) Obtener el diagrama de Bode de su respuesta frecuencial. Puesto que el sistema es
MIMO representar en dB la magnitud de sus valores singulares.
2) Especificaciones. Representar el diagrama de Bode de magnitud de las inversas de las
funciones de ponderación, 1/W1 y 1/W3.
3) Síntesis del controlador robusto. Calcular el controlador robusto que minimiza la norma
infinita de la función de coste del enunciado.
4) Analizar el diseño. (a) Dibujar la respuesta frecuencial de la función de coste obtenida.
¿Cuánto vale el máximo? (b) Dibujar la respuesta frecuencial de la función de sensibilidad
obtenida junto con las especificaciones 1/W1. ¿Se cumplen? (c) Dibujar la respuesta
frecuencial de la función de sensibilidad complementaria obtenida junto con las
especificaciones 1/W3. ¿Se cumplen?
Solución:
G=ss(A,B,C,D);
Singular Values
50
polos=pole(G)
-5.6757 0
0.6898 + 0.2488i
-50
0.6898 - 0.2488i
zeros=zero(G) -200
-0.0210
-250
-2 0 2 4
10 10 10 10
figure(1),sigma(G) Frequency (rad/sec)
Especificaciones:
Singular Values
s=zpk('s'); % Laplace 10
1/W
MS=2;AS=.03;WS=5; 5 1/W
S
T
W1=(s/MS+WS)/(s+AS*WS); 0
-5
Singular Values (dB)
MT=2;AT=.05;WT=20;
W3=(s+WT/MT)/(AT*s+WT); -10
-15
figure(2), -20
sigma(inv(W1),inv(W3)),
-25
legend('1/W_S','1/W_T')
-30
-35
-3 -2 -1 0 1 2 3 4
10 10 10 10 10 10 10 10
Frequency (rad/sec)
[K,J,gam]=mixsyn(G,W1,[],W3);
>> minfo(K)
MATLAB ss object: 10 states 2 outputs 2 inputs
Función de coste:
Singular Values
figure(3),sigma(J) -2
-2.5
gam = -3
-3.5
Singular Values (dB)
0.7885
-4
-4.5
-5
-5.5
-6
-6.5
-2 0 2 4 6
10 10 10 10 10
Frequency (rad/sec)
Función de sensibilidad
L=series(K,G);
Singular Values
S=feedback(eye(2),L); 10
figure(4),sigma(inv(W1),S) 5
-5
-15
-20
-25
-30
-35
-2 0 2 4 6
10 10 10 10 10
Frequency (rad/sec)
T=feedback(L,eye(2));
Singular Values
figure(5),sigma(inv(W3),T) 50
-50
Singular Values (dB)
-100
-150
-200
-250
-300
-2 0 2 4 6
10 10 10 10 10
Frequency (rad/sec)
Todos los actuadores se agrupan en una cámara de climatización externa a la habitación. Esta
cámara de climatización recoge el aire de la habitación, lo trata y lo vuelve a inyectar. Por el hecho
de ser externa se ve afectada por la temperatura Text y humedad absoluta Hext del exterior de la
habitación.
Se dispone además de dos sensores: un termómetro y un sensor de humedad relativa. Este último es
muy sensible a la humedad absoluta y a la temperatura. Ambos sensores están situados en la rendija
de salida del aire.
cámara de climatización
flujo externo Text
de aire
Hext
calefacción refrigeración humidificador
T uc uf uh
aire
h
habitación
3
400 m
T, h
puerta
1 s 1 0 10 0 5
con G ( s ) .
(2s 1)(12s 1) 1.8( s 1) 0.55( s 1) 18 13 21s 0.2
Solución
1) Solución comercial
La solución estándar consiste en dos lazos de control SISO independientes, uno para la temperatura
y el otro para la humedad:
cámara de climatización
flujo externo Text
de aire
Hext
calefacción refrigeración humidificador
uc uf uh
aire
u1
T PI máx (u1, u2)
u2
h PI
habitación
T, h 400 m3
Así pues, la unidad de refrigeración es un bloque común a los dos lazos de control y forma parte de
uno u otro según cuál sea la mayor de las dos demandas: u1 para bajar la temperatura y u2 para bajar
la humedad.
Desventajas:
1) No tiene en cuenta el acoplamiento entre variables.
2) Este controlador utiliza las tres unidades a pesar de que, como veremos, basta con que
funcionen únicamente sólo dos de ellas.
3) El cambio de unidad produce discontinuidades que afectan al rendimiento del sistema.
Tal y como muestra la Figura, el aire recogido por la cámara de climatización es enfriado,
humectado y calentado antes de ser devuelto a la habitación:
humedad
dew point
0.024
0.018
0.012
equiv.
50RH a C.F.
0.006
23C C.I.
5 10 12 15 20 23 25 30 C
Paso 1. Para una humedad relativa de 50RH la temperatura de rocío correspondiente (dew-point
temperature) es de 12C. El primer paso es pues enfriar el aire extraído hasta los 12C.
Paso 2. La cantidad de agua correspondiente a 50 RH, 23C es, según la gráfica, de 0.008.
Manteniendo la temperatura constante (a 12C) se inyecta la cantidad de agua suficiente para
conseguir una relación de humedad de 0.008.
Paso 3. Manteniendo la cantidad de agua constante (a 0.008), se calienta el aire hasta los 23C.
cámara de climatización
flujo externo Text
de aire
Hext
refrigeración humidificador calefacción
uf uh uc
aire
h PI T2
T1 PI
habitación
T, h 400 m3
Desventajas:
1) Se consume demasiada energía enfriando y calentando el aire continuamente. Es caro.
2) Puesto que no utiliza el sensor de humedad, el control de humedad se hace controlando el punto
de rocío dentro de la cámara y no de la habitación. Por lo tanto, puede compensar el efecto de
Text y Hext, pero no se entera de los cambios de la carga de la habitación (número de personas,
puertas abiertas...)
cámara de climatización
flujo externo Text
de aire
Hext
calefacción refrigeración humidificador
uc uf uh
aire
T
controlador multivariable
h
habitación
T, h 400 m 3
z1
We(s)
z2
Wu(s)
z3 w z
Wy(s)
P(s)
w1 e u
K(s) G(s) y u y
K(s)
We S
z ( s)
donde Fl (K , P) Wu KS recibe el nombre de transformación fraccional lineal
w ( s)
Wy T
(Linear Fractional Transformation).
3) Calcular, con ayuda de los algoritmos disponibles, el controlador K tal que el sistema de la
Figura anterior es internamente estable y se cumple que:
We S
Wu KS mín , con S (I GK ) 1 y T (I GK ) 1 GK
Wy T
Notar que en nuestro ejemplo la señal de salida coincide con la señal de error puesto que se trata de
que las variaciones en la temperatura y humedad interiores se mantengan cercanas a cero.
El vector de control u u c uh uf T
se penaliza con la matriz de ponderación
Wuc ( s ) 0 0
Wu ( s ) 0 Wuh ( s ) 0
0 0 Wuf ( s )
90 s 1 90s 1
donde Wuc ( s ) 0.035 y Wuh ( s ) Wuf ( s ) 0.1 .
2s 1 9s 1
Es decir, se trata de que el radiador reaccione rápido a las perturbaciones rápidas mientras que
el humidificador (y/o la refrigeración) se deja para las perturbaciones más lentas.
90 1 0
Wy ( s )
(90s 1)(9 s 1) 0 1
Esta elección penaliza fuertemente las bajas frecuencias, asemejándose a una acción integral.
No queremos errores una vez alcanzado el régimen permanente.
1
10
0
10 Wy
0
10
Wuh = W uf
Wuc
-1
10
-1
10
-2
10
-2 -3
10 10
-3 -2 -1 0 1 -3 -2 -1 0 1
10 10 10 10 10 10 10 10 10 10
[rad/min] [rad/min]
omg = logspace(-3,1);
wu11 = nd2sys( [90 1], [2 1], 0.035);
wu22 = nd2sys( [90 1], [9 1], 0.1);
vplot('liv,lm',frsp(wu11,omg),frsp(wu22,omg)), grid on, xlabel('[rad/min]')
wy11 = nd2sys(1, conv([90 1],[9 1]), 90);
vplot('liv,lm',frsp(wy11,omg)), grid on, xlabel('[rad/min]')
dText
dH ext s 1 0
1.8(s 1) 0.55(s 1)
G ext (s)
(2s 1)(12s 1) w
z1
Wu (s)
uc
z2
u uh W y (s)
u
f
dT
+ y
10 0 5 dh
18 13 21s 0.2 +
G u (s )
(2s 1)(12s 1)
K (s)
90 s 1
0.035 2 s 1 0 0
90 s 1 90 1 0
Wu ( s) 0 0.1 0 y Wy ( s )
9s 1 (90s 1)(9 s 1) 0 1
90 s 1
0 0 0 . 1
9 s 1
Wu KS
La función que calcula el controlador tal que mín en Matlab es hinfsyn y el
Wy S
código es como sigue:
% funciones de ponderación
wu = daug(wu11,wu22,wu22);
wy = daug(wy11,wy11);
% subsistema dependiente del control
Gu = abv(sbs(g13,g14,g15),sbs(g23,g24,g25));
% planta generalizada
systemnames='Gu wu wy';
inputvar='[ext{2};u{3}]';
outputvar='[wu;wy;ext+Gu]';
input_to_Gu='[u]';
input_to_wu='[u]';
input_to_wy='[ext+Gu]';
sysoutname='P';
cleanupsysic='yes';
sysic;
% cálculo del controlador
nmeas=2;ncon=3;gmin=0.1;gmax=5;tol=1e-3;
[K,LFT]=hinfsyn(P,nmeas,ncon,gmin,gmax,tol);
Test bounds: 0.1000 < gamma <= 5.0000
gamma hamx_eig xinf_eig hamy_eig yinf_eig nrho_xy p/f
5.000 1.1e-002 -2.1e-015 1.1e-002 -6.1e-016 0.0000 p
Las Figuras muestran los diagramas de Bode de valores singulares de S con W y1 y KS con Wu1 ,
2 3
10 10
W1
W 1
uh uf
10
2
W y1
101
Wuc1 10
1
(S)
10
0
(KS) 10 0
(S )
-1
10
10- 1
(KS) 10 -2
-3
10- 2 10
-3 -2 -1 0 1
10- 3 10 -2 10 -1 1 00 101 10 10 10 10 10
[aL,bL,cL,dL]=series(aK,bK,cK,dK,aGu,bGu,cGu,dGu);
uno=ndsys(1,1,1);[a1,b1,c1,d1]=unpck(daug(uno,uno));
[aS,bS,cS,dS]=feedback(a1,b1,c1,d1,aL,bL,cL,dL,1);S=pck(aS,bS,cS,dS);
vplot('liv,lm',vsvd(frsp(S,omg)),minv(frsp(wy11,omg)))
[aR,bR,cR,dR]=series(aS,bS,cS,dS,aK,bK,cK,dK);R=pck(aR,bR,cR,dR);
vplot('liv,lm',vsvd(frsp(R,omg)),minv(frsp(wu11,omg)),minv(frsp(wu22,om)))
Step Response
0
sistema en lazo cerrado es estable -1
0.2
To: Y2
0
» [a,b,c,d]=unpck(lft);
-0.2
Amplitude
» step(a,b,c,d) 1
To: Y3
0.5
1
0
1
To: Y5
0.5
0
0 5 10 15 200 5 10 15 20
Time (sec.)
Definición: Un sistema MIMO (multi input multi output) es aquel que tiene más de una entrada y
más de una salida. De manera análoga se habla de sistemas SISO (single input single output),
MISO (multi input single output), SIMO (single input multi output), 2ISO (2 input single output),…
Podemos ver un sistema MIMO como una caja negra con p entradas y q salidas (en general, todas
ellas varían con el tiempo).
u1 (t ) y1 ( t )
... ...
u p (t ) y q (t )
u1 (t ) q y1 ( t )
p
u( t ) y (t )
u (t ) y (t )
p q
La mayoría de los sistemas son de naturaleza multivariable (MIMO), como por ejemplo, los
sistemas químicos donde es necesario controlar de manera simultánea variables como son la
presión, la temperatura y la concentración a partir de diversas entradas como pueden ser los
caudales y las concentraciones a la entrada.
Y ( s ) G( s ) U ( s )
g11 ( s ) g1 p ( s )
donde G( s ) es la matriz de funciones de transferencia del sistema.
g q1 ( s ) g qp ( s )
Cada elemento gij(s) es una función de transferencia ordinaria que describe el efecto de la entrada
Uj(s) sobre la salida Yi(s).
Matrix Function Description (MFD): Puesto que G(s) es una matriz racional, puede expresarse
como
1
G( s ) N( s )
d (s)
siendo d(s) el mínimo común múltiplo mónico de los elementos gij(s) y N(s) una matriz polinomial.
Pero también es posible expresar G(s) como cociente de dos matrices polinomiales coprimas, N y
D,
G( s ) N( s )D( s ) 1
Esta última representación recibe el nombre de matrix function description y nos permite obtener un
mayor grado de analogía entre los sistemas SISO y MIMO.
Un sistema dinámico se puede representar por medio de ecuaciones diferenciales (ED) ordinarias
donde el tiempo es la variable independiente. Por otro lado, una ED de orden n se puede expresar
como un conjunto de n EDs de primer orden (representación vectorial-matricial). Si los n
elementos del vector x constituyen un juego de variables de estado lo que se obtiene es una
ecuación de estado (EE).
x Ax Bu (ecuación de estado)
y Cx Du (ecuación de salida)
En los sistemas MIMO, en vez de escribir las dos últimas ecuaciones, lo que se hace a veces es
utilizar una notación mixta:
A B
G(s)
C D
sX ( s ) AX ( s ) BU( s )
Y( s ) CX ( s ) DU( s )
y se expresa Y(s) en función de U(s), Y( s ) CsI A B D U( s ) se obtiene
1
G( s ) CsI A B D
1
s
Ejemplo 25. Comprobar que la función de transferencia G ( s ) admite las siguientes
s s 1
2
sI A B
1
G ( s) C D
q n
n p q p
q p nn
Formas canónicas y realizaciones mínimas: Por ello es necesario contar con formas canónicas y
realizaciones mínimas. Estas últimas se obtienen mediante la cancelación de polos y ceros cercanos
y con la eliminación de estados poco controlables y/o observables y redundantes. En el ejemplo
anterior la realización G1 sería mínima si elimináramos el estado no observable.
Polos y ceros: Los polos de un sistema MIMO son los valores de s para los cuales al menos una de
las componentes de Y(s) tiende a infinito. Son, por tanto, los polos de los gij(s).
Los ceros son los valores de s para los cuales Y(s)=0. La salida es nula cuando G(s)=0. Los ceros
de G(s) son los polos de G-1(s). Puesto que
adjG( s )
G 1 ( s )
detG( s )
Los ceros del sistema coinciden con los ceros de det G( s ) .
adjsI A
G( s ) C BD
detsI A
se deduce que los valores de s que hacen tender G(s) a infinito son las raíces de (s) detsI A
que es precisamente el polinomio característico de A el cual está formado por los autovalores de A.
Nota: Las definiciones de polos y ceros en sistemas MIMO no son únicas. Sólo de ceros hay más
de diez definiciones diferentes.
Sistemas de gran escala LSS (large scale systems): Son sistemas MIMO con muchas entradas y
muchas salidas caracterizados por tener un número grande de elementos los cuales realizan
diferentes funciones, comparten recursos y se rigen por un conjunto de objetivos y restricciones.
Los ejemplos típicos son los modelos económicos y de planificación urbana, sistemas de energía
eléctrica, redes de transporte y comunicaciones…
Así, la representación de los sistemas de gran escala implica modelos multivariable muy complejos
y con una fuerte interacción. La dificultad computacional que llevan asociada ha dado lugar a todo
un conjunto de técnicas sistemáticas y específicas para tratar con ellos. Estas se dividen en dos
grandes grupos: descomposición y simplificación:
Ex Ax Bu
y Cx Du
Esta representación es más general que las EE ordinarias ya que no sólo las incluye sino que
también contempla el caso de los sistemas no causales y las ecuaciones estáticas de dimensiones
arbitrarias. Por otro lado, la representación del sistema por medio del sistema descriptor es típica de
los LSS los cuales se estudian como un conjunto de sistemas interconectados. La interconexión no
siempre es representable por medio de las EE pero sí lo es con ayuda del sistema descriptor.
Control moderno vs. métodos frecuenciales: Al principio los sistemas MIMO se estudiaron desde
la óptica del control moderno (métodos de estado). Había dos buenas razones para hacerlo:
1) En el espacio de estado da igual trabajar con 4 estados que con 40, con 1 entrada y una
salida que con 3 entradas y 5 salidas ya que se trata de una representación inherentemente
multivariable.
2) Los métodos frecuenciales de la teoría de control clásica están pensados para los sistemas
SISO (a menudo SLI) y cuando se aplican a sistemas MIMO, incluso en los casos más
sencillos, es inevitable que aparezca el tanteo (solución no única). De hecho, los métodos
frecuenciales son gráficos, se basan en relaciones entrada/salida y son iterativos. El
diseñador analiza una respuesta frecuencial o un lugar de las raíces, diseña el controlador de
manera gráfica, investiga la respuesta del sistema y repite este procedimiento hasta que se
da por satisfecho. La “ventaja” del espacio de estado en este caso es que da lugar a
métodos sistemáticos (solución única).
La teoría del control óptimo (LQG, linear quadratic Gaussian) va bien en estos tipos de problemas
por diversos motivos:
1) Son aplicaciones de fácil modelización. Se puede hacer la hipótesis de planta lineal y
posiblemente invariante con el tiempo. Y además las perturbaciones son de naturaleza
estocástica pero conocida y se pueden describir como ruido blanco.
Dicho de otro modo son problemas donde aparece el concepto de incertidumbre. Hay de dos tipos:
Incertidumbre interna (o errores de modelación) debida al desconocimiento teórico del proceso a
controlar, a la imprecisión de los dispositivos de medida, a las tolerancias de fabricación y a la
simplificación o idealización de los modelos matemáticos. E incertidumbre externa, debida a la
influencia del entorno, al modo de operación y a las propiedades de los materiales.
Los controladores obtenidos por métodos frecuenciales son aproximados y se tratan como tales pero
tienden a ser razonablemente robustos frente a errores en el modelo de la planta y ciertas señales de
perturbación actuando sobre la planta.
En cambio, los métodos en el espacio de estado usan modelos internos del sistema y sintetizan los
controladores mediante algoritmos matemáticos. En condiciones de incertidumbre, si el modelo de
la planta es pobre, el control muy probablemente también lo será. En las aplicaciones industriales
no sale a cuenta hacer el esfuerzo de obtener modelos muy precisos (y, sobretodo, lineales). Por
ello, cuando estos métodos se aplican en la industria unas veces funcionan bien y otras mal
(obteniéndose muchos mejores resultados con el PID estándar). Además, aunque funcionen bien
pueden resultan muy frágiles. Por ejemplo, el rechazo a perturbaciones suele ser pobre y el fallo de
alguno de los lazos retroactivos puede ser desastroso, llevando a la inestabilidad total. Por ello a
partir de 1980 se empezó a investigar en el control robusto y en técnicas para mejorar la robustez de
estos controladores.
Inconvenientes del LQG: En concreto, el principal inconveniente del LQG es que pone demasiado
el énfasis en la optimalidad y presta poca atención a la incertidumbre. Además, el “óptimo” no
tiene por qué ser “bueno”. Un controlador impecable matemáticamente puede ser inútil en la
práctica. En términos generales podemos decir que el LQG es:
1) Poco realista: modeliza todas las incertidumbres como ruido blanco cuando no existe
ninguna justificación para hacerlo y además presupone modelos lineales de la planta.
2) Poco práctico: se necesita experiencia y numerosas iteraciones para escoger correctamente
Q, R, W y V y, por otro lado, si el problema es demasiado complejo la misma cantidad de
cálculo no hace aplicable el LQG.
3) Poco robusto: está demostrado teórica y experimentalmente que al intentar añadir realismo
al modelo de la planta el diseño puede salir incluso inestable
4) Poco intuitivo: le falta la potencia de los métodos gráficos.
Principales métodos frecuenciales en MIMO: Mientras en los EEUU se desarrollaban los métodos
de estado, en el Reino Unido algunos grupos de trabajo se centraron en la generalización de las
técnicas frecuenciales SISO estándar para el caso de sistemas MIMO.
La idea era combinar el enfoque algebraico en el análisis de los sistemas MIMO con el enfoque del
diseño gráfico (en lugar de síntesis) para la selección del controlador en el dominio frecuencial (y
así eliminar la necesidad de modelos de planta muy precisos). Son técnicas que necesitan muchos
cálculos (aunque no son difíciles) y por ello no pudieron ser implementadas hasta que no se
desarrollaron los ordenadores y aparecieron programas de simulación numérica como el Matlab.
Algunos monográficos son: (Maciejowski, 1989), (O’Reilly, 1987), (Patel and Munro, 1982) and
(Owens, 1978).
Control Robusto: En EEUU, cuando las limitaciones del LQG se hicieron patentes, se volvió a
prestar atención a los métodos frecuenciales (y a la capacidad desensibilizadora de la retroacción de
salida) y es en los años 1980’s cuando aparecieron las actuales técnicas de Control Robusto que
predominan en el panorama de la teoría de control de hoy en día:
Autovalores: De manera análoga a como se hace con las matrices constantes, se definen los
autovalores (s) de una matriz funcional G(s) como las funciones que hacen que el polinomio
característico de la matriz G(s), ( s )I G( s ) sea idénticamente igual a cero. Como también son
funciones de s se pueden obtener representaciones (llamadas lugares característicos, characteristic
loci) de ellos en diagramas de Bode o Nyquist.
Valores singulares: Los valores singulares i(s) de una matriz G(s) de dimensiones mn y de rango
r son las raíces cuadradas no negativas de los autovalores de G*G (G* es la traspuesta conjugada de
G)
i i (G * ( s )G( s ))
1 250
Ejemplo 26. Medida de la proximidad a la singularidad de la matriz M
0 1
1. ¿Es M singular?
No puesto que su determinante no es nulo: det( M ) 1
>> det(M)
ans =
1
>> eig(M)
ans =
1
1
>> svd(M)
ans =
250.0040
0.0040
1 p
n p
x p
xi
i 1
Las más utilizadas son la p=2 (norma Euclídea, relacionada con la potencia),
x
2
x 2
i xT x
i 1
Las normas de las señales se definen de manera análoga a las normas vectoriales,
12
u (t ) dt
u 1 u (t ) dt
2
u u sup u (t )
2
t
12
1
G( j ) d
2
G G sup G ( j )
2
2
Relaciones entrada/salida: Considerar un sistema lineal, estable y estrictamente propio con función
de transferencia G(s) y con entrada u y salida y. Si conocemos “cómo de grande” es la entrada, lo
que nos preguntamos es “cómo de grande” será la salida. Es decir, si la información de que
disponemos es ||u||2 o ||u||∞ y queremos estimar cuál será la magnitud de y(t), ||y||2 o ||y||∞, podemos
usar las siguientes relaciones:
u u u (t ) (t ) u(t ) sin(t )
2
y2 G u u G ∞
2 2
y
G 2 u 2
G 1 u
G
G ( j )
3.1.4 Especificaciones
Al diseñar un sistema de control lo que queremos es diseñar compensadores que permitan satisfacer
las especificaciones de régimen permanente, transitorio, márgenes de estabilidad o fijación de polos.
Dicho de otro modo, queremos diseñar sistemas de control que sean estables y presenten buenas
prestaciones como son: el seguimiento con poco error de las señales de consigna, el rechazo de las
perturbaciones y el rechazo del ruido de medida.
Además, nuestro objetivo es conseguir que el sistema funcione en un entorno real. Como este varía
con el tiempo y las condiciones de operación, el sistema deberá ser capaz de soportar estas
variaciones. Y, aunque el entorno no varíe, el sistema deberá ser inmune a la incertidumbre del
modelo de la planta (dinámica no modelada,…)
Así pues:
Objetivo
1) Satisfacer comportamiento nominal
1.1) Estabilidad
1.2) Comportamiento
Tracking
Rechazo perturbaciones d
Rechazo ruido de medida n
2) Mantener el comportamiento a pesar de la incertidumbre comportamiento robusto
La configuración más idónea (por su capacidad de desensibilización) vuelve a ser una vez más la
retroacción de salida:
d(s)
u(s) +
r(s) + e(s) + y(s)
K(s) G(s)
_
H(s)
+
+
n(s)
De r a e: S( s ) I G( s )K ( s )
1
(sensibilidad)
De r a u: R ( s ) K ( s )I G( s )K ( s )
1
De r a y: T( s ) G( s )K ( s )I G( s )K ( s )
1
(sensibilidad complementaria)
T( s ) S( s ) I
Así, interesa que los diagramas de valores singulares de L, S y T tomen las siguientes formas:
i(L) i(T)
i(S)
0 dB 0 dB 0 dB
log log log
3.2 Análisis
Interacción: Una planta MIMO presenta interacción cuando una o algunas de sus salidas dependen
de más de una entrada. Este hecho hace imposible controlar cada una de las salidas de forma
independiente y tampoco permite la aplicación de las herramientas de diseño SISO a dichos
sistemas. Puesto que cada canal de control producirá respuesta en varias salidas de la planta, es
difícil determinar qué acción de control simultánea hay que entrar en todas las entradas de la planta
para tener el comportamiento deseado en todas las salidas.
Por ello el primer paso del diseño en MIMO siempre es eliminar o al menos reducir la interacción.
Así, para cada entrada responderá sólo una salida y podremos aplicar las técnicas SISO para
controlar cada par entrada/salida como si se tratara de lazos independientes.
Métodos de diagonalización: Una planta MIMO sin interacción es diagonal. Los métodos de
desacoplamiento intentan pues diagonalizar la planta o, al menos, conseguir la dominancia diagonal.
Estos dos últimos métodos pueden dar lugar a soluciones poco prácticas ya que los compensadores
calculados teóricamente pueden contener expresiones más complejas que las propias plantas e
incluso irrealizables analógicamente. La implementación digital tampoco soluciona gran cosa
debido a los errores de redondeo, responsables de que el producto matricial no dé la forma diagonal
deseada.
Existen otras alternativas como por ejemplo el uso de la retroacción. Ver el siguiente ejemplo:
g g12 1/ L s R / L 0
G( s ) 11
g 21
g 22 ( s R / L) 2 o2 0 s R / L
0 o L
Demostrar que los lazos de retroacción F diagonalizan la planta
o L 0
+
G(s)
+
+ oL G(s)
oL F
1/ L
0
G d ( s ) I G( s ) F G( s )
1 s R / L
1 / L
0
s R / L
Solución:
1/ L s R / L 0 0 o L
G( s ) 2
F
( s R / L) o 0
2
s R / L o L 0
G d ( s ) I G( s ) F G( s )
1
1 o2 0 s R / L
G( s ) F 2
( s R / L) o 0 s R / L
2
o2
o2 0 s R / L
1 ( s R / L) 2 2
( s R / L) 2 o2
I G( s ) F o
0 s R / L 1
o2
( s R / L) 2 2 ( s R / L) o
2 2
o
0 s R / L
2 2
o2
1
2
2
( s R / L) o ( s R / L) o
2 2
( s R / L) 2
o2 2( s R / L) 2 o2 o2 o4 o2 ( s R / L) 2
2
( s R / L) 2
o2
2
( s R / L) 4 o2 ( s R / L) 2 ( s R / L) 2 ( s R / L) 2 o2 ( s R / L) 2
( s R / L) 2
o2
2
( s R / L) 2
o2
2
( s R / L) 2 o2
( s R / L) 2 0 s R / L
( s R / L) 2 o2 ( s R / L) 2 o2 ( s R / L) 2 o2
I G( s) F1
( s R / L) 2 0 s R / L ( s R / L) 2
( s R / L) 2 2 ( s R / L) 2 o2
o
0
1
I G( s) F1
s R / L
0
1
s R / L
G d ( s ) I G( s ) F G( s )
1
0
1
1/ L s R / L s R / L 0
( s R / L) 2 o2 0 s R / L
1 0
s R / L
o2
s R / L 0
1/ L
s R / L
( s R / L) 2 o2 o2
0 s R / L
s R / L
s R / L 2 o2 1/ L
0 0
1/ L
s R / L s R / L
( s R / L) o
2 2
s R / L o
2 2 1 / L
0 0
s R / L s R / L
Dominancia diagonal. Definición: Una matriz nn, G( s ) g ij ( s ) , es diagonal dominante sobre
un contorno de Nyquist D si para todo “s” del contorno y para todo “i” se satisface:
n
(a) Dominancia por filas: g ii ( s ) g
j 1
ij ( s ) rif ( s ) , con rif (s ) radio de dominancia por filas.
j i
n
(b) Dominancia por columnas: g ii ( s ) g
j 1
ji ( s ) ric ( s ) , con ric (s ) radio de dominancia por
j i
columnas.
Si solo se satisface (a) la matriz G es diagonal dominante por filas y si solo se satisface (b) G es
diagonal dominante por columnas.
Bandas de Gershgorin: Las bandas de Gershgorin asociadas a cada columna (fila) de G(s) se
construyen de la siguiente manera:
1) En un diagrama polar (Nyquist array) se representan cada uno de los elementos aii(s)
evaluados a las frecuencias de interés.
2) Para cada columna (o fila): A las frecuencias de interés (extremos de la banda útil,
algunas frecuencias intermedias,…) se calculan gii(j) y ric(j) (o rif(j)) y se dibujan las
circunferencias de radio ric(j) (o rif(j)) y centro en gii(j). Son los círculos de
Gershgorin.
3) Se trazan las tangentes exteriores a las circunferencias dibujadas. Las bandas resultantes se
denominan bandas de Gershgorin.
4) Se repiten los pasos 2 y 3 hasta tener una banda de Gershgorin asociada a cada columna (o
fila).
Criterio 2: Sea Q(s)=G(s)+H donde H es diagonal y constante. Entonces las matrices Q(s) y G(s)
son diagonal dominantes si las bandas de Gershgorin asociadas a los elementos gii(s) excluyen el
origen y el punto –hi (elemento i-ésimo de la diagonal de H).
Teoremas de Gershgorin:
n
Teorema 1: aii a
j 1
ij rif Dominancia por filas
j i
n
Teorema 2: aii a
j 1
ji ric Dominancia por columnas
j i
Ejemplo 28.
Acotar la región donde están situados los autovalores de
3 1 1
A 1 2 0
0 1 5
La región es:
Si calculamos los autovalores, i 3.31, 1.52, 5.17 , vemos que efectivamente están dentro
de la región.
Criterio 1: El sistema de la Fig. 46 es estable si todos los polos de T(s) están en el semiplano
izquierdo del plano complejo.
N Q( 1 / H ) PQi
número de
número de polos
sentido vueltas
antihorario
Criterio 3: Criterio de Nyquist Restringido. Es una particularización del anterior para el caso en
que Q(s) es estable, PQ 0 . Entonces el sistema en lazo cerrado será estable si y solo si el punto -
i
1
L( s )
donde T( s ) G( s )K ( s ) I G( s )K ( s )H .
Q( s )
F( s )
N det
( 0)
F ( s ) PQ ( s )
i
F ( s ) N fii ( s )
( 0) ( 0)
N det
i
( 0)
Dependiendo de cómo calculemos los N det F ( s ) tenemos dos técnicas vectoriales diferentes: INA
(Inverse Nyquist Array) y DNA (Direct Nyquist Array).
1
Criterio INA. Inverse Nyquist Array: Suponer que invertimos la matriz T( s ) Q( s )F( s ) . El
1 1
resultado es T( s ) F( s )Q( s ) . De ahí podemos sacar dos conclusiones: la primera es que
det T( s ) 1
det F( s ) . Así, el número de vueltas (horarias) del det F( s ) alrededor del origen
det Q( s ) 1
será:
F ( s ) N det T ( s ) 1 N det Q ( s ) 1
( 0) ( 0) ( 0)
N det
T( s ) 1 F( s )Q( s ) 1 I Q( s )HQ( s ) 1 Q( s ) 1 H
1 1
Llamando qij a los elementos de Q-1, tij a los elementos de T-1 y suponiendo H diagonal con
elementos hi, tenemos que tij1 qij1 hi .
1
Si Q-1 es diagonal dominante (es decir, si todas las bandas de Gershgorin de los elementos qii
excluyen el origen) tenemos que
Q ( s )1 N q1
( 0) (0)
N det
ii
i
1
Si T-1 es diagonal dominante (es decir, si todas las bandas de Gershgorin de los elementos qii
excluyen los puntos –hi) tenemos que
T ( s )1 N t 1 N q1
( 0) ( 0) ( hi )
N det
ii ii
i i
Por tanto, el número de vueltas en sentido antihorario de det(F(s)) alrededor del origen será
N det
( 0) ( 0)
F ( s ) N q 1 N q 1
( hi )
ii ii
i
y para que el sistema sea estable deberán ser igual al número de polos inestables en lazo abierto,
PQi ( s ) .
1
Criterio INA: Si las bandas de Gershgorin de qii excluyen el origen y los puntos –hi, entonces el
sistema es estable si y solo si
N
i
( 0)
qii1
N q( 1hi ) PQi
ii
Criterio DNA. Direct Nyquist Array: La matriz diferencia de retorno se puede expresar como
F( s ) I Q( s )H H 1 Q( s ) H . Por tanto, detF( s ) det H 1 Q( s ) detH. Si H es
una matriz constante
F ( s ) N det H 1 Q ( s )
( 0) ( 0)
N det
1
Si H Q( s ) es diagonal dominante (es decir los elementos qii excluyen el punto hi1 )
tendremos que
H1 Q N q h 1 N q
1
( 0) (0) ( hi )
N det
ii i ii
i i
En resumen,
Criterio DNA: Si las bandas de Gershgorin de qii excluyen los puntos hi1 , entonces el sistema
será estable si y solo si
N
i
( hi1 )
qii
PQi
Técnica de los lugares característicos (characteristic loci, CL): Si F(s) no es diagonal dominante
pero sí diagonalizable, podemos aprovechar la propiedad de invarianza de los determinantes frente a
( 0)
las transformaciones de similitud a fin de calcular N det F ( s ) :
Si F es diagonalizable, existe una matriz P tal que Λ P 1FP , siendo Λ una matriz diagonal.
Entonces det( F) det( P) det( Λ ) det( P 1 ) 1 ( s )2 ( s ) n ( s ) , donde los i(s) son los
autovalores de F(s). Por tanto,
F ( s ) N i ( s ) PL
( 0) ( 0) i
N det
i
N
i
( 0)
i ( F ( s ))
N (i(1L) ( s )) PLi ( s )
i
Márgenes de estabilidad en un sistema MIMO. Márgenes garantizados: Una vez visto que el
sistema es estable, es interesante obtener sus márgenes de ganancia y fase para ver si está cerca o
lejos de la inestabilidad. Hay cuatro márgenes de estabilidad clásicos: margen (de aumento) de
ganancia MG, margen de reducción de ganancia MRG, margen de fase (positivo) MF y margen de
fase negativo (MFN).
|L(j dB MG
L(j
MRG
0 dB
MG log
-1 MFN
0º MF
log
MF
-180º
MFN
MRG
Entre todos miden cuanto ha de aumentarse (o reducirse) la ganancia del lazo L(j) para que valga
|L(j)|=1 y cuánto ha de aumentar (o disminuir) la fase para que el argumento del lazo sea ∠L(j)=-
180º. En definitiva, miden cuánto le falta al lazo para valer L(j)=-1 (punto de oscilación crítica).
Márgenes garantizados: Los márgenes de estabilidad MIMO han de ser capaces de representar la
inmunidad de la estabilidad del sistema frente a variaciones de la ganancia y la fase en todos los
lazos simultáneamente.
1
MG MF 2 arcsin
1 2
Este apartado está basado en el Capítulo 10 de (Dutton, 97). Para más detalles, se recomienda su
consulta.
Método: Si la inversa de G(s) existe, podemos poner un precompensador Kp=G-1(s) tal que en
cascada con G(s) lo que consigue es la matriz identidad, K p ( s )G( s ) G 1 ( s )G( s ) I . Con ello
ya hemos diagonalizado la planta (y hemos eliminado de paso toda la dinámica).
Puesto que ahora no tenemos dinámica hay que poner otro controlador dinámico Kd(s) en cascada
con los polos y ceros necesarios para tener la dinámica global deseada.
1
El controlador total será, pues, K ( s ) K p ( s )K d ( s ) G ( s )K d ( s ) .
K(s)
r(s) + e(s) u(s) y(s)
/ Kd(s) Kp(s) / G(s
n n
_
/
n
Fig. 49
Comentarios: En la práctica este método no se usa mucho por los siguientes motivos:
Puede ser que no exista la inversa de la planta. Si existe la inversa, puede ser que el
compensador no sea realizable (impropio). Aunque es posible compensar este exceso de
ceros con el compensador dinámico ello no es aconsejable en plantas de orden elevado.
Si la planta tiene ceros de fase no mínima su inversa es inestable.
El orden del compensador siempre será elevado (contiene la inversa de la planta y la
dinámica deseada para todo el sistema). Los controladores de orden grande son difíciles de
implementar y menos robustos que los de bajo orden.
No es posible la cancelación exacta de la planta puesto que el modelo siempre es inexacto.
Si no se cancela exactamente puede volver a aparecer interacción.
Falta por analizar la estabilidad de este esquema de control (y no es obvia).
Ejemplos:
Ejemplo 29. Planta neumática . Control por inversión de planta (Dutton). Considerar la
planta neumática
1.02 0.52
g g12 11.76s 1 10.1s 1
G( s ) 11
g 21 g 22 0.54 1.04
10.4 s 1 2.6s 1
Se desea que cada lazo se comporte como un sistema de segundo orden con n=1rad/s y =0.5 (esto
es, tiempo de subida 10-90 de 1.6s y overshoot del 15%).
Calcular el controlador MIMO y verificar su comportamiento.
Solución:
kn ( s )
El compensador dinámico Kd(s) será diagonal, con k11 ( s ) k 22 ( s ) . La función de
kd ( s )
transferencia en lazo cerrado para cada par entrada salida (u1,y1) y (u2,y2) es
Yi k ( s) 1 kn( s )
ii
U i 1 kii ( s ) 1 kd ( s ) kn ( s )
Yi n2 n2
Puesto que se desea basta con seleccionar kii ( s ) 2 . Así,
U i s 2 2n s n2 s 2n s
1
s( s 1) 0
K d (s)
0 1
s( s 1)
%compensador dinàmic
k11=tf(1,[1 1 0]);Kd=[k11 0;0 k11],
K ( s ) K p ( s )K d ( s )
1 1 12.49s 3 3.5s 2 0.33s 0.01 1.622s 3 0.92 s 2 0.13s 0.005
s( s 1) 1.61s 3 0.91s 2 0.12s 0.005 2.71s 3 1.57s 2 0.23s 0.0099
%controlador total
K=Kp*Kd;
Respuesta indicial a cada una de las entradas (el esfuerzo de control u1 es excesivo):
Control por inversión. Respuesta a r1=escalón
10
y1
y2
5 u1
u2
0
0 5 10 15 20 25 30
0 u2
-1
0 5 10 15 20 25 30
%anàlisi
L=G*K;
T=feedback(L,eye(2));
Tu=feedback(K,G);
t=linspace(0,30,500);r=ones(length(t),1);
figure,
subplot(211),y=lsim(T,[r r*0],t);u=lsim(Tu,[r r*0],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por inversión. Respuesta a r_1=escalón')
subplot(212),y=lsim(T,[r*0 r],t);u=lsim(Tu,[r*0 r],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por inversión. Respuesta a r_2=escalón')
g g12 1/ L s R / L 0
G( s ) 11 2
g 21
g 22 ( s R / L) o 0
2
s R / L
Se desea que cada lazo se comporte como un sistema de segundo orden con un tiempo de
establecimiento de 10ms y un overshoot del 5%.
Solución:
Para eliminar la interacción se sitúa un precompensador igual a la inversa de la planta. Luego, para
tener un overshoot del 5% se selecciona =0.7 y para, además, tener un tiempo de establecimiento
4 40
ts 0.01s se selecciona n 57.1429 . Por tanto el compensador dinámico es:
n
3.265 105
s( s 800) 0
K d ( s)
3.265 105
0
s( s 800)
La respuesta indicial a cada una de las entradas del sistema controlado es:
Control por inversión. Respuesta a r1=escalón
2
y1
1 y2
u1
0 u2
-1
0 0.02 0.04 0.06 0.08 0.1
-1 u2
-2
0 0.02 0.04 0.06 0.08 0.1
%anàlisi
L=G*K;
T=feedback(L,eye(2));
Tu=feedback(K,G);
t=linspace(0,0.5,500);r=ones(length(t),1);
figure,
subplot(211),y=lsim(T,[r r*0],t);u=lsim(Tu,[r r*0],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por inversión. Respuesta a r_1=escalón')
subplot(212),y=lsim(T,[r*0 r],t);u=lsim(Tu,[r*0 r],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por inversión. Respuesta a r_2=escalón')
1.6 105
s( s 800) 0
K d ( s)
1.6 105
0
s( s 800)
1 1 (544s 4608) 1.709 105
K ( s ) G ( s )K d ( s )
s( s 800) 1.709 105 (544s 4608)
-1
0 0.02 0.04 0.06 0.08 0.1
-1 u2
-2
0 0.02 0.04 0.06 0.08 0.1
Las columnas de la matriz modal W(s) son los autovectores de Q(s) y, al ser una transformación de
similaridad, los autovalores qi(s) de Q(s) coinciden con los de (s).
El camino directo Q(s) puede interpretarse como la transformación modal inversa aplicada a una
matriz diagonal, es decir,
q1(s)
r(s) + e(s) . y(s)
/ W-1(s) . W(s)
n .
_
qn(s)
/
n
Puesto que así no hay interacción entre los qi(s), el comportamiento dinámico de estos bloques por
sí solo es suficiente para determinar la estabilidad del sistema entero.
Se puede demostrar (Owens, 1978) que el sistema en lazo cerrado de la Fig. 51 (con retroacción
unitaria) es equivalente al siguiente sistema H(s),
h1(s)
r(s) . y(s)
W-1(s) . W(s)
.
hn(s)
En la Fig. 52 la interacción está en W y W-1. Si W fuera diagonal (W-1 también lo sería) no habría
interacción. W contiene los autovectores de Q=GK, por tanto, se trata de diseñar K de manera que
W sea diagonal. Pero es difícil: (1) W varía con la frecuencia y (2) en un producto de matrices, no
se conoce la relación entre los autovectores del producto de matrices con los autovectores de cada
una de las matrices que forman el producto. Por tanto hay que conformarse con aproximaciones:
Método de los lugares característicos: Se divide el rango frecuencial de interés en tres bandas (en
relación con la dinámica del sistema): bajas frecuencias, frecuencias intermedias y altas frecuencias
y se diseñan compensadores para cada una de las bandas
Un método para diseñar este controlador es usar la alineación de autovalores (Edmunds and
Kouvaritakis, 1979). Se trata de un algoritmo que alinea los autovectores de una matriz con los
vectores de la base que forman el espacio vectorial donde se hallan estos autovectores. En nuestro
caso, resulta que si los autovectores qi(s) tienen el mismo orden (es decir, la fase final de todos es la
misma) la aplicación de este algoritmo consigue que los autovectores qi(s) se alineen a altas
frecuencias.
Para ello se puede usar la función de matlab “align” pero hay que ir con cuidado. Al trabajar con
autovectores, sólo trabaja con direcciones y no con información de escala. Por ello, el compensador
obtenido tiene un signo arbitrario con lo que hay que investigar los lugares característicos
resultantes y, si éstos no dan lugar a un sistema estable, hay que cambiar el signo del compensador.
Otra utilidad es la medida del ángulo de desalineación (función de matlab “fmisalg”) que calcula los
ángulos que miden la desalineación entre los autovectores del sistema y el conjunto de vectores que
forman la base. De todos modos que estos ángulos sean pequeños es una condición suficiente de
baja interacción pero no necesaria.
Paso 2: Frecuencias intermedias. Aquí se diseña un compensador Kacc con la estructura mostrada
en la Fig. 53. Las matrices A y B son aproximaciones constantes de las matrices W y W-1
respectivamente siendo W, W-1 las matrices modales que diagonalizan Q(s)=G(s)Ka. (Nota: no
confundir A, B con las matrices de estado). Igual que antes A, B se obtienen constantes a una única
frecuencia pero se espera que su efecto se deje notar en una banda de frecuencias a lado y lado de
esta frecuencia de diseño.
k1(s) Kacc(s)
r(s) + e(s) . u(s) y(s)
/ B . A Ka(s) / G(s)
n . n
_
kn(s)
/
n
K acc ( s )
Q (s)
W ( s ) diagk1 ( s ),..., k n ( s ) W ( s ) W( s ) diagq1 ( s ),..., qn ( s ) W 1 ( s )
1
(De todas formas, en la práctica no conviene poner Kaac después de la planta, ni ningún otro post-
compensador, dado que ello desordena las salidas).
Puesto que A y B han reducido el problema a un conjunto de lazos SISO independientes, las
funciones de transferencia ki(s) se diseñan con técnicas SISO para cada uno de los lazos y el
objetivo es igualar los qi(s) a frecuencias intermedias, esto es, conseguir que todos los qi(s) tengan la
misma fase y ganancia a frecuencias intermedias sin estropear la compensación a altas frecuencias.
Los valores característicos compensados serán qi(s)ki(s). Para no estropear el desacoplo a altas
frecuencias se usan filtros que tengan 0dB a altas frecuencias (en este sentido los filtros de avance-
retardo son adecuados).
Paso 3: Bajas frecuencias: Aquí el compensador puede ser una matriz de ganancias (para equilibrar
los lugares en régimen permanente). Pero lo más habitual es que sea una matriz de compensadores
PI (la acción integral para tener buen seguimiento y el cero para conseguir 0dB a altas frecuencias y
así no estropear lo conseguido a frecuencias intermedias y altas frecuencias). A veces es necesario
incluir también uno o más compensadores conmutativos aproximados (sería el caso de encontrarse
con que los PIs deben ser distintos en cada lazo).
La idea del método es manipular los lugares característicos como si fueran diagramas de
Nyquist y/o de Bode de sistemas SISO ordinarios (Ford et al., 1990).
La herramienta básica es el controlador conmutativo aproximado.
Las propiedades que deben satisfacer los lugares característicos del sistema compensado son
las siguientes:
1. Deben satisfacer el criterio de estabilidad generalizado de Nyquist y tener márgenes de
estabilidad adecuados.
2. Las ganancias (módulos) a bajas frecuencias deben ser elevadas a fin de reducir la
interacción y la sensibilidad y mejorar el seguimiento.
Además, a fin de reducir la interacción es deseable desacoplar el sistema en las frecuencias
cercanas al crossover de 0dB.
Los lugares característicos pueden llevar a error si se usan para estudiar los márgenes de
estabilidad y el comportamiento. Por ello es necesario hacer un análisis usando valores
singulares.
Ejemplos:
Ejemplo 31. Planta neumática . Control vía lugares característicos (Dutton). Considerar la
planta neumática
1.02 0.52
g g12 11.76s 1 10.1s 1
G( s ) 11
g 21 g 22 0.54 1.04
10.4 s 1 2.6s 1
Se desea que cada lazo se comporte como un sistema de segundo orden con n=1rad/s y =0.5 (esto
es, tiempo de subida 10-90 de 1.6s y overshoot del 15%). Usar el método de los lugares
característicos para calcular el controlador MIMO y verificar el comportamiento.
Solución:
G12=tf(-0.52,[10.1 1]);
G21=tf(-0.54,[10.4 1]);
G22=tf(1.04,[2.6 1]);
G=[G11 G12;G21 G22];
[a,b,c,d]=ssdata(G);
%respuesta frecuencial
w=logspace(-2,2);
Gw=mv2fr(a,b,c,d,w);
%autovalores
cl=feig(w,Gw);
%cl=csort(cl);
figure
subplot(211),semilogx(w,20*log10(abs(cl))),grid,ylabel('dB'),
title('Lugares característicos de la planta neumática')
subplot(212),semilogx(w,angle(cl)*180/pi),grid,ylabel('grados')
xlabel('Frecuencia (rad/s)')
ma=fmisalg(w,Gw);
figure,
semilogx(w,ma),grid,xlabel('Frecuencia (rad/s)')
title('Ángulos de desalineamiento'),ylabel('grados')
-40
35
-60
30
-80
-2 -1 0 1 2
10 10 10 10 10
25
0
20
-20
grados
-40 15
-60
10
-80
-100 5
-2 -1 0 1 2 -2 -1 0 1 2
10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
Vemos que:
La planta presenta unos márgenes de estabilidad muy buenos.
Es probable que haya interacción en lazo cerrado puesto que los dos valores característicos
no coinciden a ninguna frecuencia. Ello también puede verse con los ángulos que miden la
desalineación (entre los autovectores del sistema y el conjunto de vectores que forman la
base). De todos modos que estos ángulos sean pequeños es una condición suficiente de
baja interacción pero no necesaria.
Compensación (desacoplo) a altas frecuencias: A altas frecuencias, más allá de 4rad/s en nuestro
caso, los diagramas de magnitud de los autovalores son paralelos. Si somos capaces de alinear los
autovalores a 4rad/s es de esperar que la alineación se mantenga a partir de 4rad/s. El
precompensador necesario para conseguirlo (obtenido con align.m) es:
49.8761 6.4614
Ka
6.4827 10.8861
Gwa=fmul(w,Gw,Ka);cla=feig(w,Gwa);cla=csort(cla);
figure
subplot(211),semilogx(w,20*log10(abs(cla))),grid,ylabel('dB'),
title('Lugares característicos. Alineamiento a \omega>4rad/s')
subplot(212),semilogx(w,angle(cla)*180/pi),grid,ylabel('grados')
xlabel('Frecuencia (rad/s)')
maa=fmisalg(w,Gwa);
figure,
semilogx(w,maa),grid,xlabel('Frecuencia (rad/s)'),ylabel('grados')
title('Ángulos de desalineamiento. Alineamiento a \omega>4rad/s'),
20
30
dB
-20 25
-40 20
-2 -1 0 1 2
grados
10 10 10 10 10
0 15
-20
10
-40
grados
-60
5
-80
-100 0
-2 -1 0 1 2 -2 -1 0 1 2
10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
Este controlador consiste en dos matrices A y B que son aproximaciones (constantes) de las
matrices W(s) y W-1(s) de la transformación modal que diagonaliza el camino directo. Además,
entre las dos matrices, se incluye un compensador diagonal con el objetivo de alinear los
autovalores del camino directo.
En nuestro ejemplo, para diseñar la parte dinámica del ACC notar que aún hay desalineación por
debajo de 2rad/s. Como lo habitual es hacer el diseño para tener ganancias altas a bajas frecuencias
(para tener errores pequeños en régimen permanente), lo que se puede hacer es dejar el autovalor
mayor tal y como está y conseguir que el autovalor menor se alinee con el mayor.
Suponiendo que la planta precompensada por Ka es diagonal esto corresponde a diseñar dos
compensadores independientes k11(s) y k22(s) siendo k11(s)=1 y k22(s) un controlador tal que tenga
una ganancia en continua de 15dB, valga 0dB a 2rad/s y reduzca la fase del segundo autovalor para
alinearla con la del primero.
Una buena opción para k22 es un compensador de retardo (con una caída de 15 dB entre su polo y su
cero). El cero (frecuencia codo superior) lo pondremos a la frecuencia a la que la diferencia entre
los dos autovalores es 3dB. Esta frecuencia resulta ser 0.43rad/s, por tanto,
s 0.4292 k ( s ) 0
k 22 ( s ) , K d ( s ) 11
s 0.0763 0 k 22 ( s )
%compensación a FI
k1n=[1 0];k1d=[1 0];%k1=1
%filtro de retardo
dif_guany=20*log10(abs(cla(:,1)))-20*log10(abs(cla(:,2)));
inx=find(dif_guany<=3);inx=inx(1);w(inx),%w=0.3765 inx=40
[k2n,k2d]=phlag(-15,w(inx))
% numeradors i denominadors dels llaços
nums=[k1n;k2n];
dens=[k1d;k2d];
Ahora hay que elegir a qué frecuencia se obtendrán las matrices constantes A y B que aproximan
W(s) y W-1(s). Si se usa un compensador de avance-retardo, lo mejor es situarlo a la frecuencia
donde la diferencia de fases de los dos autovalores es mayor. Este punto es 0.1677rad/s y ahí la
diferencia de fases es de 45º.
1.1559 0.0122
B 1
0.5668 1.0064
% disenyem ACC com [ka,kb,kc,kd]):
[ka,kb,kc,kd,B,A]=facc(w,Gwa,inx,nums,dens);A,B,Ainv=inv(A)
Kacc=ss(ka,kb,kc,kd);zpk(Kacc)
Los lugares característicos correspondientes a Q(s) = G(s) Ka Kacc son los siguientes
%anàlisi
Kaccw=mv2fr(ka,kb,kc,kd,w);
Qw=fmulf(w,Gwa,Kaccw);
clq=feig(w,Qw);%clq=csort(clq);
figure
subplot(211),semilogx(w,20*log10(abs(clq))),grid,ylabel('dB'),
title('Lugares característicos. Compensación a AF y FI')
subplot(212),semilogx(w,angle(clq)*180/pi),grid,ylabel('grados')
xlabel('Frecuencia (rad/s)')
maa=fmisalg(w,Qw);
figure,
semilogx(w,maa),grid,xlabel('Frecuencia (rad/s)'),ylabel('grados')
title('Ángulos de desalineamiento. Compensación a AF y FI')
20
35
dB
0
30
-20
25
-40
-2 -1 0 1 2
grados
10 10 10 10 10
20
0
15
-20
-40
grados
10
-60
5
-80
-100 0
-2 -1 0 1 2 -2 -1 0 1 2
10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
Viendo que en el lugar característico tenemos un polo en 0.1rad/s, lo que podemos hacer es añadir
ahí un cero y así tendremos una pendiente constante. Para el compensador
s 0.1
0
K b ( s) s
s 0.1
0
s
0 30
-20
25
-40
-2 -1 0 1 2
grados
10 10 10 10 10
20
-90
15
-92
grados
10
-94 5
-96 0
-2 -1 0 1 2 -2 -1 0 1 2
10 10 10 10 10 10 10 10 10 10
Frecuencia (rad/s) Frecuencia (rad/s)
%compensación a bajas
kpi=tf([1 0.1],[1 0]);Kb=[kpi 0;0 kpi];
[ab,bb,cb,db]=ssdata(Kb);
Kbw=mv2fr(ab,bb,cb,db,w);
Qbw=fmulf(w,Qw,Kbw);clqb=feig(w,Qbw);
figure
subplot(211),semilogx(w,20*log10(abs(clqb))),grid,ylabel('dB'),
title('Lugares característicos. Compensación a AF, FI y BF')
subplot(212),semilogx(w,angle(clqb)*180/pi),grid,ylabel('grados')
xlabel('Frecuencia (rad/s)')
maab=fmisalg(w,Qbw);
figure,
semilogx(w,maab),grid,xlabel('Frecuencia (rad/s)'),ylabel('grados')
title('Ángulos de desalineamiento. Compensación a AF, FI y BF')
Sin embargo este diseño aún no nos convence puesto que el esfuerzo de control es excesivo y puede
llevar el sistema a la saturación:
Control por lugares característicos. Respuesta a 1r=escalón
60
y1
40 y2
u1
20 u2
0
0 1 2 3 4 5 6
0 u2
-5
0 1 2 3 4 5 6
%anàlisi temporal
Ktotal=Kb*Kacc*Ka;
L=G*Ktotal;
T=feedback(L,eye(2));
Tu=feedback(Ktotal,G);
t=linspace(0,6,500);r=ones(length(t),1);
figure,
subplot(211),y=lsim(T,[r r*0],t);u=lsim(Tu,[r r*0],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_1=escalón')
subplot(212),y=lsim(T,[r*0 r],t);u=lsim(Tu,[r*0 r],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_2=escalón')
Para resolver este problema hay que reducir la ganancia. Por ejemplo, con
0.18 0
K1
0 0.8
Notar que la ganancia es diferente en cada lazo (ello puede hacer aparecer de nuevo la interacción
por lo que se podría poner otro ACC para aislar el efecto de este compensador constante)
0
0 1 2 3 4 5 6
-5
0 1 2 3 4 5 6
figure,
subplot(211),y=lsim(T,[r r*0],t);u=lsim(Tu,[r r*0],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_1=escalón')
subplot(212),y=lsim(T,[r*0 r],t);u=lsim(Tu,[r*0 r],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_2=escalón')
Ahora el problema es que el lazo 1 es demasiado lento. Como las especificaciones nos dejan tener
un overshoot de hasta el 15% lo que podemos hacer es cambiar la posición del cero del PI (ponerlo
en -0.5 en vez de -0.1) para dejar que la respuesta oscile un poco y así sea más rápida. (O si no, se
puede poner otro tipo de compensador y añadir otro ACC). El nuevo compensador es
s 0.5
0
K b ( s) s
s 0.5
0
s
figure,
subplot(211),y=lsim(T,[r r*0],t);u=lsim(Tu,[r r*0],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_1=escalón')
subplot(212),y=lsim(T,[r*0 r],t);u=lsim(Tu,[r*0 r],t);
plot(t,y,t,u,'--'),grid,legend('y_1','y_2','u_1','u_2')
title('Control por lugares característicos. Respuesta a r_2=escalón')
-5
0 1 2 3 4 5 6
-5
0 1 2 3 4 5 6
1 g11 ( s ) g12 ( s )
G( s )
( s ) g 21 ( s ) g 22 ( s )
donde
( s ) ( s 17.66) ( s 10.75) ( s 10) ( s 1.667) ( s 1.042) ( s 0.2345)
( s 2 0.6983s 40.37) ( s 2 58.93s 9.942 104 )
g11 ( s ) 1.4211 10 13 ( s 1.801 107 ) ( s 1.801 107 ) ( s 17.73) ( s 10.97) ( s 10)
( s 1.229) ( s 0.3608) ( s 2 58.9 s 9.942 104 )
g 21 ( s ) 1.1369 10 13 ( s 691.6) ( s 709.9) ( s 21.98) ( s 7.844) ( s 10)
( s 2 1.111s 1.414) ( s 2 1083s 1.019 1013 )
g12 ( s ) 4.4054 10 13 ( s 3.569 105 ) ( s 36.24) ( s 10.81) ( s 1.667) ( s 1.188)
( s 2 39.46s 1.168 105 ) ( s 2 3.573 105 s 1.275 1011 )
g 22 ( s ) 1.8474 10 13 ( s 4.423 1015 ) ( s 36.24) ( s 10.71) ( s 1.667)
( s 0.9289) ( s 2 0.7667s 43.88) ( s 2 29.7 s 9.553 10 4 )
0 1 0 0 0 0 0 0 0 0
0 .11323 .98109 11.847 11.847 63.080 34.339 34.339 27.645 0
324.121 1.1755 29.101 0.12722 2.83448 967.73 678.14 678.14 0 129.29
127.30 0.46176 11.4294 1.0379 13.1237 380.079 266.341 266.341 0 1054.85
186.05 0.67475 16.7045 0.86092 17.068 555.502 389.268 389.268 0 874.92
A
341.917 1.09173 1052.75 756.465 756.465 29.774 0.16507 3.27626 0 0
30.748 .9817 94.674 68.029 68.029 2.67753 2.6558 4.88497 0 0
302.36 .96543 930.96 668.95 668.95 26.3292 2.42028 9.5603 0 0
0 0 0 0 0 0 0 0 1.6667 0
0 10
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1.6667 0
BT
0 0 0 0 0 0 0 0 0 10
1 0 0 0 0 0 0 0 0 0
C
.49134 0 .63203 0 0 .20743 0 0 0 0
0 0
D
0 0
Se pide:
Analizar los polos y ceros de transmisión de la planta.
Obtener un controlador por el método CL y estudiar su estabilidad
Solución:
Introducimos la planta:
Polos: Los polos del sistema son -29.463±j313.94, -17.664, -10.746, -0.3417±j6.3443, -1.0421, -
1.0421, -0.23446, -1.6667 y -10. Hay un par de polos muy resonantes a 6.34rad/s. Puesto que no
tiene polos en el semiplano derecho es estable. Para tener estabilidad en lazo cerrado bastará que
los lugares característicos no circunden en sentido anti-horario el punto -1+j0.
Ceros de transmisión: Están a -14.837±j308.73, -11.064, -1.2548 y -36.244. Puesto que todos son
de fase mínima ello indica que cualquier ancho de banda en lazo cerrado puede ser alcanzado (en la
práctica, las restricciones de ganancia y amplificación del ruido limitarán el ancho de banda).
Diagramas de Bode: Los elementos de la segunda columna son mayores que los de la primera (más
de dos órdenes de magnitud de diferencia). Es debido a las unidades tomadas al construir el
modelo.
G11 G12
50 100
50
0
MAG dB
MAG dB
0
-50
-50
-100 -100
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
G21 G22
0 100
-50 50
MAG dB
MAG dB
-100 0
-150 -50
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Pero no es más que un factor de escala que podemos corregir con el siguiente precompensador:
1 0
K1
0 0.01
La siguiente figura muestra los diagramas de Bode de la respuesta frecuencial de G(s)K1 (notar el
escalado):
Q11 Q12
50 50
0
0
MAG dB
MAG dB
-50
-50
-100
-100 -150
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Q21 Q22
0 50
-50 0
MAG dB
MAG dB
-100 -50
-150 -100
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Y en las siguientes se muestran los diagramas de Bode y el diagrama polar de los valores
característicos de G(s)K1:
Lugares característicos de G(s)K1
Lugares característicos de G(s)K1
50 1.5
0 1
MAG dB
0.5
-50
0
-100
-2 -1 0 1 2 -0.5
10 10 10 10 10
IMAG
FREQUENCY -1
200
-1.5
100
-2
PHASE
0
-2.5
-100
-3
-200
-2 -1 0 1 2 -3.5
10 10 10 10 10 -1 0 1 2 3 4 5 6 7
FREQUENCY REAL
%lugares característicos
av=feig(w,Qw);%av=csort(av);
figure,plotnyq(av),title('Lugares característicos de G(s)K_1'),
figure,plotbode(w,av),subplot(211),
title('Lugares característicos de G(s)K_1'),
558.7854 1.3865
K2
0.9192 90.8402
Q=Q*K2;Qw=fmul(w,Qw,K2);
av=feig(w,Qw);%av=csort(av);
figure,plotnyq(av),title('Lugares característicos de G(s)K_1K_2'),
figure,plotbode(w,av),subplot(211),
title('Lugares característicos de G(s)K_1K_2'),
50
MAG dB
600
0
400
-50
-2 -1 0 1 2
10 10 10 10 10
IMAG
200 FREQUENCY
200
0
100
PHASE
-200 0
-100
-400 -2 -1 0 1 2
-1500 -1000 -500 0 500 1000 10 10 10 10 10
REAL FREQUENCY
Para poder alcanzar mejor la estabilidad en lazo cerrado, multiplicaremos ambos canales por -1.
Así los autovalores empezarán en el eje real positivo y será más fácil estudiar la estabilidad. Por
otro lado, rebajaremos la ganancia (K2 había introducido mucha ganancia a fin de “invertir” el
camino directo a =30rad/s y conseguir que a esa frecuencia valiera 0dB).
0.01 0
km
0 0.01
MAG dB
2
-50
0
-100
-2 -1 0 1 2
10 10 10 10 10
IMAG
-2 FREQUENCY
-4
-100
PHASE
-6 -200
-300
-8 -2 -1 0 1 2
-10 -5 0 5 10 15 10 10 10 10 10
REAL FREQUENCY
Vemos que uno de los autovalores engloba al punto -1. Esto es debido principalmente al desfase
que introduce la resonancia.
Podemos investigar lo bien que ha funcionado el desacoplo aproximado y ver qué dominancia
diagonal tenemos ahora. Esto puede hacerse estudiando el Bode, las bandas de Gershgorin o el
desalineamiento entre las direcciones características (autovectores) y los vectores estándar de la
base. Ambos ángulos de desalineamiento son pequeños a partir de 10rad/s.
50
40
grados
30
20
10
0
-2 -1 0 1 2
10 10 10 10 10
Frecuencia (rad/s)
Los autovalores del camino directo a 6.34rad/s son: -8.9531-j2.0801 y -0.1157-j0.1437. Vemos
que el primer lugar característico queda a la izquierda del punto crítico -1. Por tanto es
principalmente éste el que tiene que ser compensado.
El punto -1 es englobado por el desfase debido a la resonancia del primer autovalor. Por tanto
conformaremos dicho lugar con ayuda de un filtro notch situado en el lugar de la resonancia.
Puesto que la resonancia corresponde al par de polos complejos conjugados de la planta -
0.3492±j6.3443 lo que haremos será poner como numerador a estos polos y como denominador
(para que sea realizable) a dos polos lejanos.
Aquí la ganancia va desde -21.8dB a 0dB. Luego, además, añadiremos fase a ambos lugares. Estos
filtros de avance se diseñarán para equilibrar las ganancias de los lugares y dar una frecuencia de
crossover de 10rad/s. Los filtros de avance para el lugar 1 y para el lugar 2 son respectivamente:
MAG dB
2
-50
0
-100
-2 -1 0 1 2
10 10 10 10 10
IMAG
-2 FREQUENCY
100
-4 0
PHASE
-100
-6
-200
-300
-8 -2 -1 0 1 2
-10 -5 0 5 10 10 10 10 10 10
REAL FREQUENCY
I/s B Kd A
Kbf
con Kd diagonal. Éste sirve para equilibrar los lugares a 0.01 y el parámetro se escoge para que la
transición de bajas a altas de Kb,acc sea adecuada. En concreto, interesa que Kb,acc(j6.34)=I.
K b,acc ( s ) K bf (0.01) I
s
Ahora no se usará la función facc para el diseño. Lo haremos a mano (con align aproximaremos los
autovectores y su inversa).
La frecuencia de diseño será 0.01rad/s. Los autovectores y autovalores a dicha frecuencia son:
%compensación a bajas
%la primera frecuencia es 0.01
Qw1=fgetf(w,Qw,1);
[autovect,av1]=eig(Qw1),
avect =
0.9212 0.1562 + 0.0020i
-0.3890 + 0.0090i 0.9877
av =
8.0292 - 0.2021i 0
0 0.3610 + 0.0084i
A =
0.9211 0.1562
-0.3890 0.9877
B =
1.0175 -0.1609
0.4007 0.9490
kd =
0.1245 0
0 2.7690
Así Kbf=A·Kd·B es
Kbf =
0.2900 0.3920
1.0467 2.6035
El controlador de bajas final será K b,acc ( s )
s
K bf (0.01) I
1
s
K bf (0.01) sI.
Puesto que A y B son la inversa aproximada una de otra, las frecuencias codo del numerador serán
kd(1,1) y kd(2,2). En general, deberían valer unos 6.34/10 a fin de asegurar que no se estropea
la compensación previa. Pero como tenemos unos márgenes de estabilidad muy buenos podemos
empujarlas hasta 6.34 a fin de conseguir toda la ganancia a bajas que podamos.
Así:
%cálculo de alfa
alpha = 6.34/max(max(kd))
Kbf=alpha*Kbf,
alpha = 6.34/max(max(kd))
alpha =
2.2897
Kbf=alpha*Kbf,
Kbf =
0.6641 0.8976
2.3966 5.9610
nklow =
1.0000 0.6641 0 0.8976
0 2.3966 1.0000 5.9610
dklow =
1 0
1 s 0.6641 0.8976
K bf ( s )
s 2.3966 s 5.9610
MAG dB
0
-50
-50
-100
-2 -1 0 1 2
10 10 10 10 10
IMAG
-100 FREQUENCY
-150
-100
PHASE
-200 -200
-300
-250 -2 -1 0 1 2
-10 -5 0 5 10 10 10 10 10
REAL FREQUENCY
figure,plotnyq(av),
title('Lugares característicos compesados a AF, FI y BF'),
figure,plotbode(w,av),subplot(211),
title('Lugares característicos compesados a AF, FI y BF'),
Retocamos ahora la ganancia para tener un ancho de banda de 20rad/s (multiplicamos por 3 cada
canal)
-100 0
-50
-200
-100
-2 -1 0 1 2
IMAG
10 10 10 10 10
-300
FREQUENCY
-400 0
-100
PHASE
-500
-200
-600
-300
-700 -2 -1 0 1 2
-30 -25 -20 -15 -10 -5 0 5 10 15 10 10 10 10 10
REAL FREQUENCY
Para analizar la estabilidad representamos los círculos de 1dB y 2dB en el diagrama polar de los
lugares. Por lo que parece el sistema es bastante estable.
4 7.923
3 8.374
2 9.015
1 10.35
IMAG
16.11
0
26.76
-1
11.46
-2
6.774
-3 4.728
-4 3.553
-5 2.795
-10 -8 -6 -4 -2 0 2
REAL
Pero es conveniente (y mejor) representar también los valores singulares en lazo abierto
%valores singulares
sv=fsvd(w,Qw);
figure,plotdb(w,[sv,av]),
title('Autovalores y valores singulares (diseño final)'),
40
20
0
MAG dB
-20
-40
-60
-80
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
Ahora analizamos el lazo cerrado. Hay una fuerte interacción oscilatoria desde la segunda entrada
hacia la primera salida cerca de la resonancia a 6rad/s y una interacción del 10% en las frecuencias
inferiores a ésta.
[1,1] [1,2]
20 0
MAG dB
MAG dB
-20 -50
-40
-60 -100
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
[2,1] [2,2]
0 0
-10
MAG dB
MAG dB
-50
-20
-100 -30
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Los valores singulares del lazo cerrado indican que está garantizada la estabilidad para el caso de
perturbaciones de salida no estructuradas multiplicativas cuya norma sea inferior a:
margen_estab = 1/max(max(svc))
margen_estab =
0.8756
Valores singulares del lazo cerrado (diseño final)
10
-10
-20
MAG dB
-30
-40
-50
-60
-70
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
Concepto:
Este método es muy útil porque una simple inspección del autovalor de P-F nos dice si es posible o
no hacer al sistema diagonal dominante a una frecuencia determinada usando un compensador
diagonal. Si es posible, la inspección de un autovector de P-F asociado nos ayuda a diseñar dicho
compensador diagonal.
Método:
Los detalles del método están en (Maciejowski, 1989) o Munro (en (O’Reilly, 1987), Ch. 13). El
resumen del método es el siguiente:
2) Ver a qué frecuencias está por debajo de 2 (por debajo de 6dB). Ésas son las frecuencias a
las que un precompensador puramente diagonal puede conseguir la dominancia diagonal
por columnas en el INA. Cuánto más por debajo de 6dB esté, mejores serán las
propiedades de dominancia diagonal conseguidas. Y cuanto más cerca de 6dB esté, más
difícil será conseguir la dominancia diagonal.
3) Calcular los autovectores de P-F. Se puede demostrar (ver p. ej., (Maciejowski, 1989)) que
la respuesta frecuencial de los elementos del pre-compensador que alcanza la dominancia
diagonal en el INA coincide con la del autovector de P-F por la izquierda. Así, basta con
representar los autovectores en un diagrama de Bode y obtener las funciones de
transferencia que se ajusten. Los autovectores por la derecha servirían para calcular un
post-compensador (o bien un pre-compensador para un array de Nyquist directo, DNA).
Los autovectores sólo fijan una dirección y son correctos para cualquier escalado. Por
tanto, a fin de reducir el número de compensadores dinámicos a diseñar, lo que se puede
hacer es fijar uno de sus elementos a una constante a lo largo de la frecuencia. Por ejemplo,
lo habitual es forzar a que el primer elemento del autovector por la izquierda valga 1 a todas
las frecuencias.
Para ajustar el resto de elementos suele bastar con un compensador de avance-retardo pero,
si es necesario, pueden ponerse varios avance-retardo o retardo-avance en cascada, quizá
con la ayuda de técnicas de mínimos cuadráticos.
Ejemplos:
1.02 0.52
g g12 11.76s 1 10.1s 1
G( s ) 11
g 21 g 22 0.54 1.04
10.4 s 1 2.6s 1
Se desea que cada lazo se comporte como un sistema de segundo orden con n=1rad/s y =0.5 (esto
es tiempo de subida 10-90 de 1.6s y overshoot del 15%). Usar el método de Perron-Frobenius para
calcular el controlador MIMO y verificar el comportamiento.
Solución:
La planta es
En primer lugar hay que obtener el autovalor de Perron-Frobenius. Para ello, invertimos la
respuesta frecuencial de la planta:
Y hallamos su módulo, G ( j )
1
Para cada frecuencia obtenemos su versión diagonal igualando todos los términos de fuera de la
diagonal a cero.
omega=fdiag(w,fdiag(w,m));
a b
c d ,
la correspondiente componente en la matriz de comparación normalizada es
1 / a 0 a b 1 b / a
Γ
0 1 / d c d c / d 1
Calculamos el autovalor de P-F (es el autovalor más grande de cada matriz de componentes de ) y
lo representamos:
pfe=fperron(w,gamma);
figure,plotdb(w,pfe);
title('Autovalor de Perron-Frobenius')
Autovalor de Perron-Frobenius
3.8
3.6
3.4
3.2
MAG dB
2.8
2.6
2.4
2.2
2
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
Está por debajo de 6dB a todas las frecuencias, por tanto, es posible conseguir la dominancia
diagonal con un pre-compensador diagonal.
Para calcular el pre-compensador que alcanza la dominancia diagonal en el INA hay que calcular el
autovector de P-F por la izquierda. Estos autovectores serán también función de la frecuencia y
tendrán tantos elementos como dimensiones (número de entradas y salidas) del sistema. Como el
sistema es 22 ambos autovectores por la derecha y la izquierda tienen 2 elementos dependientes de
la frecuencia.
%autovectors de Perron-Frobenius
[pfe,lhv,rhv]=fperron(w,gamma);
for i=1:length(w),
lhv(i,:)=lhv(i,:)/lhv(i,1);
end,% normaliz 1er element=1
figure,plotdb(w,lhv(:,2));
title('2º elemento del autovector
por la izquierda de Perron-Frobenius')
-1
-2
-3
MAG dB
-4
-5
-6
-7
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
El elemento (2,2) del pre-compensador debe tener esta misma respuesta frecuencial. Un
compensador de avance-retardo servirá. La magnitud empieza a -0.28dB y termina a -6.68dB. Los
codos (3dB por debajo del inicio y 3dB por encima del final) están muy cerca: a 0.2rad/s y a
0.26rad/s.
Con ayuda de la función phlag se diseña un compensador con un cambio de ganancia de -6.41,
frecuencia de codo 0.26rad/s y ganancia final -6.68. Este será el compensador para la segunda fila
del INA.
0.4634s 0.1205
Cret ( s )
s 0.1243
%compensador de retard que fase que s'ajusti al avect2PF
[knpf,kdpf]=phlag(-6.41,0.26,-6.68),
kpf=mv2fr(knpf,kdpf,w);
figure,plotdb(w,lhv(:,2));hold on,plotdb(w,kpf,'g'),grid
title('2º elemento del autovector-izqda de Frobenius y compensador
de retardo de fase')
-1
-2
-3
MAG dB
-4
-5
-6
-7
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
1 0 1 0
K ( s)
0 0.4634 s 0.1205
0 Cret ( s ) s 0.1243
Para verificar que se cumple la dominancia diagonal representamos el INA junto con los círculos de
Gershgorin por columnas:
20 20
15 15
IMAG
IMAG
10 10
5 5
0 0
-1 0 1 2 3 -1 0 1 2 3
REAL REAL
20 20
15 15
IMAG
IMAG
10 10
5 5
0 0
-1 0 1 2 3 -1 0 1 2 3
REAL REAL
También podemos representar la respuesta indicial y el esfuerzo de control. Notar que el pre-
compensador de desacoplo debe ser la inversa de kpf:
To: Out(1)
0.2 0.6
0.1
0.4
0
0.2
-0.1
Amplitude
Amplitude
-0.2 0
0.8 2.5
0.6 2
To: Out(2)
To: Out(2)
0.4 1.5
0.2 1
0 0.5
-0.2 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120 0 10 20 30 40 0 10 20 30 40
Time (sec) Time (sec)
%resposta indicial
K=inv(Kpf); %compensador aplicat a l'INA és l'invers del que tindrem
L=G*K;
T=feedback(L,eye(2));
Tu=feedback(K,G);
S=feedback(eye(2),L);
t=linspace(0,30,500);r=ones(length(t),1);
figure,t=linspace(0,14);
step(T),title('Respuesta indicial')
figure,
step(Tu),title('Esfuerzo de control')
Finalmente, para eliminar el offset y hacer más rápidas las respuestas, se añade un compensador
dinámico de tipo PI:
8s 4
s 0
4s 4
0
s
El compensador total resultante es (puesto que el compensador de desacoplo estaba diseñada para el
INA, en el mundo real lo que necesitamos es su inversa):
1 8s 4
1 0 0
0 0.4634s 0.1205 s
4s 4
s 0.1243 0
s
6
1
To: Out(1)
To: Out(1)
4
0.5
2
0
Amplitude
Amplitude
0
1.5 10
8
1
To: Out(2)
To: Out(2)
0.5 4
2
0
0
0 5 10 0 5 10 0 5 10 0 5 10
Time (sec) Time (sec)
figure,t=linspace(0,14);
step(T,t),title('Respuesta indicial (con PI)')
figure,
step(Tu,t),title('Esfuerzo de control (con PI)')
Método:
Este método intenta compensar el sistema para que sea aproximadamente diagonal. El diseño
entonces se completa diseñando controladores SISO para cada uno de los elementos de la diagonal
de la planta compensada.
Ejemplos:
Solución:
Polos: El polo más bajo está en 0.234rad/s y el más alto en 315rad/s. Hay un par de polos
complejos conjugados poco amortiguados en 6.35rad/s con un coeficiente de amortiguamiento
=0.055.
format short e,
[wn,z]=damp(a);
[wn,z]
ans =
2.3446e-001 1.0000e+000
6.3539e+000 5.4953e-002
6.3539e+000 5.4953e-002
1.0421e+000 1.0000e+000
1.6667e+000 1.0000e+000
1.0000e+001 1.0000e+000
1.0746e+001 1.0000e+000
1.7664e+001 1.0000e+000
3.1532e+002 9.3438e-002
3.1532e+002 9.3438e-002
Ceros de transmisión: El cero más bajo es 1.25rad/s y el cero finito más alto está en 309rad/s.
tzero(a,b,c,d);
[wn,z]=damp(ans);
[wn,z]
ans =
3.0909e+002 4.8004e-002
3.0909e+002 4.8004e-002
1.1064e+001 1.0000e+000
1.2548e+000 1.0000e+000
3.6244e+001 1.0000e+000
Por tanto, el rango dinámica total de la planta está entre 0.234rad/s y 315rad/s. Por encima y debajo
de estas frecuencias la fase es constante y la pendiente de la ganancia se mantiene constante.
Diagramas de Bode:
w=sort([w,w2,w3,w4]);
Gw=mv2fr(a,b,c,d,w);
%Bode de Gw
figure,ax=[1e-2 1e2 -100 100];
subplot(221),mvdb(w,Gw,[1,1]), title('Bode de [1,1]'),axis(ax);
subplot(222),mvdb(w,Gw,[1,2]), title('Bode de [1,2]'),axis(ax);
subplot(223),mvdb(w,Gw,[2,1]), title('Bode de [2,1]'),axis(ax);
subplot(224),mvdb(w,Gw,[2,2]), title('Bode de [2,2]'),axis(ax);
%se añaden más puntos para cubrir el rango dinámico de la planta
w5=logspace(2,3,10);
[Gw,w] = finsert(w,Gw,w5,a,b,c,d);
50 50
MAG dB
MAG dB
0 0
-50 -50
-100 -100
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Bode de [2,1] Bode de [2,2]
100 100
50 50
MAG dB
MAG dB
0 0
-50 -50
-100 -100
-2 0 2 -2 0 2
10 10 10 10 10 10
FREQUENCY FREQUENCY
Paso 2.1. Análisis de la dominancia por columnas del sistema sin compensar: Se mide cuán
diagonal es el sistema (función fcdom).
Si la medida es menor que 1 (0dB) el sistema es dominante diagonal por columnas.
Si la medida es 0 (-∞ dB) entonces el sistema es diagonal.
-20
MAG dB
-40
-60
-80
-100
-2 -1 0 1 2 3
10 10 10 10 10 10
FREQUENCY
La dominancia de la primera columna (en azul) es aceptable. Si queremos hacer un diseño de lazos
independientes SISO hay que compensar la columna 2 (en verde).
Para calcular el orden efectivo ideal de los elementos de la columna 2 del pre-compensador
podemos inspeccionar el adjunto del sistema a altas y bajas frecuencias (es decir, por encima y por
debajo del rango dinámico de la planta).
[u,l]=fadj(w,Gw)
u =
0 -9.3529e-001
-2.0604e+000 0
l =
0 9.3065e-004
2.8780e-004 0
Las columnas de las matrices u y l contienen las pendientes relativas de los elementos de la pseudo-
inversa de la planta (a altas frecuencias y bajas frecuencias respectivamente).
Los números del resultado de la función fadj deberían ser enteros (o casi) ya que son las potencias
relativas de s. Si el resultado no se acerca a ser entero, ello indica que la pendiente no es aún
constante y que las frecuencias usadas no eran lo suficiente altas y/o bajas para extenderse más allá
del rango dinámico de la planta.
Si queremos buena diagonalización para s0 y para s∞ es necesario igualar estas pendientes
relativas con las de los elementos del adjunto de la planta.
En nuestro caso todos los elementos de u y l son casi enteros, así u=[0 -1;-2 0] y l=[0 0;0 0];
El elemento u12=-1 indica que a altas frecuencias el elemento k12 del compensador debe ser un
orden de s menor que el elemento k22. Puesto que los elementos de l son todo ceros, ello indica que
a bajas frecuencias el orden de k12 y k22 debe ser el mismo.
Ahora diseñaremos el compensador de pseudo-desacoplo. En primer lugar hay que crear la variable
kform con las potencias de s que hay que usar para maximzar la dominancia diagonal de la planta:
kform=[1 0 0
2 1 0 ];
La primera columna de kform hace referencia al número de fila del pre-compensador. Así:
En la fila 1 del pre-compensador tenemos s0 y s0 (igual orden)
En la fila 2 del pre-compensador tenemos s1 y s0.
[ka,comdena,fit,cd2a]=fpseudo(w,Gw,2,kform);
Ka y comdena son la columna 2 y el denominador común del pre-compensador constante tal que en
cascada con la planta es aproximadamente un múltiplo del segundo vector unitario a lo largo de la
frecuencia .
figure,plotdb(w,cd2a,'--r'),hold,plotdb(w,cd(:,2),'-g'),...
title('Dominancia por columnas para la columna 2'),grid
-20
-40
MAG dB
-60
-80
-100
-120
-2 -1 0 1 2 3
10 10 10 10 10 10
FREQUENCY
Y vemos que ha mejorado con respecto a la planta sin compensar, aunque todavía estamos por
encima de 0dB entre 4rad/s y 10rad/s.
La medida debe ser pequeña alrededor del crossover de la planta a fin de conseguir eliminar la
interacción. Ello es así porque en el crossover la ganancia de la planta es insuficiente para eliminar
la interacción.
[kb,comdenb,fit,cd2b]=fpseudo(w,Gw,2,kform,wi);
-20
-40
MAG dB
-60
-80 planta
con compensador
con compensador ponderado
-100
-120
-2 -1 0 1 2 3
10 10 10 10 10 10
FREQUENCY
Intentaremos añadir otro orden de s a la primera fila de la columna 2 (aunque eso contradiga la guía
de fadj a altas frecuencias).
kform=[1 1 0
2 1 0];
[kc,comdenc,fit,cd2c]=fpseudo(w,Gw,2,kform,wi);
-20
-40
MAG dB
-60
planta
-80 con compensador
con compensador ponderado
otros órdenes
-100
-120
-2 -1 0 1 2 3
10 10 10 10 10 10
FREQUENCY
kform=[1 0 0 -1
2 1 0 -1];
[kd,comdend,fit,cd2d]=fpseudo(w,Gw,2,kform,wi);
fit
fit =
8.9302e-007
kd =
0 1.5016e-002 2.1338e-002
-1.9475e-005 -1.3805e-004 -4.6401e-005
comdend
comdend =
0 0 1
-20
-40
MAG dB
-60
planta
-80 con compensador
con compensador ponderado
-100 otros órdenes
PI+PID
-120
-2 -1 0 1 2 3
10 10 10 10 10 10
FREQUENCY
El resultado ahora ya es satisfactorio con lo que se puede pasar al diseño del control por lazos
independientes.
El llamado Inverse Nyquist Array consiste en una matriz de diagramas de Nyquist, uno por
elemento de G-1(j).
Ejemplo 35. Planta chapter 13 of [O'Reilly87]. Control vía INA. Considerar la planta:
s4 1
g g12 ( s 1)( s 5) 5s 1
G( s ) 11
g 21 g 22 s 1 2
s 10s 100
2
2 s 1
Solución:
Los pre-compensadores diagonales preservan la dominancia diagonal por filas de los sistemas
inversos.
Dibujamos el INA, con los círculos en los elementos 11 y 22. Vemos que el sistema no es diagonal
dominante puesto que las bandas de Gershgorin engloban el origen.
300 10
200 0
IMAG
IMAG
100 -10
0 -20
-100 -30
-200 0 200 -1 -0.5 0 0.5
REAL REAL
50 200
0 150
100
IMAG
IMAG
-50
50
-100 0
-150 -50
-10 0 10 20 -50 0 50
REAL REAL
Diseño del pre-compensador de desacoplo (tal que Q-1 sea diagonal domninante, Q=GK)con ayuda
de los autovalores de Perron-Frobenius.
m=abs(iGw);
omega = fdiag(w,fdiag(w,m));
nc = fmulf(w,finv(w,omega),m);
[v,l,r] = fperron(w,nc);
Autovalores de Perron-Frobenius
3.5
2.5
MAG dB
2
1.5
0.5
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
En nuestro caso el autovalor de P-F está por debajo de 6dB en las freqs representadas.
Autovector 2 de Perron-Frobenius
20
15
10
MAG dB
-5
-10
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
15
10
MAG dB
-5
-10
-2 -1 0 1 2
10 10 10 10 10
FREQUENCY
Y verificamos si el sistema resultante Q=GK es dd. Como estamos en INA, lo que representamos
es Q-1=K-1G-1. El sistema es dd puesto que las banda de gershgorin excluyen el origen:
INA: Ampliación:
200 10 20 10
150 0 0
10
100
IMAG
IMAG
IMAG
IMAG
-10 -10
50 0
-20 -20
0 -10
-50 -30 -30
-100 0 100 -1 -0.5 0 0.5 -10 0 10 -1 -0.5 0 0.5
REAL REAL REAL REAL
0 100 0
10
-20 50 -20 5
IMAG
IMAG
IMAG
IMAG
0
-40 0 -40
-5
La estabilidad en lazo cerrado de un sistema se puede analizar con ayuda del INA. Puesto que el
sistema es estable en lazo abierto, será estable con retroacción negativa de ganancia diagonal
D=diag(di) si la banda de Gershgorin asociada a los círculos del elemento i-ésimo del INA no tocan
el segmento del eje real negativo entre el origen y el punto –di.
Los círculos de Ostrowski dan lugar a bandas más estrechas, que se pueden usar para predecir el
comportamiento en lazo cerrado, y se usan de manera análoga al diagrama de Nyquist inverso
(whiteley) en los sistemas siso. Las funciones frost y fcost calculan los círculos de Ostrowski dada
una matriz de retroacción diagonal.
% The Ostrowski bands for the (1,1) element of the INA of GK will
% be plotted for different feedback gains.
Las bandas de ostrowski asociadas al elemento 11 del INA de Q para las ganancias d=1,5,10 y 50
(esto es matriz de ganancias [d 0;0 d] aunque el general las ganancias pueden ser diferentes para
cada lazo) son:
d= 1 d= 5
150 150
100 100
IMAG
IMAG
50 50
0 0
-40 -20 0 20 40 -40 -20 0 20 40
REAL REAL
d = 10 d = 50
150 150
100 100
IMAG
IMAG
50 50
0 0
-40 -20 0 20 40 -40 -20 0 20 40
REAL REAL
Respuesta temporal:
Response to demand on output 1
1
0.5
-0.5
0 0.5 1 1.5
0.6
0.4
0.2
0
0 0.5 1 1.5
3.4 Referencias
(Dutton, 1997) Dutton, K., The Art of Control Engineering, Chapter 10, Addison-Wesley, 1997
(Ford et al., 1990) Ford, M.P., Multivariable Frtequency Domain Toolbox for use in Matlab, GEC,
1990
(Rosenrock, 1974) H.H. Rosenbrock, Computer Aided Control System Design, Academic Press,
1974.
(Mayne, 1979) D.Q. Mayne, Sequential design of Linear Multivariable Systems, Proc. IEE, 1979,
126, pp.568-575.
(Owens, 1978) Owens, D.H., Feedback and Multivariable Systems, Peter Peregrinus, 1978
(Postlethwaite et al., 1981) Postlethwaite, I., “Principal gains and principal phases in the analysis of
multivariable feedback systems”, IEEE T-AC, 26.
(O’Reilly, 1987) J. O’Reilly (ed.), Multivariable Control for Industrial Applications, Peter
Peregrinus, 1987.