Está en la página 1de 17

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