Actividad 5: Realimentación de estado mediante observadores de estado. Israel Viveros Torres Maestria en Ingeniera Mecatrónica Universidad de Guadalajara Veracruz, Mexico; [email protected] Resumen— En el presente documento se implementan las tecnicas de resolución para el diseño de un controlador por realimentación de estados, mediante la aplicacion de observadores, en esta ocasión, se efectúan los algoritmos específicos para estas tecnicas en la ejecución práctica de 2 ejercicios, los cuales se han abordado con antelación; para este análisis se evidencia las condiciones suficientes para la ejecución del método, que en nuestro caso de estudio es la observabilidad del modelo, de la cual depende la aplicacion exitosa del algoritmo de solución; de igual forma se analiza y ejecuta el incremento en el orden del modelo matemático de forma tal que se aplique un integrador adicional como supresor del error, mismo que se había presentado en anteriores análisis para los controladores; así estas dos tecnicas utilizadas de forma paralela nos permiten establecer modelos de respuesta controlada con base a un parámetro deseado permitiendo una convolucion más rápida del proceso estudiado, en ambos casos tanto para determinar el vector de observador como el de control con supresión de error hemos empleado la formulación de Ackermann de forma analítica y a su vez utilizando comandos y códigos de MatLab para una implementación eficiente y optimizada de las tecnicas antes mencionadas. Palabras clave—Ackermann, función autovalores, observabilidad, integrador. de transferencia, INTRODUCCION En trabajos anteriores hemos podido evidenciar que en control en la respuesta de una planta modelada, es necesario la aplicación de controladores, y que para hacer una asignacion completa de los autovalores de lazo cerrado, es necesario realimentar todos los estados del sistema. La realimentación de los estados requiere poder medirlos pero normalmente no tenemos acceso directo a todos los estados. Sin embargo, es común que algunos estados no sean accesibles. Una alternativa para estos casos es obtener una estimación de los estados no medibles a través de un observador de estados ya que si el sistema es observable los estados podrán ser estimados mediante un observador [2]. Un observador de estados es un sistema dinámico cuyos estados convergen a los del sistema observado. Dependiendo del número de estados observados, el observador es de orden completo o reducido. Luego puede implementarse un control con asignacion ©2021 IEEE de autovalores de lazo cerrado por realimentación de los estados observados Fig. 1. Figura 1. Diagrama de bloques para realimentación de estados observados. De esta forma lo que se busca es determinar vectores de ganancia y observador apropiados para ejecutar el control con la respuesta deseada, así eligiendo apropiadamente la matriz de ganancia L, se puede ajustar el observador para que los estados estimados converjan asintóticamente a los estados verdaderos; como ya se mencionó si el sistema es observable, se puede elegir la ganancia L para ubicar los autovalores de (A-LC) arbitrariamente, lo anterior se muestra en la figura 2 [1], que son los métodos que se aplicaran a continuación: Figura 2. Diseño de un sistema de realimentación con observadores. I. EJERCICIOS PROPUESTOS 𝑏1 = (3)(2) − (1)(0) 3 1.-Sea el sistema: S2 S1 S0 𝑥̇ = 𝑨𝒙 + 𝒃𝑢, 𝑦 = 𝒄𝒙 Donde: 𝟎 𝑨=[ −𝟐 𝟏 𝟎 ] 𝑩=[ ] 𝑪=[𝟏 −𝟑 𝟐 𝟎] 1 3 2 2 0 Como observamos no se presentan cambios de signo en la columna principal del arreglo de Routh, por lo que podemos confirmar la estabilidad del sistema. a) Analizar la estabilidad del sistema. b) Analizar la controlabilidad del sistema. Para el análisis de estabilidad iniciamos obteniendo la funcion de transferencia aplicando el método de matriz de transición; y así determinar la inversa de la matriz indicada [3]: 𝑠 (𝑠𝐼 − 𝐴) = [ 2 𝐶0 = [𝐵 −1 ] 𝑠+3 1 𝑠+3 (𝑠𝐼 − 𝐴)−1 = 2 [ 𝑠 +3𝑠+2 −2 = 𝑠2 +3𝑠+2 [1 1 ] 𝑠 +3 1 0 ][ ] 0] [𝑠−2 𝑠 2 1 0+2 0] [0 + 25] = 𝑠2 +3𝑠+2 [1 1 = 𝑠2 +3𝑠+2 [1 = 2 ] 0] [25 1 [2] 𝑠 2 + 3𝑠 + 2 G(s) = 2 𝑠 2 +3𝑠+2 Al ya tener nuestro sistema en la forma de función de transferencia podemos aplicar el criterio de Routh a fin de establecer la calidad de estabilidad de esta forma procedemos, primeramente ordenamos los coeficientes para de esta forma obtener el coeficiente b1 correspondiente, en nuestro caso particular para s0: 𝐷(𝑠) = 𝑎2 𝑠 2 + 𝑎1 𝑠1 + 𝑎0 𝐷(𝑠) = 𝑠 2 + 3𝑠 + 2 𝐴𝐵 ] Con base en los datos que ya tenemos para este ejemplo obtenemos: Aplicando los productos matriciales para B y C respectivamente se obtiene finalmente la función de transferencia: 1 Para este análisis procedemos a implementar la matriz de controlabilidad que está dada por: 0 𝐵=[ ] 2 2 𝐴𝐵 = [ ] −6 𝐶0 = [ 0 2 2 ] −6 Ahora para aplicar criterio de controlabilidad necesitamos obtener el rango de la matriz, realizando operaciones de renglón tenemos obtenemos la forma triangular superior y al no presentar filas nulas se obtiene un rango de 2: 𝐶0 = [ 1 0 −3 ] 1 𝑅𝐶 = 2 = (𝑁)𝐴 Podemos verificar que, el rango de la matriz de controlabilidad y la dimensión de la matriz del sistema son equivalentes a 2; con base en esta característica podemos definir con toda certeza que se trata de un sistema controlable. c) Analizar la observabilidad del sistema. Para este análisis procedemos a implementar la matriz de observabilidad que está definida por el modelo indicado y contando ya con las matrices componentes del modelo matemático de solución: 𝐶 𝑂𝑏 = [ ] 𝐶𝐴 0 𝐴=[ −2 𝐶𝐴 = [0 1] 1 ] 𝐶 = [1 −3 0] por lo tanto: 𝑂𝑏 = [ 0 1 1 ] 0 establecido por Ackermann para el cálculo del vector de retroalimentación, así como el polinomio característico deseado, mismo que ya se evaluó en el apartado del ejemplo anterior por sustitución directa: 𝑘 = [0 (𝑁)𝐴 = 2 = 𝑅𝑂 d) Diseñar un controlador por retroalimentación de estados tal que el sistema en lazo cerrado tenga los polos en -5 y -7. Habiendo cumplido con los requerimientos de controlabilidad podemos establecer el diseño siguiente para una ley de control de forma que podamos establecer las condiciones requeridas en el ejercicio propuesto así tomamos la representación en espacio de estado y los trasladamos a su forma canónica controlable −3 1 𝑎𝑘 (𝑠) = det(𝑠𝐼 − 𝐴 + 𝐵𝑘) 𝑠+3 𝑎𝑘 (𝑠) = |[ −1 −2 1 ] + [ ] [𝑘1 0 0 2 𝑘1 ]+[ 𝑠 0 𝑠 + 3 + 𝑘1 𝑎𝑘 (𝑠) = |[ −1 𝐶𝑜 = [ 1 0 −3 1 ] ⇒ 𝐶𝑜−1 = [ 1 0 −2 2 −3 ] + 12 [ 0 1 −3 ∅(𝐴) = [ 1 7 −3 6 −36 ]+[ −2 12 𝑘 = [0 −2 1 ] + 35 [ 0 0 −24 35 ]+[ 0 0 1 0 3 6 ][ 1 9 𝑘 = [9 33] 1] [ 3 ] 1 0 ] 1 0 ] 35 −18 ] 33 e) Diseñar un observador para el sistema. 𝑢(𝑡) = −𝑘𝑥⃗(𝑡) 0 −3 ]−[ 𝑠 1 A partir de los datos referidos se evalúan los valores de los términos relacionados como la inversa de la matriz de controlabilidad, ya evaluada con antelación; así como el remplazo de la variable “s” en el polinomio característico por la matriz A en la forma canónica controlable, para así agrupar los términos como los factores del vector de retroalimentación: ∅(𝐴) = [ −2 1 ] 𝑥⃗ + [ ] 𝑥⃗ 0 0 La expresión anterior tiene el polinomio característico denotado por la siguiente expresión para u (t), de esta forma procedemos aplicando la ley de control y desarrollando el polinomio característico: 𝑠 𝑎𝑘 (𝑠) = |[ 0 … 1] 𝐶𝑜−1 ∅(𝐴) ∆(𝑠) = 𝑠 2 + 12 𝑠 + 35 Se advierte que no se tiene filas nulas por lo que Ro es igual a 2, de forma análoga ya se conoce la dimensión de la matriz del sistema de igual valor por lo que el sistema es observable. 𝑥⃗′ = [ 0 𝑘2]| 𝑘2 ]| 0 2 + 𝑘2 ]| 𝑠 El sistema que ya se ha analizado con antelación en el punto “c” de este documento se comprueba que es totalmente observable por lo que es susceptible de implementarle un observador de estados en su control con realimentación de esta forma procedemos aplicando el modelo de Ackermann empleando en esta ocasión la matriz de observabilidad obtenida de la forma canónica: Los polos deseados son: 𝑃𝑑 = [−5 −7] 2 𝑎𝑘 (𝑠) = 𝑠 + (3 + 𝑘2) + (2 + 𝑘1) Ahora se iguala con el polinomio deseado a fin de establecer los valores del vector k: (𝑠 + 7)(𝑠 + 5) = 𝑠 2 + (12)𝑠 + (35) 2 Se desea que la convergencia del sistema a traves del observador se más rápida aplicamos un factor arbitrario de 3 en este ejemplo, obteniéndose el polinomio estimado para el observador: 𝑃𝑜 = [−15 −21] 2 𝑠 + (3 + 𝑘1)𝑠 + (2 + 𝑘2) = 𝑠 + (12)𝑠 + (35) 𝑘1 = 9 𝑘2 = 33 𝑘 = [9 33] Una vez aplicado el método de sustitución directa procedemos a realizar el método de Ackermann, para el mismo ejercicio propuesto. Primeramente establecemos el modelo matricial ∆(𝑠) = 𝑠 2 + 36𝑠 + 315 0 𝑂𝑏 = [ 2 2 ] 0 De esta forma ya es posible aplicar Ackermann utilizando las transpuestas de la matriz A y vector C: 𝐿 = [0 0 𝑂𝑏 = [ 2 −3 ∅(𝐴) = [ −2 ∅(𝐴) = [ 7 6 … 1] 𝑂𝑏−1 ∅(𝐴𝑇 ) 0 2 ] 0 𝑂𝑏−1 12 −3 ] + 36 [ 0 −2 −3 108 ]+[ −2 −72 𝐿 = [0 0 =[ 0.5 0 1] [ 0.5 1 1 ] + 315 [ 0 0 36 315 ]+[ 0 0 0.5 214 ][ 0 −66 𝐿 = ⌊107 Las raíces aumentadas parten del polinomio deseado y se estima un tercer término con la siguiente vector: 0.5 ] 0 0 ] 1 0 ] 315 𝑃𝑜 = [−5 −7 −10] Es factible ahora aplicar la formulación de Ackermann para determinar los controladores con su ganancia a fin de suprimir el error [3], figura 4: 33 ] 313 16.5⌋ Es factible comprobar los resultados a traves del comando acker implementado en MatLab [3], figura 3: Figura 4. Obtención del vector de ganancia con el uso de comando “acker”. g) Realizar la simulación del sistema en Matlab. A continuación se procede a realizar una simulacion del modelo, en la figura 5: Figura 3. Calculo de vector observador usando el comando “acker”. f) Implementar el observador con el controlador Ya una vez obtenido el vector de observador se debe implementar el control realimentado, aplicando el ajuste para eliminar el error y se dé un adecuado seguimiento al sistema en su respuesta controlada con respecto a la salida original de sistema, para esto aplicamos la ecuación matricial en forma aumentada a fin de establecer los integradores requeridos esto debido a que la ganancia para compensar e error será un término adicional en la formulación de variables de estados: 𝑥′ 𝐴 [ ]=[ 𝑦 𝐶 𝑥 0 𝐵 ] [∫ 𝑦] + [ ] 𝑓(𝑡) 0 0 𝑦(𝑡) = [𝐶 𝑥 0] [ ∫ 𝑦 ] Figura 5. Simulacion del sistema controlado en comparativo con la señal de planta y la señal de entrada. Donde: −3 𝐴𝑎 = [ 1 0 −2 0 2 0 1 0] 𝐵𝑎 = [0] 𝐶 = [0 0 0 2 0] Como se observa el sistema responde con estabilidad a la señal de perturbación en casi un tercio del tiempo original que presentaba la planta en su consideración inicial, con lo cual se demuestra el correcto funcionamiento para el proceso con la dinámica solicitada para la ejecución del mismo. (−2) + (−1) < 0 2.- Considere el sistema definido por: Determinar las condiciones de a, b, c y d para estabilidad, controlabilidad y observabilidad. Elegir algunos valores para a, b, c y d en los cuales el sistema sea estable y algunos otros en los cuales el sistema sea inestable, realizar las simulaciones correspondientes en Matlab. Para llevar a cabo este análisis primero debemos determinar la función de transferencia a fin de generar el polinomio de polos del sistema, ya que como se ha revisado anteriormente, de esta expresión depende la estabilidad del mismo [2], por lo que se obtiene a traves de: 𝐺(𝑠) = 𝐶(𝑠𝐼 − 𝐴)−1 𝐵 (𝑠𝐼 − 𝐴) = [𝑠 − 𝑎 −𝑐 (𝑠𝐼 − 𝐴)−1 = = = 1 𝑠−𝑑 [ −𝑏𝑐 − (𝑠 − 𝑑)(𝑠 − 𝑎) 𝑐 Con estos valores el polinomio tomaría la siguiente forma, donde se observa que no presenta signo negativo, y al transferirlo al criterio de estabilidad bajo el arreglo de Routh se confirma las condiciones de estabilidad: 𝑠 2 − (−3)𝑠 + [(−2)(−1) − (−1)(1)] 𝑠 2 + 3𝑠 +1 S2 S1 S0 1 3 1 1 0 Aplicando la matriz de controlabilidad se genera una matriz ya dispuesta en forma triangular superior donde se puede evaluar en forma directa su calidad de controlable, este análisis se realiza a traves de comandos de MatLab como se muestra a continuación figura 6: −𝑏 ] 𝑠−𝑑 1 𝑠−𝑑 [ −𝑏𝑐 + (𝑠 − 𝑑)(𝑠 − 𝑎) 𝑐 = [(−2)(−1)] − [(−1)(1)] > 0 𝑏 ] 𝑠−𝑎 𝐶0 = [𝐵 𝐴𝐵 ]… 1 𝑏 ][ ] 𝑠−𝑎 1 1 𝑠−𝑑+𝑏 [ ] −𝑏𝑐 + (𝑠 − 𝑑)(𝑠 − 𝑎) 𝑐 + 𝑠 − 𝑎 1 [1 −𝑏𝑐 + (𝑠 − 𝑑)(𝑠 − 𝑎) 𝐺(𝑠) = 0] [ 𝑠−𝑑+𝑏 ] 𝑐+𝑠−𝑎 (𝑠 − 𝑑 + 𝑏) −𝑏𝑐 + (𝑠 − 𝑑)(𝑠 − 𝑎) Ya habiendo obtenido la función tomamos el polinomio de polos y lo reescribimos de la siguiente manera: Figura 6. Código en MatLab para cálculo de controlabilidad. 2 𝑠 − (𝑎 + 𝑑)𝑠 + (𝑎𝑑 − 𝑏𝑐) Por simple inspeccion se debe evitar signos negativos en cada coeficiente asociado a la expresión por lo que podemos deducir que si se cumple las siguientes condiciones que permiten la estabilidad del sistema algebraicamente: 𝑎+𝑑 <0 y 𝑎𝑑 > 𝑏𝑐 Por ejemplo considerando los siguientes valores y realizando las sustituciones de las condiciones propuestas, se obtiene lo siguiente: 𝑎 = −2 𝑏 = 1 𝑐 = 1 𝑑 = −1 1 𝐶0 = [ 0 −3 ]= rango 2 1 Ahora para identificar la calidad de observabilidad del sistema con base en las condiciones previamente definidas para estabilidad y controlabilidad procedemos por medio del siguiente código en MatLab [3] figura 7, a fin de que se evalué el modelo definido por: 𝑂𝑏 = [ 𝐶 ]…. 𝐶𝐴 𝐺(𝑠) = 𝐶(𝑠𝐼 − 𝐴)−1 𝐵 Tomando las matrices de espacios de estado: 0 𝐴=[ 0 −1 1 0 −5 0 0 1 ] 𝐵 = [1] −6 1 De donde obtenemos la siguiente función: Figura 7. Código en MatLab para cálculo de observabilidad. 𝐺(𝑠) = 1 (2𝑅1 + 𝑅2 )𝑂𝑏 = [ 0 0 ] 1 De lo anterior, que se obtuvo al aplicar operaciones de renglón, se llega a una matriz identidad de rango completo, por lo que el sistema bajo las condiciones indicadas con antelación es completamente observable. Ya habiendo concluido los análisis respectivos al sistema propuesto se ejecuta la simulacion en Simulink [3] figura 8, donde se demuestra el comportamiento y la obtención de los bloques de operación del modelo: 𝑠 2 − 4𝑠 + 6 𝑠 3 + 6𝑠 2 + 5𝑠 + 1 En primera instancia se aplicara el criterio de Routh a fin de determinar en forma más específica esta propiedad del sistema; se puede observar que no existe cambio de signo en los coeficientes obtenidos para el arreglo de Routh para el sistema, es posible entonces definirla como estable: 𝐷(𝑠) = 𝑠 3 + 6𝑠 2 + 5𝑠 + 1 𝑏1 = (6)(5) − (1)(1) 29 = 6 6 29 ) (1) − (6)(0) 𝑐1 = 6 =1 29 6 ( S3 S2 S1 1 6 29 6 S0 1 5 1 0 b) Determinar una ley de control tal que los tres polos del sistema en lazo cerrado se encuentren en -0.5+2i, -0.5-2i, y -2. Figura 8. Simulacion en Simulink del sistema evaluado. 3.- Considere el sistema definido por: Empezamos determinando el polinomio deseado bajo los parámetros indicados en el ejercicio, esto lo realizamos por medio del comando “poly” de MatLab aplicado al vector que contiene los autovalores con los parámetros especificados [3] esto se muestra en el segmento de código siguiente figura 9: a) Analizar la estabilidad del sistema. Primeramente se obtiene la función de transferencia para el modelo propuesto, donde aplicando: Figura 9. Calculo de polinomio característico deseado. −93 ∅(A) = [19.25 −3 ∆(𝑠) = 𝑠 3 + 3𝑠 2 + 6.25𝑠 + 8.5 Acto seguido aplicamos la ley de control a las matrices de la representación en espacio de estados de nuestro sistema en forma canónica controlable: 𝑢(𝑡) = −𝑘𝑥⃗(𝑡) 𝑠 𝑠𝐼 = [0 0 0 𝑠 0 𝑘1 𝐵𝑘 = [ 0 0 𝑠 0 𝑎𝑘 (𝑠) = |[0 𝑠 0 0 𝑘3 0] 0 −6 𝐴=[ 1 0 −5 0 1 −1 0] 0 0 −6 0] − [ 1 𝑠 0 −5 0 1 −1 𝑘1 0 ]+[0 0 0 1 6 5 −93 −93.25 −19.25 3 ] 1 6] [19.25 22.5 1.25 7.5 0 1 1 −3 −1.25 7.5] Se corrobora los datos del vector de retroalimentación para el modelo indicado por ambos algoritmos de solución, que es lo que se deseaba demostrar en el presente documento. 0 0] 𝑠 𝑘2 0 0 −19.25 3 ] 7.5 𝑘 = [0 0 1] [1 𝑘 = [−3 𝑎𝑘 (𝑠) = det(𝑠𝐼 − 𝐴 + 𝐵𝑘) −93.25 22.5 1.25 c) Diseñar un observador para el sistema. 𝑘2 0 0 𝑘3 0 ]| 0 Se procede en forma análoga al caso 1 donde ya tenemos establecida las propiedades necesarias para el diseño del sistema aplicando un observador y controlando el sistema con la supresión de error, podemos aplicar entonces la formulación de Ackermann con base en las variables de estados, que ya conocemos y tenemos definidas en su forma canónica controlable implementamos Matlab como se muestra en la siguiente serie de comandos, donde al polinomio deseado se le aplica un factor de velocidad para convergencia de 3 de igual forma que en el caso 1, obteniéndose así el vector de observador figura 10: 𝑎𝑘 (𝑠) = 𝑠 3 + 𝑠 2 (𝑘1 + 6) + 𝑠(𝑘2 + 5) + (𝑘3 + 1) 𝑎𝑘 (𝑠) = ∆(𝑠) 𝑘 = [−3 −1.25 7.5] De nueva cuenta estableceremos tambien el cálculo de los valores anteriores aplicando el método de Ackermann tal como se realizó con anterioridad para determinar los valores del vector de retroalimentación para el sistema definido partiendo de la expresión, establecemos los valores matriciales requeridos para la ecuación: 𝑘 = [0 0 1 𝐶𝑂 = [1 0 … 1] 𝐶𝑜−1 ∅(𝐴) −6 1 1 1 𝐶𝑂−1 = [1 0 31 −6] 1 6 1 1 5 6] 1 −6 −5 −1 3 −6 −5 −1 2 −6 −5 −1 ∅(A) = [ 1 0 0 ] + 3[ 1 0 0 ] + 6.25 [ 1 0 0] … 0 1 0 0 1 0 0 1 0 1 0 +8.5 [0 1 0 0 0 0] 1 Figura 10. Calculo de observador a traves de Matlab. Obteniéndose así el vector requerido para la implementación: 𝐿 = [−3.3072 3.6867 3.509] d) Implementar el observador con el controlador. Ahora se deberá establece el controlador con el observador; de igual forma procedemos aplicando comandos de MatLab para la ejecución del sistema agregando el término adicional al polinomio deseado, a fin de supresión del error en la respuesta del sistema, lo anterior se muestra en la serie de comandos a continuación figura 11: Figura 11. Calculo de vector de realimentación Matlab. Obteniéndose así el vector de retroalimentación y el vector de supresión de error requerido para la implementación en el sistema, los cuales se muestran respectivamente: 𝐾𝑒 (1,2,3) = [2 9.1667 67.0833] II. CONCLUSIONES Con el presente reporte se han determinado las tecnicas a fin de establecer las habilidades en el diseño de un control de mayor robustez que los trabajos anteriores, ya en esta modalidad hemos tenido la facultad de establecer el estado de realimentación en forma observable para una convergencia con incremento en la dinámica de su velocidad de respuesta, además de lograr la supresión de error que generaba la realimentación en sus etapas iniciales, de esta forma se establecen aptitudes y conocimientos fundamentales para el correcto diseño y optimización de los sistemas de control en sistemas dinámicos, ya que como se observó a lo largo del desarrollo de los sistemas, la conexión controlador-observador, es efectivamente un controlador dinámico que realimenta la salida, por ende es necesario agregar un precompensador para reducir el error en estado estacionario ante una entrada o perturbación. Con base en lo anterior cabe mencionar el gran valor de la formulación de Ackermann para la eficiente resolución de estas condiciones, así de igual forma resulta cada vez más benéfico en forma sustancial la aplicación de la herramienta Matlab ya que optimiza los trabajos de cálculo y simulacion de los modelos de forma ágil y precisa. 𝐾𝑒 (4) = [7.0833] e) Realizar la simulación del sistema en Matlab figura 8. REFERENCIAS [1] [2] [3] Figura 8. Simulacion en Simulink del sistema controlado haciendo comparativa de las respuestas. Sanchez Peña R.. Introduccion a la teorıa de control robusto. Asociacion Argentina de Control Automatico, 1992. K. Ogata, Ingenierı́a de control moderna, 5.a ed. Madrid, Pearson Educación, S.A. 2010. K. Ogata, Problemas de Ingenieria de Control Utilizando Matlab, 1.a ed. Madrid, 2006.