You are on page 1of 70

1

Control borroso: de la heurstica a la


matematica y a la programacion convexa
Miguel Bernal, Braulio Aguiar

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

union e interseccion respectivamente) por medio de lo que se conoce como t-normas y


s-normas.
3) construye deducciones logicas generalizando reglas del calculo proposicional como el silogismo, el modus-ponens, el modus-tollens, etcetera.
4) es capaz de representar conocimiento lingustico como un sistema borroso que consta de
un fuzzificador, una base de reglas, una maquina de inferencia y un defuzzificador.
El control difuso se basa en la construccion de un sistema difuso con las caractersticas mencionadas en el tem 4; dicho sistema se alimenta con los estados x(t) o salidas y(t) del sistema
y produce, con base en ellos, una senal de control u(t) que se supone debe conseguir el efecto
deseado y que no es otro que el expresado por la base de reglas lingusticas del sistema. Esto
implica que el control difuso tradicional se basa en el conocimiento experto de la planta y es
por tanto libre de modelo; en contraste, el enfoque hacia el que estan orientados estos apuntes
es basado en modelo.
Los sistemas difusos se construyen con base en numerosas opciones y parametros, por ejemplo:
1) Tipo de conjuntos difusos, tipo de funcion de pertenencia y parametros de la misma.
2) Tipo de s-norma, t-norma o complemento a emplearse en las operaciones logicas o de
conjuntos.
3) Tipo de fuzzificador (singleton, triangular, etc.)
4) Tipo de defuzzificador (por centro de gravedad, centros promediados, etc.)
5) Forma en que se realiza la inferencia (como se condensan las diferentes reglas difusas
en una sola).
No es el objeto de estos apuntes explorar estos aspectos, pero los dos ejemplos siguientes se
presentan a modo de repaso de la tecnica de control difuso tradicional libre de modelo: el
primero muestra como se calcula la salida de un sistema difuso con fuzzificador de singleton,
maquina de inferencia por producto, base de reglas tradicional (conjunciones para cada una y
un consecuente; disyuncion entre las distintas reglas) y defuzzificador de centros promediados;
el segundo ilustra la construccion de un controlador difuso libre de modelo para un sistema de
pendulo invertido.
Ejemplo 1. Considere un sistema difuso de dos entradas y una salida definido por las reglas:
R1 : SI x1 ES A1 y x2 ES A2 ENTONCES y ES A1

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:

Fig. 2: El pendulo invertido

mGN

mPN

mC

mPP

mGP

mN

mC

mP

x1(t)
0

-p/4

-p/8

p/8

-1

p/4

(a) Funciones de membresa para x1

x2

(b) Funciones de membresa para x2

Fig. 3: Ejemplo 2.

mGN

mPN

mC

mPP

mGP

u(t)
0

-50

-25

25

50

(a) Funciones de membresa para u(t)

(b) Diagrama de fase x1-x2

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)

donde f () es una funcion lineal de las variables matriciales de decision D1 , D2 , . . . , Dn , los


conjuntos {A1 , A2 , . . . , An } y {B1 , B2 , . . . , Bn } son conjuntos de coeficientes matriciales (matrices constantes conocidas) que pre- y post-multiplican las variables de busqueda, respectivamente;
A0 es una matriz conocida que actua como el coeficiente independiente en un polinomio.
Equivalentemente, si las distintas entradas escalares de cada variable de decision matricial se
agrupan en un vector x, la LMI (1) puede verse equivalentemente como una LMI en x, siendo
esta el argumento de una funcion matricial lineal afn L(x) = L1 (x) + L0 con L0 una matriz
constante:
L(x) = L0 + L1 (x) < 0.

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)

3) Congruencia: El signo de una expresion matricial se mantiene si se pre- y pos-multiplica


por una matriz y su transpuesta.

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.

3) Problema generalizado de eigenvalores (GEVP): Consiste en minimizar un escalar R

L1 (x) L2 (x) > 0

tal que:
min
>0

L1 (x) > 0

L3 (x) > 0

(7)

lo que, a diferencia del problema de optimizacion, incluye el producto de una variable de


decision por una expresion que tambien depende de variables de decision x. En este
sentido, pareciera que el problema no es estrictamente LMI, pero la condicion de que
sea escalar lo convierte en un problema de optimizacion convexa viable.
B. Programando LMIs
En esta seccion presentamos un breve tutorial para la implementacion de LMIs utilizando el
LMIToolbox de MATLAB [5]. La implementacion de LMIs en esta herramienta puede dividirse
en las siguientes etapas:
1) Inicializacion: Retoma una LMI existente o declara una nueva (mediante la instruccion
setlmis), ademas de declarar las variables de decision a utilizarse indicando su dimension
y tipo (mediante la instruccion lmivar).
2) Descripcion: Consiste en escribir las LMIs que deben tener un identificador escrito manualmente o creado por la instruccion newlmi. Cada termino de una LMI debe introducirse
mediante la instruccion lmiterm y, como es natural, cada termino solo puede contener una
variable de decision. Dependiendo del objetivo del programa, las LMIs pueden escribirse
en cualquier orden o en un orden especfico.
3) Prueba: Recoge las LMIs creadas y llama a alguno de los solvers disponibles en el
LMIToolbox, que son basicamente tres: feasp (para pruebas de factibilidad), mincx (para
problemas de optimizacion) y gevp (para problemas generalizados de eigenvalores). En
esta etapa deben tambien proporcionarse los datos requeridos por la rutina a la que se llame
(combinacion lineal a minimizar en el caso de mincx, por ejemplo).
4) Resultados: Consiste en determinar con base en los datos arrojados por el solver si el
problema tuvo solucion o no y cual fue esta. La recuperacion de los valores de las variables
de decision matriciales se lleva a cabo normalmente con la instruccion dec2mat.
Un programa tpico de LMIs inicia con

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

Segundo argumento en lmivar

[n m] con n=tamano del bloque, m=tipo de bloque (1 lleno, 0 escalar, -1 ceros)

[n m] con n=numero de renglones, m=numero de columnas

La siguiente etapa en la programacion de una LMI es la escritura de sus terminos. Siguiendo


con nuestro programa anterior, pongamos por caso lo siguiente:

A=[1 -1; 0 -2]; B=[2; 5];

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);

donde la primera lnea es unicamente la introduccion de dos matrices constantes A y B, las


lneas 2 y 4 aumentan el contador de LMIs del programa para que los terminos que se declaren
con ese numero se agrupen en torno a una sola expresion LMI, y las lneas 3, 5, 6 y 7 escriben
terminos de LMIs: la lnea 3 para la as llamada lmi0 (es solo un nombre, no una palabra
reservada) y las lneas 5, 6 y 7 para la denominada lmi1 (que por supuesto tambien es solo
una etiqueta).
La instruccion lmiterm tiene hasta 4 argumentos:

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

A=[1 -1; 0 -2]; B=[2; 5];

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

donde la instruccion getlmis recoge el sistema de LMIs programado en la variable ejemplo.


La rutina invocada encuentra una solucion factible al problema o determina que esta no existe:
en el primer caso tmin debe ser menor que cero; en el segundo debe ser positivo (tmin es
solo un nombre, no palabra reservada). La solucion, de haberla, se almacena en forma de vector
en xfeas (otro nombre libre, no palabra reservada), de la cual debe ser extrada por medio de
la instruccion dec2mat tal y como se indica en las lneas 4 y 5. El resultado puede asignarse
a la propia variable creada como en la lnea 5 o a otra mas como en 4. El examen de tmin en
las lneas 3 y 6 es unicamente para decidir si hubo o no solucion. El LMIToolbox solo resuelve
LMIs estrictas (< en contraste con ), lo que significa que si la expresion LMI incluye algun
valor propio en cero, esta no sera factible; sin embargo, es importante distinguir a partir de la
informacion que arroja el solver si se debe a que these LMI were found infeasible
(que claramente indican que la LMI no es factible) o these LMI may be feasible
but are not strictly feasible que significa que aun cabra la posibilidad de que

13

la solucion se diera para la desigualdad no estricta, pero el solver no puede determinarlo.


Ademas del LMIToolbox, existen otras herramientas para resolver LMIs, entre las cuales tenemos
a Yalmip [6], SeDuMi [7], Mosek [8] y SDPT3 [9], pero no seran tratados en este documento.
III. S ISTEMAS LINEALES
Como paso previo a la introduccion del uso de LMIs para el analisis de estabilidad y diseno de
controladores y observadores de sistemas no lineales, consideramos pertinente abordar el caso
lineal, toda vez que es el mas transparente y facil de entender.
A. Estabilidad
Es un hecho bien conocido que un sistema lineal e invariante en el tiempo (LTI, por sus siglas
en ingles), de la forma
x(t) = Ax(t),

(8)

con x Rn como vector de estados y A Rnn constante, es asintoticamente estable (esto


es, limt x(t) = 0) si y solo si sus valores propios estan ubicados en el semiplano complejo
izquierdo C , es decir,
x(t) = Ax(t) asintoticamente estable (A) < 0.

(9)

En el marco de la teora de Lyapunov, el criterio anterior es equivalente a la existencia de una


funcion de Lyapunov asociada al sistema (8). Que es una funcion de Lyapunov? Sin entrar
en demasiados detalles, recordemos que la funcion de energa de un sistema es un ejemplo de
funcion de Lyapunov: si el sistema en cuestion es estable, entonces esta debe ser siempre positiva
y decaer monotonamente conforme el tiempo pasa. Mas formalmente tenemos que:
Definicion 3. [10] V (x) es funcion de Lyapunov del sistema x = f (x) asociada al punto de
equilibrio x = 0 si y solo si satisface las condiciones siguientes en un dominio D Rn :

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

de casi todas las investigaciones en el area de control, es un resultado de existencia que no es


constructivo, es decir, no establece ningun procedimiento para encontrar una funcion de Lyapunov
asociada a un sistema con origen asintoticamente estable.
Un primer intento de sistematizar la busqueda de una funcion de Lyapunov consistio en considerar
el una funcion cuadratica en el estado, es decir, V (x) = xT P x. Estas funciones son ampliamente
utilizadas porque es facil comprobar que son positivas en todo Rn y se acoplan naturalmente con
las operaciones matriciales derivadas del uso de sistemas lineales. En efecto, en el caso lineal,
el criterio de estabilidad (9) se traduce en la existencia de una funcion cuadratica de Lyapunov:
Teorema 1. El sistema x = Ax es estable si y solo si existe una matriz P = P T (simetrica) tal
que satisfaga las LMIs:
P > 0,

P A + AT P < 0.

(11)

Demostracion: La condicion de positividad de la funcion de Lyapunov se traduce facilmente en


la primera de las dos LMIs en (11) por la propia definicion de matriz definida positiva:
V = xT P x > 0 P = P T > 0.
La condicion de monoticidad decreciente para la derivada de la funcion de Lyapunov se traduce
en la segunda de las dos LMIs en (11):
V

(
)
= xT P x + xT P x = xT P Ax + (Ax)T P x = xT P A + AT P x < 0,

que por definicion de matrices definidas negativas conduce a la LMI referida.


Ejemplo 3. El sistema lineal
x(t) = Ax(t),

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

(a) Plano de fase

(b) Diagrama de bloques

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)

tal que el sistema en lazo cerrado

tenga el origen globalmente asintoticamente estable. El problema as planteado no es otro que


el de la estabilizacion de un sistema lineal por medio de realimentacion lineal de estado.
Usualmente, estos problemas se resuelven por medio de formulas como la de Bass-Gura o
Ackermann, que, siempre que el sistema sea controlable permiten asignar los polos del sistema
en posiciones arbitrarias del semiplano complejo izquierdo C . Para la solucion LMI aqu
desarrollada, utilizaremos de nueva cuenta una funcion cuadratica de Lyapunov V (x) = xT P x,
P = P T > 0.

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.

Pre- y post-multiplicando la ultima expresion por X = P 1 (propiedad (5)) y sustituyendo por


M = F X donde corresponda en el resultado (propiedad (6)), tenemos justamente la segunda LMI
en (15). Estas operaciones son necesarias porque de otro modo la expresion anterior contiene
terminos con mas de una variable de decision que son, en sentido estricto, no lineales, por
ejemplo P BF donde P y F son variables de decision.
Ejemplo 4. Considere encontrar una ley de control por realimentacion de estado (13) tal que el
sistema lineal
x(t) = Ax(t) + Bu(t),


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:

A=[1 2; 0 -3]; B=[1; 2]

18

[n m]=size(B); %Tamano de B

setlmis([]);

% Se define X y M de dimensiones correspondientes.

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

%Se obtienen las LMI

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

El programa arroja las soluciones siguientes:

[
]
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

(a) Evolucion de los estados

0
0

10
Tiempo (s)

15

20

(b) Evolucion de la funcion de Lyapunov

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)

cuya ultima expresion se corresponde a un problema generalizado de eigenvalores que se resuelve


por medio de la rutina gevp, luego de lo cual = 1 .
Para utilizar la rutina gevp hay que seguir un orden especfico en la etapa de descripcion de
las LMIs. Para el problema 7, reescrito abajo en un formato orientado al orden requerido por

L2 (x) < L1 (x)

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

x(t) = Ax(t) + Bu(t), A =


, B =

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

A=[0 0 1 0; 0 0 0 1; 0 623.7 -40.3 0; 0 -1020.3 40.3 0];

B=[0 ; 0; 61.6326;

alpha=10;

-61.6326];

Fig. 7: El brazo flexible

22

[n m]=size(B);

setlmis([]);

% Se definen X y M dimensiones correspondientes.

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

%Se obtienen la LMIs

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

A=[0 0 1 0; 0 0 0 1; 0 623.7 -40.3 0; 0 -1020.3 40.3 0];

23

B=[0 ; 0; 61.6326;

-61.6326];

[n m]=size(B);

setlmis([]);

% Se definen X y M dimensiones correspondientes.

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

%Se obtienen la LMIs

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);

que arroja los resultados max = 400.7929 y


[
]
Fmax = 11505993.8 11451642.3 66756 66709.9 ,

1908944243 1902182784.6 10007217.8 10003568.5

1902182784.6 1895448192.7 9969994.3


9966361

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

(a) Evolucion de los estados

0.2

0
0

0.05

0.1
Tiempo (s)

0.15

0.2

(b) Evolucion de la funcion de Lyapunov

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

que son las LMIs a satisfacer para garantizar ||u(t)|| < .

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

x(t) = Ax(t) + Bu(t), A =


, B =

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

0 -52.0624 0; 0 0 0 1; 0 0 76.1771 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

% Se definen X y M dimensiones correspondientes.

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

%LMI [X M';M (miu2)I]>0

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

%LMI [I X0';X0 X]>0

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

%Se obtienen la LMIs

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.

Sin cota de entrada


=3
=1.2

u(t)

3
2
1
0
1
2
0

(a) Pendulo de Furuta

2
3
Tiempo (s)

(b) Leyes de control acotadas

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;

0 -52.0624 0; 0 0 0 1; 0 0 76.1771 0];

29

%Condiciones iniciales

10

X0=[0.08;0;-0.1;0.7];

11

[n m]=size(B);

12

setlmis([]);

13

% Se definen X y M dimensiones correspondientes.

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

%LMI [X M';M lambda2]>0

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

%LMI [I X0';X0 X]>0

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

%Se obtienen la LMIs

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

(a) Salida acotada VS no acotada

0
0

0.1

0.2
0.3
0.4
Tiempo (s)

0.5

0.6

(b) Funcion de Lyapunov (con cota)

Fig. 10: Ejemplo 7.

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),

y(t) = Cx(t) + Ew(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)

de donde la ganancia de realimentacion se calcula como F = M X 1 y la funcion de Lyapunov


asociada es V = xT P x con P = X 1 .
Demostracion: Como en demostraciones anteriores, la condicion X > 0 implica que P =
X 1 > 0 y, por lo tanto, que la funcion V (x) = xT P x es positiva para toda x = 0. En cuanto
a su derivada, consideremos la condicion (27) que garantiza que el sistema en lazo cerrado
x(t) = (A + BF )x(t) + Dw(t) con salida y(t) = Cx(t) cumple el criterio H deseado:
V + y T y 2 wT w = xT P x + xT P x + (Cx + Ew)T (Cx + Ew) 2 wT w
= xT P ((A + BF )x + Dw) + ((A + BF )x + Dw)T P x
+ (Cx + Ew)T (Cx + Ew) 2 wT w
(
)
(
)
= xT P A + P BF + F T B T P + AT P + C T C x + xT P D + C T E w
(
)
(
)
+wT E T C + DT P + wT E T E 2 I w 0

T
T T
T
T
T
x
P A + P BF + F B P + A P + C C P D + C E
x
0.
=
w
E T C + DT P
E T E 2I
w

32

Por definicion, la ultima desigualdad se satisface si y solo si

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

Ejemplo 8. Considere nuevamente el sistema de brazo flexible del ejemplo 5 extendido de la


siguiente manera:
x(t) = Ax(t) + Bu(t) + Dw(t),

y(t) = Cx(t) + Ew(t),


[
]
donde A y B son iguales a las del ejemplo citado, mientras que C = 1 0 0 0 , D =
[
]T
0.9 0.9 0 0 y E = 0.
Las LMIs (28) fueron programadas para X > 0 y para niveles de atenuacion = 0.1 y = 0.2,
[
]
[
]
con ganancias F = 128.20 10.07 0.07 0.11 y F = 31.20 9.95 0.16 0.12 ,
respectivamente. Adicionalmente, se programo el problema LMI de optimizacion (25) por medio
de la rutina mincx:

A=[0 0 1 0; 0 0 0 1; 0 623.7 -40.3 0; 0 -1020.3 40.3 0];

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([]);

% Se definen X y M dimensiones correspondientes.

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

%LMI para rechazo perturbacion

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

%Se obtienen la LMIs

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)

(a) Perturbacion w(t)

10

0.2
0

0.1

0.2
0.3
Tiempo (s)

0.4

(b) Salidas atenuadas mediante H

Fig. 11: Ejemplo 8.

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)

sea estable, es decir, que consiga que limt e(t) = 0.


La solucion propuesta en esta seccion es una solucion LMI. Utiliza una funcion de Lyapunov
cuadratica en el error: V (e) = eT P e, con P = P T > 0 para llegar al siguiente resultado.
Teorema 5. El estado x del observador lineal de estado (30) aproximara asintoticamente el
estado x del sistema lineal (29) si y solo si existen matrices P = P T y N tales que las LMIs
siguientes se satisfacen:
P > 0,

P A + AT P + N C + C T N T < 0,

(32)

de donde la ganancia del observador estara dada por L = P 1 N y la funcion de Lyapunov


asociada vendra dada por V (e) = eT P e con e = x x.
Demostracion: Puesto que P > 0 tenemos que V (e) = eT P e > 0 (positividad). La derivada de
esta funcion candidata de Lyapunov, tomando en cuenta el sistema del error (31), sera negativa
si:

(
)
V = 2eT P e = eT P (A + LC) + (AT + C T LT )P e < 0,

lo que por sustitucion P L = N queda garantizado con la segunda LMI en (32).

36

Ejemplo 9. Consideremos nuevamente el brazo flexible del ejemplo 5, agregando el hecho de


que se dispone de los estados correspondientes a los angulos x1 y x2 , pero no de sus derivadas
x3 y x4 , respectivamente; es decir:

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:

A=[0 0 1 0; 0 0 0 1; 0 623.7 -40.3 0; 0 -1020.3 40.3 0];

C=[1 0 0 0; 0 1 0 0];

setlmis([]);

% Se definen P y N dimensiones correspondientes.

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

%Se obtienen la LMIs

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

produciendose as la ganancia del observador:


T

.0179 7.7601 44.98142


40.1893
.
L=
5.5873 5.7103 695.3523 1085.96256

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

Fig. 12: Ejemplo 9.

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)

donde A(), B() y C() son funciones matriciales de dimensiones adecuadas.


Evidentemente, aunque la teora de Lyapunov sigue siendo valida para este tipo de sistemas, los
resultados de las secciones precedentes no pueden aplicarse directamente porque el lado derecho
de su representacion en espacio de estados no tiene la forma lineal ni matricial que hemos venido

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

x = xi previamente escogidos de acuerdo segun el rango de operacion de la planta, es decir:

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

Estos sistemas linealizados se interpolan luego de acuerdo a funciones de membresa hi (x)


(posiblemente multivariables) que cumplen la propiedad de suma convexa:
Definicion 5. Un conjunto de funciones hi (x), i = 1, 2, . . . , r cumple la propiedad de suma
convexa en un compacto C del espacio de estados x : x Rn si y solo si
r

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

y x1 = 10 (angulo entre la vertical y el pendulo), con x2 = 0, como sigue. Dados

0
1
(
)
(
A(x) = f =
2
2
x

x1

g sin(x1 (t))0.5amlx2 (t) sin(2x1 (t))


1.3laml cos2 (x1 (t))

y B(x) =

x2

0
a cos(x1 (t))u(t)
1.3laml cos2 (x1 (t))

g sin(x1 (t))0.5amlx2 (t) sin(2x1 (t))


1.3laml cos2 (x1 (t))

tenemos que las matrices de los modelos lineales son:

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

0.1x1 + 1, 0 < x1 < 10


h2 (x1 ) = 1 h1 (x1 ) .
As pues, el modelo Takagi-Sugeno que basado en este par de linealizaciones aproximara a (1),
vendra dado por
x =

hi (x) (Ai x + Bi u) .

i=1

Fig. 13: Funciones de pertenencia

41

La obtencion de un modelo en esta forma ya sea aproximado o exacto como se vera en la


seccion siguiente es el primer paso para realizar control o analisis de estabilidad no lineal
basado en LMIs.
B. Obtencion de modelos Takagi-Sugeno exactos
La obtencion de modelos Takagi-Sugeno exactos a partir de un sistema no lineal (33) se basa
en la tecnica de sector no lineal [16], [14], que toma su nombre por el hecho de acotar las
no linealidades entre rectas. La tecnica comienza por reescribir el modelo en la forma (34)
para identificar en A(x), B(x) y C(x) todos los terminos no constantes (que al multiplicarse
por el estado x o la entrada u produciran no linealidades). Supongamos que el numero de esos
terminos no constantes diferentes asociados a no linealidades en (33) es p y que se agrupan en
un vector al que denominaremos vector premisa por alusion a las premisas del control difuso
discutido a modo de introduccion en la seccion I.
Definicion 6. Definimos como vector premisa z(x) Rp de un sistema no lineal (33) a aquel
cuyas entradas estan formadas por los diferentes terminos no constantes en las funciones matriciales A(x), B(x) y C(x) del sistema equivalente (34). Cada no linealidad zj (x), j = 1, 2, . . . , r
se asume acotada en un compacto predefinido C del espacio de estados, es decir, z j zj z j ,
donde z j y z j son el mnimo y maximo de la no linealidad zj en C, respectivamente.
El vector premisa de un sistema no lineal no es necesariamente unico (por ejemplo, x1 x2 podra
desacoplarse en dos formas distintas) ni esta definido siempre, por lo que se recurre a la
existencia del lmite en caso de que la entrada no este definida ah (por ejemplo sin(x1 )/x1
podra surgir del desacoplamiento: no esta definido en x1 = 0 pero su lmite en ese punto s
existe y se toma como el valor de dicho termino ah).
Ejemplo 11. Determinemos un vector z(t) para el siguiente modelo no lineal:

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

(33) y puede reescribirse en la forma

[
]
0
0
u(t), y(t) = cos x2 0 x(t),
x(t) +
cos x2
1

42

donde pueden apreciarse los terminos no constantes z1 = x2 , z2 = sin x1 /x1 y z3 = cos x2


(esta ultima aparecida tanto en la funcion asociada a la entrada y la funcion asociada a la salida),
lo que significa que el vector premisa es
[
]T [
]T
z(t) = z1 z2 z3 = x2 sin x1 /x1 cos x2 .
Como se ha descrito anteriormente, cada entrada de este vector esta acotada en un conjunto
cerrado y acotado que contenga al origen, pues las funciones z2 = sin x1 /x1 y z3 = cos x2 son
funciones naturalmente acotadas en tanto que z1 = x2 es acotada siempre que se defina el
conjunto donde se mueve: por ejemplo, si C = {x : |x2 | 1} entonces 1 z1 = x2 1.
Una expresion no lineal escalar acotada en un compacto de su dominio siempre puede reescribirse
como una suma convexa de valores constantes. Por ejemplo, x2 , que no es naturalmente acotada,
puede reescribirse en C como:

x2 = 1

1 + x2
2

(
+1

1 x2
2

)
=

hi (x2 )ai ,

i=1

donde h1 = (1 + x2 ) /2, h2 = 1 h1 = (1 x2 ) /2, a1 = 1 y a2 = 1. Es importante destacar


que esto es una reescritura algebraica de la expresion original que satisface la propiedad de suma
convexa (35) en C = {x : |x2 | 1}.
Note ademas que el desacoplamiento del termino x1 x2 hubiese podido producir otra forma
algebraicamente equivalente a las anteriores:

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)

de modo que cada no linealidad podra escribirse como


zj =

z j w0j

z j w1j

ij =0

wij aji , con aj0 = z j , aj1 = z j .

(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 =

sin x1 /x1 +0.2172


,
1.2172

a10 = 1, a11 = 1, a20 = 0.2172, a21 = 1.2172,

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

control borroso original):


hi (z(x)) =

wijj (zj (x)), i = 1, 2, . . . 2p .

(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

donde Ai = A(x)|hi =1 , Bi = B(x)|hi =1 , Ci = C(x)|hi =1 y r = 2p .


Ejemplo 13. Continuando con el sistema de los ejemplos 11 y 12, tenemos que este puede
reescribirse como modelo Takagi-Sugeno en C = {x : |x2 | 1} como sigue:
x(t) =

hi (z) (Ai x(t) + Bi u(t)) ,

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

h1 = w01 w02 w03

0.2172

0.54

h2 = w01 w02 w13

0.2172

h3 = w01 w12 w03

0.54

h4 = w01 w12 w13

h5 = w11 w02 w03

0.2172

0.54

h6 = w11 w02 w13

0.2172

h7 = w11 w12 w03

0.54

h8 = w11 w12 w13

Note que la triada (Ai , Bi , Ci ) se produce justamente donde la correspondiente funcion de


pertenencia cumple hi = 1.

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

lo que permite escribir (41) como


x(t) = Ah x(t) + Bh u(t),

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)

La funcion de Lyapunov asociada sera entonces V (x) = xT P x y un estimado de la region


de atraccion sera el maximo nivel de Lyapunov dentro de la region de modelado C donde las
funciones de pertenencia hi satisfagan la propiedad de suma convexa (35).
Demostracion: Como se ha demostrado repetidas veces, P > 0 implica que V (x) = xT P x > 0.
En cuanto a su derivada, tenemos que:
T

V = x P x + x P x = x

P Ah +

ATh P

x=

i=1

)
(
hi xT P Ai + ATi P x,

46

debido a la definicion de Ah y al hecho de que

r
i=1

hi = 1. Si ademas tomamos en cuenta que

0 hi 1 entonces tenemos que las LMIs P Ai + ATi P < 0, i = 1, 2, . . . , r son condiciones


suficientes para que V < 0.
Note que las condiciones LMI en el teorema anterior son solo suficientes, pero no necesarias.
Esto se debe a que las funciones de pertenencia hi no son tomadas en cuenta para establecerlas,
de modo que en realidad se ha probado la estabilidad para una familia de sistemas donde las
funciones hi pueden ser lo que sea siempre que satisfagan la propiedad de suma convexa. Mas
aun: la funcion de Lyapunov es cuadratica, una opcion que para el analisis de sistemas no
lineales solo puede producir condiciones suficientes [17].
Ejemplo 14. Utilizaremos el teorema 6 para demostrar que x = 0 es punto de equilibrio
astintoticamente estable del sistema no lineal

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

por medio del programa:

47

A{1}=[-2 -1; -1 -1]; A{2}=[-2 -1; -1 -3];

A{3}=[-4 -1; -1 -1]; A{4}=[-4 -1;-1 -3];

[n n]=size(A{1});

r=numel(A);

setlmis([]);

% Se define P de dimension correspondiente.

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

%Se obtienen la LMIs

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

Fig. 14: El sistema estable del ejemplo 14

D. Estabilizacion de modelos Takagi-Sugeno


Como vimos en la seccion III-B, la estabilizacion de un sistema lineal suele realizarse por
medio de realimentacion lineal del estado u(t) = F x(t). De manera analoga, los autores en [18]
propusieron un esquema que generaliza la realimentacion de estado para modelos Takagi-Sugeno
x(t) = Ah x(t) + Bh u(t)

(44)

y lo denominaron compensacion paralela distribuida (PDC, por sus siglas en ingles):


u(t) =

hi (z)Fi x(t) = Fh x(t),

(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,

Ai X + Bi Mj + XAT + MjT BiT < 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

Lema 1. Sin relajacion:


ij < 0, i, j = 1, 2, . . . , r hh < 0.
Lema 2. Relajacion de Tanaka [19] (basada en el hecho de que hi hj = hj hi ):
ij + ji < 0, i, j = 1, 2, . . . , r hh < 0.
Lema 3. Relajacion de Tuan [20]:
2
ii + ij + ji < 0, i, j = 1, 2, . . . , r hh < 0.
r1
Existen otras relajaciones y, al menos en el sentido de copositividad, las hay asintoticamente
suficientes y necesarias [21], aunque no seran empleadas en estas notas.
Ejemplo 15. Modelamos el sistema no lineal

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

w11 = 1 w01 , w02 =

3x2
,
6

w12 = 1 w02 , h1 = w01 w02 , h2 = w01 w12 , h3 = w11 w02 y

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];

B{1}=[0;7]; B{2}=[0;7]; B{3}=[0;1]; B{4}=[0;1];

51

[n m]=size(B{1}); r=numel(A);

setlmis([]);

% Se definen X y M{j} de dimensiones correspondientes.

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

%LMI con relajacion Tuan

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

%Se obtienen la LMIs

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

(a) Plano de fase

0.5

1
Tiempo (s)

1.5

(b) Ley de control

Fig. 15: Ejemplo 15

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

que se satisfagan las LMIs:


X > 0,

Ai X + Bi Mj + XATi + MjT BiT + X < 0, j = 1, 2, . . . , r.

(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

dado por [22]:



1
0
x1
T1


0
x2 0


0
x3 0
+

0
x4 0


1
x5 0
0
Ib42
x6

0
u1

1
u2
T1

con T1 = 0.3s, T2 = 0.25s, a1 = 0.105Nm/MU, a2 = 0.033Nm/MU, b1 = 0.00936Nm/MU2 ,


b2 = 0.0294Nm/MU2 , b3 = 1.84103 Kgm2 /s, b4 = 8.69103 Kgm2 /s, I1 = 4.37103 Kgm2 ,
I2 = 4.14 103 Kgm2 , Tg = 3.83 102 Nm, Tor = 2.7s, Tpr = 0.75s, Kr = 0.00162Nm/MU,
Kgyro = 0.015Kgm/s, vector de estado x R6 , vector de entrada u R2 y salida y = x1 .
El modelado exacto Takagi-Sugeno del sistema anterior puede llevarse a cabo basandose en 3
no linealidades: z1 = x1 [0.8, 0.8], z2 = x4 [2, 2] y z3 = sin x2 /x2 [0.9003, 1] que
)
(
0.8x1
2x4
sin x2
1
1
2
1
2
2
3
producen los pesos w0 = 1.6 , w1 = 1 w0 , w0 = 4 , w1 = 1 w0 , w0 = 10.03 1 x2
y w13 = 1 w03 , mismos que conducen a 23 = 8 modelos lineales.

x5

x3

Fig. 16: El sistema bimotor del ejemplo 16

55

El modelo Takagi-Sugeno es as el siguiente:

x =
T11

r
i=1

hi (z) (Ai x + Bu) ,


0

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

h1 = w01 w02 w03

0.8

0.9003

h2 = w01 w02 w13

0.8

h3 = w01 w12 w03

0.8

0.9003

h4 = w01 w12 w13

0.8

h5 = w11 w02 w03

0.8

0.9003

h6 = w11 w02 w13

0.8

h7 = w11 w12 w03

0.8

0.9003

h8 = w11 w12 w13

0.8

Distintas prestaciones fueron programadas para este ejemplo:


1) la evolucion en el tiempo de la funcion de Lyanpunov V (t) y la senal de control u(t) para
la mayor tasa de decaimiento, que resulto ser = 2.31, se muestran en las figuras 17(a) y
17(b), respectivamente;
2) los mismos datos (esto es, funcion de Lyapunov y senal de control) para la mayor tasa de
decaimiento = 0.8281 sujeta a la restriccion de entrada ||u(t)|| 10 se exhiben en las
figuras 18(a) y 18(b), respectivamente: note que la tasa de decaimiento ya no puede alcanzar
los valores del primer caso, pues la restriccion de la entrada limita la energa necesaria para
alcanzar dicho nivel;
3) ahora se grafican en las figuras 19(a) y 19(b) la evolucion en el tiempo de la funcion de

40

500

30

400
||u(t)||

V (t)

56

20

10

300
200
100

10

10
Tiempo (s)

10

10

10
Tiempo (s)

(a) Funcion de Lyapunov

10

(b) Ley de control

Fig. 17: Ejemplo 16: tasa de decaimiento

Lyapunov y la salida y(t), respectivamente, para la maxima tasa de decaimiento = 0.6289,


con la misma restriccion de entrada y una restriccion de salida |y(t)| 0.5: note que, una
vez mas, la tasa de decaimiento maxima ha disminuido en relacion con los casos precedentes
por las restricciones agregadas.
Este ejemplo muestra hasta que punto el diseno basado en LMIs admite la modularidad, es
decir, que disenos independientes pueden ser mezclados directamente para obtener resultados

1.5

0.6

||u(t)||

V (t)

0.8

0.4

0.5

0.2
0
0

2
3
Tiempo (s)

(a) Funcion de Lyapunov

0
0

2
3
Tiempo (s)

(b) Ley de control

Fig. 18: Ejemplo 16: tasa de decaimiento + restriccion de entrada

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)

(a) Funcion de Lyapunov

0.1
0

2
3
Tiempo (s)

(b) Salida y(t) = x1 (t)

Fig. 19: Ejemplo 16: tasa de decaimiento + restriccion de entrada + restriccion de salida

que satisfagan numerosos criterios. Esto no es mas que la traduccion computacional de la


propiedad de agrupacion (3).
El programa que implementa la mayor cantidad de prestaciones es el siguiente:

miu=10; lambda=0.5;

X0=[0.2 pi/16 -0.2 0.2 pi/16 -0.2]';

% TRMS

% Parametros

T1=0.3; a1=0.105; b1=0.00936; I1=4.37e-3;

B1=1.84e-3; Tg=3.83e-2; T2=0.25; a2=0.033;

b2=0.0294; Tor=2.7; Tpr=0.75; Kr=0.00162;

I2=4.14e-3; B2=8.69e-3; Kgyro=0.015;

9
10

% No linealidades

11

NL{1}=[0.8 -0.8]; % x1

12

NL{2}=[2 -2]; % x4

13

NL{3}=[1 0.9003]; % sin(x2)/x2

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

% Se definen X y M{j} de dimensiones correspondientes.

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

%LMI cota entrada

45

miu2=miu2;

46

%LMI [X M';M (miu2)I]>0

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

%LMI [I X0';X0 X]>0

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

%LMI cota salida

59

60

lambda2=lambda2;

61

%LMI [X M';M lambda2]>0

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

%Se obtienen la LMIs

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

F. Rechazo de perturbaciones para modelos Takagi-Sugeno


Consideraremos ahora el siguiente modelo Takagi-Sugeno con perturbaciones w(t) Rs , mismo
que, como ha quedado dicho, puede provenir de la reescritura exacta por sector no lineal o de
la interpolacion de linealizaciones de un sistema no lineal original:
x(t) = Ah x(t) + Bh u(t) + Dh w(t),

y(t) = Ch x(t) + Eh w(t),

(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

, i = 1, 2, . . . , r, matrices constantes conocidas.

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

y Mj , j = 1, 2, . . . , r, de dimensiones adecuadas, que satisfagan las LMIs en los lemas 1, 2 o


3 con:

ij =

Ai X + Bi Mj + MjT BiT + XATi XCiT Di + XCiT Ej


Ci X

DiT + EjT Ci X

2 I

Ej

,
T
Ej
I

(52)

de donde la ganancia de realimentacion se calcula como F = M X 1 y la funcion de Lyapunov


asociada es V = xT P x con P = X 1 .
Demostracion: Se sigue de la demostracion realizada para el teorema 4 mas un complemento
de Schur adicional que permita separar EhT Eh 2 I 0 en

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 sin2 x +abc2 cos2 x +x2 cos x sin x


b
(
)
3
3
3
3

2
f (x) =

x
4

2
2
2
2
sin x3 (c(bx2 cos x3 bx4 +d cos x3 )+2b x2 x4 cos x3 )

b2 sin2 x3 +abc2 cos2 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

donde a = 1.8777 103 , b = 1.3122 103 , c = 9.0675 104 , d = 5.9301 102 .

62

Para controlar el sistema anterior, construiremos un modelo Takagi-Sugeno de 3 reglas


x =

hi (x) (Ai x + Bi u + Dw(t)) .

i=1

que requerira 3 linealizaciones en los puntos x3 = 0, x3 = 2.5 = 0.0436 rad y x3 = 5 =


0.0873 rad, donde las matrices Ai y Bi estan definidas como sigue


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:

clear all; clc

A{1}=[0 1 0 0;0 0 67.8248 0;0 0 0 1;0 0 -32.7529 0];

A{2}=[0 1 0 0;0 0 67.4328 0;0 0 0 1;0 0 -32.3407

0];

A{3}=[0 1 0 0;0 0 66.2820 0;0 0 0 1;0 0 -31.1325

0];

B{1}=[0; -552.3163; 0;799.2825]; B{2}=[0; -550.1685; 0;796.9328];

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

Fig. 20: Ejemplo 17

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

% Se definen X y M dimensiones correspondientes.

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

lmix=newlmi; %LMI X=X'>0

21

lmiterm([-lmix 1 1 X],1,1);

22
23
24

2
3
Tiempo (s)

(b) Perturbacion w(t)

(a) Funciones de pertenencia

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

%Se obtienen la LMIs

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

(a) Salidas perturbadas

0.1

0.2
0.3
Tiempo (s)

0.4

0.5

(b) Leyes de control

Fig. 21: Ejemplo 17

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)

consideremos un observador de estado de la forma [14]:

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

medio del adecuado diseno de la ganancia no lineal


Lh =

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)

de donde las ganancias del observador estaran dadas por Lj = P 1 Nj , j = 1, 2, . . . , r, y la


funcion de Lyapunov asociada sera V (e) = eT P e con e(t) = x(t) x(t).
Demostracion: Se deduce facilmente siguiendo la prueba del teorema 5 y adaptandola para la
expresion de sumas convexas hh = P Ah + ATh P + Nh Ch + ChT NhT < 0 que esta garantizada
por cualquiera de las relajaciones arriba citadas.
Ejemplo 18. Considere el sistema no lineal siguiente [26]:

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

hi (x1 )hj (x1 ) (Ai Lj Ci ) e(t).

i=1 j=1

Las LMIs del lema 2 fueron programadas con ij definido en (56), como sigue:

clear all; clc

a=0.25; b=0.2; nl=[0 1.4];

A{1}=[0 1;-1 -2+a*nl(1)]; A{2}=[0 1;-1 -2+a*nl(2)];

B{1}=[b;0];B{2}=[b;0]; C{1}=[1 0]; C{2}=[1 0];

5
6

r=numel(A);

[p n]=size(C{1});

setlmis([]);

% Se definen P y N dimensiones correspondientes.

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

%LMI Gamma_ij con relajacion Tanaka

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

%Se obtienen la LMIs

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

de donde surgen las ganancias del observador

0.2514
0.2923
, L2 =
,
L1 =
2.2810
2.5485
y la matriz de Lyapunov

1.3643 0.2085
.
P =
0.2085 0.3047

El error de observacion e2 (t) = x2 x2 se muestra en la figura 22(a). Adicionalmente, la figura


22(b) muestra la evolucion de la funcion de Lyapunov V (e) = eT P e.

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

(a) Error de observacion

4
6
Tiempo (s)

(b) Funcion de Lyapunov

Fig. 22: Ejemplo 18

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.

Upper Saddle River, NJ, USA: Prentice-Hall, Inc., 1997.

[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.

Delft, The Netherlands: Delft University, 2004.

[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.

Natick, USA: Math Works, 1995.

[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.

Springer US, 2000, vol. 33, pp. 197232.

[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.

New Jersey, USA: Prentice Hall, 2002.

[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.

Macmillan Publishing Company New York,

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.

New Jersey, USA: Prentice Hall, 2014.