Desarrollo de Módulo de Entrenamiento en Control PID
Desarrollo de Módulo de Entrenamiento en Control PID
Para visualizar resultados se dispone de una computadora PC en donde se plotean los valores
obtenidos del proceso físico por medio de una conexión USB.
2.- Justificación
• Comprensión física de cómo y porque aplicar un control PID: exige por parte del aprendiz un
cabal entendimiento respecto a los problemas físicos que deben ser sujetos a control por un lado y a la
naturaleza de la actuación del control por el otro. Las componentes de este control son, el control
Proporcional, el control Integral y el control
Derivativo, se debe no sólo comprender su efecto por separado sino también el efecto
cuando interaccionan 2 de ellos o los 3 juntos.
• Comprensión de la solución del equipo PID: tanto en su aspecto de hardware como en la
parte del software, requiere que el participante sepa con exactitud la naturaleza de un control
Proporcional, Integral y Derivativo y que a través de recursos tecnológicos asequibles pueda construir el
mismo un controlador PID, esto proporciona una solidez conceptual en dicha tecnología y la
consiguiente experticia cuando necesite maniobrar equipos industriales con dichos conceptos
aprendidos.
• Los equipos y procesos necesarios para aplicar el concepto del control PID exigen una
gran inversión por parte del SENATI, se requiere una planta donde se vaya a controlar una variable física
como Caudal, Nivel, Presión o Temperatura, además de ello se requiere de los equipos industriales que
sirven para sensar y transmitir la señal, el controlador, convertidor y válvula de control, esta inversión
también requiere una instalación física. La inversión en equipos es costosa y por lo general cuando se
realiza, se invierte en un solo equipo, lo que da como resultado en los hechos de disponer de un puesto
de trabajo para el entrenamiento de práctica-taller de los aprendices.
Cabe mencionar que una solución que se utiliza para tratar estos problemas son el uso de
simuladores en control de procesos, como el uso del software Labview que presenta librerías para
tal fin, esta solución también implica la compra del software y el hecho que la simulación es una
técnica que no satisface plenamente la comprensión de la tecnología puesto que el conjunto
tiende a tornarse más abstracto todavía.
3.- Objetivos
4.- Metodología
En el control de un proceso físico, la salida del proceso es una magnitud física, que recibe el nombre de
variable controlada o variable de proceso (PV), esta es medida y llevada a un controlador donde es
comparada con un valor deseado o valor prefijado SV ( también SP o set point), y el error resultante de
la comparación es utilizado por el controlador para según el tipo de acción de control, generar una
señal correctora (variable manipulada o MV), que será aplicada al proceso con el fin de compensar los
efectos de las perturbaciones y eliminar la desviación de PV con respecto a SV.
FIGURA 1. Sistema de control de temperatura para comprender el retardo de reacción del proceso.
Si la variable que se controla es la temperatura del líquido y el sistema repentinamente recibe un
caudal mayor de combustible, comprobaremos que la temperatura del líquido no se incrementará
de forma instantánea a un nuevo valor sino que se elevará más o menos dependiendo de la curva
de la figura 2. El motivo del retardo es que el tanque de líquido presenta lo que se denomina como
capacidad térmica y el sistema de transferencia de calor lo que se denomina resistencia térmica.
FIGURA 2. Gráfica de la temperatura en función del tiempo posterior a una perturbación, que ilustra los efectos de la
capacidad térmica y la resistencia térmica.
La capacidad térmica define el hecho que una cierta cantidad de energía térmica (Btu) debe
añadirse al tanque antes de que la temperatura pueda elevarse una cierta cantidad.
La resistencia térmica representa la idea de que todos los medios presentan una resistencia
natural a transportar energía térmica de un punto a otro; en este caso la transferencia de energía
térmica se llevará a cabo desde el quemador caliente a través de las paredes metálicas del tanque
hacia el líquido circundante.
La resistencia térmica es análoga a la resistencia eléctrica. Ambos conceptos son expresiones del
hecho de que una cierta diferencia de potencial (caída de voltaje en el caso eléctrico, diferencia de
temperatura en el caso térmico) es necesaria para ocasionar que una cierta velocidad de flujo
(amperes de corriente en el caso eléctrico, BTU por segundo de flujo de calor en el caso térmico)
se establezca.
El circuito conformado está representado en la figura 3.
En el campo eléctrico se conoce el hecho de que se requiere un cierto periodo de tiempo para que
el voltaje a través de un capacitor se eleve a un valor estable si un circuito RC recibe
repentinamente un voltaje de suministro. Exactamente la misma situación prevalece en el caso
térmico. Un cierto periodo de tiempo es necesario para que la capacidad térmica (el tanque de
líquido) se eleve a una temperatura estable cuando un sistema térmico de resistencia-capacidad
es sujeto a un cambio repentino de diferencia de temperatura.
Puesto que la constante de tiempo esta compuesto de 2 factores R y C, lo mismo aplica para el
caso del capacitor, es decir la capacidad térmica; mientras mayor sea la capacidad, más tiempo se
requiere para elevar la temperatura a un valor estable. En el ejemplo de la figura 2, la constante
de tiempo térmica equivale a cerca de 20 segundos; cerca de cinco constantes de tiempo o 100
segundos se requieren para que la temperatura alcance el nuevo valor.
A este punto, podemos definir como retardo de reacción a la constante de tiempo térmica que
depende de la resistencia y la capacidad térmica. La resistencia térmica depende de la
conductividad térmica del metal de las paredes del tanque de calentamiento, el espesor de estas
paredes y el área superficial de la base del tanque que recibe directamente la energía calorifica y la
transfiere al agua contenida en él. La capacidad térmica depende del tamaño del tanque (cantidad
de líquido presente) y del calor específico del líquido.
Entonces dado el proceso de control de temperatura podemos colegir que existe este retardo de
tiempo entre la aplicación de la acción correctora MV y la modificación final del valor de la variable
del proceso controlado PV.
También se debe precisar que todos los procesos industriales muestran este tipo de retardo. En
algunos casos los retardos serán segundos como en el control de caudal o nivel y en otros estos
retardos serán mayores como en los procesos térmicos en los que se alcanzan por lo general
varios minutos.
Retardo de transferencia
Es común en la industria encontrar procesos térmicos en los que se presentan más de una
combinación resistencia-capacidad. Un ejemplo de tal proceso se muestra en la figura 4.
Combustible se quema dentro de los calentadores de tubo radiadores. El calor se transporta a
través de las paredes del tubo y se transfiere a un gas recirculante que pasa por los tubos. El gas se
traslada hacia una cámara intercambiadora de calor, donde por un tubo serpentin circula agua y es
calentado por el gas caliente transformandose en vapor.
La razón de este retardo mucho mayor es que en este proceso existen dos combinaciones térmicas
resistencia-capacidad en serie entre sí. La primera implica la resistencia térmica de las paredes del
tubo radiador y la capacidad del gas recirculante. La segunda constante de tiempo térmica implica
la resistencia térmica de las paredes del serpentin y la capacidad térmica del agua que se esta
calentando. El circuito de la figura 6 es el equivalente eléctrico del proceso térmico de la figura 4.
R1 representa la resistencia térmica de las paredes del tubo radiador, y C1 representa la capacidad
térmica del gas recirculante. R2 representa la resistencia térmica del metal que forma el serpentin
mientras que C2 es la capacidad térmica del volumen ocupado por el agua y su calor especifico.
Resulta bastante evidente al observar el circuito eléctrico que C1 debe cargarse antes
que C2 pueda comenzar a cargarse. Por tanto, la carga de C2 es retardada de forma considerable
después de la aplicación de la señal de corrección. Los mismos problemas se presentan en el proceso
térmico. La temperatura del agua no puede comenzar a elevarse hasta que la temperatura del gas
recirculante se haya elevado, y naturalmente la temperatura del gas recirculante no puede elevarse de
forma instantánea después de un incremento en la entrada de calor a los tubos radiadores.
Entonces el retardo de transferencia se presenta cuando existen dos constantes de tiempo
térmicas y el proceso se denomina como un proceso de dos capacidades.
En control de procesos, el retardo de transferencia representa un problema dificil mucho más complejo
que el retardo de reacción del proceso, puesto que el retardo de transferencia ocasiona que la
temperatura del proceso medido inicialmente responde de forma muy lenta ante una acción
correctiva. Esta respuesta inicial lenta se muestra claramente en la figura 5, en la que la temperatura
ha atravesado sólo cerca del 10% de su cambio total en el primer minuto posterior a la corrección.
Las figuras 7 y 8 muestran los efectos de distintas estructuras de proceso. La figura 7 muestra el
efecto de incrementar la capacidad en un proceso de una capacidad, suponiendo que la
resistencia del proceso se mantiene constante.
FIGURA 7. Gráfica de la temperatura real en función del tiempo posterior a una perturbación en un sistema con retardo
de reacción en el que los valores de su capacidad son incrementados.
Los mismos principios que aplican a los procesos térmicos también aplican a otros tipos de
procesos industriales. Los procesos de control de presión, procesos de control del nivel de líquidos
y todos los demás procesos industriales tienen sus resistencias y capacitancias asociadas, y con
frecuencia sufren de dos o más combinaciones de resistencia-capacidad. Debido a esto, están
sujetos a los mismos problemas de retardo de transferencia que afectan a los procesos térmicos.
Las gráficas en las figuras 7 y 8 podrían aplicar a cualquier proceso industrial, sin importar la
variable controlada que resultara ser.
El proceso recibe la señal MV proveniente del controlador, y a su vez la variable de salida del
proceso, PV es enviada directamente al controlador
Figura 9. Circuito equivalente al proceso térmico de la figura 4
Respecto a la señal PV, se debe de especificar que es un voltaje que se interpreta como
proveniente de un circuito que extrae señal a partir de un sensor industrial RTD Pt100 dispuesto
en un circuito divisor de tensión.
Con la anterior limitación se calcula una corriente menor a 7,07 mA a partir de lo cual se determina el valor de Rx, hallándose Rx=1kΩ
Figura 11. Circuito para extraer señal de un RTD Pt100 con Rx calculado para cumplir con la limitación del factor de
disipación del sensor para un error menor a ½ grado Celsius
Calculando el voltaje de salida del circuito anterior, se deduce que este es:
5
= …………………… ecuación 1
1000+
Figura 12. Circuito de Control PID basado en Arduino para proceso térmico
Cabe resaltar que el muestreo de la señal de error es el aspecto crítico para la obtención de un
control eficaz del proceso.
( )
Donde
la
señal
correct
ora mv
es:
( )=
( )+
+
Las variables Kp, Ki y Kd son factores que amplifican o atenúan las acciones proporcional, integral y
derivativa, respectivamente.
Para lograr este control, en la plataforma Arduino se programara algoritmos que efectúen las
acciones proporcional, integral y derivativa, las constantes Kp, Ki y Kd serán ingresadas al sistema a
través de potenciómetros que el estudiante mismo maniobrará su ajuste. También se ingresa al
sistema el punto de ajuste SV o setpoint a través de un potenciómetro y la variable del proceso PV
a través de una entrada análoga, el microcontrolador por medio de los algoritmos programados
generará una señal de control o correctora MV que se aplicara al proceso (doble red RC que
representa el proceso térmico) a través de una salida con una señal que tiene modulación por
ancho de pulso PWM. Esta señal ingresará y se integrará modificando la salida del proceso físico
que como PV volverá a realimentarse al controlador. A continuación se describe la construcción de
los algoritmos para cada tipo de acción:
Acción Proporcional
Donde:
m es un valor constante fijado para mantener el elemento final de control operando en
condiciones de ausencia de error.
Kp es la ganancia proporcional
e(t) es la señal de error en el tiempo, diferencia de SV y PV
Para programar este control en la placa Arduino es importante:
a) Designación de los tipos de las variables utilizadas: son de 2 tipos, float para cálculos con
decimales y long para números grandes
b) Parte del programa que se ejecuta al inicio: se fija la velocidad del puerto de comunicación
USB, el periodo de muestreo, el valor hallado experimentalmente para m, un factor de proporcionalidad
fp que acondiciona señales para su acople y el registro del tiempo de inicio de operación.
• void setup()
• {
• Serial.begin(9600);
• periodo=25;
• m=85;
• fp=0.1;
• tinicioper=millis();
• }
c) Parte del programa que se repetirá en forma continua: se sensa PV e interpreta como la señal
dada por un RTD, se sensa SV y se le asigna un rango de 0 a 550, se sensa Kp y se le asigna un rango de 0
a 50, se registra el tiempo transcurrido hasta ese instante, se halla el error
• void loop()
• {
• sensor= analogRead(0);
• pv=((sensor*1100)-102300)/(393.855-0.385*sensor);
• sv=analogRead(1);
• sv=map(sv,0,1023,0,550);
• kp= analogRead(2);
• kp=map(kp,0,1023,0,50);
• tactualper=millis();
• ttranscurridoper=tactualper-tinicioper;
• error=fp*(sv-pv);
d) Algoritmo de control: Se añade la acción proporcional, se establece que el tiempo de
muestreo se ha cumplido, se calcula el componente proporcional de control, se constriñe la señal
correctora desde 0 hasta 255, se registra un nuevo inicio para el siguiente segmento de tiempo, se
escribe la señal correctora en el puerto digital, esto hace que por dicho terminal se obtenga una señal
PWM que actuará sobre el proceso, como el proceso está conformado por redes RC, terminarán
integrando la señal PWM y finalmente se generará un componente continua que significará la señal de
salida del proceso PV interpretado como Temperatura
• if (ttranscurridoper>=periodo)
• {
• mv1=kp*error;
• mv=m+mv1;
• mv=constrain(mv,0,255);
• tinicioper=millis();
• }
• analogWrite(9,mv);
• Serial.print(sv);
• Serial.print(",");
• Serial.print(pv);
• Serial.print(",");
• Serial.println(mv);
• delay( 200 );
• }
Acción Integral
Para añadir el efecto integral tenemos que trabajar con el área bajo la curva del error
Desarrollo del Algoritmo de Control Proporcional Integral:
a) Se añade más variables de tipo float para cálculos con decimales y long para números
grandes
• float mv2, ki, sumerror;
• long dt,ti,tf;
b) Parte del programa que se ejecuta al inicio: Se añade una variable que acumulara el error en
el periodo de muestreo y un registro del inicio de los subsegmentos de muestreo.
• sumerror=0;
• ti=millis();
c) Parte del programa que se repetirá en forma continua: se sensa Ki y se le asigna un rango de
0 a 5, se registra el tiempo transcurrido ti hasta ese instante para el subsegmento de muestreo, se halla
el tiempo del subsegmento de muestreo, dt, se acumula el error del periodo.
• ki= analogRead(3);
• ki=map(ki,0,1023,0,5);
• tf=millis();
• dt=(tf-ti)/200;
• sumerror=sumerror + error*dt;
• ti=tf;
• mv2=ki*sumerror;
• mv=m+mv1+mv2;
Acción Derivativa
a) Se añade más variables de tipo float para cálculos con decimales y long para números
grandes
• float mv3, kd, errorinicial, errorfinal, pendiente;
b) Parte del programa que se ejecuta al inicio: Se añade una variable que registra el error al
inicio del segmento de muestreo.
• errorinicial=0;
c) Parte del programa que se repetirá en forma continua: se sensa Kd y se le asigna un rango de
0 a 50.
• kd= analogRead(4);
• kd=map(kd,0,1023,0,50);
• errorfinal=sv-pv;
• pendiente=(errorfinal-errorinicial)/periodo;
• mv3=kd*pendiente;
• mv=m+mv1+mv2+mv3;
• errorinicial=errorfinal;
Programa completo
{
Serial.begin(9600);
periodo=25;
m=85;
fp=0.1;
sumerror=0;
tinicioper=millis();
ti=millis();
errorinicial=0;
}
void loop()
{
sensor= analogRead(0);
pv=((sensor*1100)-102300)/(393.855-0.385*sensor);
sv=analogRead(1);
sv=map(sv,0,1023,0,550);
kp= analogRead(2);
kp=map(kp,0,1023,0,50);
ki= analogRead(3);
ki=map(ki,0,1023,0,5);
kd= analogRead(4);
kd=map(kd,0,1023,0,50);
tactualper=millis();
ttranscurridoper=tactualper-tinicioper;
tf=millis();
dt=(tf-ti)/200;
error=(sv-pv)*fp;
sumerror=sumerror + error*dt;
ti=tf;
if (ttranscurridoper>=periodo)
{
mv1=kp*error;
mv2=ki*sumerror;
errorfinal=sv-pv;
pendiente=(errorfinal-errorinicial)/periodo;
mv3=kd*pendiente;
mv=m+mv1+mv2+mv3;
mv=constrain(mv,0,255);
tinicioper=millis();
errorinicial=errorfinal;
}
analogWrite(9,mv);
Serial.print(sv);
Serial.print(",");
Serial.print(pv);
Serial.print(",");
Serial.println(mv);
delay( 200 );
}
4.5 Pruebas y ensayos
Control Proporcional
Se maniobran los controles del Setpoint, Kp, Ki y Kd, se ajusta los valores a niveles favorables
tras pruebas repetitivas
5.- Calendario
6.- Medios
Nota: Tanto el hardware como el software de Arduino es declarado como de uso libre, para la
visualización de las variables se requiere una computadora PC compatible (cualquiera desde
una Dual Core)