Está en la página 1de 10

Control Digital.

Guía 5 1

Facultad: Ingeniería.
Escuela: Electrónica.
Asignatura: Control Digital.
Lugar de ejecución: Instrumentación y Control (Edificio
3, 2da planta)

Implementación de Controlador PID con PIC

Objetivos específicos

• Utilizar un controlador PIC 18F4550 como controlador PID.
• Programar el PIC con una aplicación utilizando el MPLAB X IDE, el compilador
XC8 y el PICkit 2.
• Conectar un sistema térmico para comprobar su funcionalidad.
• Cambiar la consigna dentro del programa y comprobar la respuesta del sistema.
• Modificar el programa para hacer que los parámetros puedan ser transferidos por
algún otro medio al controlador.

Materiales y equipo

• 1 Computadora con MPLAB X IDE v1.85, y XC8 Instalado
• 1 Fuente de alimentación 15 VCD [SO3538-8D]
• 1 Elemento PT1 (Delay Line) [SO3536-6C]
• 1 Amplificador de potencia [SO3536-7Q]
• 1 Sistema controlado de temperatura [SO3536-8T]
• 2 Controladores proporcionales [SO3536-5T].
• 1 Multímetro
• 1 Microcontrolador PIC 18F4550
• 1 Programador USB PICkit 2
• 19 Puentes
• 1 Switch
• 4 Cables de Conexión
• 9 Alambres de telefonía
• 1 Pinza
• 1 Cortadora

La ecuación diferencial característica de ellos es como la siguiente: Ec. Control Digital. utilizando microprocesadores o microcontroladores. Ti es la constante de tiempo integral. Kp es la ganancia proporcional. 2 Donde T es el tiempo de muestreo Control Digital PID La función de transferencia para un controlador PID digital se puede expresar de la siguiente manera: ( z) b U =a + + c (1−z −1 ) E (z) (1−z −1) Ec. y Td es la constante de tiempo derivativa. 4 Ti T Existen distintas posibilidades para realizar de forma práctica un controlador PID. pueden ser de tipo analógico o digital. 3 Esta función de transferencia puede ser expresada de la siguiente manera: Donde: (K T ) T a 0=K P b= p c=K p d Ec. 1 Donde e(t) es el error de la señal y u(t) es la entrada de control del proceso. la función de transferencia para un filtro PID puede expresarse como: [ U (z )=K P 1+ T T i (1−z −1 ) +T d (1−z−1) T ] E (z) Ec. Guía 5 Introducción teórica Controlador PID Los controladores PID son muy utilizados en la industria. la siguiente figura muestra la realización en paralelo: . En el dominio de la frecuencia.

0 . Guía 5 3 KP + 1 K pT + 1 y (k ) x(k) z −1 Ti K pT d T + 1 −1 −1 z Figura 1. x (k ) Es la entrada de error al controlador y y (k ) es la salida controlada Procedimiento Para un controlador PI y un tiempo de muestreo de 0.02 c= K pTd T =0 El algoritmo de realización del filtro PID paralelo de la Figura 1 tendría las siguientes partes: a) Declaración de variables b) Configuración de los periféricos del PIC que serían el ADC y PWM c) Toma de la muestra de salida d) Escalado de la muestra e) Cálculo del error x(k) f) Cálculo de rama proporcional x(k)*Kp g) Cálculo de rama integral h) Cálculo de rama derivativa i) Suma de respuestas proporcional.00 a=K P =2.00 b= Ti   = 9.00  0. T d y T i pueden obtenerse a partir de las características del sistema por el método de Ziegler-Nichols de lazo abierto o lazo cerrado. integral y derivativa para obtener salida de control y(k) j) Escalado de la salida de control k) Modificación del Duty Cycle del PWM l) Retardo de 100ms (la muestra se toma cada 100ms) . Controlador PID discreto Los valores para K P .1s K P=2.1  =0. Control Digital. T N =9.00s y T V =0 Se tiene el cálculo de los coeficientes de salida:  K p T  2.

luego presione “Finish” con lo que la herramienta concluirá la creación del proyecto. presentando el entorno de trabajo. en Herramientas de Hardware seleccione “PICKit 2” y dé clic en “Next”. Seleccione del menú “File” la opción “New Project ”. luego presione el botón “Next” 3. escriba el nombre del archivo y presione “Finish”. 6. En la siguiente pantalla de selección del dispositivo elija en “Family” la opción “Advanced 8-bit MCUs (PIC18)” y luego busque en “Device” la opción “PIC18F4550” y dé clic en “Next” 4. #pragma config WDT = OFF //Watchdog timer apagado #pragma config PBADEN = OFF //Parte baja del puerto B digitales #pragma config MCLRE = ON //MCLRE Disponible #pragma config DEBUG = ON //Modo de depuraciòn disponible #pragma config LVP = OFF //Fuente de ISCP apagada //Definición de variables globales //Programa principal . Finalmente asigne un nombre al proyecto y seleccione la ruta de la carpeta donde este quedara alojado. se abrirá el editor para que pueda escribir el código fuente en C que se muestra a continuación: //Programa para Realizar el control PID //para sistema Térmico con terminal analógica AN0 //Utilizando la salida PWM #include <p18f4550. para ello haga click derecho sobre la carpeta “Source Files” ubicada en el arbol del proyecto ubicado en la parte izquierda de la pantalla y seleccione la opción “New” y luego “C Main File”. elija la opción “XC8(V1.h> #include <plib/adc. Aparecerá la ventana de selección de herramientas. aparecerá la ventana de trabajo.20)” y dé clic en “Next”. Ahora proceda a crear el archivo fuente del programa que se desea crear. Guía 5 m) lazo hasta c) Procedimiento de programación en PIC: 1.h> #include <plib/pwm. aparecerá la ventana de seleccionar compilador.h> //Cabecera de Nucleo #include <xc. puede usar las rutas por defecto asegurándose de registrarlas para posteriores búsquedas. Control Digital. 5. Abra el programa MPLAB IDE (Aplicaciones-->Programación) 2.h> //Directivas para activar los bits de configuracion #pragma config FOSC = INTOSCIO_EC //Oscilador Interno. Puerto A RA6 activo. seleccione en “Categories” la opción “Microchip Embedded” y en “Projects” la opción “Standalone Project” .

T2CKPS1. ADCON0=0X01. Guía 5 5 void main() { // Declaración de variables locales int valor. float a= 2. float yT.02. // Modificación de la preescala del clock principal a 1Mhz IRCF2=1.T2CKPS0 //0 0 0 0 0 1 0 1 PR2=0x7C.T2OUTPS2.0.0. Control Digital. while (BusyADC()){} valor = ReadADC().0.0*100m/9s float c=0. float iT0. float eT0.T2OUTPS3. float dT.CCPxM2. float uT.//KP*Tm/Ti = 2.0. //Preescala de 4 y activación del T2 //Configurar el registro CCP1CON.//leer el Canal analógico AN0 yT = 1000. //KP float b =0.0.T2OUTPS1._. float iT=0.0. //Limpiar el Timer2 T2CON=0x05. float eT=0.0.CCPxM3.0*valor/1024.//Escala para obtener la entrada de 0 a 1000 . IRCF0=0.//Bits 4 y 5 de CCP1CON en 0 while (1){ ConvertADC(). IRCF1=0.DCxB1. float max=1000.DCxB0.0.//Configurar periodo para 500Hz de PWM TMR2=0. float min=0. // Configurar el ADC AN0 con el ADCON ADCON1=0x0E. //KP*Td/Tm Td=0.0 float SETPOINT=750.CCPxM0 //0 0 0 0 1 1 0 0 CCP1CON=0x0C.CCPxM1.T2OUTPS0. //Configurar los parámetros del PWM //_. int controlsignal. //Configurar el puerto C Bit 2 como salida del PWM TRISC2 = 0. ADCON2=0x80.TMR2ON. seleccion de modo PWM //_.

8. //cálculo de la componente integral dT = c*(eT-eT0). 9. si existen errores corríjalos y repita el proceso hasta obtener un resultado exitoso. //cálculo de la señal de respuesta del controlador if(uT>=max){ uT = max. sino le notificará los errores sintácticos presentes en el código. la opción “Build Project”. Si el proyecto se ha compilado exitosamente aparecerá abajo en la ventana “Output” el mensaje “BUILD SUCCESSFUL”. //Si está la respuesta por debajo de cero se ubica al mínimo } } controlsignal=uT. //Retardo de 100ms para tomar siguiente muestra } } Listado 1. Programa para controlador PID 7. Guarde el programa y proceda a su compilación. iT0=iT. Guía 5 eT = SETPOINT-yT. //cálculo de la componente derivativa uT = iT+a*eT+dT. SetDCPWM1(controlsignal). para ello elija del menú “Run”. eT0=eT. Conecte al PIC 18F4550 con el PICKit 2 que será la herramienta para programación y depuración como se muestra en la siguiente figura: Figura 2. Control Digital. Conexiones PICKit 2 con PIC 18F4550 . //Estableciendo límite superior de la respuesta } else { if(uT<=min){ uT = min.//Programa para Realizar el control PID _delay(100). //cálculo del error iT = b*eT+iT0.

5 para dividir entre 2 la salida de la planta. Escala: X0. . Después hay un Control Proporcional que debe tener ganancia 2 para que cuando llegue al máximo valor de voltaje promedio tenga un valor máximo de 10V. Figura 4. Control Digital. Conecte el PICKit 2 a un puerto USB de la computadora y descargue el programa al microcontrolador dando clic en el botón que se muestra en la Figura 4. 12. Sino ha habido ningún inconveniente deberá ver en la ventana “Output” la salida que se muestra en la Figura 5. Pida a su docente de laboratorio que revise las conexiones y configuraciones de los módulos. Programar dispositivo 13. los valores a ajustar en él son: Modo: EXP. Guía 5 7 10.1. por eso su ganancia es de 0. Conecte el sistema de temperatura Lucas Nülle al sistema con PIC como lo indica la siguiente figura: Figura 3. El módulo Delay Line sirve para filtrar el PWM de la salida del PIC.1y potenciómetro de ajuste: 0. El controlador proporcional que se ubica después de la planta acondiciona los valores para que al PIC llegue una señal de 0 a 5 voltios. Conexión del PIC como PID en sistema de temperatura. 11.

15. 18. 17. 14. Guía 5 Figura 5. si aún persisten problemas notifique a su docente de laboratorio.0 (recuerde que la escala va de 0 a 1000 en el SETPOINT). Control Digital. Si aparece algún mensaje de error. Para tener una salida analógica? • ¿Fue la respuesta de la planta la esperada según el valor de referencia introducido en el programa? • ¿Será suficiente el tiempo de muestreo empleado para manejar una planta de otra variable que tenga cambios más rápidos. • Investigue cómo se pudiera emplear un timer para lograr que el tiempo de muestreo sea .5 (750 dentro del programa). b y c. cierre el MPLAB IDE. Encienda la fuente y Observe si llega el sistema a estabilizarse en el valor deseado. desconecte el cable USB de la computadora y desarme el sistema.C. descárguelo y corralo nuevamente.C? Investigación Complementaria • Defina una rutina para utilizar directamente los valores de Kp. luego cierre el switch que colocó en el sistema térmico. Observe al medidor y compare si su valor obtenido es similar al de referencia. Encienda la fuente de alimentación de +/-15V y mida con el voltímetro la salida del transductor de temperatura. Ti y Td en el programa para calcular los valores de los coeficientes a. ya que se están empleando valores no calibrados para la planta en particular). y si no hay oscilaciones en la medida (se pudieran presentar. Apague la fuente de alimentación de +/-15V y modifique el valor de SETPOINT poniendo un valor de 850. El setpoint para este caso es de 7. programación completa. 19. • Defina una forma de enviar los valores de SETPOINT Kp. 16. Ti y Td vía un protocolo serie (SPI o SCI) a localidades de memoria RAM del PIC para actualizarlos directamente. • ¿Cómo se realiza la conversión de PWM a Voltaje D. Análisis de Resultados • Analice el código y compárelo con el algoritmo presentado al inicio del procedimiento. Apague la fuente de alimentación. Ventana Output. verifique las conexiones del PIC y la conexión a la PC del PICKit 2 y reinténtelo. por ejemplo. Re-compile el programa. velocidad de un motor D.

com/downloads/en/devicedoc/39632c. Método básico para implementar un controlador digital pid en un microcontrolador pic para desarrollo de aplicaciones a bajo costo . Disponible en: http://www. GITEINCO. Guía 5 9 exacto por medio de interrupciones. Bibliografía • Ruge Ruge.PDF • Microchip.pdf . Disponible en: http://ww1.pdf • Hoja Técnica Microcontrolador PIC18F4550. MPLAB X IDE User’s Guide.microchip.microvirtual. Disponible en: http://ww1. Control Digital.org/images/Congreso/Ponencias_CVM1/Industria/ind_11. Ilber adonayt.com/downloads/en/DeviceDoc/52027B.microchip.

respeta responsable y adecuado de los recursos las pautas de seguridad. relación coherente a los (30%) (30%) resultados registrados pero incompletas. TOTAL 100 % . Guía 5 Hoja de cotejo: 5 Guía 5: Control PID Implementado en PIC. Alumno: Maquina No: Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO 25 Conocimiento Conocimiento y Conocimiento completo deficiente de los explicación incompleta y explicación clara de fundamentos teóricos de los fundamentos los fundamentos teóricos teóricos APLICACIÓN DEL 70 Necesitó mucha ayuda Necesitó poca ayuda Realiza correctamente CONOCIMIENTO para realizar las para realizar las las conexiones del conexiones del sistema conexiones del sistema sistema sin ayuda. Control Digital.(20%) (20%) (20%) El sistema se controló El sistema no se podía El sistema se controló correctamente (20%) controlar correctamente después correctamente (20%) de intervención del Sus conclusiones tienen docente (20%) relación coherente y No concluyó de forma completa respecto a los coherente a los Sus conclusiones tienen resultados registrados resultados registrados. conforme a pautas de seguridad e higiene. o lo hace integralmente en toda constantemente pero sin la práctica. pero no Hace un uso adecuado Hace un manejo hace un uso adecuado de los recursos. de los recursos pero es desordenado.5 Es un observador Participa ocasionalmente Participa propositiva e pasivo.5 Es ordenado. 2. coordinarse con su compañero. (30%) ACTITUD 2.