Diseño de estimadores#
Hasta ahora aprendimos a obtener la ley de control suponiendo conocido el vector de estados. En general en control no se mido de forma completa todos lo estados del sistema. Por lo tanto será necesario construir un sistema que nos permita estimar los estados de la planta que queremos controlar a partir de lsa variables que conocemos. En general las variables que conocemos son las salidas (mediciones) y las entradas que son las variables que no da nuestro controlador y que serán entradas de los actuadores de la planta.
Estimador de orden completo#
Con el modelo de la planta, suponiendo que es fiel a la realidad, uno podría pensar en darle las mismas entradas que tiene la planta y de obtener los estados del modelo directamente. Sin embargo esto choca con dos problemas:
se debe conocer las condiciones iniciales en todo momento, sino el sistema tardará lo que corresponda para según sus modos para obtener una estimación correcta.
cualquier error en el modelado pueda hacer divergir las estimaciones respecto al valor de los estados reales sin ningún control de las mismas.
Por estos problemas, es que se hace lo que mejor hacemos en control, REALIMENTAR.
La idea es utilizar lo que sabemos de la salida tanto del modelo como de la planta para obtener una estimación de los estados.
Llamando \(\mathbf {\hat x}\) a la estimación de \(\mathbf x\) lo que se propone es un estimador que siga la siguiente ecuaciones:
Definimos entonces error de estimación como:
Por lo tanto la dinámica del error de estimación resulta:
La ecuación característica del error de estimación entonces e:
Esta ecuación no esta diciendo que podemos elegir un \(\mathbf L\) de forma tal que la dinámica del error sea la que queramos.
Si se compara con la de la ley de control:
podemos ver ciertas similitudes o semejanzas.
Por ejemplo, si transponemos la ecuación característica del observador resulta:
De esta ecuación podemos ver que \(\mathbf L\) de forma análoga a como obtenemos \(\mathbf K\).
L=(acker(A.T,C.T)).T
Importante
De forma análoga a la ley de control, podemos decir que solo podremos tener una única \(L\) que no permite ubicar los polos de la dinámica del error de estimación si y solo si el sistema es observable
Consejo
Y el sistema es observable si y solo si el rango de la matriz de observabilidad \(\mathcal O\) es igual al orden \(n\) del sistema.
Consejo
A esto se lo conoce como dualidad entre los problemas de control y estimación.
Estimador de orden reducido#
La idea de este estimador es reducir el orden del mismo. Para esto lo que se busca es no estimar las variables que se conocen de antemano, es decir las mediciones.
Escribamos el sistema como:
La dinámica de las variables no medidas está dada por:
La ecuación de salida y de las variables de estado conocidas la podemos expresar como:
De esta manera podemos hacer un equivalente con el estimador de orden completo.
La primer ecuación la podemos comparar con la ecuación de la dinámica del estimador y la segunda ecuación la podemos comparar con la ecuación de salida, ambas del trabajo realizado para el estimador completo.
Haciendo esto tenemos que:
Sustituyendo en las ecuaciones del estimador completo, podemos obtener que las variables estimadas del estimador reducido tienen la siguiente dinámica:
Entonces definimos el error de estimación como:
y obtenemos la siguiente dinámica del error:
Finalmente:
y la ecuación característica resulta:
El problema que tiene el estimador es que depende de la derivada de \(y\): uno mide \(y\) y a partir de esta variable resuelve \(\dot y\), lo cual implica amplificar cualquier ruido presente en la medición:
Para poder obtener una ecuación del estimador sin la derivada de la medición, lo que se puede hacer es redefinir la variable de estado como:
Entonces la dinámica del este estimador resulta:
Para dejarlo todo en función de \(\mathbf{x}_c\):
Retomamos el ejemplo de péndulo#
Obtener el estimador completo para el péndulo. Ubicar los polos del error del estimador en \(10\omega_0\). Es decir 5 veces más rápido que los que ubicamos los polos de la ley de control.
w0=2
A=[[0,1],[-w0**2,0]]
B=[[0],[1]]
C=[1,0]
D=0
sys=ctrl.ss(A,B,C,D)
Cálculo del observador completo#
L=(ctrl.acker(sys.A.T,sys.C.T,[10*w0,10*w0])).T
L
array([[-40.],
[396.]])
Calculo del observador reducido#
n=sys.A.shape[0]
Aaa=sys.A[0:1,0:1]
Aab=sys.A[0,1:]
Aba=sys.A[1:,0:1]
Abb=sys.A[1:,1:]
Ba=sys.B[0:1]
Bb=sys.B[1:]
Lred=(ctrl.acker(Abb.T, Aab.T, [-10*w0])).T # notar que se tata de ubicar un solo polo
Lred
array([[20.]])
Estimador completo y ley de control#
Para obtener un compensador similar a los que teníamos en control clásico, debemos de alguna forma unir el estimador y la ley de control en un solo sistema. Para este sistema compensador, la entrada será la salida de la planta \(y(t)\) y la salida será la entrada de la planta \(u(t)\). Por ahora consideremos que no tenemos la entrada referencia (o lo que es lo mismo que la referencia es nula).
Recordemos la ecuación del estimador completo:
y la ecuación de la ley de control es:
Reemplazando la ecuación de la ley de control en la del estimador:
Y reagrupando tenemos:
Entonces, tenemos que las ecuaciones de nuestro sistema «compensador» sería:
Estas ecuaciones describen a un sistema controlador donde se estiman los estados con un estimador de orden completo y los polos de la planta se deciden con la ley de control. Más adelante se mostrará como se agregan las referencias a este sistema.
Estimador de orden reducido y ley de control#
Análogamente a lo hecho con el controlador de orden completo, tenmos que
Podemos ahora dividir la \(\mathbf K\) entre las partes que son mediciones y las que conocemos, entonces:
La ecuación de salida la podemos del controlador la podemos escribir de la siguiente manera entonces:
Reemplanzando en la ecuación del estimador anterior y reagrupando tenemos que:
Examinando las ecuaciones anteriores, podemos definir las ecuaciones que describen este compensador en espacio de estados como:
Por lo tanto las ecuaciones del sistema compensador son: