EKF y UKF: dos extensiones del filtro de Kalman para sistemas no lineales aplicadas al control de un péndulo invertido Alejandro Pascual 8 de mayo de 2006 Monografı́a para el curso Tratamiento Estadı́stico de Señales (2004). Docentes: Gabriel Dutra, Gabriel Perret y Alvaro Tuzman. Instituto de Ingenierı́a Eléctrica - Facultad de Ingenierı́a - UDELAR . Índice 1. Introducción 1 2. Estimación de estado óptima 2.1. Formulación del problema . . . . . . . 2.2. Filtro de Kalman . . . . . . . . . . . . 2.3. Filtro de Kalman extendido (EKF) . . 2.4. La transformación “unscented” . . . . 2.4.1. Ejemplo . . . . . . . . . . . . . 2.5. Filtro de Kalman “unscented” (UKF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 4 5 7 9 11 3. Aplicación 3.1. La planta a controlar . . . . . . . . . . . . . . . . 3.1.1. Dinámica de la planta en tiempo continuo 3.1.2. El objetivo de control . . . . . . . . . . . 3.1.3. Dinámica de la planta en tiempo discreto 3.2. Modelado . . . . . . . . . . . . . . . . . . . . . . 3.3. Algoritmo de control . . . . . . . . . . . . . . . . 3.4. Observador de estado . . . . . . . . . . . . . . . 3.5. Resultados de las simulaciones . . . . . . . . . . 3.5.1. Sintonización en lazo abierto . . . . . . . 3.5.2. Estimación de estado en lazo cerrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 14 15 16 17 19 22 23 24 26 4. Conclusiones 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Introducción El filtro de Kalman, aparecido a principios de la década de los sesenta, es de una importancia comparable a los trabajos realizados por Nyquist y Bode en 1 la década de los veinte y los de Wiener en los años treinta. El filtro de Kalman permite estimar en tiempo real el vector de estado de un sistema dinámico lineal a partir de medidas ruidosas indirectas que de él se van tomando. Estas estimaciones en tiempo real del estado del sistema, son valiosas en si mismas cuando el sistema opera en lazo abierto; pero considerando la posibilidad de operación en lazo cerrado, las mismas pueden ser utilizadas para sintetizar una acción de control adecuada que lleve el sistema al estado deseado. Esta última posibilidad es la que motiva nuestro interés en el filtro. En el contexto de la teorı́a de control lineal, el filtro de Kalman ocupa un lugar central como observador de estado óptimo y en este contexto está bien entendida su utilización. No obstante, cada vez con más frecuencia, se manejan modelos no-lineales en ámbitos de aplicación tan diversos como la ingenierı́a, biologı́a, ecologı́a y economı́a. El uso de estos modelos más complejos, se ha visto estimulado por el desarrollo tecnológico de la computación, que mediante el cálculo numérico ha facilitado el análisis de los mismos y la implementación de métodos de control también no-lineales. Resulta entonces natural buscar algún método de estimación de estado en tiempo real, que pueda aplicarse a sistemas no-lineales. En este trabajo se presentan dos extensiones del filtro de Kalman para sistemas no lineales: 1) el filtro de Kalman extendido (EKF: Extended Kalman Filter ), utilizado hasta hace poco como la opción estándar en aplicaciones nolineales y 2) el filtro de Kalman “unscented” 1 (UKF: Unscented Kalman Filter ), propuesto recientemente por Julier y Uhlmann [4] y luego perfeccionado por Wan y van der Merwe [8]. Estas dos extensiones del filtro de Kalman, se aplican luego como observadores de estado, en un problema clásico de control no-lineal conocido como “control del péndulo invertido” o “problema del escobillero”; que consiste en mantener un péndulo verticalmente, en su posición naturalmente inestable, aplicando, en cada instante, una fuerza horizontal apropiada a un carro deslizante sobre el que se encuentra montado el eje del péndulo. Utilizando una misma metodologı́a de control no-lineal, se comparan los desempeños de los dos observadores en su función de proveer estimaciones del vector de estado para la sı́ntesis de la señal de control. 2. Estimación de estado óptima En esta sección se plantea detalladamente el problema de estimación de estado, se revisa la formulación del filtro de Kalman para tiempo discreto y se introducen el EKF y el UKF. 2.1. Formulación del problema Matemáticamente, el problema a abordar es el siguiente. Se cuenta con un modelo de la planta en la forma de una representación en variables de estado en tiempo discreto: xk = F (xk−1 , uk−1 , vk−1 ) (1) 1 “Unscented” podrı́a traducirse literalmente como inoloro, aunque hemos preferido mantener el nombre original en inglés porque desconocemos los motivos que los autores tuvieron para bautizar de esta forma al nuevo filtro. 2 yk = G (xk , nk ) (2) donde los subı́ndices hacen referencia a los instantes de tiempo discreto, la variable aleatoria xk representa el estado no accesible del sistema, uk es la entrada impuesta al sistema (supuesta conocida) e yk es la salida observada. Los procesos estocásticos {vk }k∈N y {nk }k∈N , son habitualmente referidos como ruido de proceso y ruido de medida respectivamente. El ruido de proceso afecta la dinámica del modelo y representa los aspectos no modelados de la dinámica de la planta real; mientras que el ruido de medida influye sobre la salida accesible del modelo y representa la incertidumbre propia del proceso de medida de la salida de la planta real. Tanto el ruido de proceso como el ruido de medida pueden además representar perturbaciones corrientes a las que está sometida la planta. Se asume que la condición inicial x0 desconocida, vk y nk son mutuamente no correlacionadas: Px0 ,vk , 2 Cov (x0 , vk ) = 0 ∀k ≥ 0 (3) Px0 ,nk , Cov (x0 , nk ) = 0 Pvk ,nj , Cov (vk , nj ) = 0 ∀k ≥ 0 (4) ∀k, j ≥ 0 (5) y que {vk } y {nk } son ruido blanco: Pvk ,vj , Cov (vk , vj ) = δ (k − j) Q ∀k, j ≥ 0 (6) Pnk ,nj , Cov (nk , nj ) = δ (k − j) R (7) ∀k, j ≥ 0 donde δ (k) es la delta de Kronecker 3 y Q y R son las matrices de covarianza del ruido de proceso y el ruido de medida, respectivamente. Bajo estas hipótesis el estado xk y la salida yk son variables aleatorias. Dadas las estadı́sticas de los procesos estocásticos {vk } y {nk }, la estadı́stica de la condición inicial desconocida x0 , la sucesión de entrada conocida u0:k = {u0 , . . . , uk } y las observaciones y1:k = {y1 , . . . , yk }; el objetivo es estimar, en cada instante k ≥ 1, el estado xk . La estimación xk|k de xk es óptima en el sentido “mı́nima media cuadrática del error” (MMSE: minimum mean-squared error ) si es aquella que minimiza h¡ i ¢T ¡ ¢ J = E xk − xk|k xk − xk|k | y1:k . (8) La estimación óptima viene dada por la esperanza condicional (Lewis [5]): Z M M SE xk|k = E [xk | y1:k ] = xk p (xk | y1:k ) dxk . (9) La evaluación de (9) requiere del conocimiento de la densidad de probabilidad a posteriori p (xk | y1:k ) 4 . Dada esta densidad, es posible determinar no sólo el estimador MMSE que minimiza (8), sino cualquier otro estimador óptimo en el sentido de algún criterio de performance. El problema de determinar esta h i , E (x − E [x]) (y − E [y])T (matriz de covarianza). 3 δ (k) = 1 si k = 0 y δ (k) = 0 si k 6= 0. 4 No se hace explı́cita la dependencia con la entrada {u } porque se asume que es una señal k conocida y no un proceso estocástico. 2 Cov (x, y) 3 densidad es referido como enfoque Bayesiano y la misma puede ser evaluada recursivamente mediante (Lewis [5]): p (xk | y1:k ) = donde p (xk | y1:k−1 ) p (yk | xk ) p (yk | y1:k−1 ) (10) Z p (xk | y1:k−1 ) = p (xk | xk−1 ) p (xk−1 | y1:k−1 ) dxk−1 y la constante de normalización p (yk | y1:k−1 ) está dada por: Z p (yk | y1:k−1 ) = p (xk | y1:k−1 ) p (yk | xk ) dxk . (11) (12) Esta recursión permite calcular la densidad de probabilidad del estado actual en función de la densidad previa y la medida más reciente. p (xk | xk−1 ) se determina a partir de p (vk ), la ecuación de transición de estado (1) y la entrada uk que es conocida. En forma similar, p (yk | xk ) se determina a partir de p (nk ) y la ecuación de medida (2). En principio, el conocimiento de estas densidades y p (x0 | y1:0 ) , p (x0 ) determina p (xk | y1:k ) para todo k ≥ 1. Desafortunadamente, para la mayorı́a de los modelos que surgen en la práctica, no es posible encontrar una solución cerrada a esta recursión. El único abordaje práctico existente, de tipo completamente general, consiste en aplicar técnicas de muestreo Monte-Carlo, que esencialmente aproximan las integrales de las ecuaciones (11) y (12) por sumas que convergen a la solución en el lı́mite, con considerable costo de procesamiento numérico. Sólo introduciendo fuertes hipótesis, el problema se vuelve tratable analı́ticamente. El célebre filtro de Kalman que se presenta a continuación, es un ejemplo de ello. 2.2. Filtro de Kalman La esperanza condicional (9) es en general muy difı́cil de calcular porque implica conocer p (xk | y1:k ), pero en algunos casos puede calcularse analı́ticamente en forma recursiva. Considérese el caso en que el modelo (1),(2) es lineal: xk = Axk−1 + uk−1 + vk−1 (13) yk = Cxk + nk (14) y las densidades de distribución son gaussianas: ¡ ¢ p (xk−1 | y1:k−1 ) = N xk−1|k−1 , Pk−1|k−1 (15) p (vk−1 ) = N (0, Q) (16) p (nk ) = N (0, R) (17) donde N (x̄, Px ) es una densidad de distribución gaussiana caracterizada por el vector esperanza x̄ y la matriz de covarianza Px . En estas condiciones se tiene que, ¢ ¡ (18) p (xk | y1:k−1 ) = N xk|k−1 , Pk|k−1 4 ¡ ¢ p (xk | y1:k ) = N xk|k , Pk|k (19) xk|k−1 = Axk−1|k−1 + uk−1 = E [xk | y1:k−1 ] (20) Pk|k−1 = APk−1|k−1 AT + Q = Cov (xk , xk | y1:k−1 ) ¡ ¢ yk − yk|k−1 = E [xk | y1:k ] xk|k = xk|k−1 + Pxk yk Py−1 k yk (21) donde Pk|k = Pk|k−1 − PxTk yk Pxk yk Py−1 k yk = Cov (xk , xk | y1:k ) (22) (23) con yk|k−1 = Cxk|k−1 = E [yk | y1:k−1 ] (24) Pxk yk = Pk|k−1 C T = Cov (xk , yk | y1:k−1 ) (25) Pyk yk = CPk|k−1 C T + R = Cov (yk , yk | y1:k−1 ) . (26) Como p (xk−1 | y1:k−1 ), p (vk−1 ) y p (nk ) son densidades de distribuciones gaussianas y como el modelo (modelo dinámico (13) y modelo de medida (14)) es lineal; la densidad de distribución p (xk | y1:k ) también es gaussiana y por lo tanto queda completamente caracterizada por el vector esperanza xk|k y la matriz de covarianza Pk|k . Si la condición inicial desconocida tiene ¡ ¢ una densidad de distribución gaussiana: p (x0 | y1:0 ) , p (x0 ) = N x0|0 , P0|0 y para todo k ≥ 0 los ruidos (de proceso y de medida) también son gaussianos: p (vk ) = N (0, Q), p (nk ) = N (0, R); entonces es posible aplicar la recursión anterior, conocida como filtro de Kalman, para calcular en forma exacta los parámetros xk|k y Pk|k que caracterizan a la densidad de distribución gaussiana p (xk | y1:k ) con la cual se puede determinar cualquier estimador óptimo según algún criterio de performance. En particular M SE el estimador MMSE que minimiza (8), es simplemente xM = E [xk | y1:k ] = k|k xk|k . Cuando p (x0 ), p (vk ) o p (nk ) no son gaussianas, el filtro de Kalman es el que minimiza (8) entre todos los estimadores lineales (Lewis [5]). Por supuesto, podrı́an existir estimadores no-lineales que lograran reducir aún más (8). Cada paso de recursión del filtro de Kalman se compone de dos etapas: 1) predicción (o “actualización en el tiempo”, time update) y 2) corrección (o “actualización de medida”, measurement update). Las expresiones (20) y (21) constituyen la etapa de predicción ya que con ellas se calculan las estimaciones a priori : xk|k−1 y Pk|k−1 propagando xk−1|k−1 y Pk−1|k−1 a través del modelo. Las expresiones (22) y (23) constituyen la etapa de corrección ya que con ellas se corrigen las estimaciones a priori xk|k−1 y Pk|k−1 para generar las estimaciones a posteriori xk|k y Pk|k . El producto Pxk yk Py−1 en (22) se conoce como ganancia k yk de Kalman K, ya que pondera el impacto de la innovación yk −¢yk|k−1 en la ¡ estimación a posteriori del estado: xk|k = xk|k−1 + K yk − yk|k−1 . 2.3. Filtro de Kalman extendido (EKF) El filtro de Kalman extendido (EKF: extended Kalman filter ) consiste en una variación del filtro de Kalman para abordar el problema de estimación del estado cuando el modelo es posiblemente no-lineal: xk = F (xk−1 , uk−1 , vk−1 ) 5 (27) yk = G (xk , nk ) . Al igual que para el filtro de Kalman se asume que: ¡ ¢ p (xk−1 | y1:k−1 ) = N xk−1|k−1 , Pk−1|k−1 (28) (29) p (vk−1 ) = N (0, Q) (30) p (nk ) = N (0, R) (31) pero ahora en el instante siguiente k, las densidades de distribución p (xk | y1:k−1 ) y p (xk | y1:k ) no son necesariamente gaussianas ya que el modelo no es necesariamente lineal. No obstante, se aproximan estas densidades de distribución por densidades gaussianas: ¡ ¢ p (xk | y1:k−1 ) ≈ N xk|k−1 , Pk|k−1 (32) ¡ ¢ p (xk | y1:k ) ≈ N xk|k , Pk|k (33) donde: ¡ ¢ xk|k−1 = F xk−1|k−1 , uk−1 , 0 ≈ E [xk | y1:k−1 ] Pk|k−1 = Ak−1 Pk−1|k−1 ATk−1 + Γk−1 QΓTk−1 ≈ Cov (xk , xk | y1:k−1 ) ¡ ¢ xk|k = xk|k−1 + Pxk yk Py−1 yk − yk|k−1 ≈ E [xk | y1:k ] k yk con (34) (35) (36) Pk|k = Pk|k−1 − Pxk yk Py−1 PxTk yk ≈ Cov (xk , xk | y1:k ) k yk (37) ¡ ¢ yk|k−1 = G xk|k−1 , 0 ≈ E [yk | y1:k−1 ] (38) Pxk yk = Pk|k−1 CkT ≈ Cov (xk , yk | y1:k−1 ) (39) Λk RΛTk (40) Pyk yk = Ck Pk|k−1 CkT + ≈ Cov (yk , yk | y1:k−1 ) y ¢ ∂F ¡ xk−1|k−1 , uk−1 , 0 (41) ∂x ¢ ∂F ¡ Γk−1 = xk−1|k−1 , uk−1 , 0 (42) ∂v ¢ ∂G ¡ Ck = xk|k−1 , 0 (43) ∂x ¢ ∂G ¡ xk|k−1 , 0 . (44) Λk = ∂n Obsérvese que estas expresiones son muy similares a las del filtro de Kalman, salvo por las aproximaciones que se indican explı́citamente. Estas aproximaciones serı́an exactas sólo si F y G fueran lineales. En realidad, como el algoritmo es recursivo, el EKF aproxima la distribución de probabilidad real del estado xk , en cada instante k, por una distribución gaussiana y modifica el filtro de Kalman, de forma tal que: Ak−1 = el primer momento de la distribución (supuesta gaussiana), se propaga a través del modelo no-lineal, el segundo momento de la distribución (supuesta gaussiana), se propaga a través de la versión linealizada del modelo. 6 El EKF es entonces una forma de obtener aproximaciones “de primer orden” a los términos óptimos. Cuando el modelo es severamente no lineal, estas aproximaciones pueden pueden generar esperanzas y covarianzas muy distintas a las esperanzas y covarianzas reales producto de la transformación de la variable aleatoria a través del modelo no lineal. Estas discrepancias, pueden conducir a un desempeño muy pobre del filtro o incluso a su divergencia. Otro inconveniente del EKF es que requiere de las matrices jacobianas (41) a (44). El cálculo de estas matrices no es trivial en la mayorı́a de las aplicaciones, por lo que es muy factible cometer errores de cálculo que luego son difı́ciles de detectar. Además, el requerimiento de estas matrices complica la implementación genérica del filtro (no restringida a una aplicación particular). 2.4. La transformación “unscented” La transformación “unscented” (UT: unscented transformation) es un método propuesto por Julier y Uhlmann [4] y luego perfeccionado por Wan y van der Merwe [8] para calcular los primeros momentos de la densidad de distribución de probabilidad de una variable aleatoria y = f (x) que resulta de aplicar una transformación no-lineal f a una variable aleatoria x de estadı́stica conocida. El método se basa en la siguiente idea intuitiva: “Resulta más fácil aproximar una distribución gaussiana que aproximar una transformación no-lineal arbitraria.” J. K. Uhlmann [7]. Un conjunto de puntos (puntos sigma, sigma points) se eligen de forma tal que la media y la covarianza del conjunto de puntos coincida con la esperanza y covarianza de la variable aleatoria x. Luego, la transformación no-lineal f se aplica a cada punto sigma, para generar una nube de puntos transformados. De la estadı́stica de los puntos transformados, se estima la esperanza y covarianza de la variable aleatoria y = f (x). Si bien el método es similar a los métodos de muestreo Monte Carlo, existe una diferencia fundamental que es que las muestras no se toman al azar, sino de acuerdo a un algoritmo determinista. De esta forma se logra capturar información de alto orden de la distribución de probabilidad, tomando sólo un número pequeño de puntos. Supóngase que la variable aleatoria vectorial x, de dimensión L, tiene esperanza E [x] = x̄ (vector columna de L componentes) y covarianza Cov (x, x) = Px (matriz L × L). Para calcular (aproximadamente) la esperanza E [y] = ȳ y la covarianza Cov (y, y) = Py de la variable aleatoria y = f (x) se comienza construyendo una matriz X de 2L + 1 vectores columna Xi de acuerdo con lo siguiente: X0 = x̄ ³p (45) ´ Xi = x̄ + (L + λ) Px ³p ´ Xi = x̄ − (L + λ) Px i−L i i = 1, . . . , L i = L + 1, . . . , 2L (46) (47) donde λ = α2 (L + κ) − L es un parámetro de escala. La constante α determina la dispersion de los puntos sigma alrededor de x̄ y habitualmente se elige igual a una pequeña constante positiva (por ejemplo 1 × 10−4 ≤ α ≤ 1). La constante κ es un parámetro de escala secundario que habitualmente se toma igual a 0 o a 3 − L (ver [3] por más detalles) y β es usada para incorporar el conocimiento 7 que se tenga de antemano acerca de la distribución de x´ (por ejemplo, para dis³p tribuciones gaussiana, β = 2 es óptimo). (L + λ) Px es la i-ésima columna i de la matriz raı́z cuadrada 5 de (L + λ) Px . Es fácil verificar que los puntos sigma capturan la esperanza y covarianza de x, es decir: 2L X (m) (U T ) x̄ , Wi Xi = x̄ (48) i=0 Px (U T ) , 2L X (c) ³ Wi Xi − x̄(U T ) ´³ Xi − x̄(U T ) ´T = Px (49) i=0 donde: (m) W0 (c) W0 (m) Wi = λ L+λ (50) λ + 1 − α2 + β L+λ 1 i = 1, . . . , 2L . = 2 (L + λ) = (c) = Wi (51) (52) Luego, los puntos sigma son propagados a través de la transformación nolineal: Yi = f (Xi ) i = 0, . . . , 2L (53) y la esperanza y la covarianza de y se aproxima por las sumas ponderadas: ȳ ≈ ȳ (U T ) = 2L X (m) Wi Yi (54) i=0 Py ≈ Py (U T ) = 2L X (c) Wi ³ Yi − ȳ (U T ) ´³ Yi − ȳ (U T ) ´T (55) i=0 (m) (c) con los pesos Wi y Wi definidos igual que antes. Este método genera estimaciones de ȳ y Py correctas hasta el tercer orden de la esperanza y covarianza del desarrollo multivariable de Taylor de la función f (supuesta analı́tica en todo valor posible de x) en torno a x̄, cuando la distribución de x es simétrica 6 (gaussiana o student-T por ejemplo). Para distribuciones no simétricas, genera estimaciones correctas hasta el segundo orden, dependiendo la exactitud de los momentos de tercer y mayor orden, de la elección de los parámetros α y β (Wan & van der Merwe [8]). √ A es simétrica, R = A es cualquier matriz que verifique RRT = A. La descomposición de Cholesky consiste en descomponer la matriz A en la forma A = U T U siendo U una matriz √ triangular superior; ası́ que R = U T es una forma numéricamente eficiente de calcular R = A. 6 Si una distribución es simétrica, entonces se puede verificar que sus momentos impares son nulos. 5 Si 8 2.4.1. Ejemplo Julier y Uhlmann [4] presentan un ejemplo que reproducimos aquı́ con nuestros propios resultados, a los efectos de clarificar el método de la transformación “unscented”. Considérse un robot móvil que detecta obstáculos en su ambiente usando un sonar. El sonar brinda información en coordenadas polares (distancia ρ y ángulo · ϕ) ¸de un sistema de referencia solidario a él. Las coordenadas · ¸ polares ρ x X= deben ser convertidas a coordenadas cartesianas Y = antes de ϕ y ser procesadas por el algoritmo de control del robot. El sonar ha sido optimizado para operar con una razonablemente buena precisión en la medida de distancias (σρ = 2 cm de desviación estándar), a cambio de una mala precisión en la medida angular (σϕ = 15 ◦ de desviación estándar). Se mostrará que en esta aplicación, no resulta apropiado asumir linealidad local de la transformación de coordenadas Y = f (X) tal que: · µ· ¸ ¸¶ · ¸ x ρ ρ cos ϕ =f = (56) y ϕ ρ sin ϕ µ· ¸¶ · ¸ ρ cos ϕ −ρ sin ϕ cuya matriz jacobiana es: Jf = . ϕ sin ϕ ρ cos ϕ Supóngase que real de un punto donde se encuentra · ¸ la · ubicación ¸ · ¸ µ· ¸¶ un · obstáculo ¸ ρ0 1 x0 ρ0 0 es X0 = = π , entonces Y0 = =f = . Para ϕ0 y0 ϕ0 1 2 apreciar los errores que pueden ser introducidos por linealización, en la estima· ¸ x ción de los dos primeros momentos de la variable vectorial aleatoria Y = y · ¸ ρ resultante de la transformación de X = a través de la transformación ϕ (56); se estiman estos momentos mediante tres métodos distintos: Muestreo Monte Carlo. Se genera un conjunto de N = 106 puntos aleatorios {Xi : i = 1, . . . , N } instanciados · de ¸una densidad de distribución ρ0 gaussiana con media E [X] = X0 = y covarianza Cov (X, X) = ϕ0 · 2 ¸ σρ 0 PX = . Luego, se transforman los puntos Xi para generar la 0 σϕ2 nube de puntos transformados {Yi = f (Xi ) : i = 1, . . . , N } y se estiman los momentos: N 1 X E [Y ] ≈ Ȳ (M C) , Xi , (57) N i=1 (M C) Cov (Y, Y ) ≈ PY , N ´T ´³ 1 X³ . Yi − Ȳ (M C) Yi − Ȳ (M C) N i=1 (58) Transformación “unscented”. Se aplica la UT tal como se explicó antes. Se genera un conjunto de puntos sigma (en este caso cinco puntos) según (45) a (47); se transforman a través del cambio de coordenadas y se estiman (U T ) los momentos E [Y ] ≈ Ȳ (U T ) y Cov (Y, Y ) ≈ PY de acuerdo con (54) 9 ϕ (rad) y (cm) ρ (cm) x (cm) Figura 1: Transformación de coordenadas polares a coordenadas cartesianas. A la izquierda: plano (ρ, ϕ). A la derecha: plano (x, y). En ambos casos los puntos del muestreo Monte Carlo se señalan con “+” y los puntos sigma con “♣”. y (55). Para este ejemplo, se eligieron los siguientes valores para los tres parámetros de la trasformación UT: α = 1, κ = 0 y β = 2. Linealización tal cual se aplica en el contexto del EKF: E [Y ] ≈ Ȳ (LIN ) = Y0 = f (X0 ) , Cov (Y, Y ) ≈ Py(LIN ) = Jf (X0 ) PX (Jf (X0 )) (59) T . (60) En la figura 1 se reproducen los puntos del muestreo Monte Carlo junto con los cinco puntos sigma en el plano (ρ, ϕ) (a la izquierda) y los mismos puntos transformados al plano (x, y) (a la derecha). En la figura 2 se representa el plano (x, y) con las estimaciones de Ȳ (esperanza E [Y ]), indicadas por puntos y los contornos “1 σ” 7 que se desprenden de las estimaciones de PY (matriz de covarianza Cov (Y, Y )); para cada uno de los tres métodos. Si consideramos que las estimaciones Ȳ (M C) , PYM C por muestreo Monte Carlo son muy buenas estimaciones de los momentos desconocidos E [Y ] y Cov (Y, Y ), lo cual es razonable por la enorme cantidad de puntos tomados para el muestreo; entonces podemos concluir que la estimación de la estadı́stica de Y por linealización es claramente sesgada e inconsistente. Sesgada porque (LIN ) Ȳ (LIN ) 6= E [Y ] e inconsistente porque PY < Cov (Y, Y ) 8 (se subestima la incertidumbre real), lo cual se manifiesta en que la elipse “1 σ” no es suficientemente ancha en la dirección radial. En cambio, la transformación “unscented” genera una estimación Ȳ (U T ) mucho más próxima a E [Y ] y además consistente (al menos para este caso en que la distribución de X es gaussiana). Dadas estas propiedades de estimación superiores de la transformación “unscented” sobre la linealización tradicionalmente empleada en el contexto del filtro de Kalman extendido y considerando la simplicidad con que se implementa (sin requerir el cálculo de la matriz jacobiana de la transformación); la UT se ha vuelto una alternativa atractiva a la linealización, para aplicaciones de filtrado no lineal. n o T −1 contorno “1 σ” es lugar geométrico de los puntos y : Y − Ȳ PY Y − Ȳ = 1 . 8 A < B cuando A y B son matrices significa que B − A es definida positiva. 7 El 10 y (cm) 1.03 1.01 ♦ 0.99 ◊+ 0.97 0.95 0.93 0.91 -0.3 + ♦MC ◊LIN MC LIN UT UT -0.2 -0.1 0.0 0.1 0.2 0.3 x (cm) Figura 2: Medias (“+”, “¨” y “♦”) y contornos “1 σ” estimados para la vaT riable aleatoria [x, y] resultante de la transformación de la variable aleatoria T [ρ, φ] a través del pasaje de coordenadas polares a cartesianas. En la figura se utilizan las siguientes abreviaciones para indicar el método empleado para estimar las medias y matrices de covarianza: “MC”: muestreo Monte Carlo, “LIN”: linealización de la transformación y “UT”: transformación unscented. 2.5. Filtro de Kalman “unscented” (UKF) El filtro de Kalman “unscented” (UKF: Unscented Kalman Filter ) se puede considerar el resultado de incorporar la UT al EKF para mejorar las aproximaciones que se hacen de los dos primeros momentos de una variable aleatoria que resulta de propagar otra variable aleatoria (supuesta gaussiana) a través de una transformación no lineal. Al igual que antes en la presentación del EKF, el modelo se asume de la forma: xk = F (xk−1 , uk−1 , vk−1 ) (61) yk = G (xk , nk ) . (62) ¢ ¡ p (xk−1 | y1:k−1 ) = N xk−1|k−1 , Pk−1|k−1 (63) p (vk−1 ) = N (0, Q) (64) p (nk ) = N (0, R) . (65) y se supone que: Como el modelo no es necesariamente lineal, en el instate siguiente k, las densidades de distribución p (xk | y1:k−1 ) y p (xk | y1:k ) no son necesariamente gaussianas. No obstante, al igual que en el EKF, se aproximan estas densidades de distribución por densidades gaussianas: ¢ ¡ (66) p (xk | y1:k−1 ) ≈ N xk|k−1 , Pk|k−1 11 ¡ ¢ p (xk | y1:k ) ≈ N xk|k , Pk|k (67) donde ahora el cálculo de xk|k−1 , Pk|k−1 , xk|k y Pk|k implica propagar puntos sigma a través del modelo como se explica a continuación. Resulta conveniente definir una nueva variable aleatoria que se llama “vector de estado aumentado” de dimensión L, que incluye el ruido de proceso y el ruido de medida: xk−1 xak−1 = vk−1 (68) nk de esperanza: x̄ak−1 y covarianza: xk−1|k−1 , 0 = 0 a Pk−1 Pk−1|k−1 0 = 0 0 Q 0 (69) 0 0 . R (70) Para esta nueva variable aleatoria se genera un conjunto de puntos sigma x Xi,k−1 a v i = 1, . . . , 2L + 1 = Xi,k−1 (71) Xi,k−1 n Xi,k tal que: a X0,k−1 = x̄ak−1 ³q ´ a a Xi,k−1 = x̄ak−1 + i = 1, . . . , L (L + λ) Pk−1 i ³q ´ a a Xi,k−1 = x̄ak−1 − (L + λ) Pk−1 i = L + 1, . . . , 2L ; (72) (73) (74) i−L donde λ se define igual que en 2.4. Propagando estos puntos sigma (o más precisamente algunas de sus componentes) a través de F y G y utilizando las sumas ponderadas (54) y (55), se calculan: xk|k−1 = 2L X (m) Wi x Xi,k|k−1 ≈ E [xk | y1:k−1 ] (75) i=0 Pk|k−1 = 2L X (c) Wi ³ x Xi,k|k−1 − xk|k−1 ´³ x Xi,k|k−1 − xk|k−1 ´T ≈ i=0 ≈ Cov (xk , xk | y1:k−1 ) donde y (76) ¡ x ¢ x v Xi,k|k−1 = F Xi,k−1 , uk−1 , Xi,k−1 (77) ¡ ¢ xk|k = xk|k−1 + Pxk yk Py−1 yk − yk|k−1 ≈ E [xk | y1:k ] k yk (78) Pk|k = Pk|k−1 − Pxk yk Py−1 PxTk yk ≈ Cov (xk , xk | y1:k ) k yk (79) 12 donde yk|k−1 = 2L X (m) Wi Yi,k|k−1 ≈ E [yk | y1:k−1 ] (80) i=0 ´ ³ x n Yi,k|k−1 = G Xi,k|k−1 , Xi,k Pxk yk = 2L X (c) Wi ³ x Xi,k|k−1 − xk|k−1 ´¡ Yi,k|k−1 − yk|k−1 (81) ¢T ≈ i=0 ≈ Cov (xk , yk | y1:k−1 ) P yk yk = 2L X (c) Wi (82) ¢T ¢¡ ¡ Yi,k|k−1 − yk|k−1 Yi,k|k−1 − yk|k−1 ≈ i=0 ≈ Cov (yk , yk | y1:k−1 ) . (83) Al igual que el EKF, como el UKF es recursivo, en realidad se aproxima la distribución de probabilidad real del estado xk , en cada instante k, por una distribución gaussiana. Como el UKF no requiere del cálculo de matrices jacobianas, presenta una complejidad de cálculo numérico comparable a la del EKF 9 y además genera estimaciones de E [xk | y1:k ] de mayor orden que el EKF; se ha vuelto una herramienta corriente para abordar el problema de estimación de estado (en tiempo real) de un sistema dinámico no-lineal. 3. Aplicación En esta sección ejemplificamos la aplicación de las dos extensiones del filtro de Kalman antes presentadas, en el contexto de la teorı́a de control no-lineal. Se toma como caso de estudio un problema de control clásico que se ha vuelto un problema tipo sobre el cual ensayar y comparar nuevos métodos de control. Este problema que se describe más adelante y se conoce como “control de un péndulo invertido”, tiene sus orı́genes históricos en el problema de control de la propulsión de un cohete. 3.1. La planta a controlar La planta a controlar se representa, en forma simplificada, en la figura 3. Consiste en un péndulo invertido de masa m montado sobre un carro de masa M que desliza sobre un riel horizontal y sobre el que un motor (no representado en la figura) aplica una fuerza F mediante una cinta de transmisión tensa (tampoco representada en la figura). El péndulo tiene un momento de inercia I respecto a un eje perpendicular al plano de la figura que pasa por su centro de masa. El 9 El UKF requiere O(L3 ) operaciones por paso, siendo L la dimensión del vector de estado aumentado; mientras que el EKF requiere O(N 3 ) operaciones por paso, siendo N la dimensión del vector de estado. Cuando los ruidos de proceso y medida son aditivos, es posible posible formular el UKF de forma tal que requiera sólo O(N 3 ) operaciones por paso. En este caso particular pero corriente, los filtros presentan el mismo orden de operaciones necesarias por paso. 13 m, I, L θ z b F M g fr (ż) Figura 3: Representación de la planta fı́sica. centro de masa del péndulo se encuentra a una distancia L de la articulación cilı́ndrica que lo vincula con el carro. El péndulo y el carro sólo se pueden mover en el plano de la figura. Con las variables θ y z se describen respectivamente: el apartamiento angular del péndulo con respecto a la dirección vertical y el apartamiento lineal horizontal del carro con respecto un punto de referencia fijo. La aceleración gravitatoria se supone constante y se denota g. Se asume que la fuerza de rozamiento horizontal que actúa sobre el carro sólo depende de la velocidad ż del carro y que es de la forma à à µ ¶ !! δ |ż| fr (ż) = µk + (µs − µk ) exp − tanh (σ ż) + ν ż , (84) vs donde µk , µs , vs , δ, ν y σ son constantes. Este modelo de fricción, que combina rozamiento estático, rozamiento dinámico y rozamiento viscoso, es una adaptación de un modelo propuesto por Bo y Pavelescu citado en [2]. La adaptación consiste en utilizar la función tanh(σ·) (con σ À 1), en vez de la función sign(·) de la propuesta original. Mediante esta regularización de la función signo se remueve la discontinuidad en ż = 0. Esto permite estar en condiciones de aplicar técnicas de integración numérica de ecuaciones diferenciales ordinarias sencillas, como el método Runge-Kutta que se utiliza más adelante. En la figura 4 se representa gráficamente la función (84) para el juego de parámetros elegido para definir el rozamiento que actúa horizontalmente sobre el carro. Estos parámetros junto a los restantes parámetros de la planta se resumen más adelante en el cuadro 2. Para el rozamiento que actúa en la articulación cilı́ndrica, se asume un modelo viscoso sencillo. Más precisamente, el torque por rozamiento que, en la articulación cilı́ndrica, se ejerce sobre el péndulo, se asume que es de la forma bθ̇ con b constante. 3.1.1. Dinámica de la planta en tiempo continuo Bajo las hipótesis recién expuestas, la dinámica de la planta se puede expresar matemáticamente mediante una representación en variables de estado, 14 fr (N ) 1.0 0.8 0.6 0.4 0.2 0.0 -0.2 -0.4 -0.6 -0.8 -1.0 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 ż (m/s) Figura 4: Modelo de fricción. no-lineal y en tiempo continuo: dx = fplanta (x, u) = dt = g L L x2 1+ M g 1 2 m (1+ M m ) sin x1 −x2 sin x1 cos x1 − L mg (u−fr (x4 )) cos x1 − mL2 bx2 I M 2x −cos ) (1+ m )(1+ mL 1 2 x4 g −L mL2 I+mL2 g sin x1 cos x1 +x22 sin x1 + L M m 1 1 mg (u−fr (x4 ))+ I+mL2 mL2 +1− I+mL2 cos2 x1 bx2 cos x1 (85) donde x1 , θ, x2 , θ̇, x3 , z, x4 , ż son las componentes del vector de estado T x , [x1 x2 x3 x4 ] y donde u , F es la entrada. 3.1.2. El objetivo de control El objetivo de control consiste en lograr que (asintóticamente) el péndulo se mantenga en su posición “invertida” x1 ≈ 0, sin apartar demasiado el carro de una posición de referencia fija x3 ≈ 0. Se supone que en los instantes 0, T, 2T, . . . , kT, . . . con k ∈ N, se pueden tomar medidas ruidosas: · ¸ · ¸ y1,k x1,k yk = = G (xk , nk ) = + nk (86) y2,k x3,k T T donde xk = [x1,k , x2,k , x3,k , x4,k ] = [x1 (kT ) , x2 (kT ) , x3 (kT ) , x4 (kT )] , T T yk = [y1,k y2,k ] = [x1 (kT ) , x3 (kT )] y donde se asume que el proceso estocástico {nk }k∈N es ruido blanco gaussiano de media nula: Cov (nk , nj ) = δ (k − j) R p (nk ) = N (0, R) 15 ∀k, j ≥ 0 (87) (88) Parámetro σθ σz Valor 18 2 Unidad ◦ mm Cuadro 1: Desviaciones estándar de las medidas. y matriz de covarianza: · R= σθ2 0 0 σz2 ¸ ; (89) siendo σθ y σz las desviaciones estándar que caracterizan la precisión de los instrumentos que se utilizan para medir las variables de estado accesibles: x1 = θ y x3 = z en los instantes de muestreo. En el cuadro 1 se indican los valores tomados para estos parámetros. Se intentó emular una situación práctica en la que se dispone de un instrumento relativamente bueno para medir la posición del carro, mientras que el instrumento con el que se cuenta para medir el apartamiento del péndulo respecto a la vertical, es bastante impreciso. A partir de las medidas (86) el controlador a diseñar en tiempo discreto, debe sintetizar una señal {uk }k∈N que se convierte a tiempo continuo mediante un mantenedor de orden cero (MOC), que impone u(t) = uk para t ∈ [kT, (k + 1) T ) a la planta de tiempo continuo. La señal {uk }k∈N que automáticamente sintetiza el controlador digital, debe ser tal que para k → +∞ se alcance el objetivo de control. 3.1.3. Dinámica de la planta en tiempo discreto A los efectos de simular la dinámica de la planta en una computadora digital, se discretiza (85) utilizando el método de integración numérica de Runge-Kutta de cuarto orden y paso de integración fijo h. Resultará conveniente elegir el paso de integración h igual a un submúltiplo del perı́odo de muestreo T , es decir T = Hh con H ∈ N+ 10 . El tiempo queda entonces discretizado en los instantes t = 0, h, 2h, . . . , jh, . . . con j ∈ N y la entrada u (t) (que es impuesta por el MOC, cuyo perı́odo de muestreo es T ) se mantiene constante e igual a uk en los intervalos [kT, (k + 1) T ) = [kT, kT + h) ∪ . . . [kT + (H − 1)h, kT + Hh) para k ∈ N. Esta discretización da origen a un sistema dinámico en tiempo discreto descrito por: xk = Fplanta (xk−1 , uk−1 ) = FRK ◦ · · · ◦ FRK (xk−1 , uk−1 ) = | {z } = H FRK (xk−1 , uk−1 ) ; H (90) donde: FRK (x, u) = x + 10 N+ k1 (x, u) k2 (x, u) k3 (x, u) k4 (x, u) + + + ; 6 3 3 6 = N \ {0} es el conjunto de los números naturales positivos. 16 (91) Parámetro µs µk ν vs δ m M I L g b h H Valor 1,3 0,2 0, 3 0, 005 1 0, 09 2, 2 0, 003 0, 45 9, 8 0, 001 0, 0025 4 Unidad N N Ns m m s kg kg kg m2 m m s2 N ms s Cuadro 2: Parámetros. siendo: k1 (x, u) = hfplanta (x, ³ u) , ´ , u , k2 (x, u) = hfplanta x + k1 (x,u) 2 ³ ´ k2 (x,u) k3 (x, u) = hfplanta x + 2 , u , k4 (x, u) = hfplanta (x + k3 (x, u) , u) . (92) El sistema dinámico de tiempo discreto (90) aproxima (con H pasos de integración numérica) la transición del vector de estado x(t) del sistema dinámico de − tiempo continuo (85), cuando el tiempo avanza de t = (k − 1) T a t = (kT ) suponiendo que en este intervalo la entrada u(t) permanece constante igual a uk−1 debido al MOC. Este método aproximado para simular un sistema dinámico de tiempo continuo es aceptable si el paso de integración h se elige adecuadamente (suficientemente chico como para que el error de truncamiento sea despreciable y suficientemente grande como para que los errores de redondeo también sean despreciables). En este trabajo, se supone que (90) describe exactamente la dinámica de la planta a controlar. Esto es a los efectos de poder “experimentar” numéricamente con una planta, sin necesidad de construir un prototipo real. En el cuadro 2 se presentan los valores elegidos para cada uno de los parámetros del sistema dinámico de tiempo discreto, que de ahora en más, se considerará equivalente a la planta real. Los valores del cuadro 2 se eligieron arbitrariamente dentro de los rangos fı́sicamente plausibles para los parámetros; pero cuidando que el paso de integración h fuese órdenes de magnitud menor que la escala temporal en la que se aprecian variaciones significativas del vector de estado, cuando se simula la ¤T £ relajación de la planta desde la condición inicial xk = π4 , 0 , 0 , 0 . 3.2. Modelado En esta sub-sección se introduce un modelo de la planta descrita anteriormente. Como en cualquier proceso de diseño de un controlador automático ba- 17 m θ L z F g M Figura 5: Representación esquemática del modelo. sado en un modelo, la primer etapa consiste en el modelado de la planta, en la que se hacen ciertas simplificaciones de la realidad, en un compromiso entre realismo y tratabilidad matemática. En la figura 5, se reproduce un esquema del modelo. Se supone que la masa m del péndulo está concentrada en su centro de masa a una distancia L de la articulación cilı́ndrica que lo vincula con el carro de masa M , sobre el que se ejerce una fuerza horizontal F . Se desprecia entonces, el efecto de la inercia no nula del péndulo real. Se desprecian además todas las fricciones, tanto en el movimiento horizontal del carro, como en el pivoteo del péndulo. Bajo estas hipótesis, el modelo dinámico de la planta se puede formular como: x1 dx d x2 = f (x, u) = = dt dt x3 x4 x2 g g 1 2 M L (1+ m ) sin x1 −x2 sin x1 cos x1 − L mg u cos x1 M 2 m +sin x1 = (93) x4 g g 1 2 − sin x1 cos x1 +x2 sin x1 + L mg u L L M +sin2 x 1 m donde x1 = θ, x2 = θ̇, x3 = z, x4 = ż y u = F . Este modelo de tiempo continuo es discretizado mediante el método de integración numérica de Runge-Kutta de cuarto orden, en forma completamente análoga a como se procedió con el modelo de tiempo continuo de la planta y con el mismo paso de integración h. Es decir en, (90), (91) y (92) se sustituye fplanta por f y se aproxima entonces (93) por el modelo de tiempo discreto: xk = F 0 (xk−1 , uk−1 ) = FRK ◦ · · · ◦ FRK (xk−1 , uk−1 ) = {z } | = H FRK (xk−1 , uk−1 ) . H (94) Los parámetros del modelo se estiman en los valores que se resumen en el cuadro 3. 18 Parámetro m M L g h H Valor 0, 1 2 0, 5 9, 8 0, 0025 4 Unidad kg kg m m s2 s Cuadro 3: Parámetros del modelo. Obsérvese que los valores del cuadro 3 difieren un 10 % de los valores correspondientes en el cuadro cuadro 2 donde se resumen los parámetros de la planta “real”; excepto por el valor de la aceleración gravitatoria g, el paso de integración numérica h y la cantidad de pasos de integración por perı́odo de muestreo H. Esto pretende reproducir la situación práctica real, en la que los parámetros se determinan sólo aproximadamente. Las diferencias existentes entre la planta (90) y el modelo (94), originadas en las simplificaciones introducidas en el modelo (momento de inercia y fricciones despreciadas, ası́ como diferencias en los parámetros: m, M y L); hacen que el comportamiento dinámico de estos dos sistemas de tiempo discreto, sea obviamente distinto. A modo de ejemplo, en la figura 6 se reproduce la evolución temporal de las cuatro componentes del vector de estado del modelo y de la planta, cuando no se hace ninguna fuerza sobre el carro y se parte de la £ ¤T condición inicial π4 , 0 , 0 , 0 . Obsérvese el efecto del rozamiento en la articulación cilı́ndrica atenuando la amplitud de las oscilaciones de x1 y el efecto del rozamiento estático al que está sometido el carro, que llega a detenerlo completamente (x4 = 0) durante algunos intervalos de tiempo. Considerando que el modelo (94) es una descripción inexacta del comportamiento dinámico de la planta “real”, se agrega al mismo una componente estocástica o ruido de proceso, con la que se pretende compensar las carencias del modelado. Se asume que este ruido es aditivo. De esta forma, el modelo definitivo es: xk = F (xk−1 , uk−1 ) + vk ; (95) donde se asume que el proceso estocástico {vk }k∈N es ruido blanco gaussiano de media nula: Cov (vk , vj ) = δ (k − j) Q ∀k, j ≥ 0 (96) p (vk ) = N (0, Q) . (97) La matriz Q que caracteriza al ruido de proceso, se especifica más adelante y resultará de la sintonı́a manual del EKF utilizado como observador de estado de la planta. 3.3. Algoritmo de control Para alcanzar el objetivo de control, se utiliza el método de control no-lineal conocido como método de la ecuación de Riccati dependiente del estado para tiempo discreto (discrete-time SDRE: State Dependent Riccati Equation) [6]. 19 x1 (rad) 6 5 4 3 2 1 0 x2 ( rad s ) 9 7 5 3 1 -1 -3 -5 -7 -9 x3 (m) 0.17 0.15 0.13 0.11 0.09 0.07 0.05 0.03 0.01 -0.01 x4 ( m s ) 0.20 0.16 0.12 0.08 0.04 0.00 -0.04 -0.08 -0.12 -0.16 -0.20 0 2 4 6 8 10 12 14 16 18 20 t (s) 0 2 4 6 8 10 12 14 16 18 20 t (s) 0 2 4 6 8 10 12 14 16 18 20 t (s) 0 2 4 6 8 10 12 14 16 18 20 t (s) Figura 6: Trayectorias generadas por el modelo (trazo discontinuo) y la planta T (trazo continuo), partiendo de la misma condición inicial [x1,0 , x2,0 , x3,0 , x4,0 ] = £π ¤T 4 , 0, 0, 0 . El intervalo de tiempo continuo representado en la figura [0 , 20, 01 s) corresponde a la simulación de los instantes de tiempo discreto: k=0, 1, . . . , 2000; siendo T = Hh = 4 × 0, 0025 s = 0, 01 s el perı́odo de muestreo. 20 El primer paso de esta metodologı́a de control consiste en expresar la dinámica del modelo de tiempo continuo en la forma pseudo-lineal: dx = f (x, u) = A(x)x + B(x)u , dt (98) en la que los coeficientes dependen del estado x. En el caso del modelo (93) que nos ocupa, tomamos A(x) y B(x) de la siguiente forma: 0 1 0 0 g 2 M L (1+ m )−x2 cos x1 sinc x1 0 0 0 M +sin2 x1 , m A (x) = (99) 0 0 0 1 g 2 − L cos x1 +x2 L M sinc x1 0 0 0 +sin2 x 1 m 0 g 1 L mg cos x1 M 2 m +sin x1 − B (x) = 0 g 1 L mg L M +sin2 x ½ m ; (100) 1 sin x1 x1 si x1 6= 0 . 1 si x1 = 0 Seguidamente, se discretiza (98) como si se tratara de un modelo lineal ẋ = Ax + Bu en el que A y B fueran constantes. Es decir: donde sinc x1 , xk = Ad (xk−1 ) xk−1 + Bd (xk−1 ) uk−1 ; (101) Ad (xk−1 ) = exp (A (xk−1 )) T , ÃZ ! T Bd (xk−1 ) = exp (A (xk−1 ) τ ) dτ B (xk−1 ) . (102) donde (103) 0 En esta discretización, se asume implı́citamente que el perı́odo de muestreo T es suficientemente pequeño, como para que el vector de estado x(t) no varı́e significativamente en un intervalo de tiempo de duración T . Una vez obtenido el modelo en tiempo discreto (101), el problema de control se plantea en forma análoga al problema de control óptimo cuadrático de horizonte infinito para sistemas lineales. Más precisamente, se introduce una función de costo a minimizar: +∞ J= ¢ 1 X¡ T xk Q (xk ) xk + uTk R (xk ) uk 2 (104) k=0 donde las matrices Q (xk ) y R (xk ) ponderan la incidencia en el costo del apartamiento del vector de estado xk respecto al origen y el apartamiento de la acción de control uk respecto al origen, respectivamente. De esta forma, en la definición de estas matrices se expresa la elección del diseñador en lo que refiere al compromiso entre la performance del regulador y la magnitud de la acción de 21 Parámetro Valor Q 10 0 0 0 R 0 1 0 0 0 0 100 0 0 0 0 1 [10] Cuadro 4: Matrices que definen el costo (104). control necesaria para lograrlo. Se requiere que Q (x) sea semi-definida positiva y R (x) definida positiva para todo x. La solución a este problema es: con uk = −K (xk ) xk (105) ¢−1 T ¡ Bd P (xk ) Ad , K (xk ) = R (xk ) + BdT P (xk ) Bd (106) siendo P (xk ) la solución de la ecuación de Riccati en estado estacionario: P (xk ) = Q (xk ) + ATd P (xk ) Ad − ¡ ¢−1 T − ATd P (xk ) Bd R + BdT P (xk ) Bd Bd P (xk ) Ad . (107) Tanto en (106) como en (107) se ha omitido la dependencia explı́cita de Ad y Bd con respecto a xk , para simplificar la notación. Para el control del péndulo invertido, las matrices Q y R se tomaron como se indica en el cuadro 4. Claramente, el énfasis en la definición del costo, está puesto en la regulación de las variables de posición x1 y x3 . 3.4. Observador de estado La solución (105) al problema de minimizar (104) es una realimentación de estado con la particularidad que la ganancia (106) depende del estado xk . Para que este método de control por realimentación de estado sea implementable, es necesario que todas las componentes del vector de estado sean accesibles. Tal como se formuló el problema de control del péndulo invertido en 3.1.2; de las cuatro variables de estado x1 = θ, x2 = θ̇, x3 = z y x4 = ż, sólo se pueden medir (con cierto error de medida) las variables de posición y1 = x1 = θ y y2 = x3 = z. Entonces, para poder aplicar el método de control recién descrito al problema del control del péndulo invertido, es necesario diseñar un observador de estado completo que brinde la “mejor” estimación posible del vector de estado completo, a partir de las medidas ruidosas que se van adquiriendo en tiempo real y un modelo imperfecto de la planta a controlar. Esta, es justamente la funcionalidad de las dos extensiones del filtro de Kalman para sistemas no lineales presentadas en 2.2 y 2.5. El diagrama de bloques de la figura 7 representa el sistema realimentado completo. La planta es comandada por la entrada uk y es regida por la dinámica de tiempo discreto (90). De la misma se obtienen medidas ruidosas (86) que junto 22 uk PLANTA yk xk|k OBSERVADOR CONTROLADOR Figura 7: Diagrama de bloques del sistema realimentado. con uk van al observador de estado. El observador combina estas dos señales junto con el conocimiento que tiene de la planta (el modelo 95, la estadı́stica del ruido de proceso vk y la estadı́stica del ruido de medida nk ) para generar estimaciones xk|k del vector de estado de la planta xk . Con estas estimaciones se sintetiza la acción de control uk con (105), como si se tratara del verdadero vector de estado xk . En el contexto de la teorı́a de control óptimo lineal, esta forma de proceder está sustentada en el el principio de separación, que asegura que la estrategia de control óptima (en el sentido de minimizar 104) es justamente la que resulta de diseñar, por un lado el estimador óptimo y por otro, el regulador óptimo; en forma independiente. Cuando se procede de la misma forma en el caso de un sistema no-lineal, el principio de separación ya no es válido y por lo tanto la metodologı́a de control resultante no es necesariamente óptima, aunque es una solución factible. Nótese que si bien la dinámica del modelo (95) que maneja el observador, no coincide con la dinámica de la planta (90); en lo que refiere a las medidas, el observador maneja el mismo modelo de medida G (xk , nk ) con el que se generan las medidas (86) de la planta. Es decir, se asume perfecto conocimiento del proceso de medida. Esto tiene sentido porque en el caso que nos ocupa, G es muy sencilla; simplemente extrae la primera y tercera componente del vector de estado y adiciona el ruido de medida caracterı́stico de los instrumentos. 3.5. Resultados de las simulaciones A continuación se exponen los resultados de las simulaciones del sistema representado en la figura 7 operando: 1) en lazo abierto (sin la realimentación representada en la figura desde la salida del controlador hasta la entrada de la planta) y 2) en lazo cerrado (tal cual se encuentra representado en la figura). En cada caso, se utiliza el EKF y el UKF como observador de estado y se comparan los desempeños. En todos los casos se generó ruido de medida estocástico de acuerdo con la misma estadı́stica suministrada a los filtros, es decir se simuló el ruido de medida generando muestras aleatorias de: nk ∼ N (0, R) 11 . (108) El ruido no se simuló explı́citamente, porque está implı́cito en las diferencias ya mencionadas entre el modelo y la planta. 11 x ∼ N (x̄, Px ) significa que x es una variable aleatoria de esperanza x̄ y covarianza Px . 23 Todo el trabajo de programación que implicó realizar las simulaciones y procesar los resultados, se realizó utilizando el software libre Scilab [9]. 3.5.1. Sintonización en lazo abierto Hasta ahora no se ha especificado cómo se eligió la matriz de covarianza Q que describe al ruido de proceso de media nula. Esta matriz y la matriz de covarianza R que describe al ruido de medida de media nula, deben ser suministradas al filtro que se utiliza como observador de estado (ya sea el EKF o el UKF). La elección de estas matrices influye drásticamente en la performance del filtro para estimar el estado de la planta y su elección es referida como sintonización del filtro. La elección de la matriz R (ver cuadro 1 y expresión (89)), se hizo considerando la precisión de los supuestos instrumentos de medida. La matriz Q es más difı́cil de determinar, porque en general no se conoce la exactitud con la que el modelo suministrado al filtro, es capaz de representar la dinámica de la planta “real”. La matriz Q se eligió por tanteo, simulando el sistema planta-observador en lazo abierto (sin realimentación) y con entrada {uk }k∈N nula, partiendo del £ ¤T estado inicial x0 = π4 , 0 , 0 , 0 . Luego de unas cuantas simulaciones, probando con diferentes valores para Q y evaluando el error cometido por el EKF en la estimación, instante a instante, de las variables de estado; se decidió elegir la matriz Q como se indica en el cuadro 5. Esta forma de sintonizar el filtro puede ser criticada desde un enfoque práctico, ya que en la realidad sólo se cuenta con medidas ruidosas de algunas variables de estado. No obstante, no se buscó sintonizar el filtro hasta su desempeño óptimo, sino simplemente definir una matriz Q que generara estimaciones aceptables y sobre todo, que el filtro tuviera la capacidad dinámica de seguir razonablemente bien, los cambios en el vector de estado. Como se puede apreciar en el cuadro 5, se dio mayor peso a los elementos de la diagonal y entre éstos a aquellos de las filas 2 y 4 que corresponderı́an a la discretización de las ecuaciones mecánicas cardinales del modelo de tiempo continuo (93), en las que podrı́an faltar fuerzas o momentos no modelados. Los restantes elementos se fijaron arbitrariamente en el valor 1 × 10−6 . Esta forma de proceder, para variar sólo aquellos elementos de Q que se supone son más significativos, es heurı́stica y nada rigurosa; aunque resultó útil en la práctica para tantear con sólo cuatro parámetros, en vez de los diez parámetros necesarios para determinar la matriz Q que debe ser simétrica. En rigor, en la discretización (94) del modelo de tiempo continuo, surge una nueva matriz de transición de estado, con la que se pierde la correspondencia anteriormente referida entre las filas 2 y 4 y las ecuaciones mecánicas cardinales. No obstante, aún ası́, es esperable que sea en estas filas de la nueva matriz de transición de estado, donde tengan mayor efecto las carencias del modelado. En la figura 8 se reproduce (en trazo negro) la evolución temporal de cada £ ¤T variable de estado de la planta partiendo del estado inicial x0 = π4 , 0 , 0 , 0 y las trayectorias correspondientes estimadas por el EKF (en azul) y el UKF (en rojo); para la elección realizada de las matrices Q y R. Se observa que el desempeño de ambos filtros es similar, salvo para la cuarta componente del vector de estado, para la cual el UKF brinda mejores estimaciones que el EKF. 24 Parámetro Valor Q 1 × 10−4 1 × 10−6 1 × 10−6 1 × 10−6 1 × 10−6 1 1 × 10−6 1 × 10−6 1 × 10−6 1 × 10−6 1 × 10−4 1 × 10−6 1 × 10−6 1 × 10−6 1 × 10−6 5 × 10−2 Cuadro 5: Matriz de covarianza del ruido de proceso. x1 (rad) 6 5 4 3 2 1 0 EKF UKF 0 100 200 300 400 500 k 13 x2 ( rad s ) 9 5 1 -3 -7 -11 x3 (m)0.04 0.03 0.02 0.01 0.00 -0.01 -0.02 0.4 x4 ( m s ) 0.3 0.2 0.1 0.0 -0.1 -0.2 -0.3 -0.4 EKF UKF 0 100 200 300 400 500 k EKF UKF 0 100 200 300 400 500 k EKF UKF 0 100 200 300 400 500 k Figura 8: Estimación de las cuatro componentes del vector de estado de la planta operando en lazo abierto y con entrada nula. En negro: evolución temporal de las variables de estado de la planta; en azul: estimaciones generadas por el EKF y en rojo: estimaciones generadas por el UKF. 25 En la figura 9, se muestra el andamiento temporal del error cuadrático medio para cada uno de los dos filtros; el cual se estima promediando entre cien experiencias (de quinientos instantes de muestreo cada una) en lazo abierto y entrada nula, con los dos filtros estimando el estado de la planta simultáneamente. En cada una de estas experiencias, el estado inicial de la planta se eligió aleatoriamente según: 2 0 π 0 0 0 0 0 19 0 0 x0 ∼ N (109) 0 , 0 0 1 0 0 0 0 0 10 y las condiciones iniciales para los filtros se tomaron siempre iguales a: 2 0 π 0 0 0 0 0 19 0 0 . x0|0 = 0 P0|0 = 0 0 1 0 0 0 0 0 10 (110) Obsérvese que el error cuadrático medio, ası́ estimado, tiene un andamiento muy similar para los dos filtros, apenas un poco mejor para el EKF que para el UKF. La mejor performance del UKF en la estimación de la cuarta componente del vector de estado, señalada anteriormente para la experiencia particular cuyos resultados se reproducen en la figura 8; pudo verificarse en todas las experiencias, pero su incidencia en el error cuadrático es despreciable frente al los errores que se cometen en la estimación de las dos primeras componentes del vector de estado. Por esto, no se refleja en las curvas del la figura 9. 3.5.2. Estimación de estado en lazo cerrado A continuación se presentan los resultados de las simulaciones del sistema completo, tal cual se representa en la figura 7, es decir con la realimentación operando para controlar planta. Para estas simulaciones, se mantuvieron las mismas matrices Q y R elegidas como ya se explicó anteriormente. Al igual que antes para la operación en lazo abierto, se realizaron cien experiencias (ahora de mil instantes de muestreo cada una), en las que el EKF y el UKF estimaban el estado de la planta. A diferencia de antes, en que los filtros estimaban el estado de una “misma” planta bajo observación, en este caso se debieron simular dos plantas “independientes” ya que cada una se comandaba con la acción de control generada con las estimaciones provenientes de cada uno de los dos filtros. Lo que sı́ se impuso en forma idéntica y simultánea para el EKF y el UKF, fue el ruido de medida instantáneo generado aleatoriamente, el estado inicial de planta elegido aleatoriamente según 109 y la condición inicial para los filtros siempre según 110. Se programó la detención automática de cualquier filtro cuyo error cuadrático de estimación del estado real de la planta, superara una cota máxima de valor 100, dando por imposible el control de la planta una vez alcanzada esta magnitud en el error. De las 100 experiencias realizadas con los dos filtros, operando simultáneamente sobre plantas independientes; en 89 de las mismas el EKF alcanzó esta cota de error, mientras que el UKF la alcanzó solamente en 15. En la figura 10 se ejemplifica uno de estos casos en que el EKF alcanzaba esta cota máxima de error cuadrático. Es claro que en casos como este se perdı́a el 26 Promedio del error cuadrático ≈ M SE 6 EKF UKF 5 4 3 2 1 0 0 100 200 300 400 500 Figura 9: Estimación del error cuadrático medio en la estimación del estado de la planta, operando en lazo abierto y con entrada nula, para el EKF (en azul) y el UKF (en rojo). La estimación, instante a instante, del error cuadrático medio se obtiene promediando entre 100 experiencias distintas de 500 instantes de muestreo cada una. 27 k 3.0 x1 (rad)3.4 2.6 2.2 1.8 1.4 1.0 0.6 0.2 -0.2 -0.6 0 20 40 60 80 100 120 k 0 20 40 60 80 100 120 k 0 20 40 60 80 100 120 k 0 20 40 60 80 100 120 k 0 20 40 60 80 100 120 k 100 80 x2 ( rad s ) 60 40 20 0 -20 -40 -60 -80 x3 (m) 0 -20 -40 -60 -80 -100 -120 x4 ( m s ) 100 0 -100 -200 -300 -400 -500 3000 1000 -1000 -3000 -5000 -7000 -9000 -11000 -13000 u(N ) Figura 10: Evolución temporal de las variables de estado de la planta y acción de control (todas en trazo continuo), en un caso en el que el EKF no es capaz de generar estimaciones (en trazo discontinuo) suficientemente buenas como para conseguir controlar la planta. control de la planta. Sólo en una experiencia se dio que el UKF alcanzaba la cota máxima de error cuadrático mientras que el EKF no (ver figura 11). En la figura 12, se muestra el andamiento temporal del error cuadrático medio para cada uno de los dos filtros; el cual se estima promediando entre aquellas experiencias para las cuales el filtro del que se trate, no alcanzó la cota máxima de 100 en el error cuadrático. Al igual que para las experiencias en lazo abierto, el estado inicial de la planta se eligió aleatoriamente según 109 y las condiciones iniciales para los filtros se tomaron siempre según 110. Obsérvese, que en lazo cerrado, el desempeño del UKF es claramente superior al del EKF. Esto también se puede apreciar en las 10 experiencias en las cuales ninguno de los dos filtros alcanzaron la cota máxima aceptada para el error. Los resultados de una de tales experiencias, se reproducen en la figura 13. A simple vista se observa que el control de la planta es superior cuando se utiliza el UKF como observador, que cuando se utiliza el EKF como observador. Incluso la acción de control uk es más moderada en cuando se utiliza el UKF, que cuando se utiliza el EKF. Otra forma de comparar los desempeños de ambos filtros consistió en evaluar el costo (104) tomando un número finito de términos (tantos como instantes de muestreo simulados). Debe aclararse que el costo (104) converge cuando se diseña un control óptimo de horizonte infinito para un sistema lineal en un contexto determinista. Cuando se pretende extender los resultados de la teorı́a 28 x1 (rad) 2 1 0 -1 -2 -3 -4 -5 -6 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k 110 x2 ( rad s ) 70 30 -10 -50 -90 -130 -170 x3 (m) 1300 1100 900 700 500 300 100 -100 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k 3100 x4 ( m s )2700 2300 1900 1500 1100 700 300 -100 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k 60000 u(N ) 70000 50000 40000 30000 20000 10000 0 -10000 -20000 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k Figura 11: Evolución temporal de las variables de estado de la planta y la acción de control que la comanda. En azul: EKF como observador. En rojo: UKF como observador. Esta fue la única experiencia, de las 100 realizadas, en que el UKF perdió el control de la planta mientras que el EKF no. 29 Promedio del error cuadrático ≈ M SE 7 EKF UKF 6 5 4 3 2 1 0 0 100 200 300 400 500 600 700 800 900 1000 Figura 12: Estimación del error cuadrático medio en la estimación del estado de la planta, operando en lazo cerrado, para el EKF (en azul) y el UKF (en rojo). La estimación, instante a instante, del error cuadrático medio se obtiene promediando entre 100 experiencias distintas de 500 instantes de muestreo cada una. 30 k 0.9 x1 (rad)1.1 0.7 0.5 0.3 0.1 -0.1 -0.3 -0.5 -0.7 -0.9 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k 5 x2 ( rad s ) 3 1 -1 -3 -5 -7 x3 (m) 4 3 2 1 0 -1 -2 -3 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k 10 8 x4 ( m s ) 6 4 2 0 -2 -4 -6 -8 u(N ) 600 500 400 300 200 100 0 -100 -200 -300 EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k EKF UKF 0 100 200 300 400 500 600 700 800 900 1000 k Figura 13: Evolución temporal de las cuatro variables de estado de la planta y la acción de control que la comanda, cuando se utiliza el EKF (en azul) o alternativamente el UKF (en rojo) como observador de estado. 31 Costo 7e+08 EKF UKF 6e+08 5e+08 4e+08 3e+08 2e+08 1e+08 0e+00 0 10 20 30 40 50 60 70 80 90 100 Figura 14: Costo (104) truncado a un número finito de términos, para cada una de las cien experiencias, cuando la planta es controlada utilizando el EKF como observador (barras en azul) o el UKF como observador (barras en rojo superpuestas a las azules). de control óptimo lineal, mediante el uso de la SDRE y además se aplica en un contexto estocástico como el que estamos tratando; la serie (104) no tiene por que converger. No obstante, la suma truncada a un número finito de términos puede ser utilizada para comparar desempeños. En la figura 14 se representa para cada una de las cien experiencias, el costo asociado al EKF por una barra azul y el costo asociado al UKF por una barra roja superpuesta. La ausencia de una barra significa que el filtro alcanzó la cota máxima de 100 en el error cuadrático de estimación y por lo tanto la experiencia fue descartada del análisis. Se observa que en las 10 experiencias, en que tanto el error del EKF como el del UKF se mantuvo por debajo de la cota fijada; el costo asociado al UKF fue siempre menor. 4. Conclusiones En este trabajo se expusieron dos extensiones del filtro de Kalman para sistemas no lineales: el EKF (Extended Kalman Filter) y el UKF (Unscented Kalman Filter); desde un marco teórico común. Mediante un ejemplo sencillo de transformación de coordenadas, se ilustró la aplicación de la UT (Unscented Transform), que es la herramienta fundamental subyacente en la formulación del UKF. 32 k Costo 1e+08 EKF UKF 9e+07 8e+07 7e+07 6e+07 5e+07 4e+07 3e+07 2e+07 1e+07 0e+00 0 10 20 30 40 50 60 70 80 90 100 Figura 15: Ampliación de la figura 14. Posteriormente, se aplicaron las dos extensiones del filtro de Kalman como observadores de estado completo, al problema de control de un péndulo invertido. Se experimentó con este problema en forma numérica, pero formulándolo de la forma más realista posible; distinguiendo entre la planta “real” y un modelo (más sencillo) empleado para diseñar el observador y el controlador. En lazo abierto y con entrada nula a la planta, se sintonizó manualmente el EKF hasta alcanzar un desempeño aceptable, aunque no necesariamente óptimo. Para esta sintonización, que se mantuvo incambiada y que se aplicó en forma idéntica al UKF; se encontró que el desempeño en lazo abierto de los dos filtros era muy similar. En lazo cerrado, manteniendo la sintonización antes elegida en lazo abierto y utilizando la misma metodologı́a SDRE (State Dependent Riccati Equation) de control no-lineal; se compararon los desempeños del EKF y el UKF operando como observadores. En la mayorı́a de las experiencias realizadas, se encontró que el control de la planta era superior al utilizar el UKF, que cuando se utilizaba el EKF. Esto se pudo apreciar directamente de las respuestas en lazo cerrado obtenidas y también mediante la evaluación de un costo que pondera la regulación del vector estado y la acción de control requerida. Esta superioridad es coherente con el hecho de que, en todo instante, el UKF cometı́a errores cuadráticos medios menores a los que cometı́a el EKF. Como la metodologı́a de control utilizada se basa en estas estimaciones, resulta razonable que el mejor control se consiga con el observador que comete menor error de estimación. Más destacable aún, es que el EKF perdió el control de la planta en el 89 % de las experiencias realizadas, mientras que el UKF sólo lo perdió en el 15 % de las 33 k experiencias realizadas. Si bien la forma “artesanal” y poco práctica de sintonizar la matriz de covarianza Q, que “informa” a los filtros las caracterı́sticas del ruido de medida, es claramente criticable; consideramos que las experiencias numéricas realizadas son suficientes para justificar la viabilidad de estas técnicas de observación en problemas de control no-lineal e ilustrar (al menos para un problema y solución particular), la superioridad del UKF sobre el EKF, demostrable en forma rigurosa por expansiones en series de potencias de los momentos estimados [8]. Cabe destacar además, la facilidad con que se implementa el UKF en comparación con el EKF; para el cual fue necesario programar las matrices jacobianas (41) a (44), correspondientes al modelo (95), aplicando la regla de la cadena a las funciones compuestas que resultan de los H pasos de integración entre instantes de muestreo (ver (94)) y del propio método de Runge-Kutta (91) y (92). Otro aspecto criticable de la sintonización, es que se realizó en lazo abierto y con entrada nula. Seguramente, hubiese sido posible alcanzar mejor desempeño sintonizando directamente en lazo cerrado, que era el modo de operación para el cual se estaba diseñando el observador. De todas formas, el mayor problema (ya sea en lazo abierto o en lazo cerrado), consiste en encontrar alguna forma racional de determinar la sintonización del filtro, sin incurrir en métodos de prueba y error. Mejor aún serı́a lograr que el filtro “aprenda” automáticamente los parámetros que caracterizan al ruido de proceso y de medida. Esto último podrı́a ser motivo de otro trabajo y no está demasiado estudiado en la literatura según reportan Abbeel et al. en [1]; donde proponen algunos algoritmos de sintonización automática que no ensayamos en nuestras experiencias por falta tiempo. Referencias [1] Abbeel P., Coates A., Montemerlo M., Ng A. Y. & Thrun S. Discriminative Training of Kalman Filters. Robotics, Science and Systems. Boston, USA, June 2005. [2] De Marchi J. A. Modeling of dynamic friction, impact backlash and elastic compliance nonlinearities in machine tools, with applications to asymmetric viscous and kninetic friction identification. Tesis de doctorado. Rensselær Polytechnic Institute, Troy, New York, 1988. http://www.perihelia.com/doc/phdweb.pdf . [3] Julier S. J. & Uhlmann J. K. A new approach for filtering nonlinear systems. Proceedings of tha American Control Conference, 1628–1632. 1995. [4] Julier S. J. & Uhlmann J. K. A new extension of the Kalman filter to nonlinear systems. Int. Symp. Aerospace/Defense Sensing, Smul. and Controls, Orlando, FL, 1997. http://citeseer.ist.psu.edu/julier97new.html . [5] Lewis F. L. Optimal estimation. New York: Wiley, 1986. [6] Menon P. K., Sweriduk G. D., Vaddi S. S. & Ohlmeyer E. J. Nonlinear Discrete-time Design Methods for Missile Flight Control Systems. 2004 AIAA Guidance, Navigation, and Control Conference Providence, RI, August 16–19. 34 http://www.optisyn.com/research/papers/papers/2004/AIAA-20045409.pdf . [7] Uhlmann J. K. Simultaneous map building and localization for real time applications. Reporte técnico, Universidad de Oxford, 1994. Tesis de transferencia. [8] Wan E. A. & van der Merwe R. Kalman Filtering and Neural Networks, chapter 7: The Unscented Kalman Filter. Wiley, 2001. http://citeseer.ist.psu.edu/wan01chapter.html . [9] Scilab - A Free Scientific Software Package. http://www.scilab.org . 35