Professional Documents
Culture Documents
Resumen
Estos apuntes son un breve repaso de los aspectos teoricos esenciales que permiten pasar del control
borroso tradicional basado en reglas lingusticas al control borroso basado en modelos exactos TakagiSugeno. Estos ultimos pueden resultar de una combinacion convexa de linealizaciones de un modelo no
lineal conocido, o bien, de una reescritura convexa del modelo original que permite expresarlo como
una interpolacion de sistemas lineales. Como se vera, un modelo en forma convexa tiene la ventaja de
permitir la obtencion de condiciones suficientes para el analisis y diseno de sistemas de control no lineal
por medio de desigualdades matriciales lineales (LMIs por sus siglas en ingles). Estas ultimas son muy
apreciadas debido a que su solucion es un problema de optimizacion que puede resolverse eficazmente
por metodos de punto interior implementados en software comercial disponible.
I. I NTRODUCCI ON
El enfoque original de control borroso (tambien llamado difuso) echaba mano de conceptos de
logica borrosa para crear modelos y, sobre todo, para controlar plantas cuyo funcionamiento
deseado pudiese expresarse lingusticamente [1]. La logica difusa puede ser vista como una
generalizacion de la logica clasica porque [2]:
1) permite valores de verdad intermedios entre falso (0) y verdadero (1) para proposiciones
logicas A (o entre no pertenece y pertenece para conjuntos A) por medio de lo que se
denominan funciones de pertenencia A () [0, 1],
2) permite generalizaciones de las operaciones clasicas de calculo proposicional, como negacion, disyun-cion y conjuncion (o entre conjuntos los correspondientes complemento,
Miguel Bernal y Braulio Aguiar trabajan en el Instituto Tecnologico de Sonora, 5 de Febrero 818 Sur, Ciudad Obregon,
Mexico, 85000. Email: miguel.bernal@itson.edu.mx
R2 : SI x1 ES A2 y x2 ES A1 ENTONCES y ES A2
donde A1 y A2 son conjuntos difusos definidos como sigue (ver Fig.1(a)):
1 |u 1|, 0 u 2
A1 (u) =
0,
|u 1| > 1
1 |u 2|, 1 u 3
A2 (u) =
0,
|u 2| > 1
Suponga ademas que se utiliza la maquina de inferencia por producto, un fuzzificador singleton
y un defuzzificador de centros promediados. Si la entrada al sistema fuera (x1 , x2 ) = (1.3, 1.9),
la salida y correspondiente se calculara como sigue:
Como se utiliza un singleton con maquina de inferencia por producto, tenemos que:
B (y) = max [A1 (1.3)A2 (1.9)A1 (y), A2 (1.3)A1 (1.9)A2 (y)]
= max [(0.7)(0.9)A1 (y), (0.3)(0.1)A2 (y)]
= max [0.63A1 (y), 0.03A2 (y)]
que se muestra en azul en la Fig. 1(b). Note ademas que de los valores maximos de cada funcion
involucrada en la expresion anterior, se obtienen los pesos w1 = 0.63 y w2 = 0.03 que ocurren en
y 1 = 1 y y 2 = 2 respectivamente. Por lo tanto, aplicando el defuzzificador de centro promedio,
tenemos que:
0.63 + 0.06
y 1 w1 + y 2 w2
=
= 1.045
y =
w1 + w2
0.63 + 0.03
mA1(.)
w1=0.63
mA2(.)
0.63mA1(.)
0.03mA2(.)
w2=0.03
1
y =1
x1, x2
(a) Funciones de membresa A1 y A2
Fig. 1: Ejemplo 1
y =2
y*=1.045
(b) Defuzzificacion
Ejemplo 2. El presente ejemplo se propone construir una ley de control borroso para estabilizar
el pendulo invertido de la Fig.2, donde x1 (t) y x2 (t) son el angulo respecto a la vertical y la
velocidad angular, respectivamente. Sea y(t) la velocidad lineal del carro que sostiene al pendulo,
directamente proporcional a la fuerza u(t) aplicada al carro.
Las ecuaciones del modelo mostradas solo con el fin de conocer donde fue implementado el
controlador difuso y no para disenarlo vienen dadas por:
x1 (t) = x2 (t)
g sin(x1 (t)) 0.5amlx22 (t) sin(2x1 (t)) a cos(x1 (t))u(t)
x2 (t) =
1.3l aml cos2 (x1 (t))
con parametros g = 9.8m/s2 (gravedad), m = 0.1kg (masa del pendulo), M = 1kg (masa del
carro), a = (m + M )1 = 0.9091 y l = 0.5m (longitud del pendulo).
Suponga que las siglas GN, PN, N, C, P, PP y GP representan los significados lingusticos
GRANDE NEGATIVO, PEQUENO NEGATIVO, NEGATIVO, CERO, POSITIVO, PEQUENO
POSITIVO Y GRANDE POSITIVO, respectivamente. Entonces definamos la base de reglas
difusa de la tabla siguiente con las funciones de membresa de la Fig.3(a) para el estado x1 (t),
Fig.3(b) para el estado x2 (t) y Fig.4(a) para la variable de control u(t), que es tambien la salida
del controlador difuso:
mGN
mPN
mC
mPP
mGP
mN
mC
mP
x1(t)
0
-p/4
-p/8
p/8
-1
p/4
x2
Fig. 3: Ejemplo 2.
mGN
mPN
mC
mPP
mGP
u(t)
0
-50
-25
25
50
Fig. 4: Ejemplo 2.
SI...
x1 es GN
x1 es PN
x1 es C
x1 es PP
x1 es GP
x2 es P
u es PP
u es PP
u es PN
u es GN
u es GN
x2 es C
u es GP
u es PP
u es C
u es PN
u es GN
x2 es N
u es GP
u es GP
u es PP
u es PN
u es PN
La Fig.4(b) muestra dos trayectorias en el espacio de estados del pendulo invertido una vez
que se aplica el controlador difuso. Es claro que el controlador de 15 reglas difusas consigue
estabilizar el sistema.
Estos apuntes estan organizados de la siguiente manera: en la seccion II se aborda lo que es
una desigualdad matricial lineal y las definiciones, problemas y resultados que en torno a esta
existen desde el punto de vista meramente matematico y computacional; la seccion III muestra
la forma en que muchos resultados de analisis y diseno de controladores para sistemas lineales
pueden ser expresados como LMIs: la mayora de estos resultados son condiciones suficientes y
necesarias; la seccion IV vuelve a recorrer el camino de la precedente para obtener condiciones
LMI solo suficientes para el analisis y la sntesis de sistemas de control no lineal: en contraste
con la seccion anterior, esta arranca presentando las distintas metodologas para la obtencion
de un modelo Takagi-Sugeno y presenta, aqu y alla, situaciones que desafan o complican la
analoga con el caso lineal (las relajaciones de suma, por ejemplo); los apuntes concluyen con
la seccion V donde se recogen conclusiones. A lo largo de todo el texto se presentan ejemplos
teoricos y fsicos para ilustrar las tecnicas presentadas; dichos ejemplos incluyen siempre el
codigo en el LMI Toolbox de MATLAB.
II. D ESIGUALDADES MATRICIALES LINEALES
La presente seccion esta dividida en dos partes: la primera aborda cuestiones matematicas sobre
las LMIs y su relacion con la optimizacion convexa; la segunda es un breve tutorial para
implementarlas en el LMI Toolbox.
A. Que son las LMIs?
Definicion 1. Como su nombre lo indica, una desigualdad matricial lineal (LMI por sus siglas en
ingles) es aquella desigualdad que es funcion lineal de variables matriciales tambien conocidas
como variables de decision, es decir:
f (D1 , D2 , . . . , Dn ) = A0 + A1 D1 B1 + A2 D2 B2 + + An Dn Bn < 0,
(1)
Desde luego, el smbolo < en el contexto de (1) tiene un significado distinto al que tiene para
elementos escalares:
Definicion 2. D < 0, que se lee como D definida-negativa significa que D es simetrica y que
para todo vector x = 0 se satisface xT Dx < 0.
Esta definicion se traduce en que D es definida-negativa si y solo si D = DT y la parte real de
sus eigenvalores es negativa:
D < 0 Re{(D)} < 0,
(2)
donde (D) es el espectro o conjunto de valores propios de D. En lo sucesivo, siempre que una
expresion matricial D < 0 se escriba, se asumira que D es simetrica, es decir, que D = DT .
Con los ajustes adecuados, pueden proporcionarse definiciones similares para una expresion
matricial definida positiva D > 0, semi-definida negativa D 0 y semi-definida positiva D 0.
Cuando dos expresiones matriciales estan relacionadas por algunos de estos smbolos, podran
reescribirse algebraicamente en alguno de los cuatro casos asociados a (1); por ejemplo P
Q P Q 0.
El conjunto solucion de una LMI, definido como el conjunto de entradas distintas de las variables
de decision D1 , D2 , . . . , Dn , es un conjunto convexo. Como tal, los problemas de optimizacion
que involucran minimizar (o maximizar) una funcion escalar f (x) donde x pertenece al conjunto
solucion de una LMI, son problemas de optimizacion convexa [3]. Estos se pueden resolver de
manera eficaz y confiable por medio de algoritmos ya implementados en software comercialmente
disponible.
Existen propiedades que, aunque elementales, seran clave en el proceso de expresar problemas
de control en forma de LMIs. Algunas de ellas son propiedades matriciales; otras se deben al
caracter convexo de las soluciones LMI.
1) Agrupacion: Dado un conjunto de LMIs sobre el vector de variables de decision x, L1 (x) <
0, L2 (x) < 0, . . . , Ln (x) < 0, estas pueden expresarse como una sola LMI; es decir:
L1 (x)
0
0
L
(x)
0
2
< 0 (3)
L1 (x) < 0, L2 (x) < 0, . . . , Ln (x) < 0 L = .
..
..
...
..
.
.
0
0
Ln (x)
2) Complemento de Schur: Esta propiedad permite convertir expresiones que en primera instancia parecen no lineales en expresiones matriciales lineales, una tarea presente en la
mayora de los trabajos relacionados con control basado en modelos Takagi-Sugeno:
T
T 1
P R Q R>0
P R
>0
R Q
Q>0
(4)
Q<0
P QP T < 0,
P >0
P >0
P QP T > 0
Q>0
(5)
4) Sustitucion: Esta propiedad reescribe expresiones aparentemente no lineales como expresiones lineales de nuevas variables por simple sustitucion. No obstante, es indispensable
que la sustitucion sea reversible en el sentido de que todas las variables originales puedan
recuperarse a partir de las nuevas sin ambiguedad.
AP C + BP Q < 0 AP C + BR < 0
(6)
R = PQ
donde P y Q son las variables de decision originales, A, B y C son matrices constantes,
y R es una nueva variable obtenida por sustitucion, de modo que la expresion final es LMI
en P y R. Note que una vez resuelta, Q = RP 1 .
Estas propiedades seran utilizadas a lo largo de las siguientes secciones para obtener condiciones
LMI que impliquen o equivalgan a la estabilidad de sistemas lineales o no lineales, tanto en el
caso de analisis (sin entrada) como en el diseno de controladores u observadores. Los problemas
LMI planteados seran de tres tipos [4]:
1) Factibilidad: Consiste en encontrar una instancia de las variables de decision D1 , D2 , . . . , Dn
que satisfaga la LMI (1). Los algoritmos de punto interior suelen ser utilizados para
encontrar dicha solucion o determinar que no existe: en el primer caso se dice que la
LMI es factible, de lo contrario no factible.
2) Optimizacion: Consiste en minimizar una combinacion lineal L(x) de las variables de
decision x de una LMI. Como ya se ha comentado, puesto que el conjunto solucion de
una LMI es convexo, esto significa que este problema puede resolverse con los mismos
metodos que el problema de factibilidad.
tal que:
min
>0
L1 (x) > 0
L3 (x) > 0
(7)
10
setlmis([]);
X=lmivar(1,[2 1]);
M=lmivar(2,[1 2]);
donde la primera instruccion inicializa el sistema de LMIs, la segunda declara una variable de
decision matricial simetrica X de 2 2 y la tercera una variable matricial M libre de 1 2.
La instruccion lmivar tiene 2 argumentos: el primero indica el tipo de matriz a definir, el
segundo es un vector con significados diferentes dependiendo del tipo. Hay tres tipos de matrices
a declarar: 1 para simetricas por bloques, 2 para matrices libres, y 3 para matrices de estructura
especial que no seran consideradas en este trabajo. En cuanto al segundo argumento, detallamos
su significado segun el tipo de matriz (solo 1 y 2) a continuacion; el lector interesado en mas
detalles puede consultar la documentacion de MATLAB.
Tipo
lmi0=newlmi;
lmiterm([-lmi0 1 1 X],1,1);
lmi1=newlmi;
lmiterm([lmi1 1 1 X],1,A,'s');
lmiterm([lmi1 1 1 M],B,A,'s');
lmiterm([-lmi1 1 1 0],1);
11
1) Un vector con cuatro entradas: numero de LMI signado (que puede darse directamente
o a traves de una variable como en el ejemplo; el signo indicando que el termino
esta en el lado derecho de L1 (x) < L2 (x)), posicion por bloques en renglon y columna
(las entradas en posiciones diagonales deben ser simetricas; las de las posiciones restantes
apareceran transpuestas automaticamente en las posiciones simetricas; las no especificadas
seran automaticamente cero) y nombre de variable de decision en ese termino (si no hubiese
variable de decision involucrada se escribe 0; si debe ser la transpuesta de la variable de
decision se le anade el signo ).
2) El termino que pre-multiplicara a la variable de decision (o valor constante en caso de que
no haya variable de decision).
3) El termino que post-multiplicara a la variable de decision (solo si hay variable de decision).
4) El modificador opcional s solo si se desea sumar la transpuesta del termino programado.
As pues, la lnea 3 del codigo anterior esta programando 0 < X, o sea, X definida positiva, ya
que la pre- y post-multiplican 1 y no anade ningun otro termino en la posicion de bloques (1, 1)
de la expresion. Como X fue declarada simetrica, el LMIToolbox no protestara por encontrar
terminos no simetricos en la diagonal. En cuanto a las lneas 5, 6 y 7, estas sumaron tres terminos:
XA + AT P , BM A + AT M T B T en el lado izquierdo e I en el derecho(identidad de 2 2),
respectivamente, todo dentro de una sola expresion; es decir, que entre las tres representan la LMI
P A + AT P + BM A + AT M T B T < I, que tambien es expresion simetrica como corresponde a
una posicion diagonal (1, 1). Puesto que, como hemos visto, un grupo de LMIs que se resuelven
simultaneamente pueden apilarse en una sola LMI donde cada elemento diagonal por bloques
represente a cada miembro del grupo, una forma equivalente de programar los terminos anteriores
sera
lmi0=newlmi;
lmiterm([-lmi0 1 1 X],1,1);
lmiterm([lmi0 2 2 X],1,A,'s');
lmiterm([lmi0 2 2 M],B,A,'s');
lmiterm([-lmi0 2 2 0],1);
12
donde claramente hay una sola etiqueta para expresion LMI (lmi0) y las LMIs originales estan
programadas una por cada entrada diagonal de la nueva expresion, o sea que el codigo anterior
representa
X
0
< 0.
0 P A + AT P + BM A + AT M T B T I
Cuando ya se han escrito todas las expresiones LMI deseadas, es momento de reunirlas y llamar
a una de las rutinas que las resuelven (solvers). Nos limitaremos de momento a describir la
rutina feasp as como las instrucciones necesarias para decidir si ha habido o no solucion y
como extraerla. Las rutinas mincx y gevp seran explicadas una vez que sean requeridas en el
tema respectivo. Considere el codigo
ejemplo=getlmis;
[tmin,xfeas]=feasp(ejemplo);
if tmin<0
Pinv=dec2mat(ejemplo,xfeas,X);
M=dec2mat(ejemplo,xfeas,M);
else
disp('LMI no factible');
7
8
end
13
(8)
(9)
V (x) > 0
x D 0, x = 0
(10)
V (x) < 0
El criterio de estabilidad de Lyapunov dice que un sistema x = f (x) (posiblemente no lineal)
tiene el origen como punto de equilibrio asintoticamente estable si y solo si existe una funcion
de Lyapunov V (x) asociada al sistema. A pesar de lo poderoso que es este resultado, base
14
P A + AT P < 0.
(11)
(
)
= xT P x + xT P x = xT P Ax + (Ax)T P x = xT P A + AT P x < 0,
1 2
A=
1 3
es estable, como puede comprobarse calculando el espectro (A) = {0.2679, 3.7321}, cuyos
elementos estan en el semiplano izquierdo complejo C . Comprobaremos este mismo hecho por
medio del teorema 1. Para ello programamos (11) como sigue:
A=[-1 2; 1 -3];
setlmis([]);
15
% P simetrica de 2x2.
P=lmivar(1,[2 1]);
% LMI P>0
lmi0=newlmi;
lmiterm([-lmi0 1 1 P],1,1);
% LMI PA+A'P<0
lmi1=newlmi;
10
lmiterm([lmi1 1 1 P],1,A,'s');
11
% Test de factibilidad
12
ejemplo=getlmis;
13
[tmin,xfeas]=feasp(ejemplo);
14
if tmin<0
P=dec2mat(ejemplo,xfeas,P);
15
16
else
disp('LMI no factible');
17
18
end
1.0551 0.6243
> 0, que confirma que el sistema es estable
lo que produce la solucion P =
0.6243 0.6279
para cualquier condicion inicial en el espacio de estados. La figura 5(a) muestra en color negro
las trayectorias del sistema para cuatro condiciones iniciales: como es de esperarse, todas van
al origen, unico punto de equilibrio (globalmente asintoticamente estable) del sistema. En la
misma figura, con lneas entrecortadas azules, se muestran algunas curvas de Lyapunov, es
decir, curvas de la forma V (x) = k para distintos valores de k > 0: evidentemente, una vez que
las trayectorias del sistema entran en algun nivel, no salen del mismo sino que se dirigen a
otros mas interiores.
Las simulaciones se condujeron en Simulink por medio de la configuracion mostrada en la figura
5(b), que consiste en una funcion definida por usuario (MATLAB function) que se alimenta de
los estados x1 y x2 que vienen del integrador y produce los valores de x1 y x2 por medio de
x = Ax, que a su vez van al integrador. Existen diferentes metodos numericos para la simulacion;
en este trabajo se ha utilizado el metodo de Dormand-Prince con paso variable para los sistemas
continuos en el tiempo.
16
x2
0.5
0
0.5
1
1
0.5
0
x
0.5
Fig. 5: Ejemplo 3.
B. Estabilizacion
Dado un modelo en espacio de estados de un sistema LTI con entrada u(t) Rm
x(t) = Ax(t) + Bu(t),
(12)
con A y B conocidas y de dimensiones adecuadas, esta seccion se propone disenar por medio
de LMIs una ley de control por realimentacion lineal de estados
u(t) = F x(t),
(13)
x(t) = (A + BF )x(t)
(14)
17
Teorema 2. El sistema (12) bajo la ley de realimentacion lineal de estado (13) es estable si y
solo si existe una matriz X = X T (simetrica) y una matiz M Rmn tal que satisfagan las
LMIs:
X > 0,
AX + BM + XAT + M T B T < 0.
(15)
La funcion de Lyapunov viene entonces dada por V (x) = xT X 1 x y la ganancia del controlador
por F = M X 1 .
Demostracion: La condicion de positividad de la funcion de Lyapunov se extiende facilmente a
su inversa, es decir, si se cumple la primer LMI en (15) tenemos que X = X T > 0 y por tanto
P = X 1 = P T > 0, lo que a su vez implica que V (x) = xT P x > 0.
La segunda LMI en (15) equivale a que la derivada de la funcion de Lyapunov es monotonamente
decreciente como puede verse con el siguiente desarrollo que utiliza el sistema en lazo cerrado
(14):
V
(
)
xT P x + xT P x = xT P A + P BF + AT P + F T B T P x < 0,
P A + P BF + AT P + F T B T P < 0.
1 2
1
, B =
A=
0 3
2
sea estable, utilizando para ello las LMIs (15) del teorema 2. Note que si u(t) = 0 entonces el
sistema es inestable.
El programa correspondiente en el LMIToolbox se vera como:
18
[n m]=size(B); %Tamano de B
setlmis([]);
X=lmivar(1,[n 1]);
M=lmivar(2,[m n]);
%LMI X=X'>0
lmi0=newlmi;
lmiterm([-lmi0 1 1 X],1,1);
10
%LMI AX+MB+XA'+M'B'<0
11
lmi2=newlmi;
12
lmiterm([lmi2 1 1 X],A,1,'s');
13
lmiterm([lmi2 1 1 M],B,1,'s');
14
15
ejemplo=getlmis;
16
[tmin,xfeas]=feasp(ejemplo);
17
if tmin<0
18
X=dec2mat(ejemplo,xfeas,X);
19
M=dec2mat(ejemplo,xfeas,M);
20
F=M*inv(X); P=inv(X);
21
else
disp('LMI no factible');
22
23
end
[
]
1388.6 28.7
, M = 2135.6 1661.1
X=
28.7 1336.1
[
]
0.7204 0.0155
, F = M X 1 = 1.5642 1.2769 .
P = X 1 = (1 103 )
0.0155 0.7488
En la figura 6(a) se observa la evolucion de los estados del sistema en lazo cerrado a partir de
[
]T
la condicion inicial x(0) = 1 2 , lo que confirma la estabilizacion del sistema. Tambien
observamos en la figura 6(b) la evolucion en el tiempo de la funcion de Lyapunov asociada
V (x) = xT P x: como era de esperarse, es una funcion positiva que decrece monotonamente
hacia cero.
19
3
x1
x 10
x2
V (t)
Estados
2
3
0
10
Tiempo (s)
15
20
0
0
10
Tiempo (s)
15
20
Fig. 6: Ejemplo 4.
C. Tasa de decaimiento
En esta seccion consideraremos el problema de establecer, por medio de LMIs, una tasa de
decaimiento o encontrar la maxima posible para una funcion de Lyapunov asociada a un sistema
lineal, con o sin entrada. Por que interesa aumentar dicha tasa? Porque, toda vez que la funcion
de Lyapunov es una funcion de los estados del sistema, a mayor cada de la misma mayor
rapidez en la estabilizacion.
Definicion 4. Un sistema x = f (x) (posiblemente no lineal) con una funcion de Lyapunov V (x)
asociada al origen, tiene tasa de decaimiento > 0 si y solo si V (x) V (x).
Es claro que si un sistema tiene una tasa de decaimiento asociada, su funcion de Lyapunov
decrece acotada por una funcion exponencial, puesto que:
V
dV
dV
V
dt
dt
V
ln |V | t + c1 V et+c1 = V (0)et .
Teorema 3. El sistema (12) bajo la ley de realimentacion lineal de estado (13) es estable con
tasa de decaimiento > 0 si y solo si existe una matriz X = X T (simetrica) y una matiz
M Rmn tal que satisfagan las LMIs:
X > 0,
AX + BM + XAT + M T B T + X < 0.
(16)
20
La funcion de Lyapunov viene entonces dada por V (x) = xT X 1 x y la ganancia del controlador
por F = M X 1 .
Demostracion: Como ya debiese ser claro, X > 0 implica que V (x) = xT P x > 0 (positividad
de la funcion de Lyapunov). La segunda LMI en (16) se obtiene desarrollando la condicion
V (x) + X < 0 y tomando en cuenta el sistema de lazo cerrado (14), es decir:
V
=
=
xT P x + xT P x + xT P x
(
)
xT P A + P BF + AT P + F T B T P + P x < 0
P A + P BF + AT P + F T B T P + P < 0.
La segunda LMI en (16) se obtiene aplicando la propiedad (5) en la expresion anterior para
pre- y post-multiplicar por X = P 1 y luego usando la propiedad (6) para reemplazar F X por
M.
Un problema interesante consiste en encontrar la maxima tasa de decaimiento que admite un
sistema dado, es decir, resolver el problema
{
max : X > 0, AX + BM + XAT + M T B T + X < 0
>0
{
(
)
min : X > 0, AX + BM + XAT + M T B T + X < 0,
>0
(17)
MATLAB
min
>0
0 < L1 (x)
0 < L3 (x)
se programan primero aquellas LMIs que no involucran a , es decir 0 < L1 (x) y 0 < L3 (x), y al
final aquellas que s la involucran, aunque la variable a minimizar no se escribe explcitamente,
siendo el segundo parametro de la instruccion gevp el que especifica el numero de LMIs hacia
arriba que se suponen asociadas a . Aunque puede tener mas parametros, gevp tiene la
forma basica gevp(lmisys,nlfc) donde lmisys es el nombre de las LMIs recuperadas
21
por getlmis y nlfc es el numero de restricciones de la forma L2 (x) < L1 (x), es decir, las
asociadas al parametro a minimizar .
Ejemplo 5. En este ejemplo disenaremos leyes de control por realimentacion de estado (13)
para el sistema lineal de brazo flexible descrito por las ecuaciones siguientes [11]
0
0
1
0
0
0
0
1
0
0 623.7 40.3 0
61.6326
0 1020.3 40.3 0
61.6326
e ilustrado en la figura 7, donde x1 representa el angulo del motor (es decir, el angulo sin
flexiones), x2 el angulo de deflexion, x3 y x4 las velocidades angulares respectivas, en tanto
que los parametros que conducen a la matriz A y B arriba mencionadas son m1 = 0.064kg,
m2 = 0.03kg, L1 = 0.298m, L2 = 0.156m, d12 = 0.21m.
Las leyes de control a disenar deberan conseguir tasas de decaimiento de 10, 100, y 200, en
cuyo caso bastara con programar (16) porque la tasa de decaimiento esta dada. El programa
es:
% Inicializacion
B=[0 ; 0; 61.6326;
alpha=10;
-61.6326];
22
[n m]=size(B);
setlmis([]);
X=lmivar(1,[4 1]);
M=lmivar(2,[1 4]);
10
%LMI X=X'>0
11
lmix=newlmi;
12
lmiterm([-lmix 1 1 X],1,1);
13
%LMI AX+BX+XA'+M'B'+alphaX<0
14
lmix=newlmi;
15
lmiterm([lmix 1 1 X],A,1,'s');
16
lmiterm([lmix 1 1 M],B,1,'s');
17
lmiterm([lmix 1 1 X],1,alpha);
18
19
ejemplo=getlmis;
20
[tmin,xfeas]=feasp(ejemplo);
21
if tmin<0
22
X=dec2mat(ejemplo,xfeas,X);
23
M=dec2mat(ejemplo,xfeas,M);
F=M*inv(X); P=inv(X);
24
25
else
disp('LMI no factible');
26
27
end
y, de los resultados, hemos seleccionado unicamente las ganancias a fin de comparar sus ordenes
respectivos: claramente a mayor tasa de decaimiento mayor magnitud en las ganancias.
[
]
F=10 = 7.41 20.68 0.79 0.05 ,
[
]
F=100 = 7128 5820 262 256 ,
[
]
F=200 = 93353 88904 1724 1712 .
Buscaremos ahora la tasa de decaimiento maxima max para este sistema; como se ha dicho, se
utiliza gevp para resolver el problema (17). El programa es:
% Inicializacion
23
B=[0 ; 0; 61.6326;
-61.6326];
[n m]=size(B);
setlmis([]);
X=lmivar(1,[n 1]);
M=lmivar(2,[m n]);
%LMI X=X'>0
10
lmix=newlmi;
11
lmiterm([-lmix 1 1 X],1,1);
12
%LMI -AX-BX-XA'-M'B'>0
13
lmix=newlmi;
14
lmiterm([-lmix 1 1 X],-A,1,'s');
15
lmiterm([-lmix 1 1 M],-B,1,'s');
16
%LMI alpha>0
17
lmix=newlmi;
18
lmiterm([-lmix 1 1 0],1);
19
% LMI -AX-BX-XA'-M'B'>0<(2*alpha)X
20
lmix=newlmi;
21
lmiterm([-lmix 1 1 X],-A,1,'s');
22
lmiterm([-lmix 1 1 M],-B,1,'s');
23
lmiterm([lmix 1 1 X],2,1);
24
25
lmis = getlmis;
26
[beta,popt]=gevp(lmis,2);
27
28
X=dec2mat(lmis,popt,X);
29
alpha=1/beta;
30
31
M=dec2mat(lmis,popt,M);
32
F=M*inv(X);
33
P=inv(X);
Pmax =
.
10007217.8
9969994.3
53617
53596.2
10003568.5
9966361
53596.2
53575.3
24
10
=400.7929
=200
=100
=10
0.8
V (t)
5
u(t)
=400.7929
=200
=100
=10
0.6
0.4
10
0
0.2
0.05
0.1
Tiempo (s)
0.15
0.2
0
0
0.05
0.1
Tiempo (s)
0.15
0.2
Fig. 8: Ejemplo 5.
En la figura 8(a) se observa la evolucion de las cuatro leyes de control disenadas a partir de
[
]T
la condicion inicial x(0) = /16 /16 0.1 0.1 , lo que confirma el hecho de que a
mayor tasa de decaimiento, mayor es la magnitud de la senal de control (energa consumida en
los actuadores). Lo mismo puede comprobarse en la figura 8(b) donde se muestra la evolucion
en el tiempo de las cuatro funciones de Lyapunov correspondientes: aquella que decrece hacia
cero mas rapido es la asociada a la tasa de decaimiento mas grande.
D. Restricciones en la entrada
Ninguna planta fsica dispone de energa ilimitada para realizar tareas de control, de manera
que respetar restricciones en este sentido es importante. Si ademas dichas restricciones pueden
imponerse al control por medio de un diseno adecuado en vez de utilizar la frecuente solucion
de saturar la senal, tanto mejor. Tal es el proposito de los disenos mostrados en esta seccion
para restringir la magnitud de la senal de entrada por medio de LMIs.
Utilizaremos una norma euclidiana ordinaria para acotar u(t) Rm ; es decir, se desea que
||u(t)|| < para un > 0 especificado. La norma mas comunmente utilizada es la norma 2:
(18)
||u(t)|| = u21 + u22 + + u2n .
[
]T
donde u(t) = u1 u2 um .
25
La condicion ||u(t)|| < con u(t) = F x(t) (realimentacion de estado) puede reescribirse como
sigue:
||u(t)|| < ||u(t)||2 = uT u = xT F T F x 2 xT F T 2 F x 1.
(19)
Esta condicion se combinara con un diseno de ley de control por realimentacion de estado como
el descrito en la seccion III-B o con uno que imponga adicionalmente una tasa de decaimiento
como en la seccion III-C, razon por la que existira una funcion cuadratica de Lyapunov V (x)
que satisfaga las siguientes condiciones para una condicion inicial conocida x(0), ya sea porque
decae monotonamente o porque se puede imponer por diseno:
V (x) = xT P x xT (0)P x(0) 1.
(20)
Debido a que tanto F como P se disenan, las desigualdades (19) y (20) pueden combinarse
como sigue:
xT (P F T 2 F ) x 0
xT F T 2 F x xT P x xT (0)P x(0) 1
1 xT (0)P x(0) 0
(21)
Aplicando el complemento de Schur (4) a las expresiones matriciales en (21), tenemos las
desigualdades equivalentes siguientes
P FT
0,
F 2 I
x (0)
xT (0)
P 1
0.
Como estos disenos se van a combinar con alguno de los ya existentes para estabilizacion o tasa
de decaimiento, es necesario que estas desigualdades se expresen en terminos de las variables
X
=
X
1
P
y M = F X como en aquellos casos. Utilizando (5) para pre- y post-multiplicar por
0
la primera de las desigualdades anteriores y aplicando (6), tenemos
I
T
T
1
x (0)
X M
0,
0,
(22)
x (0)
X
M 2 I
26
Ejemplo 6. En este ejemplo disenaremos leyes de control por realimentacion de estado (13)
para el sistema linealizado del pendulo de Furuta descrito por las ecuaciones siguientes [12]:
0 1
0
0
0
0 0 52.0624 0
34.4136
0 0
0
1
0
0 0 76.1771 0
13.3528
e ilustrado en la figura 9(a), donde x1 es el angulo del motor respecto a una referencia, x3 es
el angulo del pendulo con respecto a la vertical sobre un plano perpendicular al eje giratorio
horizontal, x2 y x4 son las velocidades angulares respectivas, y los parametros L = 0.068m y
m = 0.0239kg conducen a las matrices A y B dadas arriba.
El siguiente programa implementa las LMIs de estabilizacion (15) mas las LMIs de restriccion
de entrada (22). Fue probado para de 1.2 y 3, a fin de comparar el efecto de la imposicion
[
]T
de dicha cota bajo la condicion inicial x(0) = /16 0.1 /16 0.1 :
A=[0
0; 0
B=[0;-34.4136; 0 ; 13.3528];
%Cota de entrada
miu=1.2;
miu2=miu2;
%Condiciones iniciales
X0=[pi/16;0.1;-pi/16;-0.1];
[n m]=size(B);
setlmis([]);
10
11
X=lmivar(1,[n 1]);
12
M=lmivar(2,[m n]);
13
%LMI X=X'>0
14
lmix=newlmi;
15
lmiterm([-lmix 1 1 X],1,1);
16
%LMI AX+BX+XA'+M'B'<0
17
lmix=newlmi;
18
lmiterm([lmix 1 1 X],A,1,'s');
19
lmiterm([lmix 1 1 M],B,1,'s');
20
21
lmix=newlmi;
27
22
lmiterm([-lmix 1 1 X],1,1);
23
lmiterm([-lmix 2 1 M],1,1);
24
lmiterm([-lmix 2 2 0],miu2);
25
26
lmix=newlmi;
27
lmiterm([-lmix 1 1 0],1);
28
lmiterm([-lmix 2 1 0],X0);
29
lmiterm([-lmix 2 2 X],1,1);
30
31
ejemplo=getlmis;
32
[tmin,xfeas]=feasp(ejemplo);
33
if tmin<0
34
X=dec2mat(ejemplo,xfeas,X);
35
M=dec2mat(ejemplo,xfeas,M);
36
F=M*inv(X); P=inv(X);
37
else
disp('LMI no factible');
38
39
end
]
Se obtuvieron las ganancias F1 = 0.00000022 0.00004240 5.72331652 0.65577480
[
]
para la cota = 1.2 y F2 = 0.0139 0.0536 7.8175 0.8910 para = 3. En la figura
9(b) la evolucion en el tiempo de las dos leyes de control anteriores se contrasta con la obtenida
por estabilizacion sin restriccion de entrada: a mayor restriccion, mayor tiempo de estabilizacion.
u(t)
3
2
1
0
1
2
0
2
3
Tiempo (s)
Fig. 9: Ejemplo 6.
28
E. Restricciones en la salida
De manera similar a la seccion anterior, acotar la salida y(t) Rq : y(t) = Cx(t) de un
sistema lineal de manera que satisfaga ||y|| bajo condiciones iniciales x(0) conocidas,
puede realizarse anadiendo al diseno de un controlador ordinario o con tasa de decaimiento, las
LMIs que se desarrollaran a continuacion. Puesto que
||y(t)|| < ||y(t)||2 = y T y = xT F T F x 2 xT C T 2 Cx 1
se va a combinar con la funcion de Lyapunov de un diseno de controlador que satisface (20),
tenemos que
xT (P C T 2 C ) x 0
xT C T 2 Cx xT P x xT (0)P x(0) 1
1 xT (0)P x(0) 0
X 0
y sustitucion X = P 1 ,
que, por complemento de Schur (4), congruencia (5) con
0 I
conduce a las siguientes condiciones LMI equivalentes
T
T
1
x (0)
X XC
0,
0,
(23)
x (0)
X
CX 2 I
que son las que deben satisfacerse para garantizar ||y(t)|| < .
Ejemplo 7. Retomamos el ejemplo 6 con salida y = x1 para disenar una ley de control de realimentacion de estado (13) que estabilice el sistema con una tasa de decaimiento = 27.4 y una
[
]T
restriccion de salida con cota = 0.7 para la condicion inicial x(0) = 0.08 0 0.1 0.7 .
Esto significa que deberan programarse las LMIs (16) (tasa de decaimiento) junto con las de
[
]
(23) (restriccion de salida) con C = 1 0 0 0 . El programa correspondiente es:
A=[0
B=[0;-34.4136; 0 ; 13.3528];
C=[1 0 0 0];
%Cota de salida
lambda=0.7;
lambda2=lambda2;
% tasa de decaimiento
0; 0
alpha=27.4;
29
%Condiciones iniciales
10
X0=[0.08;0;-0.1;0.7];
11
[n m]=size(B);
12
setlmis([]);
13
14
X=lmivar(1,[n 1]);
15
M=lmivar(2,[m n]);
16
%LMI X=X'>0
17
lmix=newlmi;
18
lmiterm([-lmix 1 1 X],1,1);
19
%LMI AX+BX+XA'+M'B'+alphaX<0
20
lmix=newlmi;
21
lmiterm([lmix 1 1 X],A,1,'s');
22
lmiterm([lmix 1 1 M],B,1,'s');
23
lmiterm([lmix 1 1 X],alpha,1);
24
25
lmix=newlmi;
26
lmiterm([-lmix 1 1 X],1,1);
27
lmiterm([-lmix 2 1 X],C,1);
28
lmiterm([-lmix 2 2 0],lambda2);
29
30
lmix=newlmi;
31
lmiterm([-lmix 1 1 0],1);
32
lmiterm([-lmix 2 1 0],X0);
33
lmiterm([-lmix 2 2 X],1,1);
34
35
ejemplo=getlmis;
36
[tmin,xfeas]=feasp(ejemplo);
37
if tmin<0
38
X=dec2mat(ejemplo,xfeas,X);
39
M=dec2mat(ejemplo,xfeas,M);
F=M*inv(X); P=inv(X);
40
41
else
disp('LMI no factible');
42
43
end
[
]
y arroja la ganancia F = 51032789.5 6883113.2 167729847.7 17739852.1 . En la
figura 10(a) se muestra la evolucion en el tiempo de la salida comparada con la producida por una
ley de control con la misma tasa de decaimiento, pero sin restriccion de salida: aunque las cotas
30
1
Sin cota de salida
=0.7
0.1
0.8
V (t)
y(t)
0.08
0.06
0.4
0.04
0.2
0.02
0
0
0.6
0.1
0.2
0.3
0.4
Tiempo (s)
0.5
0.6
0
0
0.1
0.2
0.3
0.4
Tiempo (s)
0.5
0.6
son respetadas por ambas salidas, solo aquella controlada esta garantizada matematicamente
para permanecer en el rango especificado. Note que los desarrollos para restriccion de entrada
y salida no son independientes de la existencia de una funcion de Lyapunov asociada, que en
este caso se ilustra en la figura 10(b).
F. Rechazo de perturbaciones
Extenderemos el modelo lineal considerado en (12) para que incluya salida y perturbaciones
aditivas w(t) Rs , de la siguiente manera:
x(t) = Ax(t) + Bu(t) + Dw(t),
(24)
donde las matrices D Rns y E Rqs representan la forma en que las perturbaciones w(t)
afectan al estado y a la salida, respectivamente.
Entre las distintas tecnicas para lidiar con este tipo de perturbaciones, el control H es susceptible
de ser expresado en terminos de LMIs. Esta tecnica consiste en minimizar la relacion entre la
norma 2 de la senal de salida y la norma 2 de la perturbacion, es decir, resolver el siguiente
problema de optimizacion [4]:
min :
>0
||y(t)||2
,
||w(t)||2 =0 ||w(t)||2
sup
(25)
31
donde > 0 se denomina nivel de atenuacion y la norma 2 de una senal, pongamos por caso,
y(t), se define como [13]:
) 21
y (t)y(t) .
T
(26)
Si existe una funcion de Lyapunov V (x) asociada al origen del sistema (24), el criterio (25) se
satisface siempre que se encuentre el mnimo > 0 tal que [14]:
V + y T y 2 wT w 0.
(27)
Teorema 4. El sistema lineal (24) bajo la ley de control (13) satisface el criterio H en (25) para
el rechazo de perturbaciones w(t) con un nivel de atenuacion , si existen matrices X = X T > 0
y M de dimensiones adecuadas que satisfagan la siguiente LMI:
T T
T
T
T
AX + BM + M B + XA XC D + XC E
0,
CX
I
0
DT + E T CX
0
E T E 2I
(28)
32
P A + P BF + F T B T P + AT P + C T C P D + C T E
0,
T
T
T
2
E C +D P
E E I
X 0
utilizando la propiedad (5), donde las
lo que puede pre- y post-multiplicarse por
0 I
sustituciones X = P 1 y M = F X se realizaran aplicando la propiedad (6) para obtener:
T T
T
T
T
AX + BM + M B + XA + XC CX D + XC E
0.
DT + E T CX
E T E 2I
Aplicando el complemento de Schur (4) al elemento (1, 1) se llega a la LMI (28).
Como es natural, el problema (25) se convierte as en un problema de optimizacion LMI que
consiste en hallar el mnimo > 0 tal que X > 0 y (28) se satisfagan (consiguiendo as la
mayor atenuacion posible en el efecto de las perturbaciones sobre la salida). Renombrando 2
como una variable de optimizacion, este es un problema que puede resolverse utilizando la rutina
mincx de MATLAB.
Este solver tiene al menos dos parametros: el primero, como sucede en feasp y gevp, es el
nombre dado a las LMIs al momento de recogerlas con getlmis; el segundo es un vector
c con tantas entradas como variables escalares de decision distintas tenga el problema. Las
entradas del vector c sirven para especificar la combinacion lineal a minimizar cuando se llame
a la rutina mincx. Por ejemplo, si se definio como unica variable una matriz P simetrica de
2 2, ello produce un vector interno para representar las 3 entradas distintas de dicha matriz,
[
]T
llamemosle x = x1 x2 x3 , donde x1 es el elemento (1, 1) de la matriz P , x2 el elemento
(1, 2) (igual al de la posicion (2, 1)), y x3 el elemento restante (2, 2). Si se deseara minimizar el
[
]T
elemento (1, 1), el vector c debera definirse como c = 1 0 0 ; si se deseara minimizar la
[
]T
suma x1 x2 + 2x3 , entonces c = 1 1 2 , toda vez que la funcion a minimizar sera cT x.
Para el caso concreto del problema de optimizacion consistente en hallar la mnima > 0 tal
que X > 0 y (28) se satisfagan, es recomendable declarar la variable de decision al inicio
[
]T
a fin de definir el vector c del segundo parametro de mincx como c = 1 0 0 , de
modo que sea la primera variable de decision, esto es , la que se minimice. En caso de que se
desconozca el numero de variables escalares de decision de un problema LMI dado, podemos
utilizar la instruccion decnbr para obtenerlo.
33
B=[0 ; 0; 61.6326;
C=[1 0 0 0];
D=[0.9;0.9;0;0];
E=[0;0;0;0];
[n m]=size(B);
setlmis([]);
gamma2=lmivar(1,[1 1]);
-61.6326];
10
X=lmivar(1,[n 1]);
11
M=lmivar(2,[m n]);
12
%LMI X=X'>0
13
lmix=newlmi;
14
lmiterm([-lmix 1 1 X],1,1);
15
16
lmix=newlmi;
17
lmiterm([lmix 1 1 X],A,1,'s');
18
lmiterm([lmix 1 1 M],B,1,'s');
19
lmiterm([lmix 2 1 X],C,1);
20
lmiterm([lmix 2 2 0],-1);
21
lmiterm([lmix 3 1 0],D');
22
lmiterm([lmix 3 1 X],E*C,1);
23
lmiterm([lmix 3 3 0],E'*E);
24
lmiterm([lmix 3 3 gamma2],-1,1);
25
26
lmis=getlmis;
34
27
c=[1 zeros(1,decnbr(lmis)-1)];
28
[copt,xopt]=mincx(lmis,c);
29
if isempty(copt)
30
X=dec2mat(lmis,xopt,X);
31
M=dec2mat(lmis,xopt,M);
32
F=M*inv(X); P=inv(X);
33
gamma2=dec2mat(lmis,xopt,gamma2);
34
gamma=sqrt(gamma2);
35
else
disp('no factible')
36
37
end
[
]
que produjo la ganancia F = 16303.80 10.10 4 0.01 correspondiente al nivel de
atenuacion mnimo = 0.0904.
En la figura 11(a) se muestra la evolucion en el tiempo de la perturbacion w(t) utilizada para
obtener los resultados de la figura 11(b), donde se muestran las salidas correspondientes a
los tres niveles de atenuacion calculados: claramente la salida cuando el nivel de atenuacion
es minimizado muestra la mayor insensibilidad a la senal de perturbacion w(t) aplicada. La
[
]T
condicion inicial utilizada en las simulaciones fue x(0) = /20 /20 0.2 0.2 .
1
0.1
=0.2
=0.1
min=0.0904
0.05
0.5
y(t)
w(t)
0.05
0.1
0.5
0.15
1
0
4
6
Tiempo (s)
10
0.2
0
0.1
0.2
0.3
Tiempo (s)
0.4
0.5
35
G. Observadores de estado
Frecuentemente, los estados necesarios para implementar una ley de realimentacion de estado
(13) no estan disponibles o bien resulta muy costoso hacerse de ellos por medio de sensores.
Una solucion posible a este problema consiste en el diseno de observadores de estado que tienen
la misma estructura que el sistema a observar
x(t) = Ax(t) + Bu(t),
y(t) = Cx(t)
(29)
y cuyos estados x(t) se modifican por medio de una ganancia de observacion L para aproximarse
asintoticamente al estado de la planta observada [15]:
x(t)
= Ax(t) + Bu(t) + L (y(t) y(t)) ,
y(t) = C x(t).
(30)
Este problema, igual que el de estabilizacion, se resuelve dentro del area de control lineal por
medio de una asignacion de polos que garantice que el sistema del error e(t) = x(t) x(t)
e(t) = (A + LC)e(t)
(31)
P A + AT P + N C + C T N T < 0,
(32)
(
)
V = 2eT P e = eT P (A + LC) + (AT + C T LT )P e < 0,
36
1 0 0 0
x(t).
y(t) = Cx(t) =
0 1 0 0
Los estados no disponibles son estimados por un observador disenado por medio de las LMIs
(32); estas se programan como sigue:
C=[1 0 0 0; 0 1 0 0];
setlmis([]);
P=lmivar(1,[4 1]);
N=lmivar(2,[4 2]);
%LMI P=P'>0
lmix=newlmi;
lmiterm([-lmix 1 1 P],1,1);
10
%LMI PA+A'P+NC+C'N'<0
11
lmix=newlmi;
12
lmiterm([lmix 1 1 P],1,A,'s');
13
lmiterm([lmix 1 1 N],1,C,'s');
14
15
ejemplo=getlmis;
16
[tmin,xfeas]=feasp(ejemplo);
17
if tmin<0
18
P=dec2mat(ejemplo,xfeas,P);
19
N=dec2mat(ejemplo,xfeas,N);
20
L=inv(P)*N;
21
else
disp('LMI no factible');
22
23
end
37
x3 observador
2
1
0
x4 observador
1
2
0
x4
2
x4 , x4
x3 , x3
x3
0.5
1
Tiempo (s)
1.5
4
0
(a) Observacion de x3
2
Tiempo (s)
(b) Observacion de x4
En las figuras 12(a) y 12(b) puede verse la accion del observador que acerca x3 y x4 a los
estados x3 y x4 conforme t .
IV. S ISTEMAS NO LINEALES
A partir de ahora consideraremos un caso particular de los sistemas no lineales donde el lado
derecho de la ecuacion es afn en el control:
x(t) = f (x(t)) + g(x(t))u(t),
y = s(x(t)),
(33)
donde x(t) Rn , u(t) Rm y y(t) Rq tienen las definiciones usuales de estado, entradas y
salidas, mientras que f (), g(), y s() son funciones vectoriales no lineales de los estados, con
dimensiones adecuadas.
Siempre que las funciones resultantes esten bien definidas, el sistema (33) puede representarse
de manera equivalente como:
x(t) = A(x(t))x(t) + B(x(t))u(t) y = C(x(t))x(t),
(34)
38
manejando. Mas aun: los sistemas no lineales pueden tener varios puntos de equilibrio, es decir,
puntos aislados x0 tales que f (x0 ) = 0 para x = f (x) (sistemas no lineales sin entradas). Se dice
entonces que un punto de equilibrio es asintoticamente estable si existe una vecindad alrededor
del mismo tal que todas las trayectorias del sistema vayan al punto de equilibrio. Idealmente,
consideraremos que el punto de equilibrio que nos interesa es el origen; de no ser as, bastara
con realizar un cambio de coordenadas para que lo sea.
Como en el caso lineal, usaremos el criterio de Lyapunov que se desprende de la definicion
3 reduciendo la clase de funciones de Lyapunov al caso cuadratico V = xT P x, P > 0, que
por supuesto cumple la condicion V (x) > 0, x = 0 en todo Rn . Considerar la condicion
V (x) < 0 nos llevara a la necesidad de reescribir A(x), B(x) y C(x) en forma tal que admitan
su combinacion con formas matriciales de la derivada de V (x). Esto se conseguira de al menos
tres formas:
1) Linealizando en el origen, lo que nos llevara a los resultados de las secciones precedentes
mediante un modelo lineal aproximado.
2) Linealizando en multiples puntos de operacion e interpolando entre dichos puntos por medio
de funciones no lineales del estado que cumplan la propiedad de suma convexa, en cuyo
caso se obtendra un modelo no lineal convexo aproximado.
3) Reescribiendo los modelos no lineales algebraicamente por medio de la metodologa de
sector no lineal, produciendo as representaciones convexas exactas en un compacto del
espacio de estados, es decir, un modelo no lineal convexo exacto.
Los modelos 2 y 3 se denominan tambien modelos Takagi-Sugeno [14].
A. Obtencion de modelos Takagi-Sugeno aproximados
A partir de un sistema no lineal (33) y mediante el Jacobiano, se obtienen r linealizaciones
(Ai , Bi , Ci ), menospreciando los posibles terminos constantes (bias), en r puntos de linealizacion
39
f1
f1
f1
xn
x1 x2
f2
f2
f2
x1
x2
xn
B
=
Ai = f
=
(g(x)u)
= g(x)|x=xi
i
..
..
x x=xi
u
x=xi
..
...
.
.
.
fn
fn
fn
xn
x1
x2
x=xi
s1
s1
s1
xn
x1 x2
s2
s2
s2
xn
s
= x. 1 x. 2 .
Ci = x
.
..
x=xi
..
..
..
.
sq
sq
sq
x
x1
x2
n
x=xi
hi (x) = 1,
0 hi 1,
(35)
i=1
y que valdran 1 exclusivamente en el punto de operacion correspondiente al punto de linealizacion, es decir, hi (xi ) = 1.
As pues, el sistema no lineal (33) es aproximado por
x =
hi (x) (Ai x + Bi u) ,
y=
i=1
hi (x)Ci x.
(36)
i=1
Ejemplo 10. Considere nuevamente el sistema no lineal de pendulo invertido simple en (1)
cuyas ecuaciones se reproducen enseguida:
x1 (t) = x2 (t)
g sin(x1 (t)) 0.5amlx22 (t) sin(2x1 (t)) a cos(x1 (t))u(t)
x2 (t) =
1.3l aml cos2 (x1 (t))
con los parametros ya especificados en la seccion previa.
Se puede construir un modelo Takagi-Sugeno aproximado que utilice linealizaciones en x1 = 0
40
0
1
(
)
(
A(x) = f =
2
2
x
x1
y B(x) =
x2
0
a cos(x1 (t))u(t)
1.3laml cos2 (x1 (t))
0
1
0
, B1 = B(x)|x1 =0 =
,
A1 = A(x)|x1 =0 =
17.3118 0
0.1765
0
1
0
, B2 = B(x)|x1 =10 B1 = B(x)|x1 =0 =
.
A2 = A(x)|x1 =10 =
0.1729
16.7792 0
Las funciones de pertenencia que interpolan entre los distintos sistemas linealizados pueden
tener muchas formas (exponenciales, trapezoidales, triangulares, etcetera); aqu adoptamos las
siguientes, mismas que son ilustradas en la figura 13:
0, |x1 | 10
h1 (x1 ) =
0.1x1 + 1, 10 < x1 < 0
hi (x) (Ai x + Bi u) .
i=1
41
0
x1 x2
+
u(t), y(t) = x1 cos x2
x(t) =
sin x1 + x2
cos x2
que se encuentra en la forma
x2
x(t) =
sin x1 /x1
[
]
0
0
u(t), y(t) = cos x2 0 x(t),
x(t) +
cos x2
1
42
x2 = 1
1 + x2
2
(
+1
1 x2
2
)
=
hi (x2 )ai ,
i=1
0
0
x1
u(t),
x(t) +
x(t) =
cos x2
sin x1 /x1 1
[
]
y(t) = cos x2 0 x(t).
Con base en los maximos y mnimos de cada termino no constante en A(x), B(x) y C(x), dentro
de C, es posible realizar p reescrituras como la arriba propuesta construyendo los siguientes pares
de funciones denominadas pesos:
w0j =
z j zj
,
zj zj
w1j = 1 w0j ,
(37)
z j w0j
z j w1j
ij =0
(38)
43
Las sumas convexas como la descrita anteriormente tienen propiedades importantes, entre ellas
la siguiente
1
wi11 A1i1
i1 =0
wi22 A2i2
+ +
i2 =0
1
ip =0
i1 =0 i2 =0
wipp Apip
ip =0
i1 =0 i2 =0
1
(
)
wi11 wi22 wipp A1i1 + A2i2 + + Apip
wi11 wi22 wipp Ai1 i2 ip ,
(39)
ip =0
que permite agrupar los pesos en una suma anidada externa aun si los terminos Ajij son
expresiones matriciales (forzosamente del mismo tamano), con Ai1 i2 ip = A1i1 + A2i2 + + Apip .
Ejemplo 12. Retomando el ejemplo 11, note que la propiedad (39) puede utilizarse para escribir
lo siguiente:
( 1+x )
( 1x )
2
2
1 2 + 1 2
0
(
)
(
) x(t)
x(t) =
1sin x1 /x1
sin x1 /x1 +0.2172
0.2172
+1
1
1.2172
1.2172
0
+
( 1cos x )
( cos x 0.54 ) u(t)
2
2
0.54 0.46
+1
0.46
1
1
1
1
ai 0
0
=
wi11 wi22 wi33 1 x(t) + u(t),
a3i3
a2i2 1
i1 =0 i2 =0 i3 =0
[
( 1cos x )
( cos x 0.54 ) ]
2
2
y(t) = 0.54 0.46
+1
0 x(t)
0.46
=
1
1
1
[
]
wi11 wi22 wi33 a3i3 0 x(t),
i1 =0 i2 =0 i3 =0
donde w01 =
w03 =
1+x2
,
2
1cos x2
,
0.46
w11 = 1 w01 =
w13 = 1 w03 =
1x2
,
2
cos x2 0.54
,
0.46
w02 =
1sin x1 /x1
,
1.2172
w12 = 1 w02 =
a30 = 1, y a31 = 1.
Con base en los pesos w0j y w1j , j = 1, 2, . . . , p definidos en (37) definimos las siguientes
funciones de pertenencia (tambien denominadas funciones de membresa por analoga con el
44
(40)
j=1
Estas funciones de pertenencia heredan de los pesos la propiedad de suma convexa (35), debido
a que se forman por la agrupacion de los pesos (39). Es as que llegamos a un modelo con
la misma apariencia que (36), pero cuyo origen es bien distinto de este toda vez que es una
representacion exacta o reescritura algebraica del modelo no lineal original (33), valida en todo
Rn y convexa dentro de la region de modelado C:
x =
hi (z) (Ai x + Bi u) ,
y=
i=1
hi (z)Ci x,
(41)
i=1
y(t) =
i=1
hi (z)Ci x(t),
i=1
i
[
]
a11 0
0
, Bi = y Ci = bi 0 se forman de acuerdo a la tabla siguiente
donde Ai =
22
ai21 1
bi22
hi
ai11
ai21
bi22
0.2172
0.54
0.2172
0.54
0.2172
0.54
0.2172
0.54
45
Usualmente se definen las sumas convexas con una notacion corta que subraya su parecido
con los modelos lineales, sin olvidar que las no linealidades estan presentes en las funciones de
pertenencia:
Ah =
hi (z)Ai ,
Bh =
i=1
hi (z)Bi ,
i=1
Ch =
hi (z)Ci ,
i=1
y(t) = Ch x(t).
(42)
Evidentemente, a partir de un modelo Takagi-Sugeno dado y sin saber a que planta esta asociado,
es imposible saber si este proviene de un modelo no lineal al que se linealizo en distintos puntos
o si proviene de una representacion exacta: ambas representaciones tiene la misma estructura.
No obstante, los modelos obtenidos por sector no lineal siempre tienen un numero de modelos
lineales de la forma r = 2p , donde p es el numero de no linealidades distintas del modelo.
C. Estabilidad de modelos Takagi-Sugeno
Consideremos la estabilidad asintotica del punto de equilibrio x = 0 de un sistema TakagiSugeno (42) con u(t) = 0, es decir, un sistema de la forma x(t) = Ah x(t). Dada la similitud
estructural entre este sistema y el caso lineal, utilizaremos el metodo directo de Lyapunov a fin
de encontrar condiciones LMI que demuestren la estabilidad del origen.
Teorema 6. El punto de equilibrio x = 0 del sistema x(t) = Ah x(t) es asintoticamente estable
si existe una matriz P = P T tal que las siguientes LMIs se satisfagan:
P Ai + ATi P < 0, i = 1, 2, . . . , r.
P > 0,
(43)
V = x P x + x P x = x
P Ah +
ATh P
x=
i=1
)
(
hi xT P Ai + ATi P x,
46
r
i=1
2
x1 3x1 x2
,
x =
x1 2x2 x22
mismo que puede reescribirse en forma (34) como
x
x1 3
1
1 .
x =
x2
1
x2 2
Naturalmente, sera necesario un modelo Takagi-Sugeno exacto de este sistema, de manera que
las conclusiones que obtengamos en un compacto del espacio de estados, pongamos por caso
C = {x : |xi | 1}, i = 1, 2, sean validas para el sistema no lineal original. Claramente, los
terminos no constantes en las entradas matriciales del sistema anterior, x1 y x2 permitiran escribir,
por medio de la metodologa de sector no lineal, los pesos w01 = 0.5 (1 x1 ), w11 = 1 w01 ,
w02 = 0.5 (1 x2 ) y w12 = 1 w02 , que conducen a las funciones de pertenencia h1 = w01 w02 ,
h2 = w01 w12 , h3 = w11 w02 y h4 = w11 w12 y que producen las matrices
2 1
4 1
4 1
2 1
, A2 =
, A3 =
, A4 =
,
A1 =
1 1
1 3
1 1
1 3
4
para el sistema Takagi-Sugeno equivalente x(t) = i=1 hi Ai x(t). Las LMIs (43) producen la
siguiente solucion factible
1.4311
,
P =
1.4311 5.3576
4.0243
47
[n n]=size(A{1});
r=numel(A);
setlmis([]);
P=lmivar(1,[n 1]);
%LMI P=P'>0
lmi0=newlmi;
10
lmiterm([-lmi0 1 1 P],1,1);
11
%LMI A{i}P+PA{i}'<0
12
for i=1:r
13
lmi1=newlmi;
14
lmiterm([lmi1 1 1 P],1,A{i},'s');
15
end
16
17
ejemplo=getlmis;
18
[tmin,xfeas]=feasp(ejemplo);
19
if tmin<0
P=dec2mat(ejemplo,xfeas,P);
20
21
else
disp('no factible');
22
23
end
En la figura 14 se muestran cuatro trayectorias del sistema a partir de cuatro condiciones iniciales
distintas; se incluyen ademas algunas curvas de nivel de la funcion de Lyapunov V (x) = xT P x.
Es importante notar que si la region de modelado se extendiera a, por ejemplo, C = {x : |xi | 3},
i = 1, 2, las matrices resultantes haran no factibles las LMIs (43). Para que estas resulten factibles
es condicion necesaria pero no suficiente que cada una de las matrices Ai sea estable. Sin
embargo, que estas sean estables no es garanta de que su combinacion convexa ri=1 Ai lo sea
[14]. Por ejemplo, note que las matrices
1 3
,
A1 =
0 1
0.5
0
A2 =
5
0.9
son estables (sus valores propios tienen parte real negativa), mientras que su combinacion convexa
(A1 + A2 )/2 no lo es: tiene un valor propio en 1.0891.
48
x2
0.5
0
0.5
1
1
0.5
0
x1
0.5
(44)
(45)
i=1
donde Fi Rmn , i = 1, 2, . . . , r, son ganancias por determinarse. Note que esta ley de control
utiliza las funciones de pertenencia del sistema Takagi-Sugeno a controlar y es, en s misma,
una combinacion convexa de realimentaciones de estado. Esto parecera sugerir que basta con
estabilizar cada par (Ai , Bi ) del sistema Takagi-Sugeno para obtener una PDC estabilizante; no
obstante, como se demostro en la seccion pasada, tener vertices estables no garantiza que el
conjunto lo sea.
Teorema 7. El sistema Takagi-Sugeno (44), bajo la ley de control PDC (45), tiene el origen
asintoticamente estable si existen matrices X, Mi , i = 1, 2, . . . , r tales que
X > 0,
(46)
49
donde la funcion de Lyapunov asociada vendra dada por V (x) = xT P x, con P = X 1 , y las
ganancias seran Fj = Mj X 1 , i = 1, 2, . . . , r.
Demostracion: Recuerde que X = P 1 > 0 implica P > 0, o sea, V = xT P x > 0 (positividad).
Sustituyendo (45) en (44) obtenemos el sistema de lazo cerrado x(t) = (Ah + Bh Fh ) x, que sera
tomado en cuenta en el siguiente desarrollo que examina desarrolla la condicion V < 0:
)
(
V = 2xT P x = xT P (Ah + Bh Fh ) x + xT ATh + FhT BhT P x
(
)
= xT P Ah P Bh Fh + ATh P + FhT Bh P x < 0.
La ultima desigualdad puede pre- y post-multiplicarse por X = P 1 aplicando (5), para luego
hacer la sustitucion Mh = Fh X por medio de la propiedad (6), con lo que llegamos a
Ah X + Bh Mh + ATh X + MhT BhT
( r
)
( r
)( r
)
=
hi A i X +
hi B i
hj M j
i=1
+X
( r
hi ATi
i=1
r
r
i=1
)
+
( r
j=1
j=1
)(
hj MjT
)
hi BiT
i=1
)
Ai X + Bi Mj + XAT + MjT BiT < 0,
i=1 j=1
de donde, visto que 0 hi 1, se sigue que el segundo grupo de LMIs en (46) garantiza la
desigualdad anterior.
Note que la desigualdad
hh = Ah X + Bh Mh + XATh + MhT BhT < 0
(47)
fue garantizada en el teorema anterior de manera conservativa por medio de las LMIs en (46);
es decir, como ya se menciono en la seccion anterior, retirar las funciones de pertenencia a fin
de obtener LMIs, basandonos exclusivamente en el hecho de que son positivas, conduce siempre
a la perdida de la necesidad (condiciones solo suficientes). Esto es particularmente claro en
el caso que nos ocupa porque en las sumas convexas dobles existen relaciones que claramente
podran ayudar a obtener LMIs que garanticen (47) con un mayor conjunto solucion. Si se define
ij = Ai X + Bi Mj + XAT + MjT BiT , tenemos que (47) puede garantizarse con cualquiera de los
resultados siguientes que suelen denominarse relajaciones de suma (el primero se corresponde
al esquema empleado en el teorema 7):
50
x1 3
a
b
x(t) +
u(t),
x(t) =
1
x2 2
x1 + 4
con parametros a = 1 y b = 0, por medio de sector no lineal, para obtener la siguiente
representacion Takagi-Sugeno, equivalente en C = {x : 3 xi 3}, i = 1, 2:
x(t) = Ah x(t) + Bh u(t),
donde
6 1
6 1
0 1
1
,
, A4 =
, A3 =
, A2 =
A1 =
1 5
1 1
1 5
1 1
[
]T
[
]T
B1 = B2 = 0 7 , B3 = B4 = 0 1
con w01 =
3x1
,
6
3x2
,
6
h4 = w11 w12 .
Utilizaremos el teorema 7 para encontrar una ley de control PDC (45) tal que el sistema bajo
consideracion sea estabilizado. Note que el sistema en lazo abierto es inestable. El programa
que implementa las LMIs del lema 3 para X > 0 y ij = Ai X + Bi Mj + XAT + MjT BiT es:
A{1}=[0 -1; -1 1]; A{2}=[0 -1; -1 -5]; A{3}=[-6 -1; -1 1]; A{4}=[-6 -1;-1 -5];
51
[n m]=size(B{1}); r=numel(A);
setlmis([]);
X=lmivar(1,[n 1]);
for j=1:r
M{j}=lmivar(2,[m n]);
8
9
end
10
%LMI X=X'>0
11
lmi0=newlmi;
12
lmiterm([-lmi0 1 1 X],1,1);
13
14
for i=1:r
for j=1:r
15
16
lmi1=newlmi;
17
% XA{i}+B{i}M{i}+A{i}'X+M{i}'B{i}'<0
18
lmiterm([lmi1 1 1 X],A{i},2/(r-1),'s');
19
lmiterm([lmi1 1 1 M{i}],B{i},2/(r-1),'s');
20
% XA{i}+B{i}M{j}+A{i}'X+M{j}'B{i}'<0
21
lmiterm([lmi1 1 1 X],A{i},1,'s');
22
lmiterm([lmi1 1 1 M{j}],B{i},1,'s');
23
% XA{i}+B{i}M{j}+A{j}'X+M{i}'B{j}'<0
24
lmiterm([lmi1 1 1 X],A{j},1,'s');
25
lmiterm([lmi1 1 1 M{i}],B{j},1,'s');
end
26
27
end
28
29
ejemplo=getlmis;
30
[tmin,xfeas]=feasp(ejemplo);
31
if tmin<0
32
X=dec2mat(ejemplo,xfeas,X);
33
P=inv(X);
34
for i=1:r
35
M{i}=dec2mat(ejemplo,xfeas,M{i});
36
F{i}=M{i}*inv(X);
end
37
38
else
disp('no factible');
39
40
end
0.5
1
u(t)
x2
52
1.5
2.5
3
3
0
x1
3
0
0.5
1
Tiempo (s)
1.5
y produce la solucion
T
T
0.5038
0.5038
27.8496 11.7059
, F2 =
,
, F1 =
P =
1.5848
0.5705
11.7059 50.7178
[
]T
[
]T
F3 = 1.7117 3.5960 , F4 = 1.7117 2.3291 .
En la figura 15(a) se presentan cuatro trayectorias del sistema controlado, as como algunas
curvas de nivel de la funcion de Lyapunov: el origen ha sido efectivamente estabilizado. La
[
]T
figura 15(b) muestra la senal de control PDC bajo condiciones iniciales x(0) = 1.7 1.3 .
E. Prestaciones para modelos Takagi-Sugeno
Las modificaciones al esquema de control PDC de la seccion anterior, a fin de incluir prestaciones
como las de tasa de decaimiento (seccion III-C), restriccion de la entrada (seccion III-D) y
restriccion de la salida (seccion III-E), son bastante transparentes y pueden deducirse de la
similaridad entre la estructura convexa del modelo Takagi-Sugeno (42) y los modelos lineales,
as como de las propiedades de relajacion. As pues, tenemos los siguientes resultados:
Teorema 8. El sistema (42) bajo la ley de control PDC (45) tiene el origen asintoticamente estable
con tasa de decaimiento > 0 si existen matrices X = X T y Mj Rmn , j = 1, 2, . . . , r, tales
53
(48)
La funcion de Lyapunov viene entonces dada por V (x) = xT X 1 x y las ganancias del controlador por Fj = Mj X 1 , j = 1, 2, . . . , r.
Obviamente, las relajaciones de los lemas 2 y 3 pueden usarse en vez de (48), con ij =
Ai X + Bi Mj + XATi + MjT BiT + X, a fin de obtener resultados ah donde el test de factibilidad
cuadratica simple falle.
Teorema 9. El sistema (42) bajo la ley de control PDC (45) tiene el origen asintoticamente
estable con ||u(t)|| para > 0 y condicion inicial x(0) conocida, si existen matrices
X = X T y Mj Rmn , j = 1, 2, . . . , r, tales que se satisfagan las LMIs de los lemas 1, 2 o 3
para la ij correspondiente a estabilizacion o tasa de decaimiento, junto con las siguientes:
T
T
1
x (0)
X Mj
0.
0, j = 1, 2, . . . , r,
(49)
x (0)
X
Mj 2 I
La funcion de Lyapunov viene entonces dada por V (x) = xT X 1 x y las ganancias del controlador por Fj = Mj X 1 , j = 1, 2, . . . , r.
Teorema 10. El sistema (42) bajo la ley de control PDC (45) tiene el origen asintoticamente
estable con ||y(t)|| para > 0 y condicion inicial x(0) conocida, si existen matrices
X = X T y Mj Rmn , j = 1, 2, . . . , r, tales que se satisfagan las LMIs de los lemas 1, 2 o 3
para la ij correspondiente a estabilizacion o tasa de decaimiento, junto con las siguientes:
X XCiT
1
xT (0)
0.
0, i = 1, 2, . . . , r,
(50)
2
Ci X I
x (0)
X
La funcion de Lyapunov viene entonces dada por V (x) = xT X 1 x y las ganancias del controlador por Fj = Mj X 1 , j = 1, 2, . . . , r.
No proporcionamos las pruebas de los teoremas 8, 9 y 10, debido a que siguen exactamente el
mismo desarrollo que las proporcionadas en las secciones III-C, III-D y III-E, respectivamente.
La unica diferencia es que las sumas convexas involucradas deben ser retiradas: directamente en
el caso de que sean simples (restricciones de entrada y salida) o a traves de relajaciones como
en el caso de las sumas convexas dobles del diseno con tasa de decaimiento.
54
Ejemplo 16. Considere el sistema de bimotor multivariable (TRMS, por sus siglas en ingles)
mostrado en la figura 16 y cuyo modelo no lineal viene
T11
0
0
0
0
0
0
1
0
0
2
a
T
sin
x
2
b1 + 1 x g
Ib31
0
0
1
I1 x2
x = I1 I1
0
0
0
T12
0
0
0
0
0
0
2
a
b2
0
0
0
+ I22 x4 0
I2
0
u1
1
u2
T1
x5
x3
55
x =
T11
r
i=1
0
0
1
2
b1 + a1 ai Tg ai b3
31
I1 32
I1
Ai = I1 I1
0
0
0
0
0
0
0
0
0
b2
I2
T12
a22 i
a
I2 64
con
1
0
T1
0
0
0
0
, B =
0
0
0
1
b4
I2
0
,
1
T1
donde las funciones de pertenencia hi y los coeficientes ai31 , ai64 y ai32 variaran de acuerdo a la
tabla siguiente:
hi
ai31
ai64
ai32
0.8
0.9003
0.8
0.8
0.9003
0.8
0.8
0.9003
0.8
0.8
0.9003
0.8
40
500
30
400
||u(t)||
V (t)
56
20
10
300
200
100
10
10
Tiempo (s)
10
10
10
Tiempo (s)
10
1.5
0.6
||u(t)||
V (t)
0.8
0.4
0.5
0.2
0
0
2
3
Tiempo (s)
0
0
2
3
Tiempo (s)
57
0.3
0.8
0.6
y(t)
V (t)
0.2
0.1
0.4
0
0.2
0
0
2
3
Tiempo (s)
0.1
0
2
3
Tiempo (s)
Fig. 19: Ejemplo 16: tasa de decaimiento + restriccion de entrada + restriccion de salida
miu=10; lambda=0.5;
% TRMS
% Parametros
9
10
% No linealidades
11
NL{1}=[0.8 -0.8]; % x1
12
NL{2}=[2 -2]; % x4
13
14
15
ii=0;
16
for j1=1:2
17
18
19
for j2=1:2
for j3=1:2
ii=ii+1;
58
A{ii}=[-1/T1,0,0,0,0,0;
20
21
0,0,1,0,0,0;
22
(b1/I1)+((a1)2/I1)*NL{1}(3-j1),-(Tg/I2)*NL{3}(3-j3),-B1/I1,0,0,0;
23
0,0,0,-1/T2,0,0;
24
0,0,0,0,0,1;
25
0,0,0,(b2/I2)+((a2)2/I2)*NL{2}(3-j2),0,-B2/I2];
26
B{ii}=[1/T1,0;0,0;0,0;0,1/T1;0,0;0,0];
27
C{ii}=[1 0 0 0 0 0];
end
28
end
29
30
end
31
32
[n m]=size(B{1});
33
r=numel(A);
34
setlmis([]);
35
36
X=lmivar(1,[n 1]);
37
for j=1:r
M{j}=lmivar(2,[m n]);
38
39
end
40
%LMI X=X'>0
41
lmi0=newlmi;
42
lmiterm([-lmi0 1 1 X],1,1);
43
44
45
miu2=miu2;
46
47
for j=1:r
48
lmix=newlmi;
49
lmiterm([-lmix 1 1 X],1,1);
50
lmiterm([-lmix 2 1 M{j}],1,1);
lmiterm([-lmix 2 2 0],miu2);
51
52
end
53
54
lmix=newlmi;
55
lmiterm([-lmix 1 1 0],1);
56
lmiterm([-lmix 2 1 0],X0);
57
lmiterm([-lmix 2 2 X],1,1);
58
59
59
60
lambda2=lambda2;
61
62
for j=1:r
63
lmix=newlmi;
64
lmiterm([-lmix 1 1 X],1,1);
65
lmiterm([-lmix 2 1 X],C{j},1);
lmiterm([-lmix 2 2 0],lambda2);
66
67
end
68
69
for i=1:r
for j=1:r
70
71
lmi1=newlmi;
72
lmiterm([-lmi1 1 1 X],-A{i},2/(r-1),'s');
73
lmiterm([-lmi1 1 1 M{i}],-B{i},2/(r-1),'s');
74
lmiterm([-lmi1 1 1 X],-A{i},1,'s');
75
lmiterm([-lmi1 1 1 M{j}],-B{i},1,'s');
76
lmiterm([-lmi1 1 1 X],-A{j},1,'s');
77
lmiterm([-lmi1 1 1 M{i}],-B{j},1,'s');
end
78
79
end
80
81
%----GEVP
82
%LMI alpha>0
83
lmix=newlmi;
84
lmiterm([-lmix 1 1 0],1);
85
86
for i=1:r
for j=1:r
87
88
lmi1=newlmi;
89
lmiterm([-lmi1 1 1 X],-A{i},2/(r-1),'s');
90
lmiterm([-lmi1 1 1 M{i}],-B{i},2/(r-1),'s');
91
lmiterm([-lmi1 1 1 X],-A{i},1,'s');
92
lmiterm([-lmi1 1 1 M{j}],-B{i},1,'s');
93
lmiterm([-lmi1 1 1 X],-A{j},1,'s');
94
lmiterm([-lmi1 1 1 M{i}],-B{j},1,'s');
95
lmiterm([lmi1 1 1 X],1,1);
end
96
97
end
98
99
60
100
lmis = getlmis;
101
[beta,popt]=gevp(lmis,(r2)+1);
102
X=dec2mat(lmis,popt,X);
103
P=inv(X);
104
alpha=1/beta;
105
for i=1:r
106
M{i}=dec2mat(lmis,popt,M{i});
107
F{i}=M{i}*inv(X);
108
end
(51)
donde nuevamente las matrices Dh y Eh representan la forma en que las perturbaciones w(t)
afectan al estado y a la salida, respectivamente. En contraste con las anteriores, note que estas son
sumas convexas de matrices y, por lo tanto, guardan relaciones no lineales entre la pertrubacion
y el estado y la salida, respectivamente:
Dh =
i=1
con Di R
ns
, Ei R
qs
hi (z)Di ,
Eh =
hi (z)Ei ,
i=1
Nuevamente, nos proponemos obtener condiciones LMI que garanticen el rechazo de perturbaciones w(t) por medio de control H , que minimiza la relacion entre la norma 2 de la
salida y la norma 2 de la perturbacion, es decir, resolviendo el problema de optimizacion (25).
Este problema, como hemos visto, se traduce en la existencia de una funcion de Lyapunov
V (x) asociada al origen del sistema (51), tal que se encuentre el mnimo > 0 tal que
V + y T y 2 wT w 0.
Teorema 11. El sistema (42) bajo la ley de control PDC (45) satisface el criterio H en (25) para
el rechazo de perturbaciones w(t) con un nivel de atenuacion , si existen matrices X = X T > 0
61
ij =
DiT + EjT Ci X
2 I
Ej
,
T
Ej
I
(52)
2 I EhT
0,
Eh I
para posteriormente obtener (52), base de cualquiera de las relajaciones aplicables.
Ejemplo 17. Retomamos el sistema de pendulo de Furuta del ejemplo 6 con salida y = x3 , con
la diferencia de que ahora partiremos de su modelo no lineal [23], [24]:
x(t) = f (x) + g(x)u(t) + Dw(t)
donde f (x), g(x) y D vienen dados por:
x2
b 2bx x cos2 x sin x +d sin3 x +ad sin x +c2 x2 cos3 x sin x c2 x2 cos x sin x
3
3
3)
3
3
3
3
3
( 2 4
2
4
2
f (x) =
x
4
2
2
2
2
sin x3 (c(bx2 cos x3 bx4 +d cos x3 )+2b x2 x4 cos x3 )
0.8
c cos x3
0
(b2 sin2 x3 +abc2 cos2 x3 )+x22 cos x3 sin x3
, D =
g(x) =
b
0
(b2 sin2 x3 +abc2 cos2 x3 )+x22 cos x3 sin x3
0
62
i=1
0
f
=
A1 =
x x3 =0 0
0
f
A2 =
=
x x3 =2.5 0
0
f
A3 =
=
x x3 =5 0
67.8248
552.3163
0
f
=
, B1 =
,
u
0
0
1
0
x3 =0
0 32.7529 0
799.2825
1
0
0
0
550.1685
0 67.4328 0
f
=
, B2 =
,
u
0
0
1
0
x3 =2.5
0 32.3407 0
796.9328
1
0
0
0
543.8132
0 66.2820 0
f
=
, B3 =
u x3 =5
0
0
1
0
0 31.1325 0
789.9835
y las funciones de pertenencia que interpolan las linealizaciones son como las mostradas en la
figura 20(a).
La senal de perturbacion w(t) se muestra en la figura 20(b). Para efectos de comparacion, se
consideran factores de atenuacion = 0.4 y = 0.2, y se contrastan con el mnimo que
satisface las LMIs en el lema (3) con ij definida como en (52). El programa siguiente permitio
encontrar min = 0.0011 por medio del solver mincx:
0];
0];
B{3}=[0; -543.8132; 0;
789.9835];
63
h1
h2
h3
0.5
1
w(t)
Funciones de pertenencia
1.5
0.5
0.5
0
5
0
x3 (grados)
1
0
for i=1:numel(A)
C{i}=[0 0 1 0]; D{i}=[0.8;0;0;0]; E{i}=0;
8
9
end
10
11
[n m]=size(B{1}); r=numel(A);
12
setlmis([]);
13
14
gamma2=lmivar(1,[1 1]);
15
X=lmivar(1,[n 1]);
16
for i=1:r
M{i}=lmivar(2,[m n]);
17
18
end
19
20
21
lmiterm([-lmix 1 1 X],1,1);
22
23
24
2
3
Tiempo (s)
for i=1:r
for j=1:r
25
lmix=newlmi; %Gama_ii
26
lmiterm([lmix 1 1 X],A{i},2/(r-1),'s');
27
lmiterm([lmix 1 1 M{i}],B{i},2/(r-1),'s');
28
lmiterm([lmix 2 1 X],C{i},2/(r-1));
29
lmiterm([lmix 2 2 0],-2/(r-1));
30
lmiterm([lmix 3 1 0],(2/(r-1))*D{i}');
64
31
lmiterm([lmix 3 1 X],E{i}'*C{i},2/(r-1));
32
lmiterm([lmix 3 3 gamma2],-1,2/(r-1));
33
lmiterm([lmix 4 3 0],E{i}*(2/(r-1)));
34
lmiterm([lmix 4 4 0],-2/(r-1));
35
% Gama_ij
36
lmiterm([lmix 1 1 X],A{i},1,'s');
37
lmiterm([lmix 1 1 M{j}],B{i},1,'s');
38
lmiterm([lmix 2 1 X],C{i},1);
39
lmiterm([lmix 2 2 0],-1);
40
lmiterm([lmix 3 1 0],D{i}');
41
lmiterm([lmix 3 1 X],E{j}'*C{i},1);
42
lmiterm([lmix 3 3 gamma2],-1,1);
43
lmiterm([lmix 4 3 0],E{j});
44
lmiterm([lmix 4 4 0],-1);
45
% Gama_ji
46
lmiterm([lmix 1 1 X],A{j},1,'s');
47
lmiterm([lmix 1 1 M{i}],B{j},1,'s');
48
lmiterm([lmix 2 1 X],C{j},1);
49
lmiterm([lmix 2 2 0],-1);
50
lmiterm([lmix 3 1 0],D{j}');
51
lmiterm([lmix 3 1 X],E{i}'*C{j},1);
52
lmiterm([lmix 3 3 gamma2],-1,1);
53
lmiterm([lmix 4 3 0],E{i});
54
lmiterm([lmix 4 4 0],-1);
end
55
56
end
57
58
59
lmis=getlmis;
60
c=[1 zeros(1,decnbr(lmis)-1)];
61
[copt,xopt]=mincx(lmis,c);
62
if isempty(copt)
63
X=dec2mat(lmis,xopt,X); P=inv(X);
64
for j=1:r
M{j}=dec2mat(lmis,xopt,M{j}); F{j}=M{j}*P;
65
66
end
67
gamma2=dec2mat(lmis,xopt,gamma2); gamma=sqrt(gamma2);
68
else
disp('no factible')
69
70
end
65
0.03
=0.4
=0.2
min=0.0011
0.02
=0.4
=0.2
min=0.0011
0.8
0.6
y(t)
u(t)
0.01
0
0.4
0.2
0
0.01
0.02
0
0.2
1
2
3
Tiempo (s)
0.4
0
0.1
0.2
0.3
Tiempo (s)
0.4
0.5
En la figura 21(a) se muestran las salidas para los 3 factores de atenuacion considerados: puede
apreciarse el efecto producido por valores progresivamente mas pequenos de . Complementariamente, la figura 21(b) muestra las leyes de control correspondientes.
G. Diseno de observadores para modelos Takagi-Sugeno
Como generalizacion del observador lineal en (30), se propone uno que, igual que el controlador
PDC, incorpore las funciones de pertenencia en el diseno. Como las funciones de pertenencia
sobre todo cuando el modelo se ha obtenido por sector no lineal dependen de vectores premisa
que a su vez suelen ser fucniones del estado, estas podran ser medibles o no estar disponibles
para el diseno de un observador. Consideraremos unicamente el caso medible; el lector interesado
en el otro caso puede consultar [25].
Dado un sistema Takagi-Sugeno con premisas z(t) medibles (y, por tanto, funciones de pertenencia hi (z) tambien conocidas)
x(t) = Ah x(t) + Bh u(t),
y(t) = Ch x(t),
(53)
x(t)
= Ah x(t) + Bh u(t) + Lh (y(t) y(t)) ,
y(t) = Ch x(t),
(54)
cuyos estados x(t) deberan aproximarse asintoticamente al estado de la planta observada por
66
hj (z)Lj .
j=1
Igual que en el caso del observador lineal desarrollado en la seccion III-G, describimos la
dinamica del error e(t) = x(t) x(t) como
e(t) = (Ah Lh Ch )e(t).
(55)
Teorema 12. El estado x del observador no lineal de estado (54) aproximara asintoticamente el
estado x del sistema no lineal (53) si existen matrices P = P T > 0 y Nj , j = 1, 2, . . . , r, tales
que las LMIs de los lemas 1, 2 o 3 se satisfagan para
ij = P Ai + ATi P + Nj Ci + CiT NjT < 0, i, j = 1, 2, . . . , r,
(56)
x2
,
x(t) =
2
x1 2x2 + 0.25x1 x2 + 0.2 sin(2t)
y(t) = x1 ,
con el objetivo de disenar un observador basado en modelos Takagi-Sugeno que permita recuperar
el valor del estado x2 a partir de la salida, para la region C = {x : |x1 | 1.2}.
Es claro que la siguiente es una reescritura Takagi-Sugeno de este modelo:
0
,
x(t) =
hi (x1 )Ai x(t) +
0.2 sin(2t)
i=1
donde
1.44 x21
, h1 =
, A2 =
A1 =
, h 2 = 1 h1 .
1.44
1 1.65
1 2
0
67
El observador es una adaptacion de la forma (56), donde el termino conteniendo a 0.2 sin(2t)
actua como entrada:
x(t)
=
2
2
i=1
0
.
hi (x1 )hj (x1 ) (Ai x(t) + Lj Ci (x(t) x(t))) +
0.2
sin(2t)
j=1
Como se mostro con anterioridad, el sistema y el observador forman el sistema del error (55):
e(t) =
2
2
i=1 j=1
Las LMIs del lema 2 fueron programadas con ij definido en (56), como sigue:
5
6
r=numel(A);
[p n]=size(C{1});
setlmis([]);
10
P=lmivar(1,[n 1]);
11
for j=1:r
N{j}=lmivar(2,[n p]);
12
13
end
14
%LMI P=P'>0
15
lmix=newlmi;
16
lmiterm([-lmix 1 1 P],1,1);
17
18
19
for i=1:r
20
for j=1:r
21
lmix=newlmi;
22
%Gamma_ij
23
lmiterm([lmix 1 1 P],1,A{i},'s');
24
lmiterm([lmix 1 1 N{j}],1,C{i},'s');
25
%Gamma_ji
26
lmiterm([lmix 1 1 P],1,A{j},'s');
27
lmiterm([lmix 1 1 N{i}],1,C{j},'s');
28
end
68
29
end
30
31
ejemplo=getlmis;
32
[tmin,xfeas]=feasp(ejemplo);
33
if tmin<0
34
P=dec2mat(ejemplo,xfeas,P);
35
for j=1:r
36
N{j}=dec2mat(ejemplo,xfeas,N{j});
37
L{j}=inv(P)*N{j};
end
38
39
else
disp('LMI no factible');
40
41
end
0.2514
0.2923
, L2 =
,
L1 =
2.2810
2.5485
y la matriz de Lyapunov
1.3643 0.2085
.
P =
0.2085 0.3047
0.15
e1
e2
0.015
0.1
V (t)
Error
0.05
0
0.05
0.01
0.005
0.1
0
4
6
Tiempo (s)
10
0
0
4
6
Tiempo (s)
10
69
V. C ONCLUSI ON
Las desigualdades matriciales lineales (LMIs) son una herramienta computacionalmente eficaz
para el analisis y el diseno de sistemas de control. En el caso lineal, estas son capaces de
reproducir condiciones suficientes y necesarias existentes en la literatura. En el caso no lineal,
mediando el modelado aproximado o exacto basado en representaciones convexas Takagi-Sugeno,
las LMIs proporcionan condiciones suficientes (pero no necesarias) para el analisis de estabilidad
y diseno de controladores y observadores.
AGRADECIMIENTOS
Los autores agradecen el patrocinio del Consejo Nacional de Ciencia y Tecnologa a traves del
Proyecto de Ciencia Basica SEP-CONACYT 168406.
R EFERENCES
[1] L. Wang, A Course in Fuzzy Systems and Control.
[2] H. T. Nguyen and E. Waker, A first course in Fuzzy Logic. Boca Raton, FL: Chapman and Hall CRC, 2005.
[3] C. Scherer, Linear Matrix Inequalities in Control Theory.
[4] S. Boyd, L. E. Ghaoui, E. Feron, and V. Belakrishnan, Linear Matrix Inequalities in System and Control Theory.
Philadelphia, USA: SIAM: Studies In Applied Mathematics, 1994, vol. 15.
[5] P. Gahinet, A. Nemirovski, A. J. Laub, and M. Chilali, LMI Control Toolbox.
[6] J. Lofberg, YALMIP : a toolbox for modeling and optimization in matlab, in 2004 IEEE International Symposium on
Computer Aided Control Systems Design, 2004, pp. 284289.
[7] J. Sturm, Using SeDuMi 1.02, a MATLAB toolbox for optimization over symmetric cones, Optimization Methods and
Software, vol. 11-12, pp. 625653, 1999.
[8] E. D. Andersen and K. D. Andersen, The mosek interior point optimizer for linear programming: An implementation of
the homogeneous algorithm, in High Performance Optimization, ser. Applied Optimization, H. Frenk, K. Roos, T. Terlaky,
and S. Zhang, Eds.
[9] R. H. Tutuncu, K. C. Toh, and M. J. Todd, Solving semidefinite-quadratic-linear programs using SDPT3, Mathematical
programming, vol. 95, no. 2, pp. 189217, 2003.
[10] H. Khalil, Nonlinear Systems, 3rd ed.
[11] Quanser Inc., SRV02 Rotary Flexible Joint Workbook (Instructor), 2011.
[12] , Mechatronics Control Kit Users Manual, 2006.
[13] J. C. Doyle, B. A. Francis, and A. Tannenbaum, Feedback control theory.
1992, vol. 1.
[14] K. Tanaka and H. Wang, Fuzzy Control Systems Design and Analysis. A linear matrix inequality approach.
John Wiley & Sons, 2001.
[15] C. T. Chen, Linear System Theory and Design. New York, USA: Saunders College Publishing, 1984.
New York:
70
[16] H. Ohtake, K. Tanaka, and H. Wang, Fuzzy modeling via sector nonlinearity concept, in IFSA World Congress and 20th
NAFIPS International Conference, 2001. Joint 9th, vol. 1, 2001, pp. 127132.
[17] A. Sala, T. Guerra, and R. Babuska, Perspectives of fuzzy systems and control, Fuzzy Sets and Systems, vol. 156, no. 3,
pp. 432444, 2005.
[18] H. Wang, K. Tanaka, and M. Griffin, Parallel distributed compensation of nonlinear systems by Takagi-Sugeno fuzzy
model, in Proc. IEEE Intl. Conf. on Fuzzy Systems 95, 1995, pp. 531532.
[19] , An approach to fuzzy control of nonlinear systems: Stability and design issues, IEEE Transactions on Fuzzy
Systems, vol. 4, no. 1, pp. 1423, 1996.
[20] H. Tuan, P. Apkarian, T. Narikiyo, and Y. Yamamoto, Parameterized linear matrix inequality techniques in fuzzy control
system design, IEEE Transactions on Fuzzy Systems, vol. 9, no. 2, pp. 324332, 2001.
[21] A. Sala and C. Arino, Asymptotically necessary and sufficient conditions for stability and performance in fuzzy control:
Applications of Polyas theorem, Fuzzy Sets and Systems, vol. 158, no. 24, pp. 26712686, 2007.
[22] Q. Ahmed, A. Bhatti, and S. Iqbal, Nonlinear robust decoupling control design for twin rotor system, in Asian Control
Conference, 2009. ASCC 2009. 7th, Hong Kong, China, 2009, pp. 937942.
[23] A. S. Shiriaev, L. B. Freidovich, A. Robertsson, R. Johansson, and A. Sandberg, Virtual-holonomic-constraints-based
design of stable oscillations of Furuta pendulum: Theory and experiments, Robotics, IEEE Transactions on, vol. 23,
no. 4, pp. 827832, 2007.
[24] L. F. Escobar and O. D. Montoya, Control Hbrido del Pendulo de Furuta, Universidad Tecnologica de Pereira, 2012.
[25] Z. Lendek, T. Guerra, R. Babuska, and B. De-Schutter, Stability Analysis and Nonlinear Observer Design Using TakagiSugeno Fuzzy Models. Netherlands: Springer-Verlag, 2010.
[26] H. K. Khalil, Nonlinear control, 1st ed.