Este documento describe una tarea de control de sistemas no lineales. Presenta un modelo no lineal de un manipulador de dos segmentos y describe los pasos para linealizar el modelo y diseñar un controlador de realimentación de estado. Los pasos incluyen obtener un modelo linealizado, encontrar una transformación no lineal para linealizar el sistema, diseñar un controlador de realimentación de estado para colocar los polos cerca de -2, y comparar la respuesta de los sistemas linealizado y aproximado linealmente.
1. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
Tarea 4. Control de sistemas no lineales
Se tiene un manipulador con dos segmentos y una unión flexible al que se le ajusta un
modelo simplificado que puede expresarse por:
;2)(5.0
)(5.0
212
2111
u
sen
⋅+−=
−−−=
θθθ
θθθθ
&&
&&
Un punto de equilibrio, para u=0, es 021 == θθ .
Tomaremos como vector de estado: [ ]T
x 2211 θθθθ &&= .
1. Obtener un modelo linealizado en torno al punto de equilibrio.
2. Encontrar una transformación no lineal, )(xhz = que permita linealizar el sistema
por realimentación del estado.
3. Diseñar para el sistema linealizado y para la aproximación lineal, un control por
realimentación del estado que sitúe los polos en torno a -2.
4. Comparar la respuesta de ambos sistemas cuando se parte de una posición inicial:
rad05.00,20,1 == θθ
rad5.00,20,1 == θθ
5. Si solamente se miden los ángulos, diseñar el control equivalente por
realimentación de la medida (salida).
Solución.
1. Obtener un modelo linealizado en torno al punto de equilibrio.
En el punto de funcionamiento las variables son:
u=0, es 02010 == θθ , 02010 == θθ &&
El modelo de estado, con el vector de estado elegido, es:
2. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
u
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
−
=
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
2
0
0
0
0
0
sin
0
05.005.0
1000
05.005.0
0010
1
2
2
1
1
2
2
1
1
θ
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&&
&
&&
&
en el que se pone de manifiesto la parte no-lineal, que habría que linealizar. O bien
u
xx
x
xxx
x
uxgxfx
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
−−−
=+=
2
0
0
0
)(5.0
)(5.0sin
)()(
31
4
311
2
&
en forma afín del control.
En general, para linealizar habría que calcular:
⎥
⎥
⎦
⎤
⎢
⎢
⎣
⎡
∂
∂
⎥
⎥
⎦
⎤
⎢
⎢
⎣
⎡
∂
∂
j
i
j
i
x
g
x
f
, . En esta caso, la única
función no lineal (el seno) se linealiza sustituyéndolo por el ángulo. Por tanto, el sistema
linealizado será:
u
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
−
=
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
2
0
0
0
05.005.0
1000
05.005.1
0010
2
2
1
1
2
2
1
1
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&&
&
&&
&
2. Encontrar una transformación no lineal, )(xhz = que permita linealizar el sistema
por realimentación del estado.
Para transformar el sistema, de forma que las funciones no lineales solamente aparezcan con la última
variable de estado (o el último subconjunto de variables de estado de la misma dimensión que el vector de
entrada, en el caso multivariable), seguiremos el procedimiento indicado en el anexo.
Definimos el nuevo vector de estado, z, tomando:
),,,(
),,,(
),,,(
),,,(
432144
432133
432122
432111
xxxxhz
xxxxhz
xxxxhz
xxxxhz
=
=
=
=
Empezamos por la primera nueva variable de estado: ];)()([11
1 uxgxf
x
h
x
x
h
z +
∂
∂
=
∂
∂
= &&
Haciendo: ;01
=
∂
∂
g
x
h
debe ser: ;0
4
1
=
∂
∂
x
h
dado que el vector [ ]T
g 2000= .
Así pues, ),,( 32111 xxxhz = .
3. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
),,,()(5.0(sin( 4321224
3
1
311
2
1
2
1
11
1 xxxxhzx
x
h
xxx
x
h
x
x
h
x
x
h
z ==
∂
∂
+−−−
∂
∂
+
∂
∂
=
∂
∂
= &&
Operando como antes, dado el valor de g , ;0
4
2
=
∂
∂
x
h
),,( 32122 xxxhz = ; ;0
3
1
=
∂
∂
x
h
);,( 2111 xxhz =
Repitiendo el proceso:
),,,()(5.0(sin( 4321334
3
2
311
2
2
2
1
22
2 xxxxhzx
x
h
xxx
x
h
x
x
h
x
x
h
z ==
∂
∂
+−−−
∂
∂
+
∂
∂
=
∂
∂
= &&
Igualmente, deberá ser ;0
4
3
=
∂
∂
x
h
),,( 32123 xxxhz = ; luego ;0
3
2
=
∂
∂
x
h
);,( 2122 xxhz =
;0
2
1
=
∂
∂
x
h
);( 111 xhz =
Finalmente:
),,,()(5.0(sin( 4321444
3
3
311
2
3
2
1
33
3 xxxxhzx
x
h
xxx
x
h
x
x
h
x
x
h
z ==
∂
∂
+−−−
∂
∂
+
∂
∂
=
∂
∂
= &&
Ahora bien, al calcular 4z& debe ser:
;0;0;0
3
3
4
44
≠
∂
∂
→≠
∂
∂
→≠
∂
∂
x
h
x
h
g
x
h
Hemos definido el nuevo vector como una cadena de integradores:
)(5.0cos
)(5.0sin
422134
31123
212
11
xxxxzz
xxxzz
xzz
xz
−−⋅−==
−−−==
==
=
&
&
&
siendo:
]2)`(5.0[5.0)](5.0sin)[5.0(cossin 313111
2
214 uxxxxxxxxz −−+−−−+−⋅=&
con ecuación de estado:
u
zzzzzz
z
z
z
z
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−++−
=
1
0
0
0
)sin(5.0)5.0(cossin 3131
2
21
4
3
2
&
El sistema, con este vector de estado, se puede linealizar tomando:
vkzzrvkzzzzzzzu +−=+−−−−++⋅−= )()sin(5.0)5.0(cossin 3131
2
21
dando lugar al sistema controlado:
4. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
uz
kkkk
z
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1
0
0
0
1000
0100
0010
4321
&
3. Diseñar para el sistema linealizado y para la aproximación lineal, un control por
realimentación del estado que sitúe los polos en torno a -2.
Los sistemas en cuestión son:
u
llll
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−−−−
−
=
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
2
0
0
0
5.05.0
1000
05.005.1
0010
2
2
1
1
43212
2
1
1
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&&
&
&&
&
y uz
kkkk
z
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−−−
=
1
0
0
0
1000
0100
0010
4321
&
Ligados por la equivalencia:
)(5.0cos
)(5.0sin
21114
2113
12
11
θθθθ
θθθ
θ
θ
&&&
&
−−⋅−=
−−=
=
=
z
z
z
z
Para que los polos esté, en torno a -2, en el segundo caso se puede hacer por simple
comparación de coeficientes:
12
2
3
3
4
442344
232248)2( kskskskssssss −+−−−=++++=+
k=[16 32 24 8]
Luego será:
Para el sistema linealizado aproximado:
» a=[0 1 0 0;-1.5 0 .5 0;0 0 0 1;.5 0 -.5 0];
» b=[0 0 0 2]’;
» p= [-2 -2.001 -2.01 -1.999];
l=[-17.5100 20.1050 11.0300 4.0050]
4. Comparar la respuesta de ambos sistemas cuando se parte de una posición inicial:
rad05.00,20,1 == θθ
rad5.00,20,1 == θθ
Observad que los tres sistemas que estamos considerando son:
5. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
1. Sistema “real”:
2. Sistema aproximado lineal:
3. Sistema linealizado por
realimentación:
Por lo tanto, cabe esperar que:
a. Los sistema S1 y S2 se comporten de forma semejante para pequeñas señales
b. Los sistema S2 y S3 son lineales, con dinámicas distintas (S3 es una cadena de integradores).
c. S3 es el sistema real, realimentado (por lo tanto modificado) y no se parece al S2 para ninguna señal.
Por lo tanto, podemos asignar polos similares en S2 y S3 pero no corresponderán a comportamientos
similares de x en ambos sistemas.
Para visualizar estas respuestas vamos a simular ambos sistemas con Simulink®
.
x' = Ax+Bu
y = Cx+Du
lineal-exact
Scope3
Scope2
Scope1
Scope
x' = Ax+Bu
y = Cx+Du
Lineal-aprox
m
m
K
- l
K
- k
en el que se puede ver las diferencias de ambos sistemas lineales, en bucle abierto, y a
partir de condiciones iniciales “coherentes”.
5. Si solamente se miden los ángulos, diseñar el control equivalente por realimentación de
la medida (salida).
Este apartado es similar (observador de orden reducido) en el caso del modelo lineal
aproximado. Es inviable en el caso de la linealización exacta, que requiere la
realimentación del estado, o bien ha de desarrollarse un observador no lineal del estado.
6. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2007-8
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
J.V. Roig. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 75768 e-mail jvroig@aii.upv.es
Linealización por realimentación
Si se tiene un sistema escalar dado por:
;)()( uxgxfx ⋅+=& (1)
en todo el rango de valores { }0)(, ≠⊆∈ xgRXx , se puede encontrar la ley de control
[ ]vxkxf
xg
u +⋅+−= )(
)(
1
(2)
tal que el sistema controlado es lineal: vxkx +⋅=&
• En el caso de que f(x) tuviera varios sumandos, se podría cancelar selectivamente algunos de ellos, si el
resto no fuera perjudicial desde el punto de vista dinámico o de control.
• En el supuesto de un sistema de mayor dimensión, en el que f y g son vectores de funciones, no se puede
realizar esta cancelación (2), salvo que el control y el término no lineal aparezcan solamente en la
ecuación de estado de una única variable.
Así, por ejemplo, si se tuviera:
u
xgxf
bxax
x
x
⋅⎥
⎦
⎤
⎢
⎣
⎡
+⎥
⎦
⎤
⎢
⎣
⎡ +
=⎥
⎦
⎤
⎢
⎣
⎡
)(
0
)(
21
2
1
&
&
se podría tomar [ ]vdxcxxf
xg
u +++−= )()(
)(
1
21
dando lugar al sistema lineal:
v
x
x
dc
ba
x
x
⋅⎥
⎦
⎤
⎢
⎣
⎡
+⎥
⎦
⎤
⎢
⎣
⎡
⎥
⎦
⎤
⎢
⎣
⎡
=⎥
⎦
⎤
⎢
⎣
⎡
1
0
2
1
2
1
&
&
• En caso contrario hay que recurrir a un cambio de variables previo, (una transformación no lineal o
difeomorfismo), y deben darse determinadas condiciones para que se pueda realizar la linealización. La
idea es trasladar a la ecuación de estado de una única variable, el comportamiento no lineal, para
proceder como anteriormente.
Supongamos que se tiene: ;)()( uxgxfx ⋅+=& con dim(x) = n
Se hace el cambio, para la primera variable: ;0)0(),( 111 == hxhz de forma que
;0)(
)(
;1,,1;0)(
)(
sea,)(
)(
)(
)()(
≠
∂
∂
−==
∂
∂
∂
∂
+
∂
∂
=
∂
∂
=
xg
x
xh
nixg
x
xh
uxg
x
xh
xf
x
xh
x
x
xh
z
ni
iii
i
K
&&
(3)
y habiéndose tomado
;1,,1);(
)(
1 −=
∂
∂
=+ nixf
x
xh
z i
i K (4)