Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
El método de diseño que se presenta en este capítulo se conoce como técnica de
asignación de polos o realimentación de estado. Se supone que todas las
variables de estado son medibles y que están disponibles para su realimentación.
Si el sistema es completamente controlable, los polos del sistema en lazo cerrado
se puede ubicar en cualquier posición deseada realimentando el estado a través
de una matriz de ganancias adecuada.
Se supondrá inicialmente que la señal de referencia es nula r(t)=0.
2
Vamos a diseñar un controlador de la forma:
𝒙𝒙
𝑥𝑥̇ (𝑡𝑡) = 𝑨𝑨𝑨𝑨(𝑡𝑡) + 𝑩𝑩𝑩𝑩(𝑡𝑡)
𝒖𝒖
𝒖𝒖(t)=-K 𝒙𝒙
-K
3
Se cumplen entonces las relaciones:
𝑢𝑢(𝑡𝑡) = −𝐾𝐾𝐾𝐾(𝑡𝑡)
𝑥𝑥̇ (𝑡𝑡) = 𝐴𝐴𝐴𝐴(𝑡𝑡) − 𝐵𝐵𝐵𝐵𝐵𝐵(𝑡𝑡) = (𝐴𝐴 − 𝐵𝐵𝐵𝐵 )𝑥𝑥(𝑡𝑡)
5
𝑥𝑥1̇ 0 1 0 ⋯ 0 ⎤ 𝑥𝑥1
⎡ 0
⎡ 𝑥𝑥 ̇ ⎤ 0 0 1 ⋯ 0 ⎥ ⎡ 𝑥𝑥2 ⎤ ⎡0⎤
⎢ 2 ⎥ ⎢⎢ ⎥ ⎢ ⋮ ⎥ ⎢ ⎥
⎢ ⋮ ⎥=⎢ ⋮ ⋮ ⋮ ⋮ ⎥⎢ ⎥ + ⎢⋮⎥ u
⎢𝑥𝑥̇ 𝑛𝑛−1 ⎥ ⎢ 0 0 ⎢𝑥𝑥𝑛𝑛−1 ⎥ ⎢0⎥
0 ⋯ 0 ⎥ ⎣ 𝑥𝑥 ⎦ ⎣1⎦
⎣ 𝑥𝑥̇ 𝑛𝑛 ⎦
⎣−𝑎𝑎0 −𝑎𝑎1 −𝑎𝑎2 ⋯ −𝑎𝑎𝑛𝑛−1 ⎦ 𝑛𝑛
𝑥𝑥1
𝑥𝑥
𝑦𝑦 = [𝑏𝑏0 − 𝑏𝑏1 ⋯ 𝑏𝑏𝑛𝑛−1 ] � ⋮2 �
𝑥𝑥𝑛𝑛
6
𝑥𝑥1̇ 0 1 0 ⋯ 0 ⎤
⎡
⎡ 𝑥𝑥 ̇ ⎤ 0 0 1 ⋯ 0 ⎥
⎢ 2 ⎥ ⎢⎢
𝐴𝐴𝑟𝑟 = (𝐴𝐴 − 𝐵𝐵𝐵𝐵 ) = ⎢ ⋮ ⎥ = ⋮
⎢
⋮ ⋮ ⋮ ⎥⎥
⎢𝑥𝑥̇ 𝑛𝑛−1 ⎥ ⎢ 0 0 0 ⋯ 0 ⎥
⎣ 𝑥𝑥̇ 𝑛𝑛 ⎦
⎣−𝑎𝑎0 −𝑎𝑎1 −𝑎𝑎2 ⋯ −𝑎𝑎𝑛𝑛−1 ⎦
0 1 0 ⋯ 0
0 ⎡ ⎤
⎡0⎤ ⎢ 0 0 1 ⋯ 0 ⎥
⎢ ⋮ ⎥ [𝑘𝑘 𝑘𝑘 𝑘𝑘 ⋯ 𝑘𝑘 ] ⎢ ⎥
−⎢ ⎥ 1 2 3 𝑛𝑛 = ⋮ ⋮ ⋮ ⋮
⎢0⎥ ⎢ ⎥
⎢ 0 0 0 ⋯ 0 ⎥
⎣1⎦
⎣−𝑘𝑘1 − 𝑎𝑎0 −𝑘𝑘2 − 𝑎𝑎1 −𝑘𝑘3 − 𝑎𝑎2 ⋯ −𝑘𝑘𝑛𝑛 − 𝑎𝑎𝑛𝑛−1 ⎦
La matriz C queda inalterada.
Podemos hacer ahora que los polos se igualen a unos polos deseados.
7
Ejemplo:
3𝑠𝑠+6
Dado 𝐹𝐹 (𝑠𝑠) =
𝑠𝑠 3 +3𝑠𝑠 2 +7𝑠𝑠+1
se desea diseñar un controlador por realimentación de estado tal que los polos de
lazo cerrado sean -1±j y -10.
20 = 1 + 𝑘𝑘1
22 = 7 + 𝑘𝑘2 𝐾𝐾 = [19 15 9]
12 = 3 + 𝑘𝑘3
8
5.2 Realimentación de estado con una representación cualquiera.
donde los ai son los coeficientes del polinomio característico |𝑠𝑠𝑠𝑠 − 𝐴𝐴|
Y entonces transformamos A de la siguiente forma:
𝑇𝑇 −1 𝐴𝐴𝐴𝐴
9
Ejemplo:
Sea el sistema representado por las matrices
−0.4286 1 0.7
𝐴𝐴 = � � , 𝐵𝐵 = � �
0 −1.4286 0.7
𝑠𝑠 + 0.4286 −1
det(𝑠𝑠𝑠𝑠 − 𝐴𝐴) = � �=
0.7 𝑠𝑠 + 1.4286
𝑠𝑠 2 + 1.8572𝑠𝑠 + 0.6123 = 0
1.8572 1 0.7 0.4
𝑊𝑊 = � � y 𝑀𝑀 = � �
1 0 0.7 −1
1.7 0.7
𝑇𝑇 = 𝑀𝑀𝑀𝑀 = � �
0.3 0.7
0 1
𝐴𝐴𝐴𝐴 = 𝑇𝑇 −1 𝐴𝐴𝐴𝐴 = � �
−0.6124 −1.8572
0
𝐵𝐵𝐵𝐵 = 𝑇𝑇 −1 𝐵𝐵 = � �
1
10
El polinomio característico de Ar sería ahora:
0 1
(
𝐴𝐴𝑟𝑟 = 𝐴𝐴𝐴𝐴 − 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵 = �) �
−0.6124 − 𝐾𝐾1𝑐𝑐 −1.8572 − 𝐾𝐾2𝑐𝑐
|𝑠𝑠𝑠𝑠 − 𝐴𝐴𝑟𝑟 | = 𝑠𝑠 2 + (1.8572 + 𝐾𝐾2𝑐𝑐 )𝑠𝑠 +0.6124+𝐾𝐾1𝑐𝑐
en nuestro ejemplo:
−1
0.7 0.4
𝐾𝐾 = (0 1) � � (𝐴𝐴2 + 2𝐴𝐴 + 10) = (6.6618 −6.4578)
0.7 −1
Se puede comprobar que
𝐾𝐾 = 𝐾𝐾𝑐𝑐 𝑇𝑇 −1 ó 𝐾𝐾𝑐𝑐 = 𝐾𝐾𝐾𝐾
11
5.3 Sistemas con referencia distinta de cero.
𝑥𝑥 = 𝐴𝐴𝐴𝐴̇ + 𝐵𝐵𝐵𝐵
𝑦𝑦 = 𝐶𝐶𝐶𝐶
donde
0 1 0 ⋯ 0 0
⎛0 0 1 ⋯ 0 ⎞ ⎛0⎞
𝐴𝐴 = ⎜ ⋮ ⋮ ⋮ ⋱ ⋮ ⎟ 𝐵𝐵 = ⎜ ⋮ ⎟
0 0 0 ⋯ 1 0
⎝0 −𝑎𝑎1 −𝑎𝑎2 ⋯ −𝑎𝑎𝑛𝑛−1 ⎠ ⎝1⎠
12
Se realimenta el estado de forma que se conserve el tipo del sistema y luego se
realimenta la salida, para globalmente situar los polos en los lugares deseados.
La entrada r se supone un escalón.
+ + y(t)=x1(t)
x(t)
r(t) k1 B � C
- u(t) - +
[0 k2 k3 …kn ]
14
Como el sistema es de tipo 1 ya cumple la condición del error. Para situar los
polos en las posiciones requeridas, realimentamos según lo visto anteriormente.
El modelo en espacio de estado en forma controlable es:
0 1 0 0
𝒙𝒙̇ = �0 0 1 � 𝒙𝒙 + �0� 𝑢𝑢
0 −7 −3 1
𝑦𝑦 = (6 3 0)𝒙𝒙
El polinomio característico realimentado deseado es:
𝑝𝑝(𝑠𝑠) = (𝑠𝑠 + 1 + 𝑗𝑗)(𝑠𝑠 + 1 − 𝑗𝑗)(𝑠𝑠 + 10) = 𝑠𝑠 3 + 12𝑠𝑠 2 + 22𝑠𝑠 + 20
La matriz de realimentación sería:
0 1 0
𝑨𝑨𝒓𝒓 = � 0 0 1 � = 𝑨𝑨 − 𝑩𝑩𝑩𝑩 − 𝑘𝑘1 𝑩𝑩𝑩𝑩
−20 −22 −12
0 1 0 0 0
= �0 0 1 � − �0� (0 𝑘𝑘2 𝑘𝑘3 ) − 𝑘𝑘1 �0� (6 3 0)
0 −7 −3 1 1
Resultando
10
𝑘𝑘1 = 𝑦𝑦 𝑲𝑲 = (0 5 9)
3
15
5.3.2 Sistemas de tipo 0.
r(t) e y(t)
xN + x(t)
�⬚ Ke B + �⬚ C
u(t)
+ +
-K
Se añade un integrador que aumenta el tipo del sistema y reduce a cero el error
finito previo. A continuación deducimos la forma de las ecuaciones de estado
para el sistema de la figura y lo usamos para hallar el controlador.
Tenemos una nueva variable 𝑥𝑥𝑁𝑁 a la salida del integrador. El error es la derivada
de esta variable:
𝑥𝑥̇ 𝑁𝑁 = 𝑟𝑟 − 𝑪𝑪𝑥𝑥
16
Al escribir las ecuaciones de estado tenemos:
𝒙𝒙̇ = 𝑨𝑨𝑨𝑨 + 𝑩𝑩𝑢𝑢
𝑥𝑥̇ 𝑁𝑁 = 𝑟𝑟 − 𝑪𝑪𝑥𝑥
𝑦𝑦 = 𝑪𝑪𝑥𝑥
En forma vectorial:
𝒙𝒙̇ 𝑨𝑨 0 𝒙𝒙 𝑩𝑩 0
� �=� � �𝑥𝑥 � + � � 𝑢𝑢 + � � 𝑟𝑟
𝑥𝑥̇ 𝑁𝑁 −𝑪𝑪 0 𝑁𝑁 0 1
𝒙𝒙
[
𝑦𝑦 = 𝑪𝑪 0 �𝑥𝑥 � ]
𝑁𝑁
Y ahora
𝒙𝒙
𝑢𝑢 = −𝑲𝑲𝑲𝑲 + 𝐾𝐾𝑒𝑒 𝑥𝑥𝑁𝑁 = −[𝑲𝑲 −𝐾𝐾𝑒𝑒 ] �𝑥𝑥 �
𝑁𝑁
Sustituyendo en las ecuaciones del sistema:
𝒙𝒙̇ (𝑨𝑨 − 𝑩𝑩𝑩𝑩) 𝑩𝑩𝐾𝐾𝑒𝑒 𝒙𝒙 0
� �=� � �𝑥𝑥 � + � � 𝑟𝑟
𝑥𝑥̇ 𝑁𝑁 −𝑪𝑪 0 𝑁𝑁 1
𝒙𝒙
𝑦𝑦 = [𝑪𝑪 0] �𝑥𝑥 �
𝑁𝑁
Podemos usar la ecuación característica relacionada con este sistema para
diseñar K y Ke.
17
Ejemplo:
Diseñe un controlador de forma que el sistema:
3𝑠𝑠 + 6
𝐺𝐺 (𝑠𝑠) = 3
𝑠𝑠 + 3𝑠𝑠 2 + 7𝑠𝑠 + 1
Tenga sus polos en -1±j y -10 con error nulo ante un escalón unitario.
El modelo en espacio de estado en forma controlable es:
0 1 0 0
𝒙𝒙̇ = � 0 0 1 � 𝒙𝒙 + �0� 𝑢𝑢
−1 −7 −3 1
𝑦𝑦 = (6 3 0)𝒙𝒙
La inclusión del integrador aumenta el orden del sistema, lo que obliga a incluir
una nueva variable de estado y por tanto una nueva especificación para la
posición del polo correspondiente en lazo cerrado. Suponiendo que los polos
complejos conjugados van a ser los dominantes, añadimos un nuevo polo en s=-
10.
𝑝𝑝(𝑠𝑠) = (𝑠𝑠 + 1 + 𝑗𝑗)(𝑠𝑠 + 1 − 𝑗𝑗)(𝑠𝑠 + 10)2 = 𝑠𝑠 4 + 22𝑠𝑠 3 + 142𝑠𝑠 2 + 240𝑠𝑠 + 200
Por otro lado el valor de:
18
0 1 0 0
(𝑨𝑨 − 𝑩𝑩𝑩𝑩) 𝑩𝑩𝐾𝐾𝑒𝑒 0 0 1 0
𝑨𝑨𝒓𝒓 = � �=� �
−𝑪𝑪 0 −𝑘𝑘1 − 1 −𝑘𝑘2 − 7 −𝑘𝑘3 − 3 𝐾𝐾𝑒𝑒
−6 −3 0 0
y
𝑑𝑑𝑑𝑑𝑑𝑑(𝑠𝑠𝑠𝑠 − 𝐴𝐴𝐴𝐴) = 𝑠𝑠 4 + (𝑘𝑘3 + 3)𝑠𝑠 3 + (𝑘𝑘2 + 7)𝑠𝑠 2 + (3𝐾𝐾𝑒𝑒 + 𝑘𝑘1 + 1)𝑠𝑠 + 6𝐾𝐾𝑒𝑒 =
= 𝑠𝑠 4 + 22𝑠𝑠 3 + 142𝑠𝑠 2 + 240𝑠𝑠 + 200
De donde obtenemos:
100
𝑘𝑘1 = 139, 𝑘𝑘2 = 135, 𝑘𝑘3 = 19, 𝐾𝐾𝑒𝑒 =
3
19
5.4.- Observadores de estado
Hasta ahora se ha supuesto que todos los estados del sistema están disponibles
para utilizarlos.
Normalmente no se pueden medir todos los estados y en la mayoría solamente
está disponible la salida.
Lo que se hace entonces es intentar estimar el vector de estado a partir de la
salida y los valores de control aplicados.
Este proceso se conoce como ESTIMACIÓN ó RECONSTRUCCIÓN del vector
de estado.
Al sistema reconstructor del estado se le llama OBSERVADOR y para sistemas
lineales fue resuelto por David Luenberger, por lo que se le conoce como
Observador de Luenberger.
u(t)
𝒙𝒙̇ = 𝑨𝑨𝑨𝑨 + 𝑩𝑩𝑢𝑢 y(t)
𝑦𝑦 = 𝑪𝑪𝑪𝑪 + 𝑫𝑫𝑢𝑢
OBSERVADOR
20
5.4.1.- Definición de Observador de estado
Teorema:
Dado un sistema lineal, invariante y observable:
𝒙𝒙̇ = 𝑨𝑨𝑨𝑨 + 𝑩𝑩𝑢𝑢
𝑦𝑦 = 𝑪𝑪𝑪𝑪
21
Estas 2 condiciones imponen diversas restricciones a las matrices del
observador. Así, si se forma la diferencia entre la evolución del estado observado
y el real:
𝑥𝑥̇ 𝑒𝑒 (𝑡𝑡) − 𝑥𝑥̇ (𝑡𝑡) = 𝐹𝐹𝑥𝑥𝑒𝑒 (𝑡𝑡) − 𝐴𝐴𝐴𝐴(𝑡𝑡) + (𝐺𝐺 − 𝐵𝐵)𝑢𝑢(𝑡𝑡) + 𝐻𝐻𝐻𝐻𝐻𝐻(𝑡𝑡)
Por la 1ª condición, si los estados deben coincidir en todo instante para toda
entrada, para que la entrada no influya se debe cumplir:
𝐺𝐺 = 𝐵𝐵
Y para que los estados coincidan en todo instante:
𝑥𝑥̇ 𝑒𝑒 (𝑡𝑡) − 𝑥𝑥̇ (𝑡𝑡) = 𝐹𝐹𝑥𝑥𝑒𝑒 (𝑡𝑡) − 𝐴𝐴𝐴𝐴(𝑡𝑡) + 𝐻𝐻𝐻𝐻𝐻𝐻(𝑡𝑡) = 0
Se debe cumplir:
𝐹𝐹 = 𝐴𝐴 − 𝐻𝐻𝐻𝐻
Con lo que nos queda:
𝑥𝑥̇ 𝑒𝑒 (𝑡𝑡) − 𝑥𝑥̇ (𝑡𝑡) = (𝐴𝐴 − 𝐻𝐻𝐻𝐻 )�𝑥𝑥𝑒𝑒 (𝑡𝑡) − 𝑥𝑥 (𝑡𝑡)�
Por tanto la dinámica del error entre el estado observado y el error viene
gobernado por la matriz 𝐴𝐴 − 𝐻𝐻𝐻𝐻
De la 2ª condición, si los estados iniciales no coinciden, 𝑥𝑥𝑒𝑒0 ≠ 𝑥𝑥0 , 𝑥𝑥𝑒𝑒 debe tender
asintóticamente al estado del sistema, por lo que los valores propios de la matriz
𝐴𝐴 − 𝐻𝐻𝐻𝐻 deben estar en el semiplano negativo.
22
En la práctica se necesita que la dinámica del observador dado por F sea más
rápida que la del sistema dado por A, para que el observador estime las variables
de estado más deprisa que la variación de éstos y, por tanto, puedan usarse de
forma eficaz en su estimación. Esto se consigue si la parte real de los valores
propios de la matriz A-HC es significativamente menor que la de los valores
propios de la matriz A.
23
En forma matricial:
𝒙𝒙̇ (𝒕𝒕) 𝑨𝑨 𝟎𝟎 𝒙𝒙(𝒕𝒕) 𝑩𝑩
� �=� �� � + � � 𝑢𝑢(𝑡𝑡)
𝒙𝒙̇ 𝒆𝒆 (𝒕𝒕) 𝑯𝑯𝑯𝑯 𝑨𝑨 − 𝑯𝑯𝑯𝑯 𝒙𝒙𝒆𝒆 (𝒕𝒕) 𝑩𝑩
24
La matriz de controlabilidad es:
𝟐𝟐 𝒏𝒏−𝟏𝟏
𝑸𝑸 = � 𝑩𝑩 𝑨𝑨𝑨𝑨 𝑨𝑨 𝑩𝑩 ⋯ 𝑨𝑨 𝑩𝑩�
𝑩𝑩 𝑨𝑨𝑨𝑨 𝑨𝑨𝟐𝟐 𝑩𝑩 ⋯ 𝑨𝑨𝒏𝒏−𝟏𝟏 𝑩𝑩
25
2. La evolución de la parte no controlable es:
𝑒𝑒(𝑡𝑡) = 𝑒𝑒 (𝐴𝐴−𝐻𝐻𝐻𝐻)(𝑡𝑡−𝑡𝑡0 ) 𝑒𝑒0
es decir, será cero si el error inicial es cero (mismo estado inicial real y
estimado), y si es distinto de cero, tenderá a cero si los valores propios de la
matriz A-HC tienen parte real negativa.
26
Las ecuaciones del sistema realimentado son:
𝒘𝒘(𝒕𝒕) = 𝑲𝑲𝒙𝒙𝒆𝒆 (𝒕𝒕)
𝑢𝑢(𝑡𝑡) = 𝑟𝑟(𝑡𝑡) + 𝒘𝒘(𝒕𝒕)
𝒙𝒙̇ (𝒕𝒕) = 𝑨𝑨𝑨𝑨(𝒕𝒕) + 𝑩𝑩�𝑟𝑟(𝑡𝑡) + 𝑲𝑲𝒙𝒙𝒆𝒆 (𝒕𝒕)� = 𝑨𝑨𝑨𝑨(𝒕𝒕) + 𝑩𝑩𝑩𝑩𝒙𝒙𝒆𝒆 (𝒕𝒕) + 𝑩𝑩𝑟𝑟(𝑡𝑡)
𝒙𝒙̇ 𝒆𝒆 = (𝑨𝑨 − 𝑯𝑯𝑯𝑯)𝒙𝒙𝒆𝒆 + 𝑩𝑩𝑩𝑩𝒙𝒙𝒆𝒆 (𝒕𝒕) + 𝑩𝑩𝑟𝑟(𝑡𝑡) + 𝑯𝑯𝑯𝑯𝑯𝑯(𝒕𝒕)
30
0 0 ⋯ 0 −𝑓𝑓0
⎡ ⎤
1 0 ⋯ 0 −𝑓𝑓1
⎢ ⎥
𝐹𝐹 = 𝐴𝐴 − 𝐻𝐻𝐻𝐻 = ⎢ ⋮ ⋮ ⋮ ⋮ ⋮ ⎥
⎢0 0 ⋯ ⋮ −𝑓𝑓𝑛𝑛−2 ⎥
⎣0 0 ⋯ 1 −𝑓𝑓𝑛𝑛−1 ⎦
0 0 ⋯ 0 −𝑎𝑎0 ℎ1
⎡1 0 ⋯ 0 −𝑎𝑎1 ⎤ ⎡ ℎ2 ⎤
⎢ ⎥ ⎢ ⎥
= ⎢⋮ ⋮ ⋮ ⋮ ⋮ ⎥ − ⎢ ⋮ ⎥ [0 0 ⋯ 0 1]
⎢0 0 ⋯ ⋮ −𝑎𝑎𝑛𝑛−2 ⎥ ⎢ℎ𝑛𝑛−1 ⎥
⎣0 0 ⋯ 1 −𝑎𝑎𝑛𝑛−1 ⎦ ⎣ ℎ𝑛𝑛 ⎦
0 0 ⋯ 0 −(𝑎𝑎0 + ℎ1 )
⎡ ⎤
⎢1 0 ⋯ 0 −(𝑎𝑎1 + ℎ2 ) ⎥
= ⎢⋮ ⋮ ⋮ ⋮ ⋮ ⎥
⎢0 0 ⋯ ⋮ −(𝑎𝑎𝑛𝑛−2 + ℎ𝑛𝑛−1 )⎥
⎣0 0 ⋯ 1 −(𝑎𝑎𝑛𝑛−1 + ℎ𝑛𝑛 ) ⎦
Conociendo los valores de fi se pueden calcular los valores de las hi de la forma
siguiente:
31
ℎ1 = −𝑎𝑎0 + 𝑓𝑓0
ℎ2 = −𝑎𝑎1 + 𝑓𝑓1
⋮
ℎ𝑛𝑛−1 = −𝑎𝑎𝑛𝑛−2 + 𝑓𝑓𝑛𝑛−2
ℎ𝑛𝑛 = −𝑎𝑎𝑛𝑛−1 + 𝑓𝑓𝑛𝑛−1
Si el sistema no está en forma canónica observable se puede calcular la matriz
de transformación para ponerlo en forma observable.
32