Está en la página 1de 10

Control Digital.

Gua 5 1

Facultad: Ingeniera.
Escuela: Electrnica.
Asignatura: Control Digital.
Lugar de ejecucin: Instrumentacin y Control (Edificio
3, 2da planta)

Implementacin de Controlador PID con PIC

Objetivos especficos

Utilizar un controlador PIC 18F4550 como controlador PID.


Programar el PIC con una aplicacin utilizando el MPLAB X IDE, el compilador
XC8 y el PICkit 2.
Conectar un sistema trmico para comprobar su funcionalidad.
Cambiar la consigna dentro del programa y comprobar la respuesta del sistema.
Modificar el programa para hacer que los parmetros puedan ser transferidos por
algn otro medio al controlador.

Materiales y equipo

1 Computadora con MPLAB X IDE v1.85, y XC8 Instalado


1 Fuente de alimentacin 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 Multmetro
1 Microcontrolador PIC 18F4550
1 Programador USB PICkit 2
19 Puentes
1 Switch
4 Cables de Conexin
9 Alambres de telefona
1 Pinza
1 Cortadora
Control Digital. Gua 5

Introduccin terica

Controlador PID
Los controladores PID son muy utilizados en la industria, pueden ser de tipo analgico o digital,
utilizando microprocesadores o microcontroladores. La ecuacin diferencial caracterstica de
ellos es como la siguiente:

Ec. 1

Donde e(t) es el error de la seal y u(t) es la entrada de control del proceso. Kp es la ganancia
proporcional, Ti es la constante de tiempo integral, y Td es la constante de tiempo derivativa.

En el dominio de la frecuencia, la funcin de transferencia para un filtro PID puede expresarse


como:

[
U (z )=K P 1+
T
T i (1z 1 )
+T d
(1z1)
T ]
E (z)
Ec. 2

Donde T es el tiempo de muestreo

Control Digital PID

La funcin de transferencia para un controlador PID digital se puede expresar de la siguiente


manera:

( z) b
U =a + + c (1z 1 )
E (z) (1z 1) Ec. 3

Esta funcin de transferencia puede ser expresada de la siguiente manera:


Donde:
(K T ) T
a 0=K P b= p c=K p d Ec. 4
Ti T

Existen distintas posibilidades para realizar de forma prctica un controlador PID, la siguiente
figura muestra la realizacin en paralelo:
Control Digital. Gua 5 3

KP

+
1
K pT
+
1
y (k )
x(k) z 1 Ti

K pT d
T
+
1 1
1
z

Figura 1. Controlador PID discreto

Los valores para K P , T d y T i pueden obtenerse a partir de las caractersticas del sistema por el
mtodo de Ziegler-Nichols de lazo abierto o lazo cerrado. 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.1s K P=2,0 , T N =9.00s y T V =0

Se tiene el clculo de los coeficientes de salida:

K p T 2.00
a=K P =2.00 b=
Ti
=
9.00
0.1 =0,02 c=
K pTd
T
=0

El algoritmo de realizacin del filtro PID paralelo de la Figura 1 tendra las siguientes partes:

a) Declaracin de variables
b) Configuracin de los perifricos del PIC que seran el ADC y PWM
c) Toma de la muestra de salida
d) Escalado de la muestra
e) Clculo del error x(k)
f) Clculo de rama proporcional x(k)*Kp
g) Clculo de rama integral
h) Clculo de rama derivativa
i) Suma de respuestas proporcional, integral y derivativa para obtener salida de
control y(k)
j) Escalado de la salida de control
k) Modificacin del Duty Cycle del PWM
l) Retardo de 100ms (la muestra se toma cada 100ms)
Control Digital. Gua 5

m) lazo hasta c)

Procedimiento de programacin en PIC:

1. Abra el programa MPLAB IDE (Aplicaciones-->Programacin)


2. Seleccione del men File la opcin New Project , aparecer la ventana de
trabajo, seleccione en Categories la opcin Microchip Embedded y en
Projects la opcin Standalone Project , luego presione el botn Next
3. En la siguiente pantalla de seleccin del dispositivo elija en Family la opcin
Advanced 8-bit MCUs (PIC18) y luego busque en Device la opcin
PIC18F4550 y d clic en Next
4. Aparecer la ventana de seleccin de herramientas, en Herramientas de Hardware
seleccione PICKit 2 y d clic en Next, aparecer la ventana de seleccionar
compilador, elija la opcin XC8(V1.20) y d clic en Next.
5. Finalmente asigne un nombre al proyecto y seleccione la ruta de la carpeta donde este
quedara alojado, puede usar las rutas por defecto asegurndose de registrarlas para
posteriores bsquedas, luego presione Finish con lo que la herramienta concluir la
creacin del proyecto, presentando el entorno de trabajo.
6. Ahora proceda a crear el archivo fuente del programa que se desea crear, 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 opcin New y luego C
Main File, escriba el nombre del archivo y presione Finish, se abrir el editor para
que pueda escribir el cdigo fuente en C que se muestra a continuacin:

//Programa para Realizar el control PID


//para sistema Trmico con terminal analgica AN0
//Utilizando la salida PWM

#include <p18f4550.h> //Cabecera de Nucleo


#include <xc.h>
#include <plib/adc.h>
#include <plib/pwm.h>
//Directivas para activar los bits de configuracion
#pragma config FOSC = INTOSCIO_EC //Oscilador Interno, Puerto A RA6 activo,
#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 depuracin disponible
#pragma config LVP = OFF //Fuente de ISCP apagada

//Definicin de variables globales

//Programa principal
Control Digital. Gua 5 5

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

eT = SETPOINT-yT; //clculo del error


iT = b*eT+iT0; //clculo de la componente integral
dT = c*(eT-eT0); //clculo de la componente derivativa
uT = iT+a*eT+dT; //clculo de la seal de respuesta del controlador
if(uT>=max){
uT = max; //Estableciendo lmite superior de la respuesta
}
else {
if(uT<=min){
uT = min; //Si est la respuesta por debajo de cero se ubica al mnimo
}
}
controlsignal=uT;
SetDCPWM1(controlsignal);
eT0=eT;
iT0=iT;//Programa para Realizar el control PID
_delay(100); //Retardo de 100ms para tomar siguiente muestra
}
}
Listado 1. Programa para controlador PID

7. Guarde el programa y proceda a su compilacin, para ello elija del men Run, la
opcin Build Project.
8. Si el proyecto se ha compilado exitosamente aparecer abajo en la ventana Output el
mensaje BUILD SUCCESSFUL, sino le notificar los errores sintcticos presentes en el
cdigo, si existen errores corrjalos y repita el proceso hasta obtener un resultado exitoso.
9. Conecte al PIC 18F4550 con el PICKit 2 que ser la herramienta para programacin y
depuracin como se muestra en la siguiente figura:

Figura 2. Conexiones PICKit 2 con PIC 18F4550


Control Digital. Gua 5 7

10. Conecte el sistema de temperatura Lucas Nlle al sistema con PIC como lo indica la
siguiente figura:

Figura 3. Conexin del PIC como PID en sistema de temperatura.

11. El mdulo Delay Line sirve para filtrar el PWM de la salida del PIC, los valores a
ajustar en l son: Modo: EXP, Escala: X0.1y potencimetro de ajuste: 0.1. Despus hay
un Control Proporcional que debe tener ganancia 2 para que cuando llegue al
mximo valor de voltaje promedio tenga un valor mximo de 10V. El controlador
proporcional que se ubica despus de la planta acondiciona los valores para que al
PIC llegue una seal de 0 a 5 voltios, por eso su ganancia es de 0.5 para dividir entre 2
la salida de la planta. Pida a su docente de laboratorio que revise las conexiones y
configuraciones de los mdulos.

12. Conecte el PICKit 2 a un puerto USB de la computadora y descargue el programa al


microcontrolador dando clic en el botn que se muestra en la Figura 4.

Figura 4. Programar dispositivo

13. Sino ha habido ningn inconveniente deber ver en la ventana Output la salida que se
muestra en la Figura 5.
Control Digital. Gua 5

Figura 5. Ventana Output, programacin completa.

14. Si aparece algn mensaje de error, verifique las conexiones del PIC y la conexin a la PC
del PICKit 2 y reintntelo, si an persisten problemas notifique a su docente de
laboratorio.
15. Encienda la fuente de alimentacin de +/-15V y mida con el voltmetro la salida del
transductor de temperatura, luego cierre el switch que coloc en el sistema trmico. El
setpoint para este caso es de 7.5 (750 dentro del programa).
16. Observe al medidor y compare si su valor obtenido es similar al de referencia, y si no
hay oscilaciones en la medida (se pudieran presentar, ya que se estn empleando valores
no calibrados para la planta en particular).
17. Apague la fuente de alimentacin de +/-15V y modifique el valor de SETPOINT
poniendo un valor de 850.0 (recuerde que la escala va de 0 a 1000 en el SETPOINT).
18. Re-compile el programa, descrguelo y corralo nuevamente. Encienda la fuente y
Observe si llega el sistema a estabilizarse en el valor deseado.
19. Apague la fuente de alimentacin, cierre el MPLAB IDE, desconecte el cable USB de la
computadora y desarme el sistema.

Anlisis de Resultados

Analice el cdigo y comprelo con el algoritmo presentado al inicio del procedimiento.


Cmo se realiza la conversin de PWM a Voltaje D.C. Para tener una salida analgica?
Fue la respuesta de la planta la esperada segn 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 ms rpidos, por ejemplo, velocidad de un motor D.C?

Investigacin Complementaria

Defina una rutina para utilizar directamente los valores de Kp, Ti y Td en el programa
para calcular los valores de los coeficientes a, b y c.
Defina una forma de enviar los valores de SETPOINT Kp, Ti y Td va un protocolo serie
(SPI o SCI) a localidades de memoria RAM del PIC para actualizarlos directamente.
Investigue cmo se pudiera emplear un timer para lograr que el tiempo de muestreo sea
Control Digital. Gua 5 9

exacto por medio de interrupciones.

Bibliografa

Ruge Ruge, Ilber adonayt, Mtodo bsico para implementar un controlador digital pid en
un microcontrolador pic para desarrollo de aplicaciones a bajo costo , GITEINCO.
Disponible en:
http://www.microvirtual.org/images/Congreso/Ponencias_CVM1/Industria/ind_11.PDF

Microchip, MPLAB X IDE Users Guide. Disponible en:


http://ww1.microchip.com/downloads/en/DeviceDoc/52027B.pdf

Hoja Tcnica Microcontrolador PIC18F4550. Disponible en:


http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf
Control Digital. Gua 5

Hoja de cotejo: 5

Gua 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 explicacin incompleta y explicacin clara de
fundamentos tericos de los fundamentos los fundamentos
tericos tericos

APLICACIN 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.(20%)
(20%) (20%)
El sistema se control
El sistema no se poda El sistema se control correctamente (20%)
controlar correctamente despus
correctamente (20%) de intervencin del Sus conclusiones tienen
docente (20%) relacin coherente y
No concluy de forma completa respecto a los
coherente a los Sus conclusiones tienen resultados registrados
resultados registrados. relacin coherente a los (30%)
(30%) resultados registrados
pero incompletas. (30%)
ACTITUD 2.5 Es un observador Participa ocasionalmente Participa propositiva e
pasivo. o lo hace integralmente en toda
constantemente pero sin la prctica.
coordinarse con su
compaero.
2.5 Es ordenado; pero no Hace un uso adecuado Hace un manejo
hace un uso adecuado de los recursos, respeta responsable y adecuado
de los recursos las pautas de seguridad; de los recursos
pero es desordenado. conforme a pautas de
seguridad e higiene.
TOTAL 100
%