You are on page 1of 111

Control por realimentación

del vector de estado

Leonardo Bermeo

Universidad Nacional de Colombia

Control
El vector de estado

Los metodos por realimentación del vector de estado surgieron en


la década de los 60 para tratar, ante todo , con sistemas inestables.
Son famosos los desarrollos en este sentido de Kalman.
La representación de estado de un sistema LTI

Como recordamos el estado en un sistema es la colección de


variables que resumen el pasado de un sistema para el propósito de
la estimación futura. En un sistema de ingenierı́a el estado se
compone de las variables necesarias para tener en cuenta el efecto
de almacenamiento de masa, momento o energı́a.

ẋ = Ax + Bu
y = Cx + du

A ∈ ℜnxn , B ∈ ℜnx1 , C ∈ ℜ1xn , d ∈ ℜ1x1 caso siso


u entrada del sistema y salida del sistema
De la representación de estado a la función de transferencia

A partir de la función de representación de estado podemos


obtener la función de transferencia de un sistema

ẋ = Ax + BU

Tomando transformada de Laplace y suponiendo condiciones


iniciales nulas

sX (s) = AX (s) + BU(s) (1)


(sI − A)X (s) = BU(s) (2)
X (s) = (sI − A) −1
BU(s) (3)
De la representación de estado a la función de transferencia

Con la ecuación de salida

y (t) = Cx(t) + du(t)

y = Cx + du (4)
Y (s) = CX (s) + dU(s) (5)
Y (s) = C (sI − A) −1
BU(s) + dU(s) (6)

De manera que la funcion de transferencia es

Y (s)
G (s) = U(s) = C (sI − A)−1 B + d
De la función de transferencia a la realización

Supongamos que tenemos una función de transferencia propia


grado m
z }| {
N(s)
G (s) =
D(s)
| {z }
grado n

Escribamos esta función descompuesta en un escalar y una parte


estrictamente propia
G (s) = Gep (s) + d
Donde Gep (s) es la parte estrictamente propia y d es el escalar que
aparece en la representacion de estado Supongamos para el
ejemplo el caso n=4
b1 s 3 + b2 s 2 + b3 s + b4
Gep (s) =
s 4 + a1 s 3 + a2 s 2 + a3 s + a4
forma canónica controlable

G (s) = Gep (s) + d


b1 s 3 + b2 s 2 + b3 s + b4
Gep (s) =
s 4 + a1 s 3 + a2 s 2 + a3 s + a4
Este sistema tiene la representación en forma canónica controlable
dada por
   
−a1 −a2 −a3 −a4 1
 1 0 0 0  0
ẋ = 
 0
x +  u
1 0 0  0
0 0 1 0 0
 
y = b1 b2 b3 b4 x + du
forma canónica controlable

G (s) = Gep (s) + d


b1 s n−1 + b2 s n−2 + · · · + bn−1 s + bn
Gep (s) =
s n + a1 s n−1 + · · · + an−1 s + an
De manera general, este sistema tendrá la forma controlable

 
−a1 −a2 ··· ··· −an−1 −an  
 1 1
 0 ··· ··· ··· 0 
0
 0 1 0 ··· ··· 0   
 x +  ...  u
   
ẋ =  .
. ..
 .
 0 1 . ··· 0 
 
.. 
 .. .. .. ..  . 
 . . . . 0 0 
0
0 0 ··· 0 1 0
 
y = b1 b2 · · · ··· bn−1 bn x + du
forma canónica observable

Si tenemos la funcion de trnasferencia


N(s)
G (s) =
D(s)
Usamos el hecho de que una función de transferencia es igual a su
traspuesta

G (s) = G (s)T
G (s) = C (sI − A)−1 BU(s) + d
G (s)T = C (sI − A)−1 BU(s) + d
G (s)T = [C (sI − A)−1 B + d]T

Y usando las propiedades de la transpuesta:

G (s) = B T (sI − AT )−1 C T


forma canonica observable

De manera general esta es la forma canónica observable


 
−a1 1 0 ··· ··· 0 
b1

 −a2
 0 1 0 · · · 0 
 b2 
 .. .. .  
 . 0 0 1 . ..   ··· 
ẋ = 
 .. .. .. . . ..
x + 
  ··· u

 . . . . . 0  
  bn−1 
an−1 0 0 ··· 0 1 
an 0 0 0 ··· 0 bn
 
y= 1 0 ... ... 0 x + du
forma canónica observable

De manera general esta es la forma canónica observable


 
−a1 1 0 ··· ··· 0 
b1

 −a2
 0 1 0 · · · 0 
 b2 
 .. .. ..   
 . 0 0 1 . . x +  ··· u
 
ẋ = 
 .. .. .. . . ..   ··· 
 . . . . . 0  
  bn−1 
an−1 0 0 ··· 0 1
an 0 0 0 ··· 0 bn
 
y= 1 0 ... ... 0 x + du

Estos nombres tienen mucho que ver con lo que es la


controlabilidad y la observabilidad de un sistema.
Polos y autovalores

Puesto que la función de trnasferencia de un sistema, a partir de su


representación de estado es
Y (s)
G (s) = = C (sI − A)−1 B + d
U(s)
Además por teorı́a básica de matrices sabemos que
Adj(M)
M −1 =
det(M)
Para el caso
Adj(sI − A)
(sI − A)−1 =
det(sI − A)
Notese que los polos de G(s) estan conformados por los valores
donde
det(sI − A) = 0
polos y autovalores

Recordemos que
det(sI − A) = 0
Es el polinomio caracterı́stico de A y sus raı́ces son los valores
propios de A. Si observamos la función de transferencia del sistema

Adj(sI − A)
G (s) = C B +d
det(sI − A)

Llegamos a la siguiente conclusión


A menos de que existan cancelaciones de polos y ceros, los polos
de G (s) son los valores propios de A
Realización en Serie

Esta realización se obtiene cuando se considera un sistema como


una cascada de bloques de primer orden puestos en serie.
Si por ejemplo tenemos el sistema
10
G (s ) =
(s + 1)(s + 2)(s + 3)
Lo podemos representar en serie suponiendo (y esto a veces no es
una suposición sino hace parte de la propia construción del sistema
físico) que se estructura por bloques en serie

U (s) X1 X2 X3 Y ( s)
5 1 2
s +1 s+2 s +3
Realización en Serie
Descomposición en bloques

En la salida de cada bloque asignamos variables de estado para el


sistema.

U (s) X1 X2 X3 Y ( s)
5 1 2
s +1 s+2 s +3

En el primer bloque se tiene

5 x1
s +1
U (s)

X1 (s ) 5
=
U (s ) s +1
Realización en serie
Obtención de las ecuaciones

Y tomando transformada inversa se obtiene, para el primer bloque

5 x1
s +1
U (s)

ẋ1 + x1 = 5u
ẋ1 = x1 + 5u
Realización en serie
Obtención de las ecuaciones

De similar manera para el segundo bloque

x1 1 x2
s+2

X2 (s ) 1
=
X1 (s ) s +2
ẋ2 + 2x2 = x1
ẋ2 = 2x2 + x1
Realización en serie
Obtención de las ecuaciones

Finalmente para el tercer bloque

x2 x3
2
s+3
Y ( s)

X3 (s ) 2
=
X2 (s ) s +3
ẋ3 + 3x3 = 2x2
ẋ3 = 3x3 + 2x2
Realización en serie
Obtención de las ecuaciones

La realización en serie obtenida para este sistema es

ẋ1 = x1 + 5u
ẋ2 = 2x2 + x1
ẋ3 = 3x3 + 2x2

Es decir

2 3 2 32 3 2 3
x1 1 0 0 x1 5
4 x2 5 = 4 1 2 0 5 4 x2 + 0 5 u
5 4
x3 0 2 3 x3 0
2 3
x1
y = 0 0 1 4 x2 5 + 0u
x3
Realización en paralelo

Para obtener una realización en paralelo concebimos el sistema


como formado por bloques de primer orden que se suman.
10
G (s ) =
(s + 1)(s + 2)(s + 3)
Expandiendo en fracciones parciales
5 10 5
G (s ) = +
s +1 s +2 s +3
Realización en paralelo

Entonces interpretamos esta representación como si el sistema


fuera la suma de bloques "en paralelo". La salida de cada bloque
es una variable de estado.

5 x1
s +1

+
U (s) −10 x2 Y ( s)
s+2

x3
5
s+3
Realización en paralelo

Así las cosas encontramos para cada bloque la representación


5 x1
s +1

+
U (s) −10 x2 Y ( s)
s+2

x3
5
s+3

De esto obtenemos

ẋ1 = x1 + 5u
ẋ2 = 2x2 10u
ẋ3 = 3x3 + 5u
Realización en paralelo

Tenemos entonces, la representación de estado

2 3 2 32 3 2 3
x1 1 0 0 x1 5
4 x2 5 = 4 0 2 0 5 4 x2 5 + 4 10 5 u
x3 0 0 3 x3 5
2 3
x1
y = 1 1 1 4 x2 5 + 0u
x3

Esta representación de estado tiene una característica muy especial


y es ser diagonal. Esto siempre ocurrirá cuando hacemos una
realización paralelo de un sistema con todos los polos distintos.
Otras realizaciones obtenibles. Transformación de
cooordenadas
Si obtuvimos una realización de un sistema físico podemos obtener
in…nitas realizaciones, a partir de cambio de coordenadas. Para
esto supongamos un sistema descrito en variables de estado

ẋ= Ax + Bu
y = Cx + du

Si de…nimos un nuevo estado dado por

z = Px
Supuesto que P 2 Rnxn y es una matriz invertible

1
x = P z
1
ẋ = P ż
Otras realizaciones obtenibles. Transformación de
cooordenadas
Usando x = P 1z en la representación de estado

ẋ= Ax + Bu
y = Cx + du
Obtenemos

1 1
P ż= AP z + Bu
1
y = CP z + du
Multiplicando por P, obtenemos un sistema con coordenadas
transformadas

ż= PAP 1 z + PBu


y = CP 1 z + du
Transformación de cooordenadas

De manera que podemos de…nir las matrices del sistema con las
coordenadas transformadas por

ż= Az z + Bz u
y = Cz z + du

Con las de…niciones

Az = PAP 1
Bz = PB
Cz = CP 1
Propiedades deseables de las realizaciones

Además de las realizaciones básicas de sistemas dinámicos, cuando


se trata de representar en variables de estado, por ejemplo, la
función de transferencia de un controlador, o la representación
para simulación se requieren realizaciones que tengan propìedades
numéricas especiales.
Dos cosas se buscan en una realización cuyo propósito es usarla
para implementar o simular un sistema dinámico.
1 Que la realización tenga valores preferencialemente del mismo
orden de magnitud. Balanceo de la realización
2 Que la matriz A de la realización tenga un buen número de
componentes nulos, Por ejemplo que sea una matriz de Jordan
o diagonal.
Propiedades deseables de las realizaciones

Diagonalidad
2 3
2 3 a1 0 0
x1
6 .. .. 7
6 x2 7 6 . 7
6 7 6 0 a2 . 7
6 .. 7 = 6 7 X + Bu
4 . 5 6 .. .. .. 7
4 . . . 0 5
xn 0 0 an
y = CX + du
Esta es una mala realización de un sistema (no balanceada)

2 3 2 3 2 3
x1 105 0.001 2 0 1
6 x2 7 6
6 7 6 0 103 0.5 2 7 6 7
7 x + 6 1000 7 u
6 .. 7 = 4
4 . 5 1 2 3 0 5 4 0.02 5
xn 6 106 0.5 0.1 1 3

y = [ 0.1 1 10 100 ]x + du
Si los cálculos se hacen en un computador estas ecuaciones tenderán a generar
errores muy grandes
Funciones del MATLAB

Con el comando ss formamos la representación de estado de un


sistema

SS Creates state-space model or converts model to


state space.
SYS = SS(A,B,C,D) creates a SS object SYS
representing the
continuous-time state-space model
dx/dt = Ax(t) + Bu(t)
y(t) = Cx(t) + Du(t)
Funciones del MATLAB
De…nición de sistemas en variables de estado

Representar el sistema en MATLAB y simular al paso

x1 1 3 x1 5
= + u
x2 1 2 x2 4
x1
y = 2 3 + 0u
x2

MATLAB
A=[-1 -3;1 -2];
B=[5 4]’;
C=[2 3];
d=0
sistema=ss(A,B,C,d)
step(sistema)
Funciones del MATLAB
De…nición de sistemas en variables de estado

Tenemos la función de transferencia

100s 2 + 2s + 100
G (s ) =
s 3 + 8s 2 + 17s + 10
La representamos directamente en variables de estado
MATLAB
gs=tf([100 2 100],[1 8 17 10])
sisestado=ss(gs)
%Recuperamos las matrices
A=sisestado.a
B=sisestado.b
C=sisestado.c
d=sisestado.d
Funciones del MATLAB
Realizaciones balanceadas ssbal

Otras funciones importantes son


SSBAL Balancing of state-space model using diagonal
similarity.

[SYS,T] = SSBAL(SYS) uses BALANCE to compute a


diagonal similarity
transformation T such that [T*A/T , T*B ; C/T 0] has
approximately
equal row and column norms.

Esta produce una realización balanceada del sistema que ya ha sido


de…nido en variables de estado
Funciones del MATLAB
Realizaciones balanceadas- balreal

A=[-100 -3000;0.001 -2];


B=[5 4]’;
C=[200 3];
d=0
sistema=ss(A,B,C,d)
sistema2=balreal(sistema)
Ubicación de polos por el método de realimentación del
vector de estado
Idea general del Método de realimentación del vector de estado

Supongamos que tenemos un sistema de tres tanques no acoplados


como se ilustra en la …gura

u (t )

x1

x2

x3 y (t )
Representación de bloque en serie de los tanques
El sistema tiene la representación de bloques en seria dada por

U (s) X1 X2 X3 Y (s)
2 5 10
10s + 1 5s + 2 20s + 1

Podemos pensar en realimentar cada una de las variables de salida,


que para el caso, son los niveles de los tanques, es decir las
variables de estado del sistema, que en un sistema físico real serán
las salidas de cada sensor de nivel.
Ubicación de polos por el método de realimentación del
vector de estado
Idea general del Método de realimentación del vector de estado

Podemos pensar en que cada "estado" o nivel medido en el tanque


puede ser realimentado, multiplicándolo por una ganancia
proporcional.

U (s) X1 X2 X3 Y (s)
2 5 10
10s + 1 5s + 2 20s + 1

R(s ) U ( s) X1 X2 X3 Y ( s)
2 5 10
f + 10s + 1 5s + 2 20s + 1

k1
k2
k3
Ubicación de polos por el método de realimentación del
vector de estado
Idea general del Método de realimentación del vector de estado

La función de transferencia del último sistema puede ser calculada


con ayuda de la fórmula de MASON.
R(s ) U ( s) X1 X2 X3 Y ( s)
2 5 10
f + 10s + 1 5s + 2 20s + 1

k1
k2
k3

Recuerde la fórmula de MASON nos dice:

∑ ∆k Mk
T (s ) =

Mk ganancias de trayectorias directas
∆ : 1 ∑ ganancias de lazos+ ∑productos de ganancias de dos lazos no
adyacentes-∑productos de ganancias de dos lazos no adyacentes
Ubicación de polos por el método de realimentación del
vector de estado
Idea general del Método de realimentación del vector de estado

R( s ) U ( s) X1 X2 X3 Y ( s)
2 5 10
f + 10s + 1 5s + 2 20s +1

k1
k2
k3

Usando la anterior fórmula

2 5 10
Y (s ) f 10s +1 5s +2 20s +1 fN (s )
T (s ) = = 2k1 10k2 100k3
=
R (s ) 1+ + + D T (s )
10s +1 (10s +1 )(5s +2 ) (10s +1 )(5s +2 )(20s +1 )

Y (s ) 0.1f
T (s ) = = 3
R (s ) (s + (0.55 + 0.2k 1 )s 2 + (0.2k 2 + 0.09k 1 + 0.065 )s + 0.01k 2 + 0.004k 1 + 0.1k 3 + .002
Ubicación de polos por el método de realimentación del
vector de estado
Idea general del Método de realimentación del vector de estado

Podemos observar que con las ganancias k1 , k2 , k3 de


realimentación de los estados podemos ubicar los polos de lazo
cerrado en las pocisiones que deseemos, esta es la idea central del
método de realimentacion del vector de estado.
Supongamos que deseamos una obicacion de polos el sistema con
polos dominantes de segundo orden.

-1
-10

DT (s ) = (s + 10)(s + 1 + j )(s + 1 j)
3 2
DT (s ) = s + 12s + 22s + 20
Ubicación de polos por el método de realimentación del
vector de estado
Así las cosas nuestro problema consiste en igualar los dos
polinomios DT (s ) y de esta manera entontrar las contantes
adecuadas.

DT (s ) = s 3 + 12s 2 + 22s + 20
= s 3 + (0.55 + 0.2k1 )s 2 + (0.2k2 + 0.09k1 + 0.065)s + ...
... + 0.01k2 + 0.004k1 + 0.1k3 + .002

De esta manera obtenemos las ecuaciones

0.55 + 0.2k1 = 12
0.2k2 + 0.09k1 + 0.065 = 22
0.01k2 + 0.004k1 + 0.1k3 + 0.002 = 20
Ubicación de polos por el método de realimentación del
vector de estado

Resolviendo las ecuaciones obtendremos las ganancias necesarias


para ubicar los polos donde se desea.

12 0.55
k1 = = 57.2
0.2
22 0.09k1 0.065
k2 = = 83.91
0.2
20 0.004k1 0.01k2 0.002
k3 = = 189.2
0.1
Ubicación de polos por el método de realimentación del
vector de estado

De esta manera la función de transferencia del sistema de lazo


cerrado es

0.1f
T (s ) =
s3
+ 12s 2 + 22s + 20
Y si ademas deseamos que el error de estado estacionario al paso
sea nulo, debemos hacer es que T (0) = 1.
Es decir

0.1f
= 1
20
f = 200

Esta es la estrategía básica del método de realimentación del


vector de estado.
Ubicación de polos por el método de realimentación del
vector de estado
Simulación en Simulink

La simulación en Simulink nos muestra como el método es


simplemente de contorl proporcional multiple.

2 5 10
f
10s+1 5s+2 20s+1
Step Gain Transfer Fcn Transfer Fcn1 Transfer Fcn2 Scope

k1

Gain1

k2

Gain2

k3

Gain3

Cada variable de estado (nivel de cada tanque) se multiplica por


una ganancia, para cambiar los polos de lazo cerrado.
Miremos la simulación en tiempo real.

La herramienta real time windows target nos permite hacer una


simulación virtual que nos permite ganar intuición sobre el sistema.
Implementación del controlador.

Un controlador por realimentación del vector de estado es


fácilmente implementable mediante mediante un algoritmo muy
simple de control ó por un sistema electrónico.

u (t ) = r (t ) f k1 x1 k2 x2 k3 x3
Una implementación electrónica del controlador.

Una implementación electronica del controlador es

R10
10k

R5
2M

U5
referencia U1
R13 LP1 LP2 LP3
R6 salida
10k 1 1 1
A. IC=0 A. IC=0 A. IC=0
10k
1 ξ ξp 1 ξ ξp 1ξ ξp
OPAMP
1° ORD: LP 1° ORD: LP 1°ORD: LP
OPAMP
R7 IC=0 IC=0 IC=0

10.56k

R8
23.83k

R9
34.93k
Notación.

Nótese que el controlador que el estado de un sistema se escribe


como un vector.
2 3
x1
x = 4 x2 5
x3
Con esta notación podemos escrobir la señal de control como

x
z2 }| 3{
K
z }| { x1
u (t ) = fr (t ) k1 k2 k3 4 x2 5
x3
u (t ) = fr (t ) Kx
Notación grá…ca Sistema en lazo abierto

Asumamos que el proceso se describe por

ẋ= Ax + Bu
y = Cx

u x& 1 x y
B + C
s

A
Discusión general del método

Para el proceso

ẋ= Ax + Bu
y = Cx

el controlador lineal general es

u = fr Kx
De manera que el sistema en lazo cerrado se convierte en

ẋ = Ax + Bu = Ax + B (fr Kx )
ẋ = (A BK )x + Bfr
Notación grá…ca Sistema en lazo cerrado

u x& 1 x y
r f + B + C
s

K
Las ecuaciones del sistema de lazo cerrado son:

ẋ= (A BK )x + Bfr
y = Cx
Condiciones para la ubicación de polos del sistema

Si tenemos el sistema de lazo cerrado dado por

ẋ= (A BK )x + Bfr
y = Cx

Este sistema tiene el polinomio característico

det (sI A + BK ) = DT (s )
Los polos de lazo cerrado del sistema serán los autovalores de
A BK .

det (sI A + BK ) = 0
Condiciones para la asignación de polos
Ejemplo 1

Si tenemos el modelo de un proceso dado por

0 1 0
ẋ = x+ u
0 0 1
y = Cx = 1 0 x

La ley de control es

u = fr k1 x1 k2 x2 = fr Kx
A B fr Kx
z }| { z }| {z }| {
0 1 0 x1
ẋ = x+ fr k1 k2
0 0 1 x2
Condiciones para la asignación de polos
Ejemplo 1

Sistema de lazo cerrado


A BK Bfr
z }| { z }| {
0 1 0
ẋ = x+ r
k1 k2 f
El polinomio característico del sistema es:

det(sI A + BK ) = DT (s )
s 0 0 1
det( ) = DT ( s )
0 s k1 k2
DT (s ) = s 2 + k2 s + k1
Condiciones para la asignación de polos
Ejemplo 1

DT (s ) = det(sI A + BK ) = s 2 + k2 s + k1
Si, por ejemplo queremos asignar los polos para un sistema de
segundo orden perfecto:

DT (s ) = s 2 + 2ζω n s + ω 2n
Entonces

k2 = 2ζω n
k1 = ω 2n
Condiciones para la asignación de polos
Ejemplo 1

El sistema de lazo cerrado es

f
T (s ) =
s2 + 2ζω n s + ω 2n
Eligiendo

f = ω 2n
ω 2n
Tenemos T (s ) = s +2ζω n s +ω 2n
2 con error al paso nulo
Condiciones para la asignación de polos
Ejemplo 2

Ahora intentemos lo mismo pàra el sistema

0 1 1
ẋ = x+ u
0 0 0
y = Cx = 1 0 x

A fr Kx
z }| { z }| {
0 1 1 x1
ẋ = x+ fr k1 k2
0 0 0 x2
El sistema en lazo cerrado es

k1 1 k2 f
ẋ = x+ r
0 0 0
Imposibilidad de asignación arbitraria
Ejemplo 2

El polinomio característico del sistema es

det(sI A + BK ) = DT (s ) = s 2 + k1 s
Sin importar que valores elijamos para k1 y k2 es imposible asignar
libremente los polos de lazo cerrado, pues siempre uno de ellos
estará en s = 0, de manera que no lograremos ni siquiera estabilizar
el sistema con un controlador de variables de estado. El problema
es que la señal de control no tiene in‡uencia sobre el estado x2 .
La condición su…ciente: controlabilidad

Supongamos la ecuación de estado del sistema

ẋ = Ax + Bu
queremos encontrar una señal que cambie el sistema de un estado
inicial X (0) = X0 a un estado …nal X (t ) = Xf
De esto tenemos
Zt
X (t ) = Xf = e X0 + At
e A (t τ)
Bu (τ )d τ
0

Esto implica que

Zt
Aτ At
e Bu (τ )d τ = X0 + Xf e
0
La condición su…ciente: controlabilidad

Zt
Aτ At
e Bu (τ )d τ = X0 + Xf e
0

A partir de la teoría de funciones de matrices

At
e = I α0 (τ ) + Aα1 (τ ) + ... + An 1
αn 1 (τ )

De aquí que

Zt n
tnZ 1
e Aτ
Bu (τ )d τ = ∑A k 1
B αk ( τ )u ( τ )d τ
0 k =1 0
tnZ 1
n
∑A k 1
B αk ( τ )u ( τ )d τ = X0 + Xf e At

k =1 0
La condición su…ciente: controlabilidad

tnZ 1
n
∑A k 1
B αk ( τ )u ( τ )d τ = X0 + Xf e At

k =1 0

El lado izquierdo de esta ecuación es una combinación lineal de los


vectores B, AB, A2 B, ...An 1 B, de manera que solo tiene solución
si la matriz

Wc = B AB ... An 1B

Puede invertirse (tiene rango n)


La condición su…ciente: controlabilidad

Teorema (Kalman): un sistema es controlable (todos sus estados


son controlables) si y solo si la matriz de controlabilidad

Wc = B AB ... An 1B

Puede invertirse (tiene rango n)


Un caso especial la forma canónica controlable

2 3 2 3
a1 a2 ... an 1 an 1
6 7 6 0 7
6 1 0 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 0 7z +6
6 . 7u
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 1 0 0
y = b1 ... bn 1 bn z
Este sistema es controlable con matriz de controlabilidad
2 3
1 a1 a12 a2
6 0 1 a1 7
6 7
6 7
Wc = 6 0 0 1 7
6 .. 7
4 . 5
0 0 0 1
Un caso especial la forma canonica controlable

La forma canónicfa controlable

2 3 2 3
a1 a2 ... an 1 an 1
6 7 6 0 7
6 1 0 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 0 7z +6
6 . 7u
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 1 0 0
y = b1 ... bn 1 bn z

Tiene polinomio caracteristíco

det(sI A ) = s n + a1 s n 1
+ ... + an 1s + an
Un caso especial fácil

Para un sistema en la forma canónica controlable

2 3 2 3
a1 a2 ... an 1 an 1
6 7 6 0 7
6 1 0 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 0 7z +6
6 . 7u
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 1 0 0
y = b1 ... bn 1 bn z

Si elegimos la señal de control como:

u (t ) = fr k1 z1 k2 z2 ... kn zn
u (t ) = fr Kz
Un caso especial fácil

u (t ) = fr k1 z1 k2 z2 ... kn zn
El sistema de lazo cerrado es

2 3 2 3
a1 k1 a2 k2 ... an kn f
6 7 6 0 7
6 1 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 7z +6
6 . 7r
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 0 0
y = b1 ... bn 1 bn z
Con polinomio característico

s n + (a1 + k1 )s n 1
+ (a2 + k2 )s n 2
+ ... + (an + kn )
Un caso especial

Para el sistema en forma controlable

2 3 2 3
a1 a2 ... an 1 an 1
6 7 6 0 7
6 1 0 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 0 7z +6
6 . 7u
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 1 0 0
y = b1 ... bn 1 bn z
La señal de realimentación
u = fr Kx
Produce, en lazo cerrado, el polinomio característico

DT (s ) = s n + p1 s n 1
+ p2 s n 2
+ ... + p1 s + p0
Un caso especial

Como tenemos el polinomio de lazo cerrado que hemos elegido

DT (s ) = s n + p1 s n 1
+ p2 s n 2
+ ... + pn 1 s + pn
ademas

p1 = a1 + k1 , p2 = a2 + k2 , ...pn = an + kn ,
Solucionamos fácilmente

k1 = p1 a1 , k2 = p2 a2 , ...kn = pn an
Un caso especial fácil

En notación vectorial

K = k1 k2 ... kn
p = p1 p2 ... pn
a = a1 a2 ... an

De manera que solucionamos el problema asi de simple

K =p a
Un caso especial

Resolvimos el problema para el caso especial de que el sistema esta


en la forma controlable. Ahora para un sistema en cualquier
representación

ẋ= Ax + Bu
y = Cx
La matriz de controlabilidad de este sistema es

Wc = B AB ... An 1B

Cambiemos las coordenadas a z = Px

ż= Ãz + B̃u


y = C̃ z
Usando el hecho de que à = PAP 1 , B̃ = PB, C̃ = CP 1
Un caso especial

El sistema transformado

ż= Ãz + B̃u


y = C̃ z

Tiene matriz de controlabilidad

W̃c = B̃ ÃB̃ ... Ãn 1 B̃


W̃c = P B AB ... An 1 B = PWc

Despejando P se obtiene:

1
P = W̃c Wc
Esta matriz transforma un sistema controlable a la forma canónica
controlable
El caso general

Un sistema descrito por las ecuaciones de estado

ẋ= Ax + Bu
y = Cx
El cual es controlable, puede ser transformado de su sistema de
coordenadas, a la forma canónica controlable

2 3 2 3
a1 a2 ... an 1 an 1
6 7 6 0 7
6 1 0 0 0 7 6 7
6 7 6 .. 7
ż = 6 0 1 0 0 7z +6
6 . 7u
7
6 .. 7 6 .. 7
4 . 5 4 . 5
0 0 1 0 0
y = b1 ... bn 1 bn z + du
Caso general

Con el cambio de coordenadas el sistema en forma controlable


tiene, como deciamos anteriormente, un fácil cálculo de la
ganancia de realimentación dado por.

K̃ = p a
K̃ = p1 a1 p2 a2 ... pn an
Un algoritmo

Transformamos el sistema ẋ = Ax + Bu a la froma canónica


controlable ż = Ãz + B̃u usando la transformación
z = Px = W̃c Wc 1 x.La ganancia del sistema transformado es

K̃ = p a
y como

u = fr Kx
1
u = fr KP z
u = fr K̃ z
Obtenemos que

K = K̃ P
1
K = W̃c Wc
Métodos de calcular la ganancia de realimentación del
vector de estad

1.Igualación Directa

DT (s ) = det(sI A + BK )
2.Forma canónica controlable

K̃ = p a
1
K = K̃ W̃c Wc

3. Fórmula de Ackermann

K = 1 0 ... 0 B AB ... An 1B DT (A)


4. MATLAB tiene las funciones acker y place para este propósito
Cálculo del precompensador

Para calcular el precompensador para lograr error nulo de posición


usamos que

f = 1/T (0)
En la representación de estado

1
T (s ) = C (sI A + BK ) B
De manera que

1
T (0) = C ( A + BK ) B
Ejemplo 1

Se tiene el sistema

1 2 1
ẋ = x+ u
3 1 0
y = Cx = 1 2 x

Asignar polos de lazo cerrado en -10,-20


Código en MATLAB del ejemplo 1

A=[1 2;3 1]
B=[1 0]’;
C=[1 2];
d=0;
sis=ss(A,B,C,d)
polos=[-10 -20]
K=place(A,B,polos)
Alc=A-B*K
sistemaLC=ss(Alc,B,C,d)
f=1/dcgain(sistemaLC);
sistemaLC=f*sistemaLC
step(sistemaLC)
Ejemplo 2

Se tiene el sistema

(s 1)(s + 2)
G (s ) =
(s + 1)(s 2)(s + 3)
Diseñe un controlador por realimentación del vector de estado tal
que la función de trnasferencia de lazo cerrado sea:

(s 1)
T (s ) =
(s + 2)(s + 3)
Código en MATLAB del ejemplo 2

gs=zpk([1 -2],[-1 2 -3],1)


sisla=ss(gs)
A=sisla.a
B=sisla.b
C=sisla.c
d=0
polos=[-2 -2 -3]
K=acker(A,B,polos)
Alc=A-B*K
sislc=ss(Alc,B,C,d)
Ts=minreal(zpk(sislc))%veri…camos
f=1/dcgain(sislc)
sislc=sislc*f
step(sislc)
Controlador PI vectorial

Una mejora que podemos colocar en un controlador por variables


de estado es un efecto integrador. Es claro que el precompensador
f nos ayuda con el error de estado estacionario, pero este tipo de
control del error es muy dependiente de que no haya cambios en el
modelo. (No es robusto).
Al igual que en el caso de realimentación unitaria, introducir este
efecto integrador tiene un consecuencia muy favorable en el error
estacionario y en la sensibilidad a bajas frecuencias.
Controlador PI vectorial

xi
r e u x& 1 x y
+
1
s
− ki
+
B + s
C

- -
A

Creamos una variable para la integral del error.


Controlador PI vectorial

Creamos una variable de estado arti…cial más xi , que es la integral del


error.
xi
r e u x& 1 x y
+
1
s
− ki
+
B + s
C

- -
A

u= ki xi Kx
Las ecuaciones de este sistema son

ẋ = Ax + Bu = Ax BKx Bki xi
ẋ = (A BK )x Bki xi
ẋi = r Cx
Controlador PI vectorial

xi
r e u x& 1 x y
+
1
s
− ki
+
B + s
C

- -
A

Las ecuaciones de este sistema son

ẋ = Ax + Bu = Ax BKx Bki xi
ẋ = (A BK )x Bki xi
ẋi = r Cx
Controlador PI vectorial

La representación de estado de este sistema es

ẋ A BK Bki x 0
= + r
ẋi C 0 xi 1
x
Y = C 0
xi
Diseño del Controlador PI vectorial

Para el diseño del controlador PI vectorial podemos reinterpretar el


sistema de lazo cerrado
ẋ A BK Bki x 0
= + r
ẋi C 0 xi 1
x
Y = C 0
xi
Reescribiendolo como

A la B la
z }| { z }| {
ẋ A 0 x B x 0
= K ki + r
ẋi C 0 xi 0 xi 1
x
Y = C 0
xi
Diseño del Controlador PI vectorial

Con esta reescritura podemos pensar que tenemos un "sistema de


lazo abierto"

A la B la
z }| { z }| { K
z }| {
ẋ A 0 x B x 0
= K ki + r
ẋi C 0 xi 0 xi 1
x
Y = C 0
xi
Cuyas matrices de lazo abierto son:

A 0 B
Ala = , Bla =
C 0 0
Y diseñamos el PI con las tecnicas ya vistas para encontrar

K = K ki
Diseño del Controlador PI vectorial

xi
r e u x& 1 x y
+
1
s
− ki
+
B + s
C

- -
A

nota importante
El controlador obtenido es

K = K ki

K es la realimentación del vector de estado del sistema y ki ES


NEGATIVA EN EL DIAGRAMA POR TANTO DEBEMOS
INVERTIR EL SIGNO DEL VALOR OBTENIDO.
Ejemplo

Diseñe un controlador PI vectorial para el sistema descrito por las


ecuaciones de estado

2 3 2 32 3 2 3
x1 1 0 0 x1 5
4 x2 5 = 4 0 2 0 5 4 x2 5 + 4 10 5 u
x3 0 0 3 x3 5
2 3
x1
y = 1 1 1 4 x2 5 + 0u
x3
Observadores

Para la realimentación del vector de estado hemos supuesto que


todas las variables de estado puedne medirse. Esto frecuentemente
no es posible por posible por dos razones:
Limitaciones en la disponibilidad de sensores
Las variables de estodo de un sistema pueden no ser variables
físicas reales
Observadores

Podemos hacer un sistema dinámico que simule el comportamiento


del sistema original mediante
Circuitos electronicos con computador análogo (idea original)
Algoritmo de simulación en tiempo real
Cuando es posible estimar el estado a partor de la salida
en un sistema

Supongamos u = 0 en la ecuacion de estado

= Ax

y = Cx

Si derivamos la salida ẏ

y = Cx
(1 )
y = CAx
..
.
y (n 1)
= CAn 1
x
Cuando es posible estimar el estado a partor de la salida
en un sistema

Reescribiendo la ecuación anterior matricialmente


2 3 2 3
C y
6 CA 7 6 y (1 ) 7
6 7 6 7
6 .. 7 x = 6 .. 7
4 . 5 4 . 5
CAn 1
yn 1

Si de…nimos
2 3
C
6 CA 7
6 7
W0 = 6 .. 7
4 . 5
CAn 1

La matriz de observabilidad
Cuando es posible estimar el estado a partor de la salida
en un sistema

El sistema ahora tiene la forma


2 3
y
6 y (1 ) 7
6 7
W0 x = 6 . 7
4 .. 5
yn 1
De manera que x puede ser calculado a partir de la salida si W0 es
invertible (tiene rango n)
2 3
y
6 y (1 ) 7
16 7
x = W0 6 . 7
4 . 5.
yn 1
Observabilidad de un sistema

(Kalman). Un sistema dinámico es observable (los estados pueden


ser estimados solo a partir de mediciones de la salida) si la matriz
de observabilidad
2 3
C
6 CA 7
6 7
W0 = 6 .. 7
4 . 5
CAn 1

tiene rango n (es invertible)


Ejemplo

Determinar la observabilidad del siguiente sistema dinámico.

2 3 2 32 3 2 3
x1 1 0 0 x1 5
4 x2 5 = 4 0 2 0 5 4 x2 5 + 4 10 5 u
x3 0 0 3 x3 5
2 3
x1
y = 1 1 1 4 x2 5 + 0u
x3
Idea Inicial

Hacer un replica exacta del sistema y colocarle la misma entrada

Sistema original
u x& 1 x y
B + C
s

Sistema para simulación

u x& 1 x% y%
B + C
s

A
Idea Inicial

Sistema original
u x& 1 x y
B + C
s

Sistema para simulación

u x& 1 x% y%
B + C
s

Limitaciones de esta idea


Debemos ajustar en el observador siempre la condición inicial
Si A es inestable x̃ (el estado estimado) se alejará cada vez
mas de x el estado real del sistema.
Estimador de lazo cerrado de Luenberger

Sistema original
u x& 1 x y
B + C
s

e y = y − y% +
L

u x& 1 x% y%
B + C
s

A
Sistema de simulación

Le colocamos un controlador a la estimacion que proceda de


acuerdo con el error entre las salidas de ambos sistemas dinámicos.
Aqui ỹ es la salida estimada x̃ el estado estimado y el error en el
estimación es ey = y ỹ
Ecuación de estado del observador

Sistema original
u x& 1 x y
B + C
s

e y = y − y% +
L

u x& 1 x% y%
B + C
s

A
Sistema de simulación

En el sistema original

ẋ = Ax + Bu
En el observador

.
x̃ = Ax̃ + Bu + Ley
.
x̃ = Ax̃ + Bu + L(Cx C x̃ )
.
x̃ = (A LC )x̃ + LCx + Bu
Convergencia del estado estimado al estado real en el
observador de Luenberger

De…namos el error en la estimación del estado

ex = x x̃
De manera que

.
ėx = ẋ x̃
ėx = (Ax + Bu ) [(A LC )x̃ + LCx + Bu ]
.
ėx = (A LC )x (A LC )x̃
.
ėx = (A LC )ex
Convergencia del estado estimado al estado real en el
observador de Luenberger
La solucion de la ecuacion de primer orden del erro en la
estimación de estado
.
ėx = (A LC )ex
Es

ex (t) = e (A LC )t
ex (0)
La repuesta de esta ecuación la gobernaran los valores propios de
A LC de la forma e λt si λ es grande e λt tendera a cero
rápidamente. Si elegimos todos los valores propios de A LC
negativos y rápidos

lim ex (t) = 0
t !∞
t ! ∞, x̃ (t ) = x (t )
Convergencia del estado estimado al estado real en el
observador de Luenberger

Si elegimos valores de A LC muy rápidos el estado estimado se


acercará muy rápidamente al estado real. Normalmente los polos
del observador se toman de 5 a 10 veces mas grandes que los del
sistema de control en lazo cerrado.
Diseño del observador

Métodos
1. Hacemos igualación directa
det (sI A + LC ) = D0 (s )
Donde D0 (s ) es el polinomio que deseamos para el observador.
2.El problema de diseño del observador es ubicar los valores propios
de la matriz A LC . Puesto que

det(sI A + LC ) = det(sI A + LC )T
= det(sI AT + C T LT )

Con las mismas funciones para determinar la ganancia K de


realimentación del vector de estado podemos calcular el vector L
del observador.
Veamos el ejemplo en MATLAB

Diseñar controlador y observador para el sistema


10
G (s ) =
s (s 1)(s + 2)
El sistema completo de controlador y observador

Cuando tomamos la muestra del vector de estado estimado y


realimentamos K x̃ tenemos el sistema completo con controlador y
observador.

r u x& = Ax + Bu
f y
+ y = Cx

+
L e y = y − y%

x& 1 x%
C
B + s
y%
A

K
Ecuaciones dinámicas del sistema completo

La señal de control es:

u = fr K x̃
Reemplazanddo enLas ecuaciones dinamicas del controlador y el
estimador son:x̃

ẋ = Ax + Bu
ẋ = Ax BK x̃ + Bfr

Y en los estados estimados

.
x̃ = Ax̃ + Bu + Ley
.
x̃ = LCx + (A LC BK )x̃ + Br
Ecuaciones dinámicas del sistema completo

Entonces el sistema completo en variables de estado toma la forma:

A CE B CE
z }| { z }| {
ẋ A BK x B
. = + r
x̃ LC A LC BK x̃ B
C CE
z }| {
x
y = C 0

Con esta descripción que contiene los estados reales y los estados
estimados hacemos las simulaciones.
Principio de separación

Una de las preguntas que surgen es como in‡uiran los polos del
controlador en los polos del observador y viceversa. Para responder
esta pregunta, consideremos la transformación de coordenadas

x x
=
x x̃ e
Para obtener este cambio de coordenadas, usamos la
transformación
T
z }| {
x I 0 x x
= =T
x x̃ I I e e
Principio de separación

Si ahora aplicamos a la matriz característica del sistema

A BK
ACE =
LC A LC BK
Obtenemos las matrices

1
ĀCE = TACE T
I 0 A BK I 0
ĀCE =
I I LC A LC BK I I
Principio de separación

Y obtenemso la matriz ĀCE del sistema transformado

A BK BK
ĀCE =
0 A LC

Como esta matriz es triangular superior por bloques, sus


autovalores son los autovalores de cada bloque en la diagonal: los
autovaores de la matriz A BK y los autovalores de la matriz
A LC . Los autovalores de ACE son los mismos de ĀCE , pues una
transformación de coordenadas no afecta los autovalores de una
matriz.
Principio de separación

De esto obtenemos la conclusión importante de que, para


propositos de diseño los poslo del controlador no afectan los del
estimador y viceversa. Esto se conoce como el principio de
sepración. En cualquier caso la función de transferencia de lazo
cerrado es

T (s ) = C (sI A + BK ) 1 B
b1 s n 1 + b2 s n 2 + ... + bn
T (s ) = f n
s + p1 s n 1 + ... + pn 1 s + pn

You might also like