Laboratorio de Control Automatico Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Tampico
Control de un proceso de 2° Orden por Modelo de espacio de estados
Profesor: Dr. Roberto Rodríguez Said
Armando Vázquez Ramírez
508371
Miguel Ángel Martínez Banda
509346
Omar Artemio Flores Flores
510484
1
Tabla de contenido Tabla de contenido .............................................................................................................................. 2 Objetivo ............................................................................................................................................... 3 Marco Teórico ..................................................................................................................................... 3 Diagrama de Bloques .......................................................................................................................... 4 Diagramas eléctricos con el procedimiento de diseño .................... .............................. ................... .................. .................. .................. .............. ..... 5 Código comentado .............................................................................................................................. 6 Resultados ........................................................................................................................................... 7 Conclusiones ....................................................................................................................................... 8 Bibliografía .......................................................................................................................................... 8 Anexo: Código en Matlab .................................................................................................................. 10
2
Objetivo Controlar un proceso de 2do orden en este caso la posición de un motor de corriente directa con encoder óptico usando el modelo de espacio de estados. El control se hace a través de un vector de ganancias K retroalimentado a cada variable de estado.
Marco Teórico El modelado por espacio de estados es una representación matricial del proceso a controlar en el tiempo continuo o discreto a partir de las ecuaciones diferenciales que componen la dinámica del sistema. La principal ventaja de este modelo es que facilita la representación de sistemas con múltiples entradas y múltiples salidas, además que toda la dinámica del sistema se representa por ecuaciones diferenciales o de diferencia de primer orden. Esta representación matemáticamente se realiza de la siguiente manera:
Donde x(t) son las variables de estados, y(t) es la salida del sistema y u(t) es la entrada. Para el diseño de la ley de control se supone que se cuenta en todo momento con el valor de cada uno de los estados de la planta a controlar, y se determina la acción de control u (entrada de control a la planta) como una combinación lineal de los estados. Los coeficientes de esa “retroalimentación de estados” lo
agrupamos en el vector que denominamos – K. K. La determinación de K, para los sistemas controlables, está ligada a los valores propios (eigenvalores) del sistema retroalimentado y el problema se reduce en asignar un conjunto de valores propios que correspondan con una performance temporal satisfactoria en términos de tiempo de crecimiento, tiempo de establecimiento, sobrepico, etc.
3
Metodología
Se planteó el modelo de espacio de estados de la planta a controlar. Con los criterios de diseño (sobretiro del 15% y 0.5 segundos de tiempo de establecimiento), se encontraron los polos deseados. En MATLAB, usando la instrucción place, se encontraron las ganancias del controlador. Se construyó un puente H para ser usado como driver. Se implementó en LABVIEW el controlador propuesto.
Diagrama de Bloques
Referencia
RESTA
Planta modelada como espacio de estados
Controlador (Vector K)
PWM
Salida Analógica de la DAQ
Driver Puente H
Motor DC
Encoder óptico
Entrada Analógica de la DAQ
Los recuadros rellenos son hardware y los recuadros blancos son parte del VI en LABVIEW.
4
Diagramas eléctricos con el procedimiento de diseño Se realizó un driver con acoplamiento óptico con el fin de aislar la DAQ del circuito de potencia y evitar dañar la tarjeta DAQ. 2 2 4 4 4 1
R1 R2 Diodos Q1 Q2 M
27 Ω 1k Ω 1N4004 2N2222 TIP 32 Motor pololu 12V
de
5
Código comentado
1. DAQ assistant de adquisición de posición configurado como contador digital 2. Variable local de posición 3. Variable local de velocidad 4a Gráfica de posición deseada vs posición real 4b Gráfica de velocidad 5. Ganancia K1 6. Ganancia K2 7. Suma de las aportaciones del vector K como valor escalar. 8. Variable local de posición deseada. 9. Señal error. Resta de posición deseada menos señal manipuladora obtenida en (7). 10. Switch de encendido del controlador. 11. Esta condición sirve para prender o apagar el controlador. Esto es útil debido a que en ocasiones al darle stop al VI, se queda prendida la salida de la DAQ. Por eso se utilizó para apagar el controlador antes de apagar el VI. 12. Generador de la onda cuadrada del PWM a 800 Hz con amplitud de 2.5 V y offset de 2.5V
13. Salida de la DAQ analógica con giro en sentido positivo. 6
14. Salida de la DAQ analógica con giro en sentido negativo. 15. Condición de la estructura de casos en donde se busca el signo del error para decidir el sentido de giro 16. Estructura de casos que modifica la salida del PWM al canal ao0 o ao1 dependiendo del signo del error para modificar el sentido de giro. 17. Tiempo de muestreo del proceso de control y escritura a puertos analógicos de la DAQ. Este tiempo es de 1 ms para que el control de posición sea fino. 18. Tiempo de muestreo del proceso de lectura de posición y cálculo de la velocidad. Este tiempo es de 45 ms para que la resolución de la velocidad se mantenga con poco ruido, ya que a menor tiempo la lectura se mostró ruidosa.
Resultados El modelo espacio de estados con el que se trabajó, obtenido en MATLAB es el siguiente: A
C x1 x2 x1 0 1 x2 0.04684 -1.981
B
x1 x2 y1 1 0
D u1 x1 -11.17 x2 2495
u1 y1 0
Donde las variables de estado son x1=posición; x2=velocidad. De acuerdo a los criterios de diseño ya mencionados, sobretiro del 15% y 0.5 segundos de tiempo de
establecimiento se obtuvieron los siguientes polos deseados.
De ahí se obtuvieron los siguientes valores propios para el vector K:
[ ]
7
Posteriormente se implementaron estos valores en el VI arriba comentado con los resultados mostrados en la siguiente gráfica:
En la gráfica se pueden apreciar cambios de referencia de 1080 a 0, de 0 a -1080, de -1080 a 0, de 0 a 360, de 360 a -360, de -360 a -1500, de -1500 a 1500. La línea roja es la posición deseada y la línea blanca es la señal de posición real generada por el encoder óptico. Claramente se puede apreciar que comportamiento del sistema coincide con el de diseño sin importar la magnitud del escalón ni el sentido de giro.
Conclusiones El desempeño del controlador fue el esperado ante los diferentes cambios de referencia que se le dieron. Gracias a la correcta caracterización por la Secuencia Binaria Pseudo-aleatoria (PRBS, por sus siglas en inglés) el modelo con el que se trabajó y el controlador diseñado funcionó de acuerdo a lo diseñado en todos los cambios de referencia sin importar la magnitud del escalón. Esto se menciona a raíz de los resultados de prácticas anteriores en las que la caracterización se realizó únicamente con una entrada escalón, pues el desempeño de su controlador varió con respecto de la magnitud del escalón. Este controlador ha tenido un desempeño más fino que los implementados anteriormente.
Bibliografía Fernández , R., Flury, C., & Di Benedetto, A. (s.f.). Dinámica de sistemas sistemas y control. Recuperado el 26 de abril de 2011, de CAPITULO VIII: Diseño en el espacio de estados: http://www.ib.cnea.gov.ar/~dsc/capitulo8/Capitulo8.htm Lopez Hurtado, I. (2010). Control Engineering Lab Notes. 8
9
Anexo: Código Código en Matlab %% Entradas Mp=15; Tss=.5; sigma=-4/Tss; ji=sqrt((log(Mp/100 ji=sqrt((log(Mp/100)^2/(pi^2+(l )^2/(pi^2+(log(Mp/100 og(Mp/100))^2))); ))^2))); wn=sigma/ji; wd=wn*sqrt(1-ji^2); p1=sigma+j*wd; p2=sigma-j*wd; P=[p1 p2]; K=place(A,B,P); %% VERIFICANDO AF=A-B*K; test=eig(AF); % los valores de test deben de ser igual a los de P %% Gráfica de la respuesta modelo=ss(AF,B,C,D); step(modelo)
10