SlideShare una empresa de Scribd logo
METODO BASICO PARA IMPLEMENTAR
UN CONTROLADOR DIGITAL PID EN UN
MICROCONTROLADOR PIC PARA
DESARROLLO DE APLICACIONES A
BAJO COSTO
(Aplicaciones en control de Potencia y la Industria)
Ilber Adonayt Ruge Ruge
Universidad de Cundinamarca
Grupo de Investigación en Tecnologías de la Información y las Comunicaciones
GITEINCO
Fusagasuga – Colombia
ilberruge@yahoo.es - iruge@unicundi.edu.co
RESUMEN
Dado el amplio uso de los controladores PID en el ámbito industrial (control de potencia
en motores de inducción, control de nivel, caudal y presión en procesos químicos entre
otros), el uso de microcontroladores para el desarrollo de este tipo de aplicaciones ha
tomado fuerza gracias a la incorporación de lenguajes de alto nivel que facilitan
ampliamente este tipo de implementaciones, además de los bajos costos de adquisición
de estos dispositivos, distribución de software de desarrollo gratuito y amplia información
en la Internet.
Este artículo tiene como propósito mostrar al lector un método de diseño práctico y
sencillo en el desarrollo de controladores digitales PID implementados en
microcontroladores PIC. Para tal fin, se tomara como ejemplo un sistema de calefacción
(heater) al cual se le realizara inicialmente un modelamiento basado en el método de
curva de reacción, calculo de parámetros y/o constantes de control PID mediante técnica
de sintonización Ziegler–Nichols y por ultimo se mostrara la metodología de
implementación de este controlador en un microcontrolador PIC16F877A, utilizando como
herramienta de validación el software de simulación ISIS Proteus.
Palabras Claves: Controlador PID, Microcontrolador, C CCS Compiler, ISIS Proteus.
( ) ∫ ∂
∂
+∂+=
t
dp
i
p
p
t
te
TKtte
T
K
teKtu
0
)(
)()(
)(
1
1)( SEST
ST
KpSU d
i






++=
s
eK
sG
s
0
0
1
)(
0
γ
τ
+
=
−
01
01
0
120
010
uu
yy
k
tt
tt
−
−
=
−=
−=
γ
τ
CONTROLADOR PID
Es interesante señalar que más de la mitad de los controladores industriales que se usan
hoy en día utilizan esquemas de control PID o PID modificado. Los controladores PID
analógicos, son principalmente de tipo hidráulico, neumático, electrónico, eléctrico o sus
combinaciones. En la actualidad, muchos de estos se transforman en formas digitales
mediante el uso de microprocesadores [1]. Se puede indicar que un controlador PID
responde a la siguiente ecuación:
(1)
donde e(t) es el error de la señal 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, el controlador PID se puede escribir como:
(2)
SINTONIZACION DE CONTROLADOR MEDIANTE ZIEGLER-NICHOLS
En lazo abierto, muchos procesos pueden definirse según la siguiente función de
transferencia:
(3)
Donde los coeficientes K0, 0τ y 0γ se obtienen de la respuesta del sistema en lazo abierto
a una entrada escalón. Se parte del sistema estabilizado en y(t) =y0 para u(t)=u0. Se aplica
una entrada escalón de u0 a u1 (el salto debe estar entre un 10% y un 20% del valor
nominal) y se registra la respuesta de la salida hasta que se estabilice en el nuevo punto
de operación [2].
Los parámetros se pueden obtener de la respuesta mostrada en la Figura 1:
(4)
00
00
0
5.022.1 ττ
τ
γ
=== dip TT
k
K
( )
( ) )(
1
1
1)(
1
1
zE
T
z
T
zT
T
KpzU d
i





 −
+
−
+=
−
−
)1(
1)(
)( 1
1
−
−
−+
−
+= zc
z
b
a
zE
zU
T
TK
c
T
TK
bKa dp
i
p
p ===
Figura 1. Respuesta de salida ante una entrada escalón.
Según Ziegler-Nichols, la relación de estos coeficientes con los parámetros del
controlador son:
(5)
CONTROLADOR DIGITAL PID
La función de transferencia para el controlador PID digital se convierte en [3]:
(6)
La función de transferencia discreta (6), también puede ser representada como [2]:
(7)
Donde:
(8)
Existen distintas posibilidades de la realización práctica de un controlador PID, una de las
mas habituales es la realización en paralelo:
Figura 2. Diseño paralelo de controlador PID.
ALGORITMO DE PROGRAMACION EN MICROCONTROLADOR
El algoritmo utilizado para programar el PIC se muestra en la Figura 3. El muestreo (T)
debe ser mayor que el tiempo de establecimiento del sistema en lazo abierto. En el
modelo Ziegler-Nichols se toma un valor 4/0τ<T .
Set Point
r(kT)
PID
Muestreo de la senal
de salida y(kT)
Calculo del error
e(kT)=r(kT)-y(kT)
Calculo del termino integral
i(kT)=b*e(kT)+i(kT0)
Calculo del termino derivativo
d(kT)=c*e(kT)-c*e(kT0)
Calculo de la salida PID
u(kT)=a*e(kT)+i(kT)+d(kT)
Transferencia de u(kT)
al actuador
i(kT0)=i(kT)
e(kT0)=e(kT)
Figura 3. Algoritmo de programación de PID digital en microcontrolador.
Para la implementación y simulación del controlador PID se utilizara el software ISIS
Proteus. Este software ofrece el modelo esquemático de un sistema de calefacción
denominado OVEN, al cual se le pueden variar sus características funcionales tales como:
Temperatura Ambiente de trabajo, resistencia térmica, constante de tiempo de
establecimiento, constante de tiempo de calentamiento, coeficiente de temperatura y
Potencia de calentamiento.
MODELAMIENTO DEL SISTEMA DE CALEFACCION
Para facilidades de simulación se establecerán los siguientes valores de parámetros
funcionales del modelo OVEN:
Temperature Ambient (°C)= 25
Thermal Resistence to Ambient (°C/W)= 0.7
Oven Time Constant (sec)= 10
Heater Time Constant (sec)= 1
Temperature coefficient (V/°C)= 1
Heating Power (W)= 120
s
e
s
eK
sG
ss
5.121
5.125
1
)(
0
0
0
+
=
+
=
−−
γ
τ
El modelo esquemático OVEN contiene un terminal sensor T que entrega un voltaje
proporcional a la temperatura del sistema. De acuerdo a los parámetros establecidos
anteriormente, este terminal entregara 1V/°C, es decir, que para una temperatura de
100°C, el terminal T entregara 100V.
Para obtener la respuesta del sistema en lazo abierto ante una entrada escalón (curva de
reacción), se utiliza el sistema de análisis interactivo de ISIS Proteus Interactive Analysis
(Graph Mode Tool), el cual interactúa con el sistema OVEN mediante el uso de un Voltage
Probe1
OV1(T), según se muestra en la Figura 4. Observar que para realizar la entrada
escalon de 0V a 2V se utiliza un interruptor SW1.
Figura 4. Esquemático para análisis de respuesta ante entrada escalón.
De la recta de máxima pendiente se deducen los parámetros 00 ,γτ y 0k definidos por el
análisis en lazo abierto de Ziegler-Nichols.
Figura 5. Determinación de los parámetros por método de curva de reacción.
Por tanto el modelo del sistema de calefacción queda definido así:
(9)
1
Hacer click derecho sobre el Interactive Analysis, seleccionar Add Traces Ctrl+A y anexar el OV1(T).
Los parámetros Kp, Ti y Td se calculan según la Regla de Sintonización de Ziegler-
Nichols basada en la respuesta al escalon [1]:
5.05.0221195.02.1 00
00
0
====== ττ
τ
γ
dip TT
k
K
Reemplazando los valores de Kp, Ti y Td en las ecuaciones dadas en (8), y estableciendo
un periodo de muestreo T=0.1s según criterio 4/0τ<T , los parámetros del controlador
discreto son:
6215.00062.01195.0 ======
T
TK
c
T
TK
bKa
dp
i
p
p
IMPLEMENTACION DE CONTROLADOR DIGITAL PID EN MICROCONTROLADOR
Consideraciones Preliminares
Se requiere de un conversor Análogo/Digital para ingresar el voltaje entregado por el
sensor T del modelo OVEN. Dado que dicho terminal entrega 1V/°C, se utiliza un
divisor de voltaje para adecuar la señal del sensor a niveles permitidos por el
conversor A/D; en este caso se utiliza un divisor de voltaje con factor 100, es decir,
que para una temperatura de 100°C (100V) el conversor recibirá 1V.
El control se realiza mediante una señal PWM proporcional a la señal generada por el
controlador.
Por tanto el uso del microcontrolador PIC16F877A [6] es pertinente para la aplicación
descrita.
Para la realización del código fuente se utilizo el compilador C CCS Compiler [4], [5]. De
acuerdo al algoritmo planteado en la Figura 4 para programación de PID en el
microcontrolador, el código fuente propuesto es:
CODIGO FUENTE EN LENGUAJE C PARA CONTROLADOR PID DISCRETO
#INCLUDE <16F877A.H>
#DEVICE ADC=10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT
VOID MAIN(){
INT16 valor, control; //Variables para lectura de ADC y señal de Control a modulo CCP
FLOAT a,b,c; //Constantes para parámetros de controlador PID
FLOAT TEMPERATURA_LIMITE; //Referencia de Temperatura
FLOAT rt,eT,iT,dT,yT,uT,iT0,eT0; //Variables de controlador PID
FLOAT max,min; //Variables para anti-windup
min=0.0;
max=1000.0;
iT0=0.0;
eT0=0.0;
a=0.1243;
b=0.0062;
c=0.6215;
TEMPERATURA_LIMITE=1200.0; //Set Point r(kT)= 120°C
setup_timer_2(t2_div_by_4,249,1); //Configuracion de Timer 2 para establecer frec. PWM a 1kHz
setup_ccp1(ccp_pwm); //Configurar modulo CCP1 en modo PWM
setup_adc_ports(all_analog); //Configurar ADC
setup_adc(adc_clock_internal);
set_adc_channel(0); //Seleccionar Canal 0 para sensor de Temperatura
while(true){
valor=read_adc(); //Leer ADC
yT=5000.0*valor/1024.0; //Escalizar señal de salida y(kT)
rT=TEMPERATURA_LIMITE;
eT=rT-yT; //Calcular senal de error e(kT)
iT=b*eT+iT0; //Calcular termino integrativo i(kT)
dT=c*(eT-eT0); //Calcular termino derivativo d(kT)
uT=iT+a*eT+dT; //Calcular senal de control u(kT)
if (uT>max){ //Anti-windup
uT=max;
}
else {
if (uT<min){
uT=min;
}
}
control=uT;
set_pwm1_duty(control); //Transferencia de senal de control al actuador
iT0=iT;
eT0=eT;
delay_ms(100); //Periodo de muestreo T=0.1s
}
}
DIAGRAMA ESQUEMATICO Y SIMULACION DE CONTROLADOR PID EN ISIS PROTEUS
Para la generación de perturbaciones se utiliza el conmutador SW1, el cual permite
cambiar el valor de la fuente de alimentación al sistema OVEN. Para el instante de tiempo
t=0s. se utilizo la fuente de alimentación BAT2 de 12V, para el instante de tiempo t=60s se
conmuto a la fuente de alimentación BAT1 de 24V y para el instante de tiempo t=105s se
conmuto nuevamente a la fuente de alimentación BAT2 de 12V. Como se puede apreciar
en la Figura 6, el controlador PID responde de manera muy eficiente, siguiendo la
referencia de 120°C establecido en el código fuente.
Figura 6. Diagrama esquemático de controlador PID en microcontrolador y resultado de la
simulación mediante Interactive Analysis.
OBSERVACIONES
Las resistencias R1 y R2 son de 99k y 1k respectivamente. La configuración mostrada en
la Figura 6 permite obtener un divisor de voltaje con factor 100.
La escalizacion de la señal de salida y(kT) en el código fuente se debe multiplicar por un
factor de 100 debido al factor de división que se utilizo para adecuar la señal del sensor
del sistema OVEN.
La simulación inicia con una magnitud de temperatura igual a 25°C en t=0s, dado que
este valor es la temperatura ambiente de trabajo del sistema OVEN.
Si desea hacer mas interactivo el sistema de control propuesto, se puede variar el código
fuente para que el valor de referencia r(kT) o Set Point pueda ser ingresado por usuario a
través de un teclado matricial o a través de un PC utilizando comunicación RS-232.
CONCLUSIONES
El uso de lenguajes de programación de alto nivel; como es el caso del compilador C CCS
Compiler, facilita ampliamente la implementación de controladores PID u otro tipo de
esquema de controlador sobre dispositivos microcontrolados, abriendo así una alternativa
de desarrollo de sistemas de control a bajo costo, dado que este lenguaje permite
fácilmente adicionar periféricos para ingreso de datos y supervisión de variables de
estado del sistema controlado; como por ejemplo teclados matriciales y LCD’s
respectivamente, y además la implementación de sistemas de comunicación tales como
USB, CAN, Ethernet, Bluetooth entre otros, ya son soportados por algunas gamas de
microcontroladores y pueden ser administrados fácilmente a través de este tipo de
compiladores.
Como bien se explica en el desarrollo de este paper, la tarea fundamental para el diseño
de un controlador PID esta en la obtención de los parámetros del sistema que se desea
controlar (planta), dado que a partir de estos parámetros se utilizan reglas de
sintonización para hallar las constantes del controlador Kp, Ti y Td. Una vez calculadas
estas constantes podrá utilizar como Template el código fuente expuesto, y solo requerirá
reemplazar el valor de las constantes del controlador PID y por supuesto el respectivo
valor de Periodo de Muestreo, el cual esta en términos de solamente un retardo.
BIBLIOGRAFIA
[1] Ogata, Katsuhiko. Ingeniería de Control Moderna. Controles PID e introducción al
control robusto. Tercera edición. Pagina 669. Editorial Prentice Hall. 1998.
[2] Garcia, Eduardo. Compilador C CCS y simulador Proteus para microcontroladores PIC.
Editorial AlfaOmega. Pagina 154. 2008.
[3] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Pagina
116. Editorial Prentice Hall. 1996.
[4] Canovas, Andrés. Manual de usuario del compilador PCW de CCS. Disponible en
internet en http://www.cursos.ucv.cl/eie48700/referencias/CCS_C_Manual.pdf.
[5] C Compiler Reference Manual March 2009. Disponible en internet en
http://www.ccsinfo.com/downloads/ccs_c_manual.pdf.
[6] PIC 16F87XA Datasheet. Disponible en internet en
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf.

Más contenido relacionado

PDF
Controlador PID
PDF
Mas de proyectos
PPT
control digital
PDF
Clase 7 pid
PDF
TEORIA PID CONTROL EN TIEMPO DISCRETO
PPT
1.2 control pid INGENIERIA DEL CONTROL
PDF
Control Discreto
PPTX
Control digital
Controlador PID
Mas de proyectos
control digital
Clase 7 pid
TEORIA PID CONTROL EN TIEMPO DISCRETO
1.2 control pid INGENIERIA DEL CONTROL
Control Discreto
Control digital

La actualidad más candente (11)

PPTX
Sintonización pid
DOCX
ziegler nichols metodo 1
PPTX
PDF
Controladores pid ajuste empírico
DOCX
Metodo de sintonizacion de controladores pid que operan con reguladores
PPT
Sistemas de control, sin morir en el intento
ODP
Clase 5 - Diseño de controladores por LGR
PPTX
sintonizacion de controladores pid
PPTX
aplicación y cálculo de reguladores
DOCX
Método de ziegler
PDF
Extracto de catálogo HT 2018
Sintonización pid
ziegler nichols metodo 1
Controladores pid ajuste empírico
Metodo de sintonizacion de controladores pid que operan con reguladores
Sistemas de control, sin morir en el intento
Clase 5 - Diseño de controladores por LGR
sintonizacion de controladores pid
aplicación y cálculo de reguladores
Método de ziegler
Extracto de catálogo HT 2018
Publicidad

Similar a Control temp (20)

PPTX
Presentación Proyecto_Chamorro Andrade_Karen Anahy_2023_08_09.pptx
PDF
Sanchezjesdely parte1
DOCX
Anteproyecto control
DOCX
Proyecto final control
PPTX
Controlador de temperatura Analógico
PPTX
CONTROL DE PROCESOS I EXPO.pptx
PPT
Metodologia de la investigacion
DOCX
Informe dav
PPTX
T-ESPE-053099-D.pptx
PDF
El controlador pid
PPTX
Presentacion del Protocolo Eduardo Hernandez Garcia.pptx
PDF
DISEÑO E IMPLEMENTACIÓN DE UN CONTROLADOR PID
PDF
Control pid
PPTX
PID_Presentacion_Orientado a fundamentos de IoT.pptx
PDF
Plc variador de velocidad ing k-nt
PDF
Plc variador de velocidad ing k-nt
PPTX
Diseño de controladores pd, pi y pid
PPTX
Proyecto 9 control de temperatura
Presentación Proyecto_Chamorro Andrade_Karen Anahy_2023_08_09.pptx
Sanchezjesdely parte1
Anteproyecto control
Proyecto final control
Controlador de temperatura Analógico
CONTROL DE PROCESOS I EXPO.pptx
Metodologia de la investigacion
Informe dav
T-ESPE-053099-D.pptx
El controlador pid
Presentacion del Protocolo Eduardo Hernandez Garcia.pptx
DISEÑO E IMPLEMENTACIÓN DE UN CONTROLADOR PID
Control pid
PID_Presentacion_Orientado a fundamentos de IoT.pptx
Plc variador de velocidad ing k-nt
Plc variador de velocidad ing k-nt
Diseño de controladores pd, pi y pid
Proyecto 9 control de temperatura
Publicidad

Último (20)

PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PPTX
clase MICROCONTROLADORES ago-dic 2019.pptx
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PPTX
Curso Corto de PLANTA CONCENTRADORA FREEPORT
PPTX
DEBL Presentación PG 23.pptx [Autoguardado].pptx
PPTX
Introduccion quimica del fuego.ffffffffffpptx
PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PPTX
Presentacion_Palcoma_Alta energia solar eolica
PPTX
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
DOC
informacion acerca de la crianza tecnificada de cerdos
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PPTX
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
PPTX
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PPTX
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PPTX
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
PDF
SISTEMAS DE PUESTA A TIERRA: Una introducción a los fundamentos de los sistem...
PDF
S15 Protección de redes electricas 2025-1_removed.pdf
Sustancias Peligrosas de empresas para su correcto manejo
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
clase MICROCONTROLADORES ago-dic 2019.pptx
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
Curso Corto de PLANTA CONCENTRADORA FREEPORT
DEBL Presentación PG 23.pptx [Autoguardado].pptx
Introduccion quimica del fuego.ffffffffffpptx
Perfilaje de Pozos _20250624_222013_0000.pdf
Presentacion_Palcoma_Alta energia solar eolica
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
informacion acerca de la crianza tecnificada de cerdos
TESTAMENTO DE DESCRIPTIVA ..............
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
SISTEMAS DE PUESTA A TIERRA: Una introducción a los fundamentos de los sistem...
S15 Protección de redes electricas 2025-1_removed.pdf

Control temp

  • 1. METODO BASICO PARA IMPLEMENTAR UN CONTROLADOR DIGITAL PID EN UN MICROCONTROLADOR PIC PARA DESARROLLO DE APLICACIONES A BAJO COSTO (Aplicaciones en control de Potencia y la Industria) Ilber Adonayt Ruge Ruge Universidad de Cundinamarca Grupo de Investigación en Tecnologías de la Información y las Comunicaciones GITEINCO Fusagasuga – Colombia ilberruge@yahoo.es - iruge@unicundi.edu.co RESUMEN Dado el amplio uso de los controladores PID en el ámbito industrial (control de potencia en motores de inducción, control de nivel, caudal y presión en procesos químicos entre otros), el uso de microcontroladores para el desarrollo de este tipo de aplicaciones ha tomado fuerza gracias a la incorporación de lenguajes de alto nivel que facilitan ampliamente este tipo de implementaciones, además de los bajos costos de adquisición de estos dispositivos, distribución de software de desarrollo gratuito y amplia información en la Internet. Este artículo tiene como propósito mostrar al lector un método de diseño práctico y sencillo en el desarrollo de controladores digitales PID implementados en microcontroladores PIC. Para tal fin, se tomara como ejemplo un sistema de calefacción (heater) al cual se le realizara inicialmente un modelamiento basado en el método de curva de reacción, calculo de parámetros y/o constantes de control PID mediante técnica de sintonización Ziegler–Nichols y por ultimo se mostrara la metodología de implementación de este controlador en un microcontrolador PIC16F877A, utilizando como herramienta de validación el software de simulación ISIS Proteus. Palabras Claves: Controlador PID, Microcontrolador, C CCS Compiler, ISIS Proteus.
  • 2. ( ) ∫ ∂ ∂ +∂+= t dp i p p t te TKtte T K teKtu 0 )( )()( )( 1 1)( SEST ST KpSU d i       ++= s eK sG s 0 0 1 )( 0 γ τ + = − 01 01 0 120 010 uu yy k tt tt − − = −= −= γ τ CONTROLADOR PID Es interesante señalar que más de la mitad de los controladores industriales que se usan hoy en día utilizan esquemas de control PID o PID modificado. Los controladores PID analógicos, son principalmente de tipo hidráulico, neumático, electrónico, eléctrico o sus combinaciones. En la actualidad, muchos de estos se transforman en formas digitales mediante el uso de microprocesadores [1]. Se puede indicar que un controlador PID responde a la siguiente ecuación: (1) donde e(t) es el error de la señal 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, el controlador PID se puede escribir como: (2) SINTONIZACION DE CONTROLADOR MEDIANTE ZIEGLER-NICHOLS En lazo abierto, muchos procesos pueden definirse según la siguiente función de transferencia: (3) Donde los coeficientes K0, 0τ y 0γ se obtienen de la respuesta del sistema en lazo abierto a una entrada escalón. Se parte del sistema estabilizado en y(t) =y0 para u(t)=u0. Se aplica una entrada escalón de u0 a u1 (el salto debe estar entre un 10% y un 20% del valor nominal) y se registra la respuesta de la salida hasta que se estabilice en el nuevo punto de operación [2]. Los parámetros se pueden obtener de la respuesta mostrada en la Figura 1: (4)
  • 3. 00 00 0 5.022.1 ττ τ γ === dip TT k K ( ) ( ) )( 1 1 1)( 1 1 zE T z T zT T KpzU d i       − + − += − − )1( 1)( )( 1 1 − − −+ − += zc z b a zE zU T TK c T TK bKa dp i p p === Figura 1. Respuesta de salida ante una entrada escalón. Según Ziegler-Nichols, la relación de estos coeficientes con los parámetros del controlador son: (5) CONTROLADOR DIGITAL PID La función de transferencia para el controlador PID digital se convierte en [3]: (6) La función de transferencia discreta (6), también puede ser representada como [2]: (7) Donde: (8) Existen distintas posibilidades de la realización práctica de un controlador PID, una de las mas habituales es la realización en paralelo:
  • 4. Figura 2. Diseño paralelo de controlador PID. ALGORITMO DE PROGRAMACION EN MICROCONTROLADOR El algoritmo utilizado para programar el PIC se muestra en la Figura 3. El muestreo (T) debe ser mayor que el tiempo de establecimiento del sistema en lazo abierto. En el modelo Ziegler-Nichols se toma un valor 4/0τ<T . Set Point r(kT) PID Muestreo de la senal de salida y(kT) Calculo del error e(kT)=r(kT)-y(kT) Calculo del termino integral i(kT)=b*e(kT)+i(kT0) Calculo del termino derivativo d(kT)=c*e(kT)-c*e(kT0) Calculo de la salida PID u(kT)=a*e(kT)+i(kT)+d(kT) Transferencia de u(kT) al actuador i(kT0)=i(kT) e(kT0)=e(kT) Figura 3. Algoritmo de programación de PID digital en microcontrolador. Para la implementación y simulación del controlador PID se utilizara el software ISIS Proteus. Este software ofrece el modelo esquemático de un sistema de calefacción denominado OVEN, al cual se le pueden variar sus características funcionales tales como: Temperatura Ambiente de trabajo, resistencia térmica, constante de tiempo de establecimiento, constante de tiempo de calentamiento, coeficiente de temperatura y Potencia de calentamiento. MODELAMIENTO DEL SISTEMA DE CALEFACCION Para facilidades de simulación se establecerán los siguientes valores de parámetros funcionales del modelo OVEN: Temperature Ambient (°C)= 25 Thermal Resistence to Ambient (°C/W)= 0.7 Oven Time Constant (sec)= 10 Heater Time Constant (sec)= 1 Temperature coefficient (V/°C)= 1 Heating Power (W)= 120
  • 5. s e s eK sG ss 5.121 5.125 1 )( 0 0 0 + = + = −− γ τ El modelo esquemático OVEN contiene un terminal sensor T que entrega un voltaje proporcional a la temperatura del sistema. De acuerdo a los parámetros establecidos anteriormente, este terminal entregara 1V/°C, es decir, que para una temperatura de 100°C, el terminal T entregara 100V. Para obtener la respuesta del sistema en lazo abierto ante una entrada escalón (curva de reacción), se utiliza el sistema de análisis interactivo de ISIS Proteus Interactive Analysis (Graph Mode Tool), el cual interactúa con el sistema OVEN mediante el uso de un Voltage Probe1 OV1(T), según se muestra en la Figura 4. Observar que para realizar la entrada escalon de 0V a 2V se utiliza un interruptor SW1. Figura 4. Esquemático para análisis de respuesta ante entrada escalón. De la recta de máxima pendiente se deducen los parámetros 00 ,γτ y 0k definidos por el análisis en lazo abierto de Ziegler-Nichols. Figura 5. Determinación de los parámetros por método de curva de reacción. Por tanto el modelo del sistema de calefacción queda definido así: (9) 1 Hacer click derecho sobre el Interactive Analysis, seleccionar Add Traces Ctrl+A y anexar el OV1(T).
  • 6. Los parámetros Kp, Ti y Td se calculan según la Regla de Sintonización de Ziegler- Nichols basada en la respuesta al escalon [1]: 5.05.0221195.02.1 00 00 0 ====== ττ τ γ dip TT k K Reemplazando los valores de Kp, Ti y Td en las ecuaciones dadas en (8), y estableciendo un periodo de muestreo T=0.1s según criterio 4/0τ<T , los parámetros del controlador discreto son: 6215.00062.01195.0 ====== T TK c T TK bKa dp i p p IMPLEMENTACION DE CONTROLADOR DIGITAL PID EN MICROCONTROLADOR Consideraciones Preliminares Se requiere de un conversor Análogo/Digital para ingresar el voltaje entregado por el sensor T del modelo OVEN. Dado que dicho terminal entrega 1V/°C, se utiliza un divisor de voltaje para adecuar la señal del sensor a niveles permitidos por el conversor A/D; en este caso se utiliza un divisor de voltaje con factor 100, es decir, que para una temperatura de 100°C (100V) el conversor recibirá 1V. El control se realiza mediante una señal PWM proporcional a la señal generada por el controlador. Por tanto el uso del microcontrolador PIC16F877A [6] es pertinente para la aplicación descrita. Para la realización del código fuente se utilizo el compilador C CCS Compiler [4], [5]. De acuerdo al algoritmo planteado en la Figura 4 para programación de PID en el microcontrolador, el código fuente propuesto es: CODIGO FUENTE EN LENGUAJE C PARA CONTROLADOR PID DISCRETO #INCLUDE <16F877A.H> #DEVICE ADC=10 #USE DELAY(CLOCK=4000000) #FUSES XT,NOWDT VOID MAIN(){ INT16 valor, control; //Variables para lectura de ADC y señal de Control a modulo CCP FLOAT a,b,c; //Constantes para parámetros de controlador PID FLOAT TEMPERATURA_LIMITE; //Referencia de Temperatura FLOAT rt,eT,iT,dT,yT,uT,iT0,eT0; //Variables de controlador PID FLOAT max,min; //Variables para anti-windup min=0.0; max=1000.0; iT0=0.0; eT0=0.0; a=0.1243;
  • 7. b=0.0062; c=0.6215; TEMPERATURA_LIMITE=1200.0; //Set Point r(kT)= 120°C setup_timer_2(t2_div_by_4,249,1); //Configuracion de Timer 2 para establecer frec. PWM a 1kHz setup_ccp1(ccp_pwm); //Configurar modulo CCP1 en modo PWM setup_adc_ports(all_analog); //Configurar ADC setup_adc(adc_clock_internal); set_adc_channel(0); //Seleccionar Canal 0 para sensor de Temperatura while(true){ valor=read_adc(); //Leer ADC yT=5000.0*valor/1024.0; //Escalizar señal de salida y(kT) rT=TEMPERATURA_LIMITE; eT=rT-yT; //Calcular senal de error e(kT) iT=b*eT+iT0; //Calcular termino integrativo i(kT) dT=c*(eT-eT0); //Calcular termino derivativo d(kT) uT=iT+a*eT+dT; //Calcular senal de control u(kT) if (uT>max){ //Anti-windup uT=max; } else { if (uT<min){ uT=min; } } control=uT; set_pwm1_duty(control); //Transferencia de senal de control al actuador iT0=iT; eT0=eT; delay_ms(100); //Periodo de muestreo T=0.1s } } DIAGRAMA ESQUEMATICO Y SIMULACION DE CONTROLADOR PID EN ISIS PROTEUS Para la generación de perturbaciones se utiliza el conmutador SW1, el cual permite cambiar el valor de la fuente de alimentación al sistema OVEN. Para el instante de tiempo t=0s. se utilizo la fuente de alimentación BAT2 de 12V, para el instante de tiempo t=60s se conmuto a la fuente de alimentación BAT1 de 24V y para el instante de tiempo t=105s se conmuto nuevamente a la fuente de alimentación BAT2 de 12V. Como se puede apreciar en la Figura 6, el controlador PID responde de manera muy eficiente, siguiendo la referencia de 120°C establecido en el código fuente.
  • 8. Figura 6. Diagrama esquemático de controlador PID en microcontrolador y resultado de la simulación mediante Interactive Analysis. OBSERVACIONES Las resistencias R1 y R2 son de 99k y 1k respectivamente. La configuración mostrada en la Figura 6 permite obtener un divisor de voltaje con factor 100. La escalizacion de la señal de salida y(kT) en el código fuente se debe multiplicar por un factor de 100 debido al factor de división que se utilizo para adecuar la señal del sensor del sistema OVEN. La simulación inicia con una magnitud de temperatura igual a 25°C en t=0s, dado que este valor es la temperatura ambiente de trabajo del sistema OVEN. Si desea hacer mas interactivo el sistema de control propuesto, se puede variar el código fuente para que el valor de referencia r(kT) o Set Point pueda ser ingresado por usuario a través de un teclado matricial o a través de un PC utilizando comunicación RS-232.
  • 9. CONCLUSIONES El uso de lenguajes de programación de alto nivel; como es el caso del compilador C CCS Compiler, facilita ampliamente la implementación de controladores PID u otro tipo de esquema de controlador sobre dispositivos microcontrolados, abriendo así una alternativa de desarrollo de sistemas de control a bajo costo, dado que este lenguaje permite fácilmente adicionar periféricos para ingreso de datos y supervisión de variables de estado del sistema controlado; como por ejemplo teclados matriciales y LCD’s respectivamente, y además la implementación de sistemas de comunicación tales como USB, CAN, Ethernet, Bluetooth entre otros, ya son soportados por algunas gamas de microcontroladores y pueden ser administrados fácilmente a través de este tipo de compiladores. Como bien se explica en el desarrollo de este paper, la tarea fundamental para el diseño de un controlador PID esta en la obtención de los parámetros del sistema que se desea controlar (planta), dado que a partir de estos parámetros se utilizan reglas de sintonización para hallar las constantes del controlador Kp, Ti y Td. Una vez calculadas estas constantes podrá utilizar como Template el código fuente expuesto, y solo requerirá reemplazar el valor de las constantes del controlador PID y por supuesto el respectivo valor de Periodo de Muestreo, el cual esta en términos de solamente un retardo. BIBLIOGRAFIA [1] Ogata, Katsuhiko. Ingeniería de Control Moderna. Controles PID e introducción al control robusto. Tercera edición. Pagina 669. Editorial Prentice Hall. 1998. [2] Garcia, Eduardo. Compilador C CCS y simulador Proteus para microcontroladores PIC. Editorial AlfaOmega. Pagina 154. 2008. [3] Ogata, Katsuhiko. Sistemas de control en tiempo discreto. Segunda edición. Pagina 116. Editorial Prentice Hall. 1996. [4] Canovas, Andrés. Manual de usuario del compilador PCW de CCS. Disponible en internet en http://www.cursos.ucv.cl/eie48700/referencias/CCS_C_Manual.pdf. [5] C Compiler Reference Manual March 2009. Disponible en internet en http://www.ccsinfo.com/downloads/ccs_c_manual.pdf. [6] PIC 16F87XA Datasheet. Disponible en internet en http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf.