Capítulo 5 Observadores de Estados Como se vio en el capítulo anterior, existen distintos enfoques dentro de la comunidad FDI a la hora de generar residuos para la detección y diagnóstico. Entre estas técnicas se encuentran los observadores de estados. En este capítulo se van a mostrar los fundamentos de los observadores de estados, tanto para sistemas lineales como para sistemas no lineales, y se ejemplificará su uso para tareas de detección y aislamiento o localización. 5.1 Conceptos Fundamentales En determinadas circunstancias resulta necesario estimar el valor de ciertas variables de estado que no son medidas en un sistema. La estimación de este tipo de variables se determina observación. Un dispositivo (o programa) que estima u observa las variables de estado se llama observador de estados (o simplemente observador ). A la hora de precisar qué es un observador de estado, nos encontramos con múltiples definiciones. Según Ogata [79]: “Un observador de estados estima las variables de estado con base en las mediciones de las variables de salida y de control.” Para Pouliezos y Stavrakakis [84] los observadores son: “Sistemas dinámicos cuyo propósito es reconstruir el estado x de un modelo en espacio de estados basándose en las entradas medidas u y en las salidas y.” Más recientemente podemos destacar la definición acuñada por Kinnaert [59]: “Un observador de estados es un filtro que recibe como entradas las señales de entrada, u(t), y de salida, y(t), de un sistema y genera una estimación sobre el estado x(t)”. A la hora de dar una clasificación de los tipos de observadores, Ogata [79] se fija en el número de variables que son observadas. De esta manera propone una clasificación de observadores en tres tipos: 53 54 5.2. Observadores de Estado para Sistemas Lineales • Orden completo: el observador capta todas las variables del sistema, sin importar si algunas están disponibles para una medición directa. • Orden reducido: el observador estima menos de n variables de estado, en donde n es la dimensión del vector de estado. • Orden mínimo: es un observador de orden reducido con el mínimo orden posible, es dedir, si n es la dimensión del vector de estado y m es la dimensión del vector de salidas, el observador de orden mínimo observa n-m variables. Dentro de cada una de estas familias, podemos tener, a su vez, otras subdivisiones. Por ejemplo, si consideramos el tipo de sistema que estamos tratando podemos tener observadores para sistemas lineales y observadores para sistemas no lineales. A continuación se mostrará los fundamentes de observadores de estados para el caso más general, el de observadores de orden completo para sistemas lineales. Posteriormente se realizará una extensión para sistemas no lineales. 5.2 5.2.1 Observadores de Estado para Sistemas Lineales Observador de Orden Completo Consideramos que tenemos un sistema en espacio de estados de la siguiente forma: ẋ(t) = A · x(t) + B · u(t) (5.1) y(t) = C · x(t) (5.2) En donde x(t) es el vector de estado (vector de dimensión n), u(t) es el vector de entradas, y(t) es el vector de salidas, y A, B y C son matrices de coeficientes constantes. Podemos definir un observador de estados genérico 1 para dicho sistema como [59, 79]: ˙ x̂(t) = A · x̂(t) + B · u(t) + Ke · (y(t) − C · x̂(t)) (5.3) ŷ(t) = C · x̂(t) (5.4) El último término, es un valor de corrección que contiene la diferencia entre la salida medida y la salida estimada. El término de corrección ayuda a reducir los efectos producidos por la diferencia entre el modelo dinámico y el sistema real [79]. La matriz Ke funciona como una matriz de ponderación. En la figura 5.1 se puede ver de manera esquemática el sistema en espacio de estados y su observador genérico correspondiente. 1 A este observador de estados también se le conoce como observador de estados de Luenberger, debido a que inicialmente fue propuesto por Luenberger [67, 68] 5. Observadores de Estados u B 55 ++ f x y C A B ++ ++ f x̂ C ŷ - + A Ke Observador de estados de orden completo Figura 5.1: Esquema de un observador de estados de orden completo. Podemos obtener la dinámica del error en la estimación del estado restando la ecuación 5.1 de la ecuación 5.3: ˙ ẋ(t) − x̂(t) = A · x(t) − A · x̂(t) − Ke · (C · x(t) − C · x̂(t)) = (A − Ke C) · (x(t) − x̂(t)) Y definiendo la diferencia entre x(t) y x̂(t) como el vector de error ex (t): ex (t) = x(t) − x̂(t) Entonces el error en la estimación del estado, nos queda: ėx (t) = (A − Ke C) · ex (t) (5.5) A partir de la ecuación 5.5 podemos ver que el comportamiento dinámico del vector de error se determina mediante los valores característicos de la matriz (A − Ke C). Si la matriz es estable, el vector convergerá a cero para cualquier vector de error inicial (e(0)). Es decir que x̂(t) convergerá a x(t) sin considerar los valores de x̂(0) y x(0). Si se eligen los valores característicos de la matriz A − Ke C de manera que el comportamiento dinámico del vector de error sea asintóticamente estable y suficientemente rápido, cualquier vector de error tenderá a 0 con una velocidad adecuada. Al igual que para el error en la estimación del estado, podemos obtener el error en la estimación de la salida como: ey (t) = y(t) − C · x̂(t) 56 5.2. Observadores de Estado para Sistemas Lineales Que está directamente relacionado con el error en la estimación del estado de la siguiente manera: ey (t) = C · ex (t) 5.2.2 Problema Dual Como acabamos de ver, el problema a la hora de diseñar un observador es determinar la matriz Ke tal que la dinámica del error sea asintóticamente estable con una velocidad de respuesta suficiente, es decir, determinar Ke , tal que A − Ke C tenga los valores característicos deseados. Este problema se corresponde con el problema de ubicación de polos [79]. Consideramos el siguiente sistema lineal en espacio de estados: ẋ = A · x + B · u y = C ·x Al diseñar el observador de estados de orden completo, resolvemos el problema dual, es decir, solucionamos el problema de ubicación de polos para el sistema dual: ż = A∗ · z + C ∗ · v n = B∗ · z Suponiendo que la señal de control v es (realimentación de estado): v = −K · z Si el sistema dual es de estado completamente controlable, la matriz de ganancias de realimentación del estado K se determina de tal modo que la matriz A∗ − C ∗ · K produzca un conjunto de los valores característicos deseados. Si µ1 , µ2 , . . . , µn son los valores característicos de la matriz del observador de estado, tomando los mismos µi que los valores característicos deseados de la matriz de ganancias de realimentación del estado del sistema dual, obtenemos: |sI − (A∗ − C ∗ K)| = (s − µ1 )(s − µ2 ), . . . , (s − µn ) Considerando que los valores característicos de A∗ − C ∗ K y los de A − son iguales, tenemos que, K ∗C |sI − (A∗ − C ∗ K)| = |sI − (A − K ∗ C)| Comparando el polinomio característico |sI − (A − K ∗ C)| y el polinomio característico |sI − (A − Ke C)| para el sistema observador, encontramos que Ke y K ∗ se relacionan mediante Ke = K ∗ Por tanto, usando la matriz K determinada mediante el enfoque de ubicación de polos en el sistema dual, la matriz de ganancias del observador Ke para el sistema original se determina a partir de la relación Ke = K ∗ [79]. 5. Observadores de Estados 57 Condición necesaria y suficiente para la observación del estado La condición necesaria y suficiente para la determinación de la matriz de ganancias del observador Ke para los valores característicos deseados de A − Ke C es que el dual del sistema original: ż = A∗ z + C ∗ v sea de estado completamente controlable. La condición de controlabilidad completa del estado para este sistema dual es que el rango de: . . . [C ∗ ..A∗ C ∗ .. · · · ..(A∗ )n−1 C ∗ ] sea n. Por tanto, ésta es la condición para una observabilidad completa del sistema original. 5.2.3 Diseño de Observadores La señal de realimentación a través de Ke funciona como una señal de corrección para el modelo de la planta. Si tenemos implícitos factores desconocidos de la planta con valores significativos, la señal de realimentación debería ser grande (es decir, el valor de Ke ). Sin embargo, si la salida está excesivamente contaminada con ruidos o perturbaciones, esta señal ya no es confiable y por lo tanto la señal de realimentación debería ser relativamente pequeña. A la hora de diseñar la matriz Ke debemos prestar atención a los efectos de perturbaciones y ruido. Habitualmente se suele diseñar como un compromiso una respuesta rápida y la sensibilidad frente a perturbaciones y ruido. Existen diversas técnicas que podemos destacar a la hora de realizar un diseño automático de la matriz de ganancias. Según Ogata [79] podemos destacar principalmente tres técnicas para el diseño: • Enfoque directo • Enfoque de sustitución • Fórmula de Ackerman Debido a que la Fórmula de Ackerman es la más genérica, así como la más usada, a continuación se procederá a describir esta técnica, dejando al lector la consulta de las otras dos en [79]. 5.2.3.1 Fórmula de Ackerman La fórmula de Ackerman para la determinación de la matriz de ganancias del observador Ke , viene dada por la siguiente ecuación: 58 5.2. Observadores de Estado para Sistemas Lineales Ke φ(A) = · C CA CA2 .. . −1 · CAn−1 0 0 0 .. . 1 en donde φ(A) es igual a φ(S) que es el polinomio característico deseado para el observador de estado. Viene dado por la expresión 5.6: n Y φ(S) = (S − µi ) = (S − µ1 )(S − µ2 ) . . . (S − µn ) (5.6) i=1 en donde µ1 , µ2 , . . . , µn son los valores característicos deseados. La elección de dicho conjunto de valores en muchos casos, no es única [79]. Por tanto, podrían elegirse muchas ecuaciones características diferentes como ecuaciones características deseadas. Para cada ecuación característica deseada, tenemos una matriz Ke diferente. A la hora de diseñar un observador de estado, resulta conveniente calcular varias matrices de ganancias del observador Ke con base en varias ecuaciones características deseadas distintas. Para cada una de las matrices de ganancias que obtenemos, deben realizarse pruebas en simulación con el fin de ver el comportamiento y la respuesta del observador generado. Como se ha comentado previamente, en muchos casos prácticos la elección de la mejor matriz Ke se resuelve en un compromiso entre la respuesta rápida y la sensibilidad ante perturbaciones y ruidos. 5.2.4 Observadores de Estados para Detección y Diagnóstico de Fallos Considerando que tenemos el mismo sistema en espacio de estados que hemos utilizado anteriormente (ecuaciones 5.1 y 5.2), podemos ampliar este sistema de modo que se considere la influencia de fallos y perturbaciones de la siguiente manera: ẋ(t) = A · x(t) + B · u(t) + f (t) + w(t) (5.7) y(t) = C · x(t) + ∆C(t) + v(t) (5.8) donde f (t) denota los fallos en el proceso, ∆C(t) los fallos en los sensores, y w(t), v(t) los ruidos en el proceso y en el sensor, respectivamente. Considerando esta nueva descripción de sistema, se modifican las ecuaciones de error en la estimación de la salida y del estado, obteniendo lo siguiente: ėx (t) = (A − Ke C) · ex (t) + w(t) + f (t) 5. Observadores de Estados 59 ey (t) = C · ex (t) + ∆C + v(t) En ausencia de fallos y perturbaciones f (t), ∆C, w(t) y v(t) son cero y por lo tanto la matriz A − Ke C hace que el error en la estimación de la salida (ey (t)) tienda a 0 (después de los transitorios en los instantes iniciales). En cambio, si ocurre un fallo, la señal ey (t) se va a ver afectada por este fallo, por eso podemos utilizar el error en la estimación de la salida como residuo para la detección y el diagnóstico de fallos. A la hora de explotar las cualidades de estos residuos se proponen varias técnicas. En la literatura se proponen diversas clasificaciones de estas técnicas, aunque según Kinnaert [59] podemos destacar principalmente dos técnicas: • La primera consiste en seleccionar matriz de ganancias del observador de manera que las trayectorias generadas por cada tipo de fallo se confinen es subespacios independientes del espacio ey . Proyectando ey (t) en cada uno de esos subespacios y analizando la magnitud de cada proyección podemos lograr el aislamiento de los fallos. • La segunda técnica consiste en utilizar un banco de observadores, y ofrece más flexibilidad que la anterior. El banco de observadores estará formado por p observadores de estados, diseñados de tal manera que cada observador i sea sensible únicamente al fallo i (esquema de observador dedicado o simplificado [28, 27]), o que cada observador i sea sensible a todos los fallos excepto al fallo i (esquema de observador generalizado [41]). En la figura 5.2 se puede ver un esquema de observador de estados dedicado. u Sistema Observador 1 .. . y1 y2 yp ey1 . . . Observador p eyp Figura 5.2: Esquema de observador dedicado. 60 5.3. Observadores de Estado para Sistemas No Lineales Otros autores, como Isermann [51] considera un mayor espectro de técnicas que Kinnaert y considera técnicas que éste no tenía en cuenta, como filtros de Kalman o bancos de observadores excitados por todas las salidas (además de los ya mencionados bancos de observadores excitados por una salida y por todas las salidas excepto una). Por su parte, Pouliezos y Stavrakakis [84], hacen una clasificación de técnicas fijándose en el tipo de fallo que queremos aislar. Así consideran tres tipos: esquemas de detección de fallos en sensores, actuadores y componentes. 5.3 Observadores de Estado para Sistemas No Lineales Al contrario que para los sistemas lineales, que han sido ampliamente estudiados y existe un campo teórico bien fundado, para los sistemas no lineales no ocurre lo mismo [86]. Los fundamentos teóricos están lejos de la solidez que tienen para sistemas lineales, y su aplicación práctica tampoco es comparable. Otro problema con los sistemas no lineales es que no existe una técnica genérica para diseñar este tipo de observadores, y su resultado final dependerá directamente del tipo de sistema con el que estemos trabajando. Existen múltiples aproximaciones para el diseño de observadores no lineales [59, 3, 86, 16, 54]. Algunas consisten en emplear directamente los conocimientos existentes para la generación de observadores lineales, o en extenderlos para sistemas no lineales (como el observador de Luenberger extendido [121] o el filtro de Kalman extendido [6, 43]), otras son únicamente aplicables en determinados tipo de sistemas no lineales (como, por ejemplo, para sistemas bilineales [59, 3]), también existen aproximaciones basadas en técnicas de optimización (observador de horizonte móvil [71, 94], observador con algoritmos genéticos [119, 83]), etc... En el presente apartado se pretende dar un introducción a las técnicas más conocidas y usadas en la literatura. 5.3.1 Diseño básico Consideremos un sistema no lineal con la siguiente forma2 : ẋ = f (x)x ∈ <n y = h(x)x ∈ <p Recordando lo que habíamos visto previamente, un observador de estados para un sistema lineal viene definido por las ecuaciones 5.9 y 5.10. ˙ x̂(t) = A · x̂(t) + B · u(t) + Ke · (y(t) − C · x̂(t)) 2 (5.9) Este tipo de sistema no lineal, en el que el estado es función únicamente del estado y no de la entrada, se considerará únicamente en este apartado de “diseño básico”. Posteriormente se ampliará la definición sistema no lineal. 5. Observadores de Estados ŷ(t) = C · x̂(t) 61 (5.10) El último término de la ecuación 5.9 (Ke · (y(t) − C · x̂(t))) se conoce habitualmente como inyección de salida. Utilizando esta inyección de salida directamente sobre el sistema no lineal podemos tener una primera aproximación a un observador de estados no lineal. Esta técnica se conoce como aproximación lineal [86]. 5.3.1.1 Aproximación Lineal Como primer intento para la construcción de un observador de estados para un sistema no lineal, empleamos la misma técnica que utilizamos para sistemas lineales [86]. El observador de estados nos quedará como se puede ver en las ecuaciones 5.11 y 5.12. x̂˙ = f (x̂) + Ke · (ŷ − y) (5.11) ŷ = h(x̂) (5.12) A la hora de diseñar la matriz de ganancias Ke existen diversas propuestas en la literatura. Entre ellas podemos destacar [121], en donde Zeitz presenta una extensión del observador de Luenberger para ser aplicado en sistemas no lineales. En este artículo se propone un conjunto de ecuaciones para el cálculo de la matriz Ke . Posteriormente, Adjallah et al. [2] también proponen un método para el cálculo de dicha matriz. Al igual que ocurría en el caso lineal, consideramos el error en la estimación del estado de la siguiente manera: ė = x̂˙ − ẋ = f (x̂) − f (x) + Ke · (h(x̂) − h(x)) Aunque en este caso la dinámica del error será no lineal, por lo que no queda del todo clara la estabilidad en la dinámica del error. Debido a que la estabilidad de un sistema linealizado en torno a un punto fijo implica estabilidad local para el sistema no lineal correspondiente en torno a dicho punto fijo, podemos intentar linealizar la dinámica del error en torno a su punto fijo (e = 0) [86]: ė = f (x̂) − f (x) + Ke (h(x̂) − h(x)) = f (x + e) − f (x) + Ke (h(x + e) − h(x)) δh 2 = ( δf δx (x) + Ke δx (x))e + O(e ) De tal forma que el sistema linealizado es [86]: δf δh (x) + Ke (x))e δx δx Desafortunadamente, dicha linealización depende directamente de un estado x que, por una parte no es una cantidad fija, y, por otra parte es desconocida para nosotros, por lo que no podemos garantizar la estabilidad del sistema. ė = ( 62 5.3.1.2 5.3. Observadores de Estado para Sistemas No Lineales Métodos de Lyapunov Los métodos de Lyapunov [86] intentan solucionar el problema de la falta de estabilidad en la aproximación lineal. Se trata de utilizar la teoría de estabilidad de Lyapunov para analizar y determinar las condiciones bajo las cuales la dinámica del error no lineal tiene un comportamiento estable en torno a un punto fijo (e = 0). Como resultados más importantes dentro de esta aproximación podemos destacar los trabajos de Kou et al. [61] y de Thau [105]. Por lo general se trata de una aproximación teórica, que raramente ofrece la posibilidad de construir dichos observadores, ya que no da ninguna pista sobre la manera en la que construir las funciones de Lyapunov ni cómo diseñar el observador. 5.3.1.3 Método de Linealización Extendida El método de linealización extendida utiliza la inyección de salida, al igual que para la aproximación lineal, excepto que ahora este término inyectado es de tipo no lineal. El método de linealización extendida fue propuesto por Baumann y Rugh [11]. El método propuesto consiste en utilizar la inyección de salida no lineal con la intención de lograr que la dinámica del error linealizado tenga autovalores localmente constantes. A pesar de que Baumann y Rugh demostraron para el sistema del péndulo invertido que los resultados obtenidos son mejores que los que se pueden obtener linealizando el sistema y diseñando un observador lineal, la aproximación tiene ciertas limitaciones. Primero, cabe destacar que el observador está diseñado de manera que sólo puede operar en torno a un conjunto de puntos del sistema original (aunque esto hace que funcione bien como controlador). Además, resulta complicada su extensión para sistemas con múltiples entradas. 5.3.1.4 Técnicas Lie-algebraic La idea básica de estas técnicas consiste en transformar los sistemas no lineales en sistemas en los que sea válida la teoría para sistemas lineales. En la literatura podemos encontrar múltiples aportaciones, entre las que cabe destacar el trabajo Keller [58] y el trabajo de Krener e Isidori [62]. La ventaja de estas técnicas es que explotan el enorme conocimiento disponible para el diseño de observadores lineales reduciendo el problema del observador no lineal a un problema que pueda ser manejado con técnicas lineales. El problema a la hora de su aplicación es que el sistema lineal sobre el que aplicarla debe cumplir una serie de restrictivas propiedades, y que (aunque las cumpla) encontrar la transformación del sistema no resulta una tarea sencilla. 5. Observadores de Estados 5.3.2 63 Métodos Basados en el Filtro de Kalman Una de las herramientas más usadas para la construcción de observadores de estados (y para otro gran número de aplicaciones) es el filtro de Kalman. En 1960 Rudolph E. Kalman publicó su famoso artículo [56] en el que establece los fundamentos de esta técnica. Desde entonces, han surgido multitud de aplicaciones, herramientas, trabajos y libros describiendo y ampliando las cualidades de este filtro. Entre ellos cabe destacar [43] y [6] como dos de los libros más completos sobre el tema, y más recientemente el curso de Welch y Bishop [118] como una completa introducción. El filtro de Kalman es esencialmente un conjunto de ecuaciones matemáticas que implementan un estimador del tipo predictor-corrector que es óptimo en el sentido de que minimiza la covarianza del error estimado. La gran ventaja del filtro de Kalman es su relativa “sencillez” y su robustez, ya es capaz de trabajar considerablemente bien en multitud de situaciones. 5.3.2.1 Filtro de Kalman Discreto Supongamos que tenemos un sistema lineal discreto en espacio de estado con la siguiente forma: xk = Axk−1 + Buk + wk−1 yk = Cxk + vk Donde wk es una variable que representa el ruido en el proceso y vk representa el ruido en la medida. Ambas variables son independientes la una de la otra (no correlacionadas), blancas, y con una distribución normal de probabilidad: p(wk−1 ) ∼ N (0, Q) p(vk ) ∼ N (0, R) El filtro de Kalman realiza estimaciones de las variables de estado de un proceso utilizando una especie de “control realimentado”: el filtro estima el estado del proceso en un instante de tiempo y posteriormente obtiene una realimentación de las medidas. Por esto, podemos dividir las ecuaciones del filtro de Kalman en dos grupos: actualización en el tiempo (conocida como predicción) y actualización en las medidas (conocida como corrección)3 . En la figura 5.3 podemos ver un esquema a “alto nivel” del funcionamiento del filtro de Kalman dividido en estas dos etapas. 3 Para una clara compresión de los conceptos del filtro de Kalman, las variables y algunas matrices llevan un doble subíndice (por ejemplo, x̂k−1|k−1 ). El significado del primer término del subíndice se corresponde con el instante de tiempo (k es el instante actual, mientras que k − 1 es el instante anterior). El significado del segundo término del subíndice se corresponde con la fase del filtro de Kalman (k − 1 es la fase de predicción, mientras que k es la fase de corrección). 64 5.3. Observadores de Estado para Sistemas No Lineales xk|k-1 Pk|k-1 PREDICCIÓN Valores iniciales yk CORRECCIÓN xk|k Pk|k Figura 5.3: Lazo del filtro de Kalman. En la fase de predicción se realiza el cálculo del estado actual (ecuación 5.13) y de la covarianza del error (conocida como P ) a partir de la covarianza del error en instante anterior (ecuación 5.14). x̂k|k−1 = Ax̂k−1|k−1 + Buk (5.13) Pk|k−1 = APk−1|k−1 AT + Q (5.14) Durante la fase de corrección se realiza la actualización de la ganancia de Kalman usando la covarianza del error calculada en la fase de predicción (ecuación 5.15), se toman las medidas y se corrige la estimación del estado calculado en la fase de predicción (ecuación 5.16), y por último se actualiza la covarianza del error (P ) con la ganancia de Kalman y la covarianza del error calculada en el instante anterior (ecuación 5.17). Kk = Pk|k−1 C T (CPk|k−1 C T + R)−1 (5.15) x̂k|k = x̂k|k−1 + Kk (yk − C x̂k|k−1 ) (5.16) Pk|k = (I − Kk C)Pk|k−1 (5.17) El filtro de Kalman resulta bastante fácil de calcular debido que es prácticamente lineal (excepto por la inversión de la matriz). También se puede probar que el filtro de Kalman es un estimador óptimo del estado de un proceso, dada una métrica de error cuadrática. Para más información sobre el filtro de Kalman, aplicaciones y fundamentos tanto computacionales como estadísticos, se recomienda [6], [43] o [118] entre otros. 5.3.2.2 Filtro de Kalman Extendido El filtro de Kalman extendido (EKF, extended Kalman filter) [6, 43, 118] es una variación del filtro de Kalman para tratar el problema de la estimación de estados cuando estamos trabajando con un sistema que es no lineal. 5. Observadores de Estados 65 Supongamos que tenemos un sistema no lineal con la siguiente forma: xk = f (xk−1 , uk , wk−1 ) yk = h(xk , vk ) Al igual que para el filtro de Kalman discreto, wk es una variable que representa el ruido en el proceso y vk representa el ruido en la medida. Ambas variables son independientes la una de la otra (no correladas), blancas, y con una distribución normal de probabilidad: p(wk−1 ) ∼ N (0, Qk−1 ) p(vk ) ∼ N (0, Rk ) La forma del filtro de Kalman extendido es similar a la del filtro de Kalman discreto, sólo que ahora estamos tratando con un sistema no lineal que, por tanto, tiene que ser linealizado para poderle aplicar el filtro de Kalman. EKF soluciona este problema de la linealización calculando las matrices jacobianas de f y h en torno al estado estimado: • A será la jacobiana de la función de estado f respecto al estado x: A[i,j] = δf[i] (x̂ , uk , 0) δx[j] k−1|k−1 (5.18) • W será la jacobiana de la función de estado f respecto al ruido en el modelo w: W[i,j] = δf[i] (x̂ , uk , 0) δw[j] k−1|k−1 (5.19) • C será la jacobiana de la función de salida h respecto al estado x: C[i,j] = δh[i] (x̂ , 0) δx[j] k|k−1 (5.20) • V será la jacobiana de la función de salida h respecto al ruido en el sensor v: V[i,j] = δh[i] (x̂ , 0) δv[j] k|k−1 (5.21) Al igual que antes, en la fase de predicción se realiza el cálculo del estado actual (ecuación 5.22) y de la covarianza del error (conocida como P ) a partir de la covarianza del error en instante anterior (ecuación 5.23). x̂k|k−1 = f (x̂k−1|k−1 , uk , 0) (5.22) Pk|k−1 = Ak Pk−1|k−1 ATk + Wk Qk−1 WkT (5.23) 66 5.3. Observadores de Estado para Sistemas No Lineales Para la fase de corrección del filtro de Kalman extendido, también se realiza la actualización de la ganancia de Kalman usando la covarianza del error calculada en la fase de predicción (ecuación 5.24), se toman las medidas y se corrige la estimación del estado calculado en la fase de predicción (ecuación 5.25), y por último se actualiza la covarianza del error (P ) con la ganancia de Kalman y la covarianza del error calculada en el instante anterior (ecuación 5.26). Kk = Pk|k−1 CkT (Ck Pk|k−1 CkT + Vk Rk VkT )−1 (5.24) x̂k|k = x̂k|k−1 + Kk (yk − h(x̂k|k−1 , 0)) (5.25) Pk|k = (I − Kk Ck )Pk|k−1 (5.26) Como vemos, el filtro de Kalman extendido es una forma de obtener aproximaciones de primer orden de los términos óptimos. Cuando el modelo es extremadamente no lineal, estas aproximaciones pueden generar esperanzas y covarianzas muy distintas a las esperanzas y covarianzas reales. Estas discrepancias, pueden conducir a un mal funcionamiento del filtro o incluso a su divergencia [116]. Otro inconveniente del filtro de Kalman extendido es que requiere el cálculo de las matrices jacobianas (ecuaciones 5.18 a 5.21), lo cual no es trivial en la mayoría de los casos, pudiendo producirse errores de cálculo difíciles de detectar. 5.3.2.3 Unscented Kalman Filter A pesar de las ventajas que EKF proporciona para su uso en sistemas no lineales, como acabamos de ver también tiene ciertos problemas o inconvenientes. Con la intención de solucionar estos problemas surgió el Unscented Kalman Filter (UKF). UKF fue propuesto por Julier y Uhlmann [55] y posteriormente ampliado y perfeccionado por Wan y van der Merwe [116]. En lugar de utilizar linealización de funciones, Julier y Uhlmann proponen realizar la transformación unscented. Esta transformación utiliza un conjunto de puntos y los propaga a lo largo de la función no lineal, eliminando así la linealización. Al igual que EKF, el filtro de Kalman Unscented es recursivo y requiere las dos etapas de predicción-corrección. La gran ventaja de esta técnica frente a EKF es que evita el cálculo de las matrices Jacobianas, presentando además una complejidad de cálculo numérico comparable a la del EKF, y además genera estimaciones de mayor orden. Existen diversos trabajos que comparan experimentalmente los resultados de ambas técnicas, entre ellos cabe destacar [80], que aplica ambas técnicas a un sistema de seguimiento de aviones por radar, o [111] para un sistema de navegación. 5. Observadores de Estados 5.3.3 67 Métodos de Horizonte Móvil Los métodos de horizonte móvil (Moving Horizon Estimator, MHE) [71], [94], [47] realizan estimaciones de estados sin utilizar linealización del modelo ni información estadística de las perturbaciones. MHE realiza las estimaciones ajustando el modelo de acuerdo a un horizonte de datos pasados y estimando, a partir del modelo ajustado, los nuevos datos. La idea básica de estimación con horizonte móvil es utilizar únicamente los N últimos datos para realizar la estimación. El horizonte se mueve hacia delante en cada instante de muestreo para poder así utilizar las medidas actuales. Supongamos que el horizonte comienza en un instante de muestreo k − N , siendo k el instante de tiempo actual. MHE realiza un proceso de dos pasos: • Minimizar una función de coste (ecuación 5.27) con respecto al estado inicial (x(k − N )) y a las perturbaciones del modelo (wk ). La función de coste empleada (ecuación 5.27), es la medida de la distancia entre la salida del sistema y la salida del estimador (ecuación 5.28) a lo largo de un intervalo de tiempo anterior al instante de tiempo para el que se requiere la estimación del estado (N intervalos hacia el pasado). minx̂k−N |k ,ŵk−N |k ,...,ŵk−1|k k−1 X T ŵj|k Q−1 ŵj|k j=k−N v̂j|k = yj − hj (xj ) + k X T v̂j|k R−1 v̂j|k(5.27) j=k−N (5.28) • Posteriormente, partiendo del estado inicial óptimo y de las perturbaciones óptimas, se itera recursivamente el modelo desde el instante t − N hacia el futuro para estimar el estado en el instante o instantes siguientes. En la figura 5.4 puede verse un esquema del funcionamiento del MHE. En la literatura cabe destacar el trabajo de Haseltine y Rawlings [49] en el que se compara “de manera crítica” la aproximación del estimador con horizonte deslizante y el filtro de Kalman extendido como estimadores para sistemas no lineales. 5.3.4 Programación Genética Una propuesta adicional a la hora de estimar los estados de un sistema no lineal consiste en utilizar algoritmos genéticos [119, 120, 83, 16]. Algunos autores proponen la utilización de algoritmos evolutivos como solución a la hora de seleccionar los valores más adecuados de la matriz de ganancias del 68 5.3. Observadores de Estado para Sistemas No Lineales Estado x Estimación para k Estimación para k+1 k-N k-N+1 k k+1 Tiempo N Figura 5.4: Estimación por horizonte móvil. observador. Consideremos el sistema no lineal de las ecuaciones 5.29 y 5.30: xk = f (xk−1 , uk−1 ) (5.29) yk = h(xk ) (5.30) Para solucionar el problema de la construcción de un observador de estados se propone la siguiente estructura (ecuaciones 5.31 y 5.32): x̂k|k = x̂k|k−1 + K(²k|k−1 , uk−1 ) · ²k|k−1 ²k|k−1 = yk − h(x̂k|k−1 ) (5.31) (5.32) Donde ²k|k−1 indica el error a priori de la salida, x̂k|k−1 es el estado estimado a priori, y K(·) es una función que depende directamente de las funciones del error a priori del sistema y de la entrada. El problema radica en identificar la función K(·) de tal manera que se minimice la media normalizada del error en la salida (ecuación 5.33) dado un conjunto de pares entrada salida {uk , yk }nk=1 . s = N 1 X k²k k N (5.33) k=1 En el caso de que se desconozca el modelo del sistema el problema se puede reducir a la identificación simultánea del modelo del sistema y de la matriz de ganancia [119].