CONTROL DIGITAL
Unidad 3: Paso 4 - Diseñar e implementar un circuito de control digital PID
Presentado por:
Héctor Eduardo Otálora Bautista, Código: 7183223
Carlos Rabin Cubides L, Código:
Diego O. Villalobos, Código: 74150700
Maryi Yuried Méndez P, Código: 1121890364
Presentado a:
Joan Sebastian Bustos
Universidad nacional abierta y a distancia
Escuela de ciencias básicas, tecnología e ingeniería
Bogotá D.C.
Mayo de 2018
Introducción
Tener el control sobre las variables de un proceso y poder comprender su comportamiento en
función del tiempo nos ha permitido obtener más que una señal de respuesta, un valor manejable
a nuestras necesidades. En la presente actividad haremos uso del sistema proporcional integral
derivativo (PID), conociendo su funcionalidad y poniendo a prueba sus virtudes en el mundo del
control ingenieril.
Para ello dará desarrollo a los planteamientos propuestos en el paso 4 de la guía de Control
digital de la Universidad Nacional Abierta y a Distancia, haciendo uso de programas como Matlab
y Proteus que facilitan la interpretación y relación entre sistemas y funciones de transferencias.
Objetivos
Identificar los métodos para realizar una programación de un controlador PID
Manejar Protueus para simulación de circuitos y el programa PIC C compiler para crear
código fuente de un determinado controlador.
Conocer la importancia sobre el uso de microcontroladores para el desarrollo de la
industria.
CONTROLADOR PID
Un controlador PID (Controlador Proporcional-Integral-Derivativo) es un mecanismo de control
por realimentación ampliamente usado en sistemas de control industrial. Este calcula la desviación
o error entre un valor medido y un valor deseado.
Se puede indicar que un controlador PID responde a la siguiente ecuación:
El algoritmo del control PID consiste de tres parámetros distintos: el proporcional, el integral, y el
derivativo. El valor Proporcional depende del error actual. El Integral depende de los errores
pasados y el Derivativo es una predicción de los errores futuros. La suma de estas tres acciones es
usada para ajustar al proceso por medio de un elemento de control como la posición de una válvula
de control o la potencia suministrada a un calentador.
Cuando no se tiene conocimiento del proceso, históricamente se ha considerado que el controlador
PID es el controlador más adecuado. Ajustando estas tres variables en el algoritmo de control del
PID, el controlador puede proveer una acción de control diseñado para los requerimientos del
proceso en específico. La respuesta del controlador puede describirse en términos de la respuesta
del control ante un error, el grado el cual el controlador sobrepasa el punto de ajuste, y el grado
de oscilación del sistema. Nótese que el uso del PID para control no garantiza control óptimo del
sistema o la estabilidad del mismo.
Los controladores PID tienen tres módulos el control proporcional (P), el control integral (I) y el
control derivativo (D), cada uno de estos 3 controles tiene una función determinada en la
estabilización del sistema.
Control proporcional: Este es el control principal y su función es crear una respuesta en la
salida proporcional al error.
Control Integral: Este se encarga de eliminar el error residual que da el control P, reduciéndolo
a 0.
Control Derivativo: Se utiliza para eliminar las sobre oscilaciones generando una corrección en
la señal de control proporcional al error.
Sintonización por la respuesta al escalón
El método de sintonización de reguladores PID de Ziegler-Nichols permite definir las ganancias
proporcional, integral y derivativa a partir de la respuesta del sistema en lazo abierto o a partir de
la respuesta del sistema en lazo cerrado. Cada uno de los dos ensayos se ajusta mejor a un tipo de
sistema.
Este método de sintonización se adapta bien a los sistemas que son estables en lazo abierto y que
presentan un tiempo de retardo desde que reciben la señal de control hasta que comienzan a
actuar.
Para poder determinar la respuesta al escalón de la planta o sistema controlado, se debe retirar el
controlador PID y sustituirlo por una señal escalón aplicada al accionado.
Grafica 1(Diagrama de boques)
En la siguiente figura se muestra la modificación que hay que realizar al sistema de control en lazo
cerrado para convertirlo en un sistema en lazo abierto que responda a una señal escalón, retirando
el controlador PID:
Grafica 2(Diagrama de boques)
En la imagen siguiente se puede ver representado en rojo la entrada escalón al accionado o señal
c(t). En azul se representa la salida del sistema medida por el sensor o señal h (t). El escalón de
entrada c(t) debe estar entre el 10% y el 20% del valor nominal de entrada.
Como puede apreciarse, la respuesta del sistema presenta un retardo, también llamado tiempo
muerto, representado por T1.
Grafica 3(Respuesta del sistema)
ALGORITMO DE PROGRAMACION EN MICROCONTROLADOR
En el modelo Ziegler-Nichols se toma un valor 𝑇 < 𝑡0 /4
El muestreo (T) debe ser mayor que el tiempo de establecimiento del sistema en lazo abierto
Grafica 4(Diagrama de boques controlador PID)
Se realiza la simulación del PID e implementación con ISIS de Proteus, aplicando un sistema de
calefacción OVEN, el cual se pueden variar sus funcionalidades tales como: Resistencia térmica,
Temperatura Ambiente de trabajo, constante de tiempo de establecimiento, constante de tiempo
de calentamiento, coeficiente de temperatura y Potencia de calentamiento.
MODELAMIENTO DEL SISTEMA
Implementar un controlador PID en un microcontrolador PIC 16f877A para un sistema de
calefacción.
La simulación se debe desarrollar en Proteus utilizando el Heated Oven (LumpedModel) y se
establecerán los siguientes valores:
Temperature Ambient (°C)= 30
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
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.
Grafica 5(Simulación en Proteus)
Set configuración:
Temperature Ambient (°C)= 30
Grafica 6. (Configuración de simulación)
Thermal Resistence to Ambient (°C/W) = 0.7
Oven Time Constant (sec) = 10
Grafica 7. (Configuración de simulación)
Heater Time Constant (sec) = 1
Grafica 8. (Configuración de simulación)
Temperature coefficient (V/°C)=1
Grafica 9. (Configuración de simulación)
Heating Power (W)= 120
Grafica 10. (Configuración de simulación)
Respuesta ante entrada escalón
Grafica 11. (Respuesta del sistema simulación)
De la recta de máxima pendiente se deducen los parámetros:
𝑡0 𝑦0 𝑘0
Definidos por el análisis en lazo abierto de Ziegler-Nichols.
𝑡0 = 𝑡1 − 𝑡0 = 4 − 3 = 1
𝑦0 = 𝑡2 − 𝑡1 = 17.5 − 4 = 12.5
𝑦1 − 𝑦0 276 − 25
𝑘0 = = = 125.5
𝑢1 − 𝑢0 2−0
El sistema de calefacción queda definido de la siguiente forma:
𝐾𝑜 𝑒 −𝑠𝑡0 𝑒 −𝑠
𝐺(𝑠) = = 125.5
1 + 𝑦0 𝑠 1 + 12.5 𝑠
Los parámetros Kp, Ti y Td se calculan según la Regla de Sintonización de Ziegler-Nichols
basada en la respuesta al escalón.
𝑦0
𝐾𝑝 = 1.2 = 0.1195
𝑘0 𝑡0
𝑇𝑖 = 2𝑡0 = 2
𝑇𝑑 = 0.5𝑡0 = 0.5
Reemplazando los valores de Kp, Ti y Td,
Teniendo como base un periodo de muestreo T=0.1s.
𝑎 = 𝐾𝑝 = 0.1195
𝐾𝑝 𝑇
𝑏= = 0.0062
𝑇𝐼
𝑘𝑝 𝑇𝑑
𝐶= = 0.6215
𝑇
IMPLEMENTACION CONTROLADOR DIGITAL PID EN MICROCONTROLADOR
Consideraciones
Es necesario un conversor Análogo/Digital para realizar el ingresa del 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.
Se desarrolló el código fuente en C Compiler de acuerdo al algoritmo planteado para programar el
microcontrolador PIC 16F877A.
#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
}
}
PIC C COMPILER
Grafica 12. (Pantallazo de programa en PC Compiler )
DIAGRAMA ESQUEMATICO Y SIMULACION DE CONTROLADOR PID EN ISIS
PROTEUS
Grafica 13. (simulación con PIC 16f877A)
La simulación arranca con una temperatura igual de 25°C en t=0s, ya que este valor es la
temperatura ambiente de trabajo del sistema OVEN.
Conclusiones
Los Lenguajes de programación son de gran importancia para poder realizar este tipo de
ejercicios, dado que nos ofrece la posibilidad de crear infinidad de códigos, de acuerdo con las
necesidades que tengamos.
Es indispensable conocer los diferentes métodos matemáticos que hay, para poder hallar las
variables que necesitamos al momento de programar un PID.
Bibliografía
Bolaños, Y. H. & Pineda, L. F. & Mosquera V. H (2012). Didactic system for the
implementation of digital controllers. Revista Colombiana de Tecnologías de Avanzada,
Volumen 2, (P. 128). Recuperado de http://hdl.handle.net/10596/4971
Ñeco García, Ramón P., Reinoso García, Oscar, and García Aracil, Nicolás.Apuntes de
sistemas de control. Alicante, ES: ECU, 2013. ProQuest ebrary. (pp. 203-211).
Recuperado
dehttp://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=226&docID=1
0740996&tm=1501271524084
Ávalos, A. G., Montúfar, N. M. A., & Ortiz, H. F. E. (2010). Teoría de control, ajuste de
controladores industriales. (P. 75). Recuperado
de: http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=76&docID=3
187638&tm=1513226129956
Video de youtuve del canal Sergio Castaño (2016) https://youtu.be/9EmSybiSmOU
Bustos, J. (2017). Simulación en Matlab de una rampa unitaria. [OVI].
Recuperado de http://hdl.handle.net/10596/14140
Ruge, I. A. (2015). Método básico para implementar un controlador digital pid en un
microcontroladorpic para desarrollo de aplicaciones a bajo costo. Editorial Pearson
Education. Prentice Hall. Tercera Edición. Capítulo I, (pp. 1-13)México, 1998.
Recuperado de http://hdl.handle.net/10596/4993
García, J. & Rodríguez, J. & Vidal, J. (2005). Aprenda Matlab 7.0 como si estuviera en
primero. Diciembre 2005.
Recuperado de http://hdl.handle.net/10596/4988
Barrera, C. E. & Soria, L. R. (2010) Congreso Anual de la Asociación de México de
Control Automático. Puerto Vallarta, Jalisco, México. Diseño e Implementación de
Controladores Digitales Basados en Procesadores Digitales De Señales.
Recuperado de http://hdl.handle.net/10596/4994