Si quieres saber como calcular un sistema de dos tanques en serie o cascada has llegado al lugar adecuado.
En esta entrada vamos a aprender detalladamente como calcular y simular el modelado matemático de dos tanques interconectados en serie utilizando técnicas de balance de masas y linealización para finalmente simularlo en Matlab.
Antes que nada, puedes ver nuestro curso de análisis de sistema si deseas modelar otro tipo de sistemas y suscribirte al canal de youtube para seguir aprendiendo más sobre el modelado de procesos.
Si estás interesado en aprender a modelar otro tipo de sistema hidráulico te dejo diferentes entradas donde hemos explicado en detalle estos sistemas:
- Modelo matemático de Tanques en Paralelo y simulado en Simulink
- Modelo matemático de Tanques Esféricos y Simulados en Matlab
Modelo estático del sistema de tanque de nivel
Antes de comenzar con el modelado de sistemas hidráulicos, es importante entender inicialmente, cada uno de sus componentes y el tipo de energías que actúan sobre el proceso.
Consideremos inicialmente el siguiente sistema de tanque o tinaco de nivel
Si se considera que la presión manométrica entre los puntos 1 y 2 son cero. Que m es la masa de las partículas de fluido entre el punto 1 y 2. Y que v es la velocidad de salida de la particula 1 y 2. Se tiene que el caudal que circula por la sección transversal en el punto 2 viene dado por:
El flujo de salida del tanque para el caso de una sección transversal S es:
Flujo por una Válvula
De manera general el flujo que pasa por una válvula de control en estado estacionario, como lo explicamos en detalle en una entrada anterior, es dado por:
: Flujo a través da válvula
: una constante
: Área de paso
: Presión diferencial a través de la válvula. P2-P1
Se puede concluir que el flujo que pasa por la válvula es proporcional al área de abertura de la válvula en el caso que la diferencia de presión sea constante.
De manera practica tomamos una válvula con un comportamiento inteligente, donde sea posible hacer una aproximación más o menos lineal entre el flujo Qv y la abertura de la válvula.
Vamos a suponer que el flujo de entrada Qe es proporcional a la abertura de la válvula de entrada considerando un suministro constante.
Modelado de Dos Tanques Interconectados en Serie
El modelo matemático de un tanque fue explicado en una entrada pasada, ahora en este caso vamos a abordar el estudio de los dos tanques en serie de la siguiente figura:
Es importante resaltar que el acoplamiento entre los dos tanques en serie es realizado sin ninguna válvula intermediaria.
Inicialmente obtenemos el balance de masas para obtener las ecuaciones diferenciales (EDO) de los tanques interconectados en serie:
Tanque 1:
Tanque 2:
De las ecuaciones del modelo de los dos tanques en cascada podemos observar que el sistema hidráulico de dos tanques en cascada es un sistema NO LINEAL por causa de que la variable de interés h (Altura) se encuentra dentro de una raíz cuadrada.
Da click en el siguiente enlace si deseas saber que es un sistema lineal y no lineal.
En este caso como queremos representar el sistema hidráulico de los dos tanques en serie por funciones de transferencia, vamos a tener que linealizar las edo de los tanques interconectadosecuaciones utilizando las Series de Taylor.
Linealización de los Tanques en Serie
Para efectuar una linealización por Series de Taylor primero debemos encontrar el punto de equilibrio del sistema volviendo todas las derivadas igual a cero.
En este punto el balance de masas dentro del tinaco se equilibra, es decir que todo lo que le entra al tanque es igual a todo lo que le sale.
Tanque 1:
Tanque 2:
Linealización por Series de Taylor de los Tanques en Cascada:
La ecuación matemática de las series de Taylor viene representado de forma general por la siguiente expresión:
Dado que la serie de Taylor es una serie infinita, y nuestro objetivo es linealizar el sistema de tanques acoplados en serie en un punto de operación.
Por lo tanto de la ecuación de Taylor vamos a tomar únicamente hasta la primera derivada.
Esta primera derivada es conocida como la Jacobiana del sistema.
Ahora llevándolo para el problema de los dos tanques acoplados en cascada, vamos a linealizar el primer tanque con relación a la abertura de la primera válvula.
Linealización del Tanque 1 del sistema hidráulico
Inicialmente la función de Taylor es equivalente a:
Ahora si linealizamos en torno a un punto de equilibrio que vamos a llamar y , como son dos variables, nuestra serie de Taylor se reduce a la siguiente expresión:
note que y , que permite expresar el problema en variable de desviación. Es decir estamos trasladando el problema al punto donde queremos linealizar ().
Sabemos que partiendo del modelo matemático del tanque:
por lo tanto despejando:
donde el modelo matemático del primer tanque linealizado es:
Notemos que la ecuación anterior ahora es una ecuación lineal que depende de la variable desvío y que ésta no se encuentra inserida en ninguna raíz cuadrada.
Podemos Aplicar transformada de Laplace para llevar la ecuación lineal al plano transformado S
Finalmente, la función de transferencia del primer tanque es:
Linealización del Tanque 2 del sistema hidráulico
Para el Tanque 2 tenemos:
Sabemos que:
apicando la transformada de Laplace
Esta ecuación depende de la transformada de Laplace del tanque 1, por eso debemos sustituirla en la expresión de
Así nos queda una Función de Transferencia de Segundo Orden que representa la dinámica del tanque 2:
Podemos aprovechar y tomar también nuestras ecuaciones lineales en el dominio del tiempo y representar el modelado del sistema de dos tanques interconectados en serie en Espacio de Estados, asi:
Hasta aquí hemos detallado paso a paso el modelo matemático de dos tanques en serie, vamos a abordar otro método de linealización para finalmente hacer ejercicios de tanques interconectados y simulaciones.
Quizás también te pueda interesar ver alguna de otras entradas que tenemos en este sitio web:
4. Linealización de un Reactor de Van de Vusse NO Isotérmico (Proceso MIMO)
Ecuaciones Diferenciales EDO
Modelo de 2 tanques esféricos
LINEALIZACIÓN POR JACOBIANA
Otra forma genérica de linealización de modelos matemáticos no lineales es utilizando la Jacobiana, que es simplemente el primer termino de la expansión de series de Taylor, con lo cual podremos obtener directamente nuestro sistema linealizado expresado en la representación en el espacio de estados:
Serie de Taylor:
Jacobiana:
donde:
Dando el mismo resultado:
Simulación de los Tanques en Serie usando Matlab y Simulink
Vamos a mostrar más ejercicios resueltos de modelado de sistemas hidráulicos en este sitio web, en este caso vamos a resolver el siguiente ejemplo que está explicado en detalle en el siguiente video.
Vamos inicialmente a asignarle algunos datos numericos al modelado de los dos tanques en cascada para poderlo simular en Matlab y Simulink. Vamos a suponer entonces los siguientes datos:
A continuación implementaremos el código en matlab usando las funciones para resolver ecuaciones diferenciales y también lo implementaremos en SIMULINK usando S-FUNCTION y también álgebra de Bloques.
Programa Principal
A continuación vamos a realizar el modelamiento y simulación de un sistema de llenado de dos tanques en serie.
% Tanques en Cascada % Sergio Andres Castaño Giraldo % Rio de Janeiro - 2017 % https://controlautomaticoeducacion.com/ clc clear all close all %Parametros k1=0.04; k2=0.03; k3=0.055; a1=0.0:0.1:1; %Abertura de la Valvula entrada a2=0:0.1:1; %Abertura de la Valvula salida A1=1; A2=1.5; %Abertura de las Valvulas para el punto de equilibrio a1s=0.5; a2s=0.45; %Altura en los tanques en el punto de equilibrio h1s=((k1*a1s)/k2)^2; h2s=((k2^2*h1s)/(k3*a2s)^2); Eq1=[h1s h2s]; %Perfil de los estados estacionarios variando valvula de entrada a1 fijando %valvula de salida a2 H1s=((k1.*a1)/k2).^2; H2s=((k2^2.*H1s)./(k3*a2s)^2); figure subplot(2,1,1); plot(a1,H1s),grid title('Variación de nivel h1'); ylabel('Altura (h)'); xlabel('Abertura de Valvula a1'); subplot(2,1,2); plot(a2,H2s),grid title('Variación de nivel h2'); ylabel('Altura (h)'); xlabel('Abertura de Valvula a1'); %% Linealizacion del sistema por Jacobiana syms x1 x2 ua1 % Funciones para realizar la jacobiana fx1 = 1/A1*(k1*ua1-k2*sqrt(x1)); fx2 = 1/A2*(k2*sqrt(x1)-k3*a2s*sqrt(x2)); %Conforma vectores fx = [fx1;fx2]; x = [x1;x2]; %Linealiza por medio de la Jacobiana A = jacobian(fx,x); B = jacobian(fx,ua1); C = [0 1]; %Matriz de salida (Cb) %Reemplazo los puntos de equilibrio en la Jacobiana display('Representación en Espacio de Estado Caso 1') Ad = double(subs(A,{x1,x2},{Eq1})) Bd = double(B) %Determino la Funcion de Transferencia display('Representación en Función de Transferencia Caso 1') [num1,den1]=ss2tf(Ad,Bd,C,0); ft1=tf(num1,den1) %Creamos la función de transferencia del Proceso para la altura h2 num=(k1*k2)/(2*sqrt(h1s)); den=conv([A1 k2/(2*sqrt(h1s))],[A2 (k3*a2s)/(2*sqrt(h2s))]); G2=tf(num,den); %Carga los parametros en una variable Par, para hacer la integración del %sistema par.k1=k1; par.k2=k2; par.k3=k3; par.A1=A1; par.A2=A2; u(1)=a1s; u(2)=a2s; % Simula el Modelo No Lineal, realizando la integración del modelo, % resolviendo las ecuaciones diferenciales del sistema t=0:0.01:1000; du=-0.001; %Pequeña Variación en la entrada del sistema u(1)=a1s+du; [ts,X1] = ode23t(@(t,x)tankmodel(t,x,u,par), t , Eq1); u2=zeros(length(ts),1); %Creo el vector de entrada para la FT u2(:,1)=du*ones(length(ts),1); %Lo lleno con el pequeño incremento [ylin]=lsim(G2,u2,ts); %Grafica figure plot(ts,X1(:,2),'-b',ts,ylin+Eq1(2),'--r','LineWidth',2); title('Comparación modelo Lineal vs No Lineal'); xlabel('tiempo (s)'); ylabel('h_2 m^3/s'); legend('No lineal','Lineal');
FUNCIÓN DEL MODELO DEL TANQUE:
function x = tankmodel(~,x,u,par) %Carga los parametros k1 = par.k1; k2 = par.k2; k3 = par.k3; A1 = par.A1; A2 = par.A2; %Carga las entradas del Modelo a1 = u(1); a2 = u(2); %Definición de las Variables de Estado h1 = x(1); h2 = x(2); % % Sistema de Ecuaciones % dh1dt = 1/A1*(k1*a1-k2*sqrt(h1)); dh2dt = 1/A2*(k2*sqrt(h1)-k3*a2*sqrt(h2)); % % Vector de Estados % x = [dh1dt;dh2dt]; FUNCIÓN DE LA S-FUNCTION: function [sys,x0]=smodelo(t,x,u,flag,par,h1s,h2s) % En el Flag 0 es el paso donde indicamos para la S-Function que es lo que % la función va a encontrar en el momendo de leer el modelo. Esa % información será encontrada en un vector de 6 elementos, que llamaremos % "sys" if flag==0 %Elemento 1: Número de estados continuos (Ecuaciones diferenciables)= 2 %Elemento 2: Número de estados discretos: 0 %Elemento 3: Número de saídas do modelo: 2 %Elemento 4: Número de Entradas do modelo (a1) (a2): 2 entradas %Elemento 5: Parametro de control, colcar 0 %Elemento 6: Tipologia do processo, (1 para processos continuos) [sys]=[2,0,2,2,0,0]; %Incluir las condiciones iniciales x0=[h1s h2s]; elseif flag==1 %Flag 1 llama el modelo [sys]=tankmodel(t,x,u,par); elseif flag==3 %Flag 3 indica la respuesta que se debe obtener, en este caso, un vetor con las 2 %variables de estado [sys]=x; else %Como paso final con un vetor nulo se cierra el bucle [sys]=[]; end end
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.