Está en la página 1de 6

Simulación y control

Modelamiento estanque cónico no lineal y control PID Arduino

Leonardo Campos Pérez Leonardo Villegas Alegre


Estudiante Ingeniería Electrónica Estudiante Ingeniería Electrónica
Universidad Tecnológica de Chile INACAP Universidad Tecnológica de Chile INACAP
Sede Santiago Sur Sede Santiago Sur
leocampos@u.uchile.cl leovillegas@gmail.com

Resumen
El presente trabajo muestra el análisis para el control de nivel de
agua, en un estanque cónico con un caudal de entrada controlado y Tabla de variables
un caudal de salida fijo. Para realizar el estudio de este estanque en Variable Descripción
particular, se creó su modelo matemático y se teorizó su control. Se Fi Flujo de entrada
utilizó Matlab para crear gráficos de llenado y luego se aplicó de
Fo Flujo de salida
forma real el modelo. Con este estudio, se constató la efectividad del
filtro PID sobre el flujo de entrada para estabilizar el nivel de agua. β Constante flujo de salida
V Volumen del cono
Palabras clave: modelamiento matemático; simulación;
H Altura Máxima de Tanque
programación.
h Altura que varía en el tiempo
R Radio Tanque
I. INTRODUCCION
r Radio que varía según la altura de agua
Para esta investigación, se solicitó un sistema que controle
la altura de agua en un estanque cónico. El trabajo se Tasa de cambio del volumen con respecto al tiempo.
desarrolló durante el período de clases de la asignatura
Simulación y Control, bajo la guía del profesor Braulio
Martínez, en el segundo semestre del año 2017, en Inacap. El Tasa de cambio de la altura con respecto al tiempo.
objetivo de esta investigación es lograr el control exacto del Tabla 2. Descripción de variables
agua, aplicando modelos matemáticos y simulaciones en
software, y exportar los resultados a un experimento mediante
la programación de tarjetas controladoras, que manejan los El estanque cónico recibe un fluido de agua Fi y un flujo de
parámetros de control. salida Fo. El caudal de salida estará en función de la altura de
agua del estanque. [Ec.0].
II. TEORIA

A. Modelo matemático de estanque cónico. [Ec.0]


Para nuestro caso, realizaremos el modelo matemático de
Por conservación de la masa sabemos que un flujo de entrada
estanque cónico [figura 1] utilizando abreviaciones de menos el flujo de salida corresponderá a la tasa de cambio del
nombres para el uso de variables, mostradas en [Tabla 1]. volumen con respecto al tiempo. [Ec.1]

[Ec.1]
Al obtener nuestra ecuación principal [Ec.1] comenzamos a
ingresar los parámetros de volumen del estanque [Ec.2]

[Ec.2]

Figura 1. Tanque cónico


B. Simulación de modelo matemático en Matlab.

El modelamiento matemático en Matlab consistió en dos


[Ec.3] partes. La primera, es el modelo simplificado sin control PID y
Nuestra ecuación principal ahora depende de más variables. La en la segunda, en el modelo por bloques se implementó el
más relevante para el control es la altura h, por lo que control PID.
remplazamos lo que significa r en nuestra ecuación [Ec.4] a Para verificar si nuestro modelo funciona, creamos una
[Ec.2] e ingresando el resultado a la ecuación principal [Ec.1]. ecuación de transferencia en Matlab utilizando la ecuación
[Ec.7].
Fnc(fi-beta*(u)^0.5)/(pi*(R^2/H^2)*(u)^2)
[Ec.10].Función de transferencia para [Ec.7]
[Ec.4]
De la [Ec.4] tomaremos nuestra ecuación arreglada del
volumen y la derivaremos para remplazar dV(dt) Tabla de variables Matlab
Variable Descripción
H Altura de estanque 15cm
R Radio de estanque 16cm
βeta 0.01975 Flujo de salida Kg/seg
Fi 0.0328 Flujo de entrada Kg/seg
[Ec.5] Derivada del volumen
pi 3.1416
Luego de realizar todos los arreglos e ingresos de parámetros a u Corresponde a h en Matlab
nuestra ecuación principal, nos quedará la [Ec.6] que contiene Tabla 2. Descripción de variables
toda la información geométrica de nuestro modelo y relaciona
el flujo de entrada, el flujo de salida y su incidencia en la
variación de altura en el tanque de agua.

[Ec.6]
Realizando unos arreglos algebraicos para construir nuestra
ecuación diferencial no lineal. Figura 2. Diagrama de modelo tanque cónico [Ec.7]

En la Figura 2 apreciamos el diagrama de bloques en


SIMULINK, en lazo cerrado, sin control PID. El modelo
entrega la siguiente curva como resultado:
[Ec.7]
En la [Ec.7] ya podríamos comenzar a modelar nuestro
estanque, pero para mayor facilidad de ingreso al simulador
necesitamos expandir y ordenar nuestra ecuación como en la
[Ec.8] obteniendo la ecuación final [Ec.9].

[Ec.8] Arreglo de expresiones

[Ec.9] Ecuación final para nuestro modelo.


Figura 3.0.Gráfico de llenado – vaciado con respecto al
tiempo.
En contraste, el circuito con control PID se representa en el
siguiente diagrama en SIMULINK:

Figura 4. Diagrama de control PID sobre modelo


matemático. [Ec.7]

Tabla de variables mathlab


Variable Descripción
Figura 3.1 Diagrama de modelo. Con [Ec.9] creamos 3 Kp 5
modelos. El primero es llenado – vaciado. El segundo es solo
Ki 4
llenado y el tercero es solo vaciado.
Kd 0.1
Tabla 3. Descripción de variables

El siguiente gráfico representa la señal resultante con


control PID:

Figura 3.2.Gráfico solo Vaciado con respecto al tiempo.

Figura 5. Gráfico de llenado con sistema PID calibrado.

Figura 3.2.Gráfico solo llenado con respecto al tiempo.


III. PRACTICA
Componentes
A. Parametrización de variables reales experimentales.
ítem Descripción
Estanque cónico capacidad 1.580gramos de agua
Encontramos un estanque y obtuvimos los datos importantes
Bomba de agua Motor eléctrico DC
que necesitamos para ingresar a nuestra simulación.
Pesa electrónica Pesa electrónica Arduino A/D hx711
Microcontrolador Procesador de datos de entrada y salida
Tabla de variables Estanque Tabla 6. Descripción de materiales
Variable Descripción
H Altura de estanque 15cm Para realizar las lecturas de la balanza electrónica,
R Radio de estanque 16cm utilizamos un sensor de pesa con un convertidor A/D hx711
βeta 0.01975 Flujo de salida Kg/seg que obtiene una resolución de 16bit.
Fi 0.0328 Flujo de entrada Kg/seg
capacidad 1.580 gramos
Tabla 4. Descripción de variables para estanque

Luego agregamos una bomba de agua eléctrica y obtuvimos su


caudal sobre el estanque, pesando el estanque, con una balanza
electrónica de alta precisión, mientras se llenaba de agua, en
intervalos de tiempo controlados.

Tabla de variables bomba de agua eléctrica Figura 7. Convertidor A/D hx711


Variable Descripción
fm Flujo motor 1968 g/min Para controlar el nivel de agua sobre el estanque, debemos
Fi Solo llenado 50seg con 1.968 g/min
programar un microcontrolador e incorporar un sistema de
control PID para que maneje de forma estabilizada el nivel de
Fo Solo Vaciado 80seg con 1.185g/min
agua.
Fi-Fo 150 seg
Tabla 5. Descripción de variables para bomba de agua C. Programa control Arduino PID
Para la lectura de altura del estanque utilizamos la misma
Contiene el programa de control PID Arduino, que recibe la
balanza electrónica, que tiene un margen de error de 1 gramo,
señal desde la pesa y regula la señal de salida que controla la
calibrada con una balanza comercial. potencia de la bomba, con un PWM.

Programa de control:
B. Componentes del modelo experimental #include <PID_v1.h>
#include "HX711.h"
#define PIN_INPUT 0
#define PIN_OUTPUT 3
HX711 scale(A1, A0);
double Setpoint, Input, Output, Kp=5, Ki=4, Kd=0.1;
int sensor=0;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd,
DIRECT);
void setup(){Serial.begin(9600);
scale.set_scale(200.f);
scale.tare();
sensor=scale.get_units(1);
Figura 6. Fotografía del armado experimental. Las
mangueras rojas llevan agua de una reserva hacia el estanque Input = sensor;
negro. El agua se vacía por una manguera al mismo Setpoint = 200;
reservorio.
myPID.SetMode(AUTOMATIC);}
void loop(){
sensor=scale.get_units(3);
Input = sensor*-1;
myPID.Compute();
analogWrite(PIN_OUTPUT, Output);
//Serial.print("P:");
Serial.println(Input);
//Serial.print(" ");
//Serial.print("PID_out:");
Figura 8: Estanque cónico usado.
//Serial.println(Output);
}
IV. RESULTADOS
La tarea de este programa consiste en calibrar la pesa
electrónica e iniciar la librería PID, configurando los
parámetros de control y realizar la lectura actual para efectuar Como primeros resultados exponemos los valores de la
el control PID sobre una señal PWM. La señal PWM está simulación y experimento, sin control PID.
asociada al pin de control al que se conecta el motor de la
bomba de agua. De esta forma, controlamos el caudal de 1- Llenado – vaciado estanque
entrada de agua al estanque. Llenado de estanque
Lo más importante de este programa es poder controlar la Simulación Experimento
altura de agua del estanque con un SETPOINT y calibrar su 160 seg 150 seg
curva respuesta con las constantes Kp, Ki y Kd.
Tabla 7. Resultados llenado- vaciado estanque
D. Bloque driver de potencia para bomba de agua.
2- Solo Vaciado
El bloque driver recibe la señal de control desde Arduino Vaciado de estanque
con un PWM y transfiere la señal de control mediante un opto
Simulación Experimento
acoplador 4N35 (o 4N36) hacia un transistor de potencia
74 seg 80 seg
TIP31, el cual trabaja en la zona de corte-saturación. Así
controlamos la potencia transmitida a la bomba que ingresa Tabla 8. Resultados solo vaciado estanque
agua al estanque.
3- Solo llenado
Llenado de estanque
Simulación Experimento
58 seg 50 seg
Tabla 9. Resultados llenado estanque

El circuito final entrega la siguiente curva de descarga y


carga del estanque cónico. Cada una se obtuvo con:
1) Descarga: Se obtiene al desconectar la señal de control
de salida del Arduino, lo que lleva a cero el voltaje aplicado
en la bomba.
Figura 8. Diagrama electrónico control de potencia para
motor DC. 2) Carga: Se obtiene conectando el circuito de control de
salida del Arduino con el estanque vacío, el que se llena hasta
E. Descripción del modelo experimental
el que el volumen de agua alcanza el peso preestablecido en el
setpoint. Esto produce que la señal de control disminuya la
• El circuito posee un estanque cónico, el cual se llena velocidad de giro del motor, hasta alcanzar, y mantener, un
gracias a la bomba controlada por el PID Arduino. flujo de salida igual al flujo de entrada. De esta manera se
• Se usó un estanque rectangular de descarga, donde cae mantiene constante el peso –es decir, la altura- del agua, con
el flujo de salida del estaque cónico. Además, es la pequeñas oscilaciones, producidas por vibraciones indeseadas
reserva de agua que abastece al circuito; la bomba toma en el montaje.
de ahí el fluido que ingresa al estanque y obtenemos así
un flujo constante de agua.
REFERENCIAS

Respuesta transitoria y sintonización, Braulio Martínez.


Ingeniería de Control Moderna, Ogata, 5ta Edición.

https://playground.arduino.cc/Code/PIDLibrary

Figura 9. Curva obtenida con el Arduino serial plotter. https://github.com/bogde/HX711

V. CONCLUSIÓN https://en.wikipedia.org/wiki/PID_controller
En nuestro experimento práctico, probamos el modelo con
varios Setpoint. Algunos de ellos fueron 200 gr y 500 gr de
peso de agua en el estanque, ambos tuvieron una curva de
respuesta rápida, lo que nos demuestra la validez del modelo y
la correcta parametrización del control PID.
Las diferencias de tiempo de vaciado fueron de un orden
del 7,5% de (80 segundos en el experimento versus los 74
segundos de la simulación). Esto se puede explicar
mayormente porque el estanque utilizado tenía una forma
cónica, pero con cierta curvatura. Como vimos en las
ecuaciones [Ec. 4] y [Ec. 6] de nuestro modelo teórico, la
forma del estanque afecta la función de descarga. Además, en
el modelo no se consideró el largo de la manguera de salida,
que también incide en el tiempo de descarga, porque la pesa
detecta el agua remanente que permanece en ella.
La diferencia de tiempo de llenado es aún mayor (13,79%).
Esta vez, lo podemos atribuir a que el flujo de entrada de la
bomba fue un tanto mayor al flujo calculado en el modelo.
Esto, porque la bomba no fue contemplada en el modelo y su
flujo era definido por el circuito de control Arduino. Además,
la bomba trabajó forzada en 24 volts, lo que ayudó a que el
flujo máximo sobrepasara por un buen margen al flujo de
salida, lo que permitía llenar rápidamente el estanque cónico.
Podemos concluir que el modelo matemático que posee
condiciones ideales y no contempla algunas pequeñas variables
reales, como pérdidas de carga en las mangueras, largo de las
mangueras e imprecisión en la respuesta de frecuencia de
control PID de la bomba. Estas consideraciones podrían
explicar las diferencias entre el modelo expuesto y los
resultados prácticos obtenidos. Para mejorar las predicciones,
se propone incluir la curvatura del estanque en el modelamiento
matemático.

También podría gustarte