Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7mimo PDF
7mimo PDF
Introducción
Los sistemas de orden mayor son aquellos cuya dinámica se expresa mediante una
ecuación diferencial de orden mayor que dos, como por ejemplo un proceso de flujo
a través de un sistema constituido de tres o más tanques conectados entre sí. Si en
cada uno de ellos las dinámicas son de primer orden, entonces la dinámica global del
conjunto es de un orden igual o mayor que tres, según el número total de tanques. Si
la variable de salida de uno de los tanques afecta, en un solo sentido, a la variable de
salida del siguiente entonces el sistema es no interactuante, pero si el efecto es
también en el sentido contrario entonces el sistema es interactuante. En este caso
solo se tratara el sistema no interactuante.
Modelo matemático
Asumiendo que todos los parámetros físicos del sistema son constantes y si se
realiza un balance de energía en estado no estacionario del fluido a través del primer
tanque obtiene la siguiente ecuación:
dY1 (t )
1 Y1 (t ) K1 X (t ) (1)
dt
Fig. 7.1 Sistemas De Tanques No Interactuantes
dY2 (t )
Segundo tanque: 2 Y2 (t ) K 2Y1 (t ) (2)
dt
dY3 (t )
Tercer tanque: 3 Y3 (t ) K 3Y2 (t ) (3)
dt
dY4 (t )
Cuarto tanque: 4 Y4 (t ) K 4Y3 (t ) (4)
dt
dY5 (t )
Quinto tanque: 5 Y5 (t ) K 5Y4 (t ) (5)
dt
En este caso, las variables de entrada y salida son las temperaturas y se asumen los
parámetros físicos con valores constantes y, por lo tanto, las ganancias y las
constantes de tiempo también son constantes.
De acuerdo a las ecuaciones diferenciales (1), (2), (3), (4) y (5), la dinámica de cada
uno de los tanques es lineal de primer orden y el sistema es no interactuante. A partir
de la ecuación (2) se entiende, por ejemplo si la variable de estado fuera la
temperatura, que la temperatura del segundo tanque es afectada por un cambio en la
temperatura en el tanque uno pero la temperatura del primer tanque no es afectada
por un cambio en la temperatura del segundo tanque. Igual observación se deduce de
la ecuación (3), (4) y (5) entre las temperaturas de los tanques.
Al combinar las ecuaciones diferenciales (1) y (2) se demuestra que la dinámica del
segundo tanque expresada con respecto a la variable de entrada al primer tanque es
de segundo orden sobre-amortiguada, así:
d 2Y2 (t ) dY (t )
1 2 2
( 1 2 ) 2 Y2 (t ) K1 K 2 X (t ) (6)
dt dt
Análogamente se demuestra para los demás tanques que las dinámicas son de tercer,
cuarto y quinto orden con respecto al primer tanque respectivamente.
La Figura 7.2 muestra la respuesta del sistema de los tanques conectados en cascada
donde se realiza el proceso de calentamiento modelado de acuerdo a las ecuaciones
(1), (2), (3), (4) y (5) para un cambio paso en la variable de entrada al primer tanque.
Para los cinco tanques se observa una respuesta monotónica estable. El primer
tanque muestra una dinámica más rápida característica de un sistema de primer
orden, pero otros tanques son de una dinámica más atrasada debido a los atrasos
dinámicos adicionales en cada uno de ellos. El perfil de la respuesta del segundo al
quinto tanque muestra la característica forma de S itálica que se hace más notoria
con el aumento en el atraso de la respuesta. En esta simulación la respuesta última es
la misma para cada una de las temperaturas en los tanques respectivos porque se
asigna un valor constante de uno para cada una de las ganancias en los cinco
tanques. Si se consideran diferentes, el valor último depende del valor de estas
Figura 7.2 Respuesta Paso En Un Sistema De Tanques En Serie No Interactuante
Una Unidad
function dy = uniunidad(t,y)
global tau K X
dy = (K*X - y)/tau;
Dos Unidades
function dy = biunidad(t,y)
global K1 K2 tau1 tau2 X
dy = [(K1*X - y(1))/tau1; (K2*y(1) - y(2))/tau2];
Tres Unidades
function dy = triunidad(t,y)
global K1 K2 K3 tau1 tau2 tau3 X
dy = [(K1*X - y(1))/tau1; (K2*y(1) - y(2))/tau2; (K3*y(2) - y(3))/tau3];
set(handles.radiobutton2,'Value',1);
set(handles.radiobutton1,'Value',0);
set(handles.radiobutton3,'Value',0);
set(handles.text2,'String','Segunda Unidad');
set(handles.text3,'String','Condiciones Iniciales');
set(handles.text4,'String','Cambio Paso');
set(handles.text5,'Visible','on');
set(handles.text5,'String','Tiempo');
set(handles.text6,'Visible','off');
set(handles.edit4,'Visible','on');
set(handles.edit6,'Visible','on');
set(handles.edit8,'Visible','off');
set(handles.edit9,'Visible','off');
set(handles.edit10,'Visible','on');
set(handles.edit11,'Visible','off');
axes(handles.axes2)
im = imread('MAYOR2.jpg')
axis off;
imshow(im);
set(handles.radiobutton1,'Value',0);
set(handles.radiobutton2,'Value',0);
set(handles.radiobutton3,'Value',1);
set(handles.text2,'String','Segunda Unidad');
set(handles.text3,'String','Tercera Unidad');
set(handles.text4,'String','Condiciones Iniciales');
set(handles.text5,'String','Cambio Paso');
set(handles.text6,'String','Tiempo');
set(handles.text5,'Visible','on');
set(handles.text6,'Visible','on');
set(handles.edit4,'Visible','on');
set(handles.edit6,'Visible','on');
set(handles.edit7,'Visible','on');
set(handles.edit8,'Visible','on');
set(handles.edit9,'Visible','on');
set(handles.edit10,'Visible','on');
set(handles.edit11,'Visible','on');
axes(handles.axes2)
im = imread('mayor3.jpg')
axis off;
imshow(im);
Push Button “Solución”
El siguiente código es el procedimiento que se desarrolla cuando se presiona
el botón denominado “Solución”. Se convierten los parámetros a carácter
numérico y se resuelve(n) la(s) ecuacion(es) diferencial(es) para cada uno de
los casos que incluye el diseño de la interfaz. Los resultados se muestran
gráficamente en el axes1
axes(handles.axes1);
global tau K X Inicio tspan tau1 tau2 tau3 K1 K2 K3 Inicio1 Inicio2 Inicio3
if (get(handles.radiobutton1,'Value')) == 1;
cla;
tau = str2double(get(handles.edit1,'String'));
K = str2double(get(handles.edit2,'String'));
Inicio = str2double(get(handles.edit3,'String'));
X = str2double(get(handles.edit5,'String'));
tspan = str2double(get(handles.edit7,'String'));
[t,y] = ode45(@uniunidad,[0 tspan],Inicio);
plot(t,y,'k')
xlabel('Tiempo','Fontsize',10);
ylabel('Respuesta','Fontsize',10);
title('Respuesta Paso Una Unidad','Fontsize',12,'Fontweight','bold');
grid on
elseif (get(handles.radiobutton2,'Value')) == 1;
cla reset;
tau1 = str2double(get(handles.edit1,'String'));
K1 = str2double(get(handles.edit2,'String'));
tau2 = str2double(get(handles.edit3,'String'));
K2 = str2double(get(handles.edit4,'String'));
Inicio1 = str2double(get(handles.edit5,'String'));
Inicio2 = str2double(get(handles.edit6,'String'));
X = str2double(get(handles.edit7,'String'));
tspan = str2double(get(handles.edit10,'String'));
[t,y] = ode45(@biunidad,[0 tspan],[Inicio1 Inicio2]);
plot(t,y)
xlabel('Tiempo','Fontsize',10);
ylabel('Respuesta','Fontsize',10);
title('Respuesta Paso Dos Unidades','Fontsize',12,'Fontweight','bold');
legend('Primera Unidad','Segunda Unidad',4);
grid on
elseif (get(handles.radiobutton3,'Value')) == 1;
cla reset;
tau1 = str2double(get(handles.edit1,'String'));
K1 = str2double(get(handles.edit2,'String'));
tau2 = str2double(get(handles.edit3,'String'));
K2 = str2double(get(handles.edit4,'String'));
tau3 = str2double(get(handles.edit5,'String'));
K3 = str2double(get(handles.edit6,'String'));
Inicio1 = str2double(get(handles.edit7,'String'));
Inicio2 = str2double(get(handles.edit8,'String'));
Inicio3 = str2double(get(handles.edit9,'String'));
X = str2double(get(handles.edit10,'String'));
tspan = str2double(get(handles.edit11,'String'));
[t,y] = ode45(@triunidad,[0 tspan],[Inicio1 Inicio2 Inicio3]);
plot(t,y)
xlabel('Tiempo','Fontsize',10);
ylabel('Respuesta','Fontsize',10);
title('Respuesta Paso Tres Unidades','Fontsize',12,'Fontweight','bold');
legend('Primera Unidad','Segunda Unidad','Tercera Unidad',4);
grid on
end
helpwin('INTERACTUANTES.m')
Se deja como ejercicio modificar el programa adicionando las opciones para cuatro
y cinco unidades de tal manera que cuando se desplieguen las respectivas interfaces
se muestre el correspondiente sistema de ecuaciones diferenciales.