Control PID altura nivel sistema de 2 tanques con Bomba

 

Sistema de control PID digital de nivel de agua con ESP32 y dos tanques

1. Introducción

El control automático del nivel de agua es una aplicación importante dentro de la automatización industrial y los sistemas de bombeo. Mantener un nivel determinado en un tanque permite evitar desbordamientos, reducir el desperdicio de agua y garantizar un suministro constante.

En este proyecto se desarrolla un sistema de control automático de nivel de agua mediante un controlador ESP32, utilizando un sensor ultrasónico para medir el nivel del tanque, una pantalla OLED para visualizar las variables del proceso y un algoritmo de control PID discreto para regular la velocidad de una bomba de agua.

El sistema está compuesto por dos tanques: un depósito inferior que funciona como reserva de agua y un tanque superior cuyo nivel será controlado automáticamente. La bomba transporta el agua desde el depósito inferior hasta el tanque superior, mientras que el ESP32 modifica su potencia para mantener el nivel cerca del valor de referencia establecido por el usuario.

El proyecto también incorpora una interfaz de configuración mediante un potenciómetro y un botón, permitiendo seleccionar el nivel deseado y ajustar las ganancias del controlador PID antes de iniciar el proceso.

2. Objetivo general

Diseñar e implementar un sistema de control automático del nivel de agua en un tanque mediante un controlador PID digital, utilizando un ESP32, un sensor ultrasónico y una bomba de agua como elemento actuador.

El propósito es mantener el nivel del tanque en un valor de referencia, reduciendo las variaciones y el error entre el nivel deseado y el nivel real medido.

3. Objetivos específicos

  • Medir continuamente el nivel de agua mediante un sensor ultrasónico.
  • Procesar las mediciones utilizando un ESP32.
  • Implementar un algoritmo PID mediante ecuaciones en diferencias.
  • Regular la velocidad de la bomba mediante una señal PWM.
  • Permitir al usuario seleccionar el nivel de referencia.
  • Configurar las ganancias proporcional, integral y derivativa (Kp, Ki y Kd).
  • Visualizar el nivel deseado, el nivel medido y el estado del sistema en una pantalla OLED.
  • Evaluar el comportamiento dinámico del sistema ante cambios de referencia y perturbaciones.

4. Descripción general del sistema

El sistema está formado por dos recipientes conectados mediante una bomba de agua.

Depósito inferior:

Funciona como reserva de agua y suministra el líquido necesario para llenar el tanque superior. Se recomienda incorporar un sensor de nivel mínimo para evitar que la bomba trabaje sin agua.

Tanque superior:

Es el recipiente donde se desea controlar el nivel de agua. En su parte superior se instala un sensor ultrasónico que mide la distancia entre el sensor y la superficie del líquido.

Bomba de agua:

Es el elemento actuador encargado de transportar el agua desde el depósito inferior hacia el tanque superior. Su velocidad se regula mediante una señal PWM generada por el ESP32 y aplicada a una etapa electrónica de potencia compatible con la bomba.

Controlador ESP32:

Es el cerebro del sistema. Recibe las mediciones del sensor ultrasónico, calcula el error entre la referencia y el nivel actual, ejecuta el algoritmo PID y modifica la señal de control de la bomba.

5. Componentes electrónicos

Componente Función
ESP32 DevKit Controlador principal
Sensor ultrasónico Medición de distancia y nivel de agua
Pantalla OLED I2C Visualización de variables
Potenciómetro de 10 kΩ Configuración de referencia y ganancias
Pulsador Confirmación, inicio y parada
Bomba de agua DC Actuador del sistema
Driver MOSFET o puente H Regulación de potencia de la bomba
Fuente de alimentación Alimentación del sistema
Dos tanques Depósito y recipiente de control
Mangueras Transporte del agua

La etapa de potencia debe seleccionarse de acuerdo con el voltaje y la corriente de la bomba. No se debe conectar directamente la bomba a una salida del ESP32.

6. Medición del nivel de agua

El sensor ultrasónico se instala en la parte superior del tanque y apunta hacia la superficie del agua.

Su funcionamiento consiste en enviar un pulso ultrasónico y medir el tiempo que tarda en regresar el eco reflejado por la superficie del líquido.

A partir de esta medición se calcula el nivel de agua.

La distancia medida se representa mediante:

d(k): distancia entre el sensor y la superficie del agua.

Si se conoce la altura útil del tanque, el nivel se calcula mediante:

[
h(k)=H-d(k)
]

Donde:

  • (h(k)): nivel instantáneo del agua.
  • (H): distancia desde el sensor hasta el fondo del tanque.
  • (d(k)): distancia medida por el sensor.

Para visualizar el nivel en porcentaje:

[
Nivel(%)=\frac{h(k)}{H}\times100
]

Se debe realizar una calibración inicial para considerar la posición del sensor, la altura útil del recipiente y la zona mínima de medición del ultrasónico.

7. Interfaz de usuario y configuración

El proyecto incorpora una interfaz sencilla que permite configurar el sistema antes de comenzar el control automático.

La pantalla OLED muestra los parámetros principales:

  • Referencia de nivel en porcentaje.
  • Nivel de agua medido.
  • Error del sistema.
  • Ganancias Kp, Ki y Kd.
  • Estado de la bomba.
  • Estado del controlador PID.

El potenciómetro permite modificar los valores de configuración. El botón permite confirmar los parámetros e iniciar o detener el proceso.

Secuencia de operación

  1. Al encender el sistema, el ESP32 inicializa el sensor ultrasónico y la pantalla OLED.
  2. El usuario selecciona el nivel de agua deseado.
  3. Se configuran las ganancias Kp, Ki y Kd.
  4. Se presiona el botón para iniciar el control automático.
  5. El ESP32 comienza a medir el nivel del tanque.
  6. El controlador PID calcula el error y determina la potencia necesaria para la bomba.
  7. El sistema modifica continuamente la señal PWM para acercar el nivel real al nivel de referencia.

8. Fundamento del control PID digital

El controlador PID es un algoritmo de control utilizado para mantener una variable de proceso en un valor deseado.

En este proyecto, la variable controlada es el nivel de agua del tanque y el elemento actuador es la bomba.

El controlador compara continuamente el nivel deseado con el nivel medido y calcula una acción de control para reducir el error.

8.1 Cálculo del error

El error se obtiene mediante la diferencia entre la referencia y la medición:

[
e(k)=r(k)-y(k)
]

Donde:

  • (e(k)): error del sistema.
  • (r(k)): referencia de nivel.
  • (y(k)): nivel medido.
  • (k): instante de muestreo.

8.2 Ecuación PID en diferencias

Para implementar el controlador en el ESP32 se utiliza una versión discreta del algoritmo PID.

Una alternativa es el PID incremental, cuya ecuación es:

[
\Delta u(k)=K_p[e(k)-e(k-1)]
]

[
+K_iT_se(k)
]

[
+\frac{K_d}{T_s}[e(k)-2e(k-1)+e(k-2)]
]

La salida de control se actualiza mediante:

[
u(k)=u(k-1)+\Delta u(k)
]

Donde:

  • (K_p): ganancia proporcional.
  • (K_i): ganancia integral.
  • (K_d): ganancia derivativa.
  • (T_s): periodo de muestreo.
  • (e(k)): error actual.
  • (e(k-1)): error anterior.
  • (e(k-2)): error de dos muestras anteriores.
  • (u(k)): salida de control.

8.3 Acción proporcional

La acción proporcional responde al error actual. Cuando existe una diferencia grande entre el nivel deseado y el nivel medido, el controlador genera una acción de mayor intensidad.

8.4 Acción integral

La acción integral acumula el error a lo largo del tiempo y permite eliminar el error permanente, ayudando a que el nivel alcance la referencia establecida.

8.5 Acción derivativa

La acción derivativa considera la velocidad con la que cambia el error. Permite anticipar el comportamiento del sistema y puede ayudar a reducir las oscilaciones durante el llenado.

Debido al ruido de las mediciones ultrasónicas, se recomienda aplicar un filtrado adecuado a la señal derivativa.

9. Regulación de la bomba mediante PWM

La salida del controlador PID se limita a un intervalo de 0 a 100 %.

Este porcentaje representa la potencia de mando aplicada a la bomba mediante una señal PWM.

  • 0 %: bomba apagada.
  • 30 %: potencia de mando baja.
  • 60 %: potencia de mando intermedia.
  • 100 %: potencia de mando máxima.

Los valores anteriores son ejemplos de mando, no una relación lineal garantizada entre PWM y caudal. La respuesta real depende de la bomba y de las condiciones hidráulicas.

La señal PWM se aplica mediante un driver electrónico adecuado, evitando que la corriente de la bomba circule directamente por el ESP32.

10. Comportamiento esperado del sistema

Cuando el usuario establece una referencia, por ejemplo, un nivel del 70 %, el controlador comienza a comparar continuamente el valor deseado con el nivel real del agua.

Si el tanque tiene un nivel inferior al establecido, el controlador incrementa la acción de la bomba para acelerar el llenado.

A medida que el nivel se aproxima a la referencia, el PID reduce progresivamente la potencia de la bomba para evitar sobrepasar el valor deseado.

Cuando el nivel alcanza la referencia, el controlador disminuye la acción de control hasta mantener el nivel dentro de una banda de tolerancia.

Si se modifica la referencia, el sistema debe responder automáticamente para alcanzar el nuevo valor.

11. Ajuste de las ganancias PID

Uno de los objetivos principales del proyecto es experimentar con diferentes valores de Kp, Ki y Kd para observar cómo afectan el comportamiento del sistema.

  • Kp: modifica la intensidad de respuesta ante el error.
  • Ki: ayuda a eliminar diferencias permanentes entre referencia y medición.
  • Kd: ayuda a anticipar los cambios y reducir las oscilaciones.

El ajuste debe realizarse de manera gradual, comenzando con valores conservadores y observando la respuesta del nivel de agua.

Se recomienda registrar el tiempo de establecimiento, el sobreimpulso, el error en estado estacionario y la estabilidad del nivel.

12. Protecciones y seguridad del sistema

Para mejorar la confiabilidad del proyecto se recomienda incorporar las siguientes protecciones:

  • Sensor de nivel mínimo en el depósito inferior para evitar funcionamiento en seco.
  • Límite máximo de llenado en el tanque superior.
  • Paro de emergencia mediante botón.
  • Apagado automático de la bomba si se detecta una falla del sensor ultrasónico.
  • Tiempo máximo de funcionamiento para evitar llenados indefinidos.
  • Protección eléctrica de la bomba y de la etapa de potencia.
  • Sistema de rebose o salida de emergencia para prevenir inundaciones.

También es recomendable utilizar una bomba de baja tensión y mantener los componentes electrónicos protegidos contra salpicaduras y humedad.

13. Aplicaciones del proyecto

Este sistema puede utilizarse como base para desarrollar diferentes aplicaciones de automatización:

  • Control automático de tinacos.
  • Sistemas de almacenamiento de agua.
  • Llenado automático de depósitos.
  • Control de nivel en procesos industriales.
  • Sistemas de bombeo domésticos.
  • Automatización de depósitos para riego.
  • Prácticas educativas de instrumentación y control automático.

14. Conclusión

El desarrollo de este proyecto permite integrar electrónica, instrumentación, programación y teoría de control en una aplicación práctica.

Mediante el ESP32 se implementa un controlador PID digital que procesa las mediciones de un sensor ultrasónico y regula la potencia de una bomba de agua para mantener el nivel de un tanque en una referencia establecida.

La utilización de un algoritmo PID mediante ecuaciones en diferencias permite comprender cómo se implementan los controladores digitales en sistemas embebidos, además de experimentar con el ajuste de sus ganancias y evaluar su respuesta ante diferentes condiciones de operación.

Este proyecto representa una excelente práctica para estudiar sistemas de control automático, medición de variables físicas, regulación de actuadores y aplicaciones de Internet de las Cosas (IoT).

Proyecto: Control PID digital de nivel de agua con ESP32 y sistema de dos tanques.

Tecnologías: ESP32, sensor ultrasónico, pantalla OLED, PWM, bomba DC y algoritmo PID discreto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *