Está en la página 1de 8

Diseo de controlador por retroalimentacin de espacio de estados basado en observador de orden reducido.

104682 Estrada Gaspar Ariadna Mara, 105684 Mercado Esquivel Adolfo Alexis, 105729 Monroy Reyes Alejandro, 98312 Rodrguez Aldaba Tomas, 105442 Vargas Pia Fernando Ernesto.

Resumen.- Con la aplicacin de control moderno se puede llevar a cabo el diseo de un controlador con la estrategia de espacio de estados, el cual, a diferencia del control clsico basado en funcin de transferencia, permite el manejo de varias entradas y salidas. El presente documento muestra el diseo de un controlador por retroalimentacin de estados, basado en observador de orden reducido para el control de voltaje en un capacitor de un circuito RC de tercer orden. Se realizan tres pruebas para comparar la robustez cuando se implementan observadores de orden reducido contra observadores de orden completo. Palabras clave: microcontrolador, espacio de estados, controlador, observador de orden reducido, robustez, retroalimentacin de estados, perturbacin.
I.

Siendo x (t) el vector de estados Fig(1):

Fig (1) Vector de estados.

El vector de entrada u (t) y vector de salida y (t) se muestran a continuacin Fig(2):

INTRODUCCIN

n observador de orden completo es aquel en el cual se mide un solo estado, y estima todos los estados del sistema, sin embargo en la prctica no todas las variables necesitan ser observadas, habr algunas que se podrn medir directamente y con buena precisin, por tanto no ser necesario un observador que estime todos los estados, sino uno que solo estime algunos de ellos, lo que lleva a la implementacin de un observador de orden reducido en el que se puede elegir cuales de los estados se estimaran. Tomando en cuenta que se medirn directamente uno o mas estados, y los restantes sern estimados, se pondr a prueba la robustez de los distintos sistemas al utilizar diferentes tipos de observadores (orden completo, orden reducido con 1 estado medido y 2 estados medidos) al ser sometidos a cualquier tipo de perturbaciones. La representacin en espacio de estados de un sistema lineal e invariante en el tiempo toma la siguiente forma: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

Fig (2) Vectores de entrada y salida.

La estimacin de estados es un problema que se presenta ampliamente en diversos artculos cientficos. En la mayora de los casos solo la entrada(s) y la salida(s) de un sistema son medibles y por lo tanto, la estimacin de variables juega un papel importante en el proceso de control [2], [3]. Conociendo lo mencionado anteriormente, al trabajar con sistemas en los cuales es difcil medir mediante sensores algunos de los componentes del vector de estados, se puede recurrir, si el sistema lo permite, a la estimacin por medio de un observador (de orden completo u orden reducido) de algunos de los componentes de dicho vector, para as reducir el nmero de sensores, pudiendo en algunos casos reducirse hasta la aplicacin de un nico sensor en el sistema. Existen dos tipos de observadores:

( )

Observador de orden completo: Estiman todos los componentes del vector de estados de un sistema. Observador de orden reducido: Estiman algunos de los componentes del vector de estados del sistema.

Donde la Ec(1) representa la parte dinmica del sistema, mientras que Ec(2) representa la relacin ente el estado del sistema y su salida.

Para determinar si el sistema que se est analizando es observable, es decir, que se pueden medir las variables de estado, se emplea la matriz A y la matriz C para determinar la

matriz de observabilidad, si el rango obtenido de la matriz de observabilidad es igual al grado del sistema, se establece que el sistema es observable Fig(3).

Donde P-1 es la matriz inversa de controlabilidad anteriormente definida (P= [B AB A2BAn-1B]) y(A) representa lo siguiente [4]: (A) = An + n1An1 + +2A2 + 1A + 0I Ec (4)
Ec (4) Alpha.

Una vez obtenido el vector K de retroalimentacin de estados el diagrama de bloques de espacio de estados de lazo cerrado queda d8e la siguiente manera (Fig 6).
Fig(3) Confirmacin de la observabilidad del sistema.

Adems de la observabilidad, se debe determinar si el espacio de estados es o no controlable, para comprobar si el sistema que se est analizando es controlable se emplea el rango de la matriz de controlabilidad P= [B AB A2BAn-1B] como se muestra en la Fig (4).

Fig (4) Prueba de la controlabilidad del sistema.

Fig (6) Diagrama de bloques espacio de estados en lazo cerrado.

Si el rango es igual a nmero de variables de estado entonces el sistema es controlable. La representacin en diagrama de bloques del espacio de estados en lazo abierto de un sistema se presenta a en la Fig (5).

II. PROCEDIMIENTO La realizacin de las experimentaciones est basados en un circuito RC de tercer orden que se utiliz en la practica 4. Se realizaran dos experimentos el primero est basado en un observador de estados de orden reducido con un solo estado medido y dos estados observados, el segundo experimento consta de dos estados medidos y un solo estado estimado. Se parte de los espacios de estados del sistema original Fig (#).

[ ] [
Fig(5) Diagrama de bloques espacio de estados en lazo abierto.

[ ] ] [ ][ ] [ ]

En la figura anterior no existe ningn tipo de retroalimentacin, por lo que el sistema no est siendo controlado. El vector K de ganancia de retroalimentacin de estado es necesario para controlar el sistema y se obtiene por medio de la frmula de Ackerman como se muestra en la siguiente ecuacin. [ ] ( ) ( )

Fig (#) Ecuaciones de estado.

Para el primer experimento lo primordial es separar las matrices medidas de las observadas, se redisea el sistema con el nuevo conjunto de matrices, este se puede observar en la Fig. (#) que se muestra a continuacin. [ ] [ [ Donde: [ [ ] ] ][ ]
)] [

[ ]

Ec (3)Frmula de Ackerman para el clculo del vector K de retroalimentacin.

Con lo obtenido anteriormente se procede a la realizacin de una simulacin en el software MATLAB, en la herramienta de simulink que se muestra en la Fig (#).

[ [ ] [ ]

Fig (#) Ecuaciones de estados con un estado medido

Luego se obtiene la ecuacin caracterstica del sistema de la forma: | Donde: |


Fig (#) Diagrama de observador con un estado medido

Teniendo como resultado la siguiente grfica. [ [ ] ]

Dando como resultado la siguiente ec.


( ) (

Ec. (#) Ecuacin caracterstica del sistema.

Luego se obtiene la ecuacin caracterstica deseada utilizando los polos para la respuesta requerida. Los polos propuestos para la implementacin de la ecuacin caracterstica se muestran a continuacin. La ec. caracterstica deseada se muestra en la ec. (#).
Fig (#) Respuesta observador de orden reducido 1 estado medido. Polos para respuesta deseada.

Ec. (#) Ecuacion caracterstica del sistema.

En la Fig (#) se muestra los estados medidos en la planta con los estados estimados, al ser iguales se asume que el observador de estados funciona de manera correcta. Verificando que se los resultados en la simulacin son los deseados se planea llevar a cabo la programacin del microcontrolador arduino con el siguiente cdigo fuente como base, en la Fig () se muestran algunas capturas del mismo. #include <Wire.h> #define DEVICE (0x60) #include <avr/io.h> #include <avr/interrupt.h> byte byteRead; void setup() { Wire.begin(); Serial.begin(9600); Serial.println("Start"); writeTo(I1);

Igualando las ecuaciones caractersticas se obtiene que:

Formando con estos estos la matriz L. Una vez teniendo los datos anteriores, se obtiene la matriz K de retroalimentacin, utilizando los mismos polos se obtuvo que: [ ]

Debido que el sistema presenta un gran error de estado estable se utiliza una ganancia (Nbar = 9.68) que multiplica a la entrada, para as lograr la respuesta deseada.

cli(); TCCR1A=0; TCCR1B=0; OCR1A=250; TCCR1B |= (1<<WGM12); TCCR1B |= (1<<CS10); TCCR1B |= (1<<CS11); TIMSK1=(1<<OCIE1A); sei(); } //FUNCION LOOP void loop(void) { vref(); Serial.println(x1, DEC); } //INTERRUPCION TIMER ISR(TIMER1_COMPA_vect){ if(A==1){ Vc3=analogRead(A0); x1 = ((Vc3*4.9)/1000); x2dot = -4.1322*x1 + 2.0661*I1 + 4.066*x3e - 2*x2e; x3dot = 2.0661*x1 - 0.0661*x2e - 2*x3e; x2e = Intx2dot(x2dot) + (1.968*x1); x3e = Intx3dot(x3dot) - (1.968*x1); x1r = x1 * 6.4948; x2r = x2e * 13.616; x3r = x3e * (-11.4308); //INTEGRADOR DE X2dot double Intx2dot(double x2dot) { X2int= X2int + (x2dot*0.001); return X2int; } //INTEGRADOR DE X3dot double Intx3dot(double x3dot) { X3int= X3int + (x3dot * 0.001); return X3int; }

} if (I1>10) { I1=10; } int voltaje; byte val1, val2; voltaje= ((I1+10)/4)*(4095/5); voltaje= int(voltaje); val1 = byte(voltaje>>8); val2 = byte (voltaje); val1 = byte (val1&0x0F); Wire.beginTransmission(DEVICE); // start transmission to device Wire.write(val1); // send value to write Wire.write(val2); Wire.endTransmission(); // end transmission } void vref(void) { //Voltaje referencia while (I1==0) { writeTo(0); while (Serial.available()) { byteRead = Serial.read(); if(byteRead>47 && byteRead<58){ num1=(num1*10)+(byteRead-48); } if(byteRead==32){ Serial.print(num1); I1 = num1; writeTo(I1); A=1; } } } }
Fig ()Codigo fuente observador un estado medido.

Siguiendo lo propuesto se disea un observador de orden reducido, pero ahora con dos estados medidos, los estados que se tomaran como medidos sern x1= Vc3, x3= Vc1 por lo cual se tiene que hacer una configuracin de matrices siguiendo la Fig (# ecuacione de estado) por lo que se obtiene lo siguiente mostrado en la Fig (#). [ ] [ ][ ] [ ] [
( )] [

//COMUNICACION CON EL DAC void writeTo(double I1) { if(I1 <-10 ) //Voltaje no cumple con especificaciones { I1=-10;

[ [ [ ]

] ]

[ [ ]

Fig (#) Ecuaciones de estados observador 2 estados medidos.

Ya teniendo separadas las matrices medidas y observadas se procede a obtener la ecuacion caracterstica del sistema que se obtiene definido por la ec (#). | Donde: [ [ ] ] |

Fig () Diagrama de observador de orden reducido con dos estados medidos.

Obteniendo como resultado la siguiente respuesta.

Donde se obtiene como resultado la siguiente ec. ( )

Ec () Ecuacion caracterstica

Con los polos ya establecidos anteriormente se crea una nueva ecuacion caracterstica con la respuesta deseada, la ecuacion se muestra en la ec () mostrada a continuacin.
Fig ()Respuesta con observador de orden reducido con dos estados medidos. Ec () Ecuacion caracterstica deseada.

Se igualan las ecuacion y de estas se obtiene la matriz L. [ Donde: ]

Como se puede observar en la anterior figura adems de mostrar la respuesta del sistema, se tienen la comparacin de los estados medidos con los estados observados. Despus de llevar la comprobacin de la simulacin se realiza el cdigo fuente para llevarlo a fsico, el cdigo se muestra a continuacin en la Fig (). #include <Wire.h> #define DEVICE (0x60) #include <avr/io.h> #include <avr/interrupt.h> byte byteRead; void setup() { Wire.begin(); Serial.begin(9600); Serial.println("Start"); writeTo(I1); cli(); TCCR1A=0;

Con lo anterior se procede a calcular las ganancias de retroalimentacin K teniendo como resultado. [ ]

Se tiene tambin la ganancia Nbar para eliminar el error de estado estable, con lo cual se procede a realizar la simulacin de espacio de estados por medio de simulink, el esquemtico se muestra en la Fig(#) .

TCCR1B=0; OCR1A=250; TCCR1B |= (1<<WGM12); TCCR1B |= (1<<CS10); TCCR1B |= (1<<CS11); TIMSK1=(1<<OCIE1A); sei(); } //FUNCION LOOP void loop(void) { vref(); Serial.println(x1, DEC); }

} int voltaje; byte val1, val2; voltaje= ((I1+10)/4)*(4095/5); voltaje= int(voltaje); val1 = byte(voltaje>>8); val2 = byte (voltaje); val1 = byte (val1&0x0F); Wire.beginTransmission(DEVICE); // start transmission to device Wire.write(val1); // send value to write Wire.write(val2); Wire.endTransmission(); // end transmission } void vref(void) {

//INTERRUPCION TIMER ISR(TIMER1_COMPA_vect){ if(A==1){ Vc3 = analogRead(A0); Vc1 = analogRead(A1); x1 = ((Vc3*4.9)/1000); x2 = ((Vc1*4.9)/1000); x3dot = -6.0661*x1 + 4.0661 * x2 + 4.0661*I1 2.0661*x3e; x3e = Intx3dot(x3dot) - 2*x1 - 1.968 * x2; x1r = x1*6.4948; x2r = x2*13.616; x3r = x3e*(-11.4308);

//Voltaje referencia while (I1==0) { writeTo(0); while (Serial.available()) { byteRead = Serial.read(); if(byteRead>47 && byteRead<58){ num1=(num1*10)+(byteRead-48); } if(byteRead==32){ Serial.print(num1); I1 = num1; writeTo(I1); A=1; } } } } Resultados

I1=((Nbar*1)-(x1r + x2r + x3r)); interrupts(); writeTo(I1); } } //INTEGRADOR DE X3dot double Intx3dot(double x3dot) { X3int= X3int + (x3dot * 0.001); return X3int; } //COMUNICACION CON EL DAC void writeTo(double I1) { if(I1 <-10 ) //Voltaje no cumple con especificaciones { I1=-10; } if (I1>10) { I1=10;

La figura 16 representa la respuesta de la planta en lazo abierto. Se puede apreciar que el tiempo de establecimiento es aproximadamente de 10 segundos, siendo este an menor que aquel obtenido en la simulacin que fue aproximadamente de 13 segundos.

Fig (16) Respuesta en lazo abierto de la planta.

A continuacin se muestra la respuesta en lazo cerrado aplicando nicamente la retroalimentac in de estados Esto quiere decir que se utilizaron tres sensores para obtener el valor de los estados x1, x2 y x3. La figura 17 muestra la simulacin y la figura 18 la respuesta obtenida en la prctica.

Fig (18) Respuesta simulada con retroalimentacin de estados y observador.

Fig (19) Respuesta con retroalimentacin de estados y observador de orden completo.

Fig (17) Respuesta simulada de retroalimentacin de estados.

Fig (18) Respuesta real obtenida de retroalimentacin de estados.

La respuesta obtenida fue satisfactoria aunque se puede apreciar que la planta nunca llega a 1 volt, esto se debe seguramente a que el circuito acondicionador utilizado no es perfecto debido a las tolerancias de los componentes electrnicos.

Efectivamente el tiempo de establecimiento se redujo a 2 segundos y fue altamente similar a lo que se obtuvo en la simulacin. Enseguida se implement el observador de estados, se tuvieron problemas al implementar el integrador por un error de orden de operaciones. Cabe mencionar que tambin se tuvieron problemas con el espacio de estados porque los estados no haban sido seleccionados correctamente. Una vez corregidos ambos inconvenientes, se obtuvo la siguiente respuesta. La figura 18 representa la respuesta simulada y la figura 19 muestra la respuesta obtenida del controlador con observador de orden completo.

III. CONCLUSIONES Adolfo Alexis Mercado Esquivel (Responsable experimentacin, documentacin tcnica). De la realizacin de la prctica se obtuvo una retroalimentacin de espacio de estados con observador, donde uno de los mayores inconvenientes con los cuales nos enfrentamos fue establecer las ecuaciones que nos brindaran los espacios de estados, teniendo los espacios de estados no fue tan complicado disear la retroalimentacin y el observador ya que fueron realizados en base a la respuesta que se deseaba tener. Ariadna Estrada Gaspar (Responsable de la documentacin de resultados y conclusin). En la prctica se dise un controlador con retroalimentacin de estados basado en un observador de orden completo. Los resultados fueron satisfactorios y se pudieron implementar los conocimientos adquiridos en clase Se confirmaron las ventajas de utilizar el espacio de estados y

los observadores aunque la generacin de las matrices fue ms complicado de lo que se esperaba. A diferencia de la funcin de transferencia que solo relaciona una entrada con una salida, en el espacio de estados, los estados deben ser seleccionados correctamente y una simple transformacin de funcin de transferencia a espacio de estados no funciona. La seleccin incorrecta de los estados nos arrojaba resultados errneos a la hora de implementar el observador y no fue hasta que se corrigi todo el espacio de estados que se vieron las respuestas esperadas.

Tomas Rodrguez Aldaba (Responsable general). La utilizacin de herramienta de simulacin como lo es MatLab y simulink el tooolbox simscape es de gran ayuda para mostrar las graficas y realizar comparaciones con los datos obtenidos y se pudo comprobar que la respuesta del sistema mejoro y el tiempo de carga en los capacitores se redujo considerablemente.

Fernando Ernesto Vargas Pia (Responsable de la documentacin, Introduccin y Procedimiento). Durante la prctica se aplicaron y reforzaron los conocimientos adquiridos en el curso de control II sobre control moderno (espacio de estados). Al obtener la funcin de transferencia del circuito RC y a partir de ella determinar el espacio de estados se tuvieron algunos problemas ya que se desconoca que eran los estados que se estaban determinando, MatLab en esta etapa tampoco ayud mucho (se necesitaba como estados a los voltajes en C1, C2, C3). Una vez superado ste problema se propusieron los polos para reducir el tiempo de carga del capacitor de salida a 2 segundos, con estos polos se determina el vector de ganancias de retroalimentacin K, as como el vector L de observador de estados, la funcin acker de MatLab permiti cerciorar que se estuvieran haciendo los clculos correctos. Finalmente se precedi a realizar la programacin en arduino del controlador diseado, se realizaron dos programas, en el primero se emple la funcin analogRead propia de arduino para sensar los estados de los voltajes en los capacitores, en el segundo se utilizo la estrategia de observador de orden completo para estimar los estados de los capacitores y realizar el control de la planta. En sta etapa tambin se tuvo que superar varios problemas, el mayor problema y que se soluciono de ltimo momento fue un error de operaciones en los integradores de las derivadas de estados, ste problema se identificado al utilizar el bloque embebed MatLab function de simulink, que permiti verificar las partes del algoritmo que funcionaban correctamente. Se concluye la correcta funcionalidad del control de espacio de estados con observador de orden completo, debido a su similitud de resultados obtenidos entre simulaciones y la respuesta fsica del sistema con medicin por sensores de los estados.

experimentacin, ejecucin). En esta prctica se dise un controlador con retroalimentacin de estados, basado en observador de estados de orden completo de un circuito RC pasa bajas de 3er orden. Primeramente se dedujo el espacio de estados del sistema, proponiendo como estados los voltajes en los tres capacitores (Vc1, Vc2, Vc3), y se comprob su respuesta a lazo abierto para analizar cmo se comportaba el Voltaje en el capacitor 3 (Vc3 es el voltaje que se desea controlar) , una vez conocida su repuesta se dise la retroalimentacin de estados por medio de la matriz de K en base al tiempo de establecimiento deseado( establecido en 4 segundos) y midiendo los estados por medio de lectura analgica en el controlador Arduino. En este caso se conocan los 3 estados (voltajes en los capacitores) y al multiplicarlos por la matriz K (matriz de retroalimentacin) se aplic la retroalimentacin de estados. La respuesta fue satisfactoria ya que el comportamiento del sistema a lazo cerrado implementado fsicamente fue similar a la simulacin en MatLab. Finalmente se calcul la matriz L con el fin de estimar los estados y reducir el uso de sensores de estado (medicin de estados) para Vc1 y Vc2. Como conclusin, ya que la respuesta del sistema utilizando un observador comparada con la respuesta utilizando sensores de estado fue muy similar, se puede deducir que el observador de estados estimo los estados (voltajes) correctamente y fue implementado de manera satisfactoria.

REFERENCIAS
[1] Chia-Chi Tsui, EIGHT IRRATIONALITIES OF BASIC STATE SPACE CONTROL SYSTEM DESIGN, Proceedings of the 6th World Congress on Intelligent Controland Automation, June 21 - 23, 2006, Dalian, China J. Theocharis and V. Petridis, Neural network observer for induction motor control, IG Control Systems, 1994. A. Germani, C. Manes, and P. Pepe, A new approach to state observation of nonlinear systems with delayed output, IG Transactions on Automatic Control, Vol. 47, 2002. Robert L. Williams II,Douglas A. Lawrence, LINEAR STATE-SPACE CONTROL SYSTEMS John Wiley & Sons, 2007

[2]

[3]

[4]

Alejandro

Monroy

Reyes

(Responsable

de

la