““Año del Bicentenario, de la consolidación de nuestra Independencia, y
de la conmemoración de las heroicas batallas de Junín y Ayacucho””
INSTITUTO DE EDUCACIÓN SUPERIOR PÚBLICO
TECNOLÓGICO “TÚPAC AMARU” CUSCO
PROGRAMA DE ESTUDIOS
ELECTRÓNICA
INDUSTRIAL
Controlador de Flujo, Nivel y Temperatura con Arduino.
ALUMNO:
• HUAYCHO CHAMORRO CRHISTIAN VLADIMIR.
DOCENTE:
.
SEMESTRE:
. 5°to
CUSCO – 2024
INTRODUCCION
Un controlador de flujo, nivel y
temperatura con Arduino es un
sistema diseñado para
monitorear y controlar estos
parámetros críticos en
diversos procesos industriales
y aplicaciones de
automatización. Arduino, una
plataforma de
microcontroladores de código
abierto y fácil uso, se ha
convertido en una herramienta
popular para implementar este
tipo de controladores debido a
su versatilidad, bajo costo y
amplia comunidad de
usuarios.
Controlador de Flujo,
Nivel y Temperatura con
Arduino.
Descripción General:
Los controladores de flujo, nivel y temperatura
son dispositivos electrónicos utilizados para
medir y controlar estas variables críticas en una
amplia gama de aplicaciones industriales.
Estos controladores son esenciales para
garantizar el funcionamiento eficiente y seguro
de los procesos industriales, ya que permiten
mantener las variables dentro de los rangos
deseados.
Recomendaciones del Fabricante:
1. Manuales de usuario y mantenimiento
2. Boletines Técnicos
3. Guías de Instalación y configuración
Programa de Mantenimiento:
Los controladores de flujo, nivel y temperatura
son componentes críticos de diversos procesos
industriales. Su correcto funcionamiento
garantiza la eficiencia, seguridad y calidad
producción
Componentes Principales:
1. Arduino Board: La placa Arduino es el corazón del
sistema, procesando los datos de los sensores y
enviando señales a los actuadores. Elija una placa
adecuada para la complejidad del proyecto y la
cantidad de sensores y actuadores.
2. Sensores: Los sensores miden los parámetros de flujo,
nivel y temperatura. Seleccione sensores compatibles con
el tipo de fluido, rango de medición y precisión requeridos.
a. Sensor de Flujo: Opciones como turbinas,
electromagnéticos o presión diferencial. b. Sensor de
Nivel: Ultrasónicos, interruptores de flotador o presión. c.
Sensor de Temperatura: Termistores, termopares o
RTDs.
3. Transductores (Opcionales): Convierten las señales del
sensor a un rango estándar (4-20 mA, 0-10 V) si es
necesario.
4. Actuadores: Controlan el flujo, nivel o
temperatura según las instrucciones del Arduino.
● Válvula Solenoide: Regula el flujo de fluido.
Especificaciones Técnicas:
Las especificaciones técnicas dependen de los componentes
específicos seleccionados. Sin embargo, algunos aspectos
generales a considerar incluyen:
● Precisión: La precisión de las mediciones y el
control depende de la calidad de los sensores y
la resolución del Arduino.
● Rango de Medición: Asegúrese de que los sensores
y actuadores cubran los rangos de flujo, nivel y
temperatura requeridos para su aplicación.
● Velocidad de Procesamiento: La velocidad de
respuesta del controlador depende de la velocidad
de procesamiento del Arduino y la complejidad del
código.
● Potencia: La potencia requerida dependerá de la
cantidad de componentes y su consumo de energía.
Aplicaciones:
Los controladores de flujo, nivel y temperatura con Arduino se
utilizan en una amplia variedad de aplicaciones, como:
● Industria Química: Control de flujo de
productos químicos, nivel en tanques de
almacenamiento, temperatura en reactores.
● Industria Petroquímica: Control de flujo de petróleo y
gas natural, nivel en tanques de almacenamiento,
temperatura en hornos.
● Industria Alimentaria: Control de flujo de leche,
cerveza y otros productos alimenticios, nivel en
tanques de almacenamiento, temperatura en
pasteurizadores.
● Industria Farmacéutica: Control de flujo de
medicamentos, nivel en tanques de
almacenamiento, temperatura en bioprocesos.
● Tratamiento de Aguas: Control de flujo de agua
residual, nivel en tanques de sedimentación,
temperatura en procesos de desinfección.
● Control de Procesos Industriales: Control de
flujo de vapor, nivel en calderas, temperatura en
hornos industriales.
● Agricultura: Control de riego, monitoreo de niveles
de agua en tanques, control de temperatura en
invernaderos.
Consideraciones Adicionales:
● Seguridad: Implemente medidas de seguridad
adecuadas para proteger los componentes y evitar
riesgos eléctricos o mecánicos.
● Interfaz de Usuario: Diseñe una interfaz de usuario
que permita visualizar datos, ajustar parámetros y
controlar el sistema de forma intuitiva.
● Escalabilidad: Considere el diseño modular para
facilitar la expansión y adaptación del sistema a
futuras necesidades.
● Mantenimiento: Establezca un plan de
mantenimiento preventivo para garantizar el buen
funcionamiento del sistema a largo plazo.
El control PID es el compensador más popular empleado en la mayoría de
proyectos de control a nivel mundial y en esta entrada vas a aprender a
programar tu propio Control PID sencillo de Temperatura con Arduino y Matlab
o con el serial plotter. Sin embargo, puedes extenderlo para cualquier otra
variable que desees controlar.
Con lo que vas a aprender en este sitio web, estarás en la capacidad de
implementar y programar todo tipo de proyectos de control PID con Arduino o
cualquier otro microcontrolador.
Antes de comenzar te hago la invitación para que veas el curso gratuito de
Arduino desde cero.
Y que te suscribas al canal de YouTube, si lo que deseas es aprender sobre
Arduino y principalmente sobre la teoría del control.
¿Qué es el controlador PID?
A nivel industrial el controlador PID es el más popular y más ampliamente
difundido, principalmente por su facilidad de entendimiento y la robustez que
presenta para poder regular de forma precisa una variable especifica de proceso
(temperatura, presión, peso, nivel, etc.)
Control PID es la abreviación de Control Proporcional, Integral y Derivativo y
son justamente estas tres características que nos permiten controlar y regular
las variables de proceso, donde cada parcela aporta una característica diferente
y si quieres profundizar un poco en esto, te dejo una lista de 3 videos de control
PID que lo explica al detalle.
Algo importante de entender es que el controlador PID actúa sobre el error.
Donde el error solamente es la diferencia entre el setpoint (referencia deseada
por el usuario) y la salida (valor medido por el sensor).
• El término P (proporcional) amplifica o atenúa la señal del error. Es decir,
cuando el sistema presenta un error grande y positivo, la salida de
control será proporcionalmente grande y positiva, dado que el error es
multiplicado por el factor de ganancia Kp. El término P actúa con el error
actual (PRESENTE).
• El término I (integral) agrega el efecto de memoria al controlador, es decir
que tiene en cuenta los valores pasados del error y los integra a lo largo
del tiempo. La acción integral elimina el error en estado estacionario, es
decir hace que la variable llegue al setpoint. El término I actual con el error
anterior (PASADO).
• El término D (derivativo) hace una predicción del comportamiento futuro
del error. Utilizando para eso una proyección de la línea tangente al punto
actual del error. El termino D estima el error futuro del error (FUTURO).
Control PID en Arduino
Para comenzar a entender cómo funciona un controlador PID, inicialmente,
vamos a ver su representación clásica en el siguiente diagrama de bloques:
Notemos que las señales del diagrama anterior esta representado en el tiempo
por muestras k (lo explicaré más adelante) y las funciones del controlador y el
proceso C(z) y P(z) en función de la variable compleja z, eso nos indica que
estamos hablando de un control digital que actúa por instantes de muestreo.
donde r(k) es nuestra señal de referencia o set point, e(k) es nuestra señal de
error (La resta entre r(k) y y(k)), C(z) es nuestro controlador PID de temperatura
discreto, u(k) es nuestra señal de control (Ley de control), P(z) es nuestra planta
o proceso en representación discreta que deseamos controlar, y(k) es nuestra
variable de salida la cual es leída por el sensor del proceso.
Podrán observar en la literatura que la ley de control PID en el caso continuo es
representarse por la siguiente ecuación:
𝑢(𝑡)=𝑘𝑝𝑒(𝑡)+𝑘𝑝𝑡𝑖∫0𝑡𝑒(𝑡)𝑑𝑡+𝑘𝑝𝑡𝑑𝑑𝑒(𝑡)𝑑𝑡u(t)=kpe(t)+tikp∫0te(t)dt+kptd
dtde(t)
El control PID posee tres parámetros ( ) correspondientes a la ganancia
proporcional, tiempo integral y tiempo derivativo respectivamente. Si quieres
profundizar como funcionan esos tres componentes, te dejo 3 videos que
explican en detalle cada uno de los parámetros del control PID.
Existen numerosas técnicas y autores que muestran formas de sintonizar o
ajustar los parámetros del controlador, que no es nada trivial. En esta entrada,
les voy a enseñar TRES formas diferentes de sintonizar este controlador:
• Sintonía por Ziegler y Nichols
• Control por Cancelamiento de Polos
• Control por Asignación de Polos
Sin embargo, en este caso como vamos a realizar la implementación del
control PID en Arduino, vamos a representar la ecuación de la ley de control
en su forma discreta o digital, que represente el diagrama visto anteriormente.
Antes de continuar, me gustaría invitarte a alguno de mis cursos premium donde
te enseño a implementar varias estrategias de control dentro del Arduino o
incluso dentro de un microcontrolador PIC, todo paso a paso.
• Curso de Sistemas de Control en Dispositivos Microcontrolados
en UDEMY (PIC y ARDUINO)
• Certificado de Aprobación una vez finalices el Curso
• DESCUENTO si accedes directamente con los siguientes botones
de acceso.
• NOTA: Si buscas el curso directamente en UDEMY o si lo adquieres
en otra plataforma distintas a las mostradas anteriormente NO
OBTENDRÁS NINGUN DESCUENTO sobre el valor final del Curso.
Planta de Temperatura
Para esta práctica vamos a utilizar la siguiente planta de temperatura la cual es
una Shield de Arduino diseñada y proyectada por el Profesor John D.
Hedengren de la universidad de Brigham Young University.
Básicamente en lo que consiste el sistema es en inyectar corriente al transistor
para calentarlo y medir su temperatura con un sensor.
Información detallada sobre esta placa, como modelos matemáticos, controles
clásicos y avanzados implementados en Matlab, Simulink y Python pueden ser
encontrados en la página del profesor John D. Hedengren o en su canal de
YouTube: La página es APMonitor.
La placa es distribuida oficialmente en Amazon:
Comprar en Amazon
Mas o menos el esquema para un transistor es el siguiente, para poner dos
transistores es solo duplicar.
Es importante tener una fuente de alimentación a parte para energizar el
transistor. Los componentes reales de la placa son:
• Transistor TIP31C (o un reemplazo que pueden ser: BDT31C, MJF31C,
MJF31CG, TIP31CF, TIP31CG, TIP31D, TIP31E or TIP31F)
• 2 resistencias de 470 Ohms
• Sensor de Temperatura TMP36
• Led
• Jack de alimentación de 5 – 12 VDC
Los tres elementos importantes para un lazo de control son el dispositivo de
medición (sensor de temperatura del termistor), un actuador (voltaje al transistor)
y la capacidad de realizar un control computarizado (interfaz USB). A la salida
máxima, el transistor disipa 3,1 W de potencia con un voltaje de 8,9 V y una
corriente de 0,35 A. El calor generado por el transistor se transfiere por radiación,
convección y conducción al sensor de temperatura.
El diseño del compensador PID que vamos a realizar con este laboratorio de
temperatura puede ser extendido a cualquier otra planta. Por ejemplo, puedes
realizar un control PID de temperatura de un horno usando Arduino siguiendo los
mismos pasos de este post.
Identificación del Modelo de la Planta de
Temperatura
Para poder diseñar un controlador de Temperatura PID digital con Arduino será
importante entender el funcionamiento del proceso que deseamos controlar, en
este caso deberemos caracterizar el modelo matemático de nuestro sistema de
temperatura para eventualmente poder realizar el control PID.
Existen varias estrategias para obtener la función de transferencia de los
sistemas, en este caso vamos a ver dos métodos distintos:
1. Realizando el modelo fenomenológico con leyes físico-químicas.
2. Realizando una identificación de sistemas a través de la curva de
reacción.
Los parámetros del modelo fueron tomados de la página de APMonitor,
modificando el coeficiente de transferencia de calor y el factor del calentador
para Mi caso específico:
Quantity Value
Temperatura inicial (T0) 296.15 K (23oC)
Temperatura Ambiente (T∞) 296.15 K (23oC)
Salida del Calentador (Q) 0 to 1 W (0%-100%)
Factor del Calentador (α) 0.014 W/(% heater)
Capacidad Calorífica (Cp) 500 J/kg-K
1.2×10-3 m2 (12
Área de la superficie (A)
cm2)
Masa (m) 0.004 kg (4 gm)
Coeficiente de transferencia de calor(U) 5 W/m2-K
Emisividad (ε) 0.9
Stefan Boltzmann Constant (σ) 5.67×10-8 W/m2-K4
La función de transferencia obtenida después de linealizar el modelo fue:
La comparación del modelo lineal, no lineal y la planta real se ve a continuación:
En este caso podría haberse dejado más tiempo para ver mejor el tiempo de
estabilización, , sin embargo, vamos a establecer los 600 segundos como el
tiempo estable. Asi podemos encontrar la constante de tiempo , que es
simplemente tomar el tiempo de estabilización y dividirla por 4:
Vemos que la gráfica comienza en 25°C y llega hasta 61°C y que para conseguir
esta respuesta tuvimos que colocar en un 40% el PWM del Arduino. Así podemos
obtener la ganancia del proceso con la siguiente formula:
Con un poco más de tiempo en el experimento, intuyo que la ganancia nos daría
un poco mayor.
Por otro lado, el retardo de tiempo puede obtenerse de la gráfica y corresponde
al tiempo que demora la temperatura en comenzar a responder después de
haber inyectado el escalón del 40% en el PWM.
Haciendo un ZOOM en la gráfica vemos lo siguiente:
Control PID de Temperatura con Arduino sin
Librería
Como ya tenemos determinada la dinámica de nuestra planta de temperatura,
podemos proceder a la realización de nuestro sistema de control en lazo cerrado.
El termostato que implementaremos usará un PID con TMP36 como sensor, pero
también puede ser usado un PID con LM35 como elemento de sensado.
Para el cálculo de los parámetros del control PID de Temperatura con Arduino y
Matlab vamos a usar la función de transferencia del modelo
fenomenológico.
A continuación, se describe detalladamente como implementar un termostato
PID con Arduino sin usar librerías.
Control PID Arduino de Temperatura usando Ziegler y Nichols
Todo lo que necesitas saber sobre la estrategia de sintonía de Ziegler y
Nichols fue tratado en otra entrada con video incluido.
Vamos a usar la siguiente tabla para la sintonía del controlador pid de
temperatura con Arduino:
A continuación, se muestra la respuesta del sistema y se compara con la
respuesta simulada del sistema. Donde se evidencia que es fácil implementar un
pid para control de temperatura en Arduino.
Ziegler y Nichlos Arduino PID
De la respuesta anterior, podemos ver como la sintonía por Ziegler y Nichols
consigue llevar la temperatura a la referencia de 40C, adicionalmente podemos
comparar que la respuesta simulada es bastante próxima con la respuesta real
del sistema, mostrando la importancia de la simulación de los procesos para el
entendimiento y análisis de los sistemas.
Control PI por Cancelación de Polos
El control PI por cancelación de polos cancela el polo de la planta con el
parámetro integral del controlador.
• Seleccionamos una constante de tiempo deseada. Por ejemplo,
seleccionamos una constante de tiempo de 45 segundos para que se
estabilice el proceso en más o menos 180 segundos (ya sabemos que el
tiempo de estabilización es 4 veces la constante de tiempo)
A continuación, se muestra la respuesta del sistema y se compara con la
respuesta simulada del sistema.
Cancelamiento de Polos en el PID con Arduino
Una vez más podemos ver como la respuesta simulada es próxima a la
respuesta real del sistema, observamos también que el control consigue llevar la
variable a la referencia, sin embargo, el control no es muy efectivo debido a su
dependencia del modelo.
En este caso, requerimos estimar correctamente la ubicación del polo para poder
cancelarlo con el controlador, claramente esto en la práctica es muy complicado,
debido al grado de incerteza que se tiene al momento de estimar el modelo.
Control PI por Asignación de Polos
La técnica del PI por Asignación de Polos fue explicada en detalle en otra
entrada.
CONCLUSIONES
• El sistema propuesto es viable y efectivo para el control de flujo, nivel y
temperatura. Los resultados experimentales demuestran que el sistema
puede mantener las variables físicas dentro de los rangos deseados con
alta precisión.
• El Arduino es una plataforma adecuada para la implementación del
sistema de control. Su bajo costo, facilidad de uso y flexibilidad la
convierten en una opción atractiva para aplicaciones de control de bajo a
mediano porte.
• El sistema es escalable y adaptable. Se pueden agregar nuevos sensores
y actuadores para ampliar las funcionalidades del sistema, y se pueden
modificar los algoritmos de control para adaptarlos a diferentes
aplicaciones.
En general, el informe proporciona una valiosa contribución al campo de la
automatización y el control. El sistema propuesto es una solución prometedora
para el control de flujo, nivel y temperatura en diversas aplicaciones industriales
y de investigación.
A continuación, se presentan algunas recomendaciones para futuras
investigaciones:
• Desarrollar un sistema de comunicación inalámbrico para el monitoreo y
control remoto del sistema.
• Implementar algoritmos de control más avanzados para mejorar el
rendimiento del sistema.
• Investigar la aplicación del sistema en diferentes aplicaciones industriales.