informe final control

12
Sánchez J. Augusto, Sarmiento Marlon. Control PID. ResumenEl finalidad de este proyecto es realizar la discretización y el análisis de la respuesta transitoria para dos sistemas propuestos, además de la implementación de estos sistemas en un microcontrolador utilizando la ecuación de diferencias. I. INTRODUCCIÓN El control automático tiene un papel muy importante en el avance de la ingeniería y la ciencia En la actualidad, podemos ver sus diversas aplicaciones que son de gran importancia en sistemas como vehículos de transporte, sistemas robóticos y la industria en general. El control automático se convirtió en una parte importante de los procesos industriales y de fabricación. Ejemplo de esto, sistemas de automatización, esenciales en el diseño y ensamble de automóviles y camiones en la industria automotriz. También se puede destacar su importancia en las operaciones industriales como el control de presión, temperatura, humedad, viscosidad y flujo en industrias como petróleo y petroquímica. Como conclusión se podría decir que el control automático proporciona los medios para obtener el comportamiento más óptimo de los sistemas dinámicos, simplificar operaciones repetitivas y rutinarias, que se ven reflejados en el aumento la productividad. II. MARCO TEÓRICO A. Modulo EFm-JM60 El modulo EFM-JM60, es el sistema de desarrollo más pequeño que existe para el microcontrolador MC9S08JM60 de la empresa FREESCALE ®. En el encontraras todo lo necesario para trabajar con este poderoso microcontrolador. Algunas características de este microcontrolador son: Puerto USB Full-Speed 2.0 con regulador de 3.3v interno. Velocidad de operación de 48MHz con bus interno de 24MHz. 60KB de memoria Flash, 4KB de memoria RAM, y 256 B de memoria RAM dedicada para el puerto USB. 12 canales ADC de 12 bits. Comparador. análogo. 2 módulos SCI para comunicación RS232. Modulo SPI. Modulo I2C. 1 temporizador de 2 canales y 1 temporizador de 16 canales con resolución de 16bits. Configurables para modulo CCP (Capture, Compare, PWM). 1 temporizador RTC con modo de seleccionable de conteo binario o en décadas. Hasta 8 entradas con interrupción por cambio de estado para teclado. Lo que hace del modulo EFm-JM60 un producto realmente practico y poderoso, es que tiene la capacidad de reprogramar su memoria FLASH directamente desde el puerto USB, lo que se puede interpretar UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA INFORME PROYECTO FINAL CONTROL PID Sánchez Caballero, Jorge Augusto, 1095788474; Sarmiento Patiño, Marlon, 1098612505. E069. Ingeniería en Electrónica. Unidades Tecnológicas de Santander 1

Upload: george-sc

Post on 01-Jul-2015

410 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Resumen—El finalidad de este proyecto es realizar la discretización y el análisis de la respuesta transitoria para dos sistemas propuestos, además de la implementación de estos sistemas en un microcontrolador utilizando la ecuación de diferencias.

I. INTRODUCCIÓNEl control automático tiene un papel muy importante en el avance de la ingeniería y la ciencia En la actualidad, podemos ver sus diversas aplicaciones que son de gran importancia en sistemas como vehículos de transporte, sistemas robóticos y la industria en general. El control automático se convirtió en una parte importante de los procesos industriales y de fabricación. Ejemplo de esto, sistemas de automatización, esenciales en el diseño y ensamble de automóviles y camiones en la industria automotriz. También se puede destacar su importancia en las operaciones industriales como el control de presión, temperatura, humedad, viscosidad y flujo en industrias como petróleo y petroquímica.Como conclusión se podría decir que el control automático proporciona los medios para obtener el comportamiento más óptimo de los sistemas dinámicos, simplificar operaciones repetitivas y rutinarias, que se ven reflejados en el aumento la

productividad.

II. MARCO TEÓRICO

A. Modulo EFm-JM60

El modulo EFM-JM60, es el sistema de desarrollo más pequeño que existe para el microcontrolador MC9S08JM60 de la empresa FREESCALE ®. En el encontraras todo lo necesario para trabajar con este poderoso microcontrolador. Algunas características de este microcontrolador son:

Puerto USB Full-Speed 2.0 con regulador de 3.3v interno.

Velocidad de operación de 48MHz con bus interno de 24MHz.

60KB de memoria Flash, 4KB de memoria RAM, y 256 B de memoria RAM dedicada para el puerto USB.

12 canales ADC de 12 bits. Comparador. análogo.

2 módulos SCI para comunicación RS232. Modulo SPI. Modulo I2C. 1 temporizador de 2 canales y 1 temporizador de 16

canales con resolución de 16bits. Configurables para modulo CCP (Capture, Compare, PWM).

1 temporizador RTC con modo de seleccionable de conteo binario o en décadas.

Hasta 8 entradas con interrupción por cambio de estado para teclado.

Lo que hace del modulo EFm-JM60 un producto realmente practico y poderoso, es que tiene la capacidad de reprogramar su memoria FLASH directamente desde el puerto USB, lo que se puede interpretar como un programador USB embebido en el mismo sistema. El modulo EFm-JM60 lleva incorporado el microcontrolador JM60 encapsulado QFN-48, que ofrece 35 puertos I/O, un conector USB mini-AB, un pulsador para RESET, un pulsador en pin PTG0, un cristal de 12MHz,capacitores y resistencias mínimas necesarias para un correcto funcionamiento[1].

Fig 1. Modulo EFM-MC9S08JM60

B. L293D Driver de cuatro canales

El L293D un driver cuádruple de alta corriente en configuración mitad_H. El L293D está diseñado para facilitar las corrientes bidireccionales de hasta 600 mA con

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

INFORME PROYECTO FINALCONTROL PID

Sánchez Caballero, Jorge Augusto, 1095788474; Sarmiento Patiño, Marlon, 1098612505.E069. Ingeniería en Electrónica. Unidades Tecnológicas de Santander 1

Page 2: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

voltajes de 4,5 V a 36 V. estos dispositivos están diseñados para manejar cargas inductivas tales como relés, solenoides de corriente continua y motores, así como otras cargas de high current/high-voltage para distintas aplicaciones[2].

A continuación algunas de sus características principales:

Amplio rango de voltaje de 4.5 V a 36 V. Fuente de modulo logico separada (4.5 V-36V). Corriente de salida de hasta 1 A por canal. Corriente pico de salida de hasta 2 A por canal. Puede usarse para controlar cuatro motores dc

unidireccionalmente o 2 bidireccionalmente. También puede controlarse PWM, motores a pasos,

electroimanes, etc. Incluye diodos de protección para el uso de cargas

inductivas PDIP

Fig 2. L293D distribución de pines

Fig 3. L293D Equivalente eléctrico

C. CREACIÓN DE UNA GUIDE EN MATLAB

Para crear una GUI primero tenemos que llamar a la ventana de comandos de MatLab. Esto se hace picando sobre el icono file, que al abrirse nos mostrará la siguiente ventana, y seleccionamos new – GUI.

Fig. 4. Ventana principal Matlab

Seguidamente seleccionamos la opción Blank GUI para iniciar una nueva interfaz gráfica.

Fig. 5. Ventana selección tipo de Guide

Podemos abrir una GUI que ya exista, lo cual haremos después de haber guardado nuestra primera GUI o comenzar con una GUI en blanco. Las otras ofrecen una plantilla en la que ya existen algunos controles (Uicontrols), o en la que ya hay incorporado un gráfico y un menú y finalmente incorporar un ventana de diálogo.A continuación aparecerá la ventana principal de la guide. Podemos guardarla con un nombre en particular solo se debe tener en cuenta que debe guardarse en el directorio de Matlab.

Fig. 6. Ventana principal de la Guide

Después de diseñar la interfaz gráfica de usuario y el establecimiento de propiedades de los componentes, el siguiente paso es el programa de la interfaz gráfica de usuario. Usted programa de la interfaz gráfica de usuario mediante la codificación de una o más llamadas para cada uno

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

2

Page 3: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

de sus componentes. Los Callbacks son funciones que se ejecutan en respuesta a una acción determinada por el usuario. Una acción típica es hacer clic en un botón. Las funciones Callbacks se encuentran en un archivo de programa que Matlab genera automáticamente. La GUIDE añade plantillas para las devoluciones de llamada más comúnmente utilizadas por este archivo de programa, pero es posible que desee añadir otros. Para realizar dichos cambios se Utiliza el editor de Matlab para modificar el archivo [3].

Fig. 7. Plantilla de devolución de llamada

Después de haber realizado el diseño de la GUIDE con los controles necesarios se genera el algoritmo y se incluye dentro de la interfaz grafica.

D. METODO ZIEGLER-NICHOLS

Regla de sintonización de Ziegler-Nichols basada en la respuesta escalón de la planta (primer método). [4]

Tipo de controlador

Kp Ti Td

P 0

PI 0

PID 2L 0.5L

Tabla 1. Sintonización de Ziegler-Nichols

KP=1.2*T/L

Ti=2L

Td=0.5L

Kp=(1-T/2Ti)

Ki=K*T/Ti

Kd=K*TD/T

III. DESARROLLO

A. CIRCUITO RC

Los valores asignados a los condensadores y las resistencias que conforman el circuito RC se presentan a continuación:

R1=R2=R3=1MΩC1=C2=C3=1µF

Con estos valores se obtuvo la siguiente función de transferencia:

G(s)=1/(s3+5s2+6s+1)

Fig 8. Respuesta lazo abierto

Máximo periodo de muestreo ganancia -40dB T = 0.7426s

T=0.1;z=tf('z',T);disp('GT(z)=')gz=(0.0001473z2+0.000521z+0.0001147)/(z3-2.559z2+2.166z-0.6065)

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

3

Page 4: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Fig 9. Respuesta entrada escalon lazo cerradoT muestreo=0.1s

Tiempo de establecimiento sin compensador=11.2 segValor de estado estable=0.5.

PARAMETROS MAGNITUD

Función de Transferencia de la Planta 1/(s3+5s2+6s+1)tiempo de establecimiento definido para el diseño del compensador 3 segSobrepaso definido para el diseño del compensador 20%Polo dominante Z1=0.8457+0.22521iAngulo de la Planta 100.987Angulo del compensador 79.013

Compensador PIDUbicación del cero integrador 0.95Angulo del cero derivador 103.49Ubicación del cero derivador 0.89973

Valor de la ganancia proporcional 93.5Polos en lazo cerrado al agregar el compensador al sistema 0.9+/-0.02i,0.8+/-0.2i,-0.0137Tiempo de establecimiento al agregar el compensador al sistema 5.139 segSobrepaso al agregar el compensador al sistema 25.5%Estructura del controlador 93.55z^2-173.1z+79.97/(z^2 - z)

Ecuación de diferencias del controlador U(z)=93.55E(n)-173.1E(n-

1)+79.97E(n-2)+U(n-1)Observaciones: Los valores obtenidos se acercan a los estipulados, se podría disminuir un 5% el sobrepaso, pero esto ocasionaría un aumento en el tiempo de establecimiento bastante considerable.

Tabla 2. Características compensador PID

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

4

Page 5: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Fig 10. Respuesta entrada escalon con el compensador PID

PROGAMA IMPLEMENTADO EN EL MICROCONTROLADOR

Fig 11. Diagrama de fuljo del programa

float u=0; //accion de controlfloat un_1=0;//accion de control anteriorfloat error=0; //errorfloat errorn_1=0; //error anteriorfloat errorn_2=0; //error anterior al anteriorfloat out;// salidafloat setpoint=0;float vproceso=0;float k1=0;float k2=0;float k3=0;int temporal1;

extern void _Startup(void);void init_USB(void); ///SUBRUTINAS void ADCinit(void) APCTL1 = 0; ADCCFG = 99; ADCCV = 0U; ADCSC2 = 0; ADCSC1 = 0; int delay_ms(unsigned int time) unsigned int i,j; for(i=0;i<time;i++) for(j=0;j<580;j++);

void mostrar(void)

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

5

Page 6: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

LCD_pos_xy(0,0); LCD_write_string("Sp= . V"); LCD_pos_xy(0,1); LCD_write_string("Vp= . V"); LCD_pos_xy(10,0); LCD_write_string("U= %"); temporal1=0; datos(3,0,0); datos(3,1,0); datos(12,0,0); int datos(int k, int l, int m) char entero=0; char decimal=0; char decimal2=0; entero=((temporal1/100)+48); decimal=(((temporal1%100)/10)+48); decimal2=(((temporal1%100)%10)+48); LCD_pos_xy(k,l); LCD_write_char(entero); if (m==0) LCD_pos_xy(k+2,l); LCD_write_char(decimal); LCD_pos_xy(k+3,l); LCD_write_char(decimal2); else LCD_pos_xy(k+1,l); LCD_write_char(decimal); LCD_pos_xy(k+2,l); LCD_write_char(decimal2); void analogo (void) ADCSC1=0; while(ADCSC1_COCO!=1) vproceso=ADCRL*5/255; error=setpoint-vproceso; u=k1*error-k2*errorn_1+k3*errorn_2+un_1; if (u>100) u=100; if (u<0) u=0; errorn_2=errorn_1; errorn_1=error; un_1=u; out=u*255/100; PTED=out; temporal1=(int)setpoint*100; datos(3,0,0); temporal1=(int)vproceso*100;

datos(3,1,0); temporal1=(int)u; datos(12,0,1); delay_ms(155);

void main(void)

SOPT1 = 0x20; //Deshabilita el WDT init_USB(); //Inicializa el puerto USB PTEDD=255; PTED=0; LCD_init(DISPLAY_10X5|_2_LINES , DISPLAY_ON|CURSOR_BLINK); delay_ms(100); mostrar(); ADCinit(); k1=93.55; k2=173.1; k3=79.97; EnableInterrupts; //Habilita interrupciones for(;;)

/////COMUNICACION USB cdc_process(); if(cdc_kbhit()!=0) setpoint=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k1=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k2=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k3=(char)cdc_getch(); ////CONTROLADOR TMUESTREO=18.2ms analogo();

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

6

Page 7: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Figure 12. Acción de Control

Observación: Se hizo necesario aumentar el tiempo de establecimiento y el sobrepaso en el sistema para que la acción de control no fuera muy grande.

Modificación de la estructura del compensador:U(n)=4.892E(n)-8.643E(n-1)+3.797E(n-2)+U(n-1)

B. MOTOR DC

Para le implementación del sistema se utilizo la regla de sintonización de Ziegler-Nichols basada en la respuesta escalón de la planta (primer método).

Fig 13. Respuesta ante entrada Escalonen lazo abierto

L=130ms T=350ms KP=1.2*T/L=3.23Ti=2L=0.26 Td=0.5L=0.065 Kp=(1-T/2Ti)Kp=2.608 Ki=K*T/Ti Ki=1.2423Kd=K*TD/T Kd=2.0995

PROGRAMA IMPLEMENTADO EN EL MICROCONTROLADOR

Fig 14. Rutina principal del programa

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

7

Page 8: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Fig 15. Rutina principal del programa

extern void _Startup(void);void init_USB(void); ///SUBRUTINAS void ADCinit(void) APCTL1 = 0; ADCCFG = 99; ADCCV = 0U; ADCSC2 = 0; ADCSC1 = 0; int delay_ms(unsigned int time) unsigned int i,j; for(i=0;i<time;i++) for(j=0;j<580;j++);

void mostrar(void) LCD_pos_xy(0,0); LCD_write_string("Sp= . V"); LCD_pos_xy(0,1); LCD_write_string("Vp= . V"); LCD_pos_xy(10,0); LCD_write_string("U= %"); LCD_pos_xy(10,1); LCD_write_string("U= . V"); temporal1=0; datos(3,0,0); datos(3,1,0); datos(12,0,1); datos(12,1,0);

int datos(int k, int l, int m) char entero=0; char decimal=0; char decimal2=0; entero=((temporal1/100)+48); decimal=(((temporal1%100)/10)+48); decimal2=(((temporal1%100)%10)+48); LCD_pos_xy(k,l); LCD_write_char(entero); if (m==0) LCD_pos_xy((k+2),l); LCD_write_char(decimal); LCD_pos_xy((k+3),l); LCD_write_char(decimal2); else LCD_pos_xy((k+1),l); LCD_write_char(decimal); LCD_pos_xy((k+2),l); LCD_write_char(decimal2); void analogo (void) ADCSC1=0; while(ADCSC1_COCO!=1) vproceso=(float)(ADCRL*5/255); error=(float)(setpoint-vproceso); u=(float)(k1*error-k2*errorn_1+k3*errorn_2+un_1); if (u>100) u=100; if (u<0) u=0; errorn_2=(float)(errorn_1); errorn_1=(float)(error); un_1=(float)u; out=(int)(u*255/100); PTED=out; temporal1=(float)(setpoint*100); datos(3,0,0); temporal1=(float)(vproceso*100); datos(3,1,0); temporal1=(float)u; datos(12,0,1); temporal1=(float)(out*5/255); datos(12,1,0); delay_ms(150); //*******************************************************

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

8

Page 9: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

//*******************************************************//------------ Espacio de codigo principal --------------//******************************************************* void main(void) SOPT1 = 0x20; //Deshabilita el WDT init_USB(); //Inicializa el puerto USB PTEDD=255; PTED=0; LCD_init(DISPLAY_10X5|_2_LINES , DISPLAY_ON|CURSOR_BLINK); LCD_delay_ms (1000); mostrar(); ADCinit(); k1=(float)4.892; k2=(float)8.643; k3=(float)3.79; EnableInterrupts; //Habilita interrupciones for(;;) /////COMUNICACION USB cdc_process(); if(cdc_kbhit()!=0) setpoint_entero=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); setpoint_decimal=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k1_entero=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k1_decimal1=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k1_decimal2=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k2_entero=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k2_decimal1=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k2_decimal2=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k3_entero=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k3_decimal1=(char)cdc_getch(); while(!cdc_kbhit())cdc_process(); k3_decimal2=(char)cdc_getch(); setpoint=(float)(setpoint_entero+((float)(setpoint_decimal/10))); k1=(float)(k1_entero+((float)(k1_decimal1/10))+((float)(k1_decimal2/1000))); k2=(float)(k2_entero+((float)(k2_decimal1/10))+((float)(k2_decimal2/1000))); k3=(float)(k3_entero+((float)(k3_decimal1/10))+((float)(k3_decimal2/1000)));

////CONTROLADOR TMUESTREO=18.2ms analogo();

RESULTADOSA continuación se presentan los resultados obtenidos en las pruebas realizadas al sistema

Fig 16. Respuesta transitoria prueba 1

Fig 17. Respuesta transitoria prueba 2

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

9

Page 10: informe final control

Sánchez J. Augusto, Sarmiento Marlon. Control PID.

Fig 18. Respuesta transitoria prueba 3

IV. CONCLUSIONES

Para un mejor progreso en la asignatura sistemas de control, sería necesario que la universidad asignara un espacio de laboratorios, que permita un mejor desarrollo de los proyectos en un espacio adecuado y con las herramientas necesarias.

En el desarrollo del proyecto, se pudo observar que tiempos de muestreo muy pequeños, generaban problemas como sobrepaso alto que era un inconveniente para aplicar la acción de control.

En las pruebas realizadas al sistema se pudo observar las siguientes situaciones; al aumentar kp el sobrepaso aumenta de forma proporcional, aumentar ki el tiempo de establecimiento aumenta y aumentar kd disminuye el tiempo de establecimiento pero aumenta el sobrepaso de sistema.

Para un mejor rango de operación del conversor digital análogo la ganancia del amplificador operacional se redujo, disminuyendo el valor de R. Este cálculo se hizo de forma empírica, el resultado un fue mejor rango de operación. Pero cuando se implemento con el microcontrolador no se obtuvieron resultados satisfactorios, una posible causa seria la retroalimentación del conversor análogo digital, pero no se llego a ninguna conclusión sobre el problema que lo origino. La implementación de conversor digital análogo en lazo abierto presento un buen comportamiento y el rango de trabajo fue aceptable.

REFERENCIAS [1] “Modulo EFM-jm60 Datasheet”. octuplusaz.[2] “L293D Datasheet”. Texas Instruments.[3] “MATLAB® 7 Getting Started Guide”. The

MathWorks, Inc.[4] K. Ogota, “Ingenieria en Control Moderna,” Pearson-

prentice Hall. 3 edic. 1998. pags 670-673.

UNIDADES TECNOLÓGICAS DE SANTANDER - INGENIERÍA EN ELECTRÓNICA

10