Você está na página 1de 9

Modelado de dos tanques de Nivel en

Cascada
Modelado de dos tanques de Nivel en Cascada
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 partícula 1 y 2 se tiene que:

El flujo de salida del tanque para el caso de una sección transversal S es:

K=S √ 2g

Flujo por una Válvula

De manera general el flujo que pasa por una válvula en estado estacionario es dado
por:

: Flujo a través da válvula

: una constante

: Área de paso

Δ P: 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 práctica 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 Matemático

Tanque 1:

Tanque 2:
Código del sistema:
function Proyecto_Final
clc
%%Descripcion del problema
%tanques en cascada
% parametros
k1=0.04;
k2=0.03;
k3=0.055;
a1=0.5;%valvula tanque 1
a2=0.45;%valvula tanque 2
A1=1;
A2=1.5;
R0=[1;1];
%estado equilibrio uso newton
[P,i]=Newton_Raphson_M(@(R)ecuaciones(R,k1,k2,k3,a1,a2,A1,A2),@(R)jacobia
na(R,k1,k2,k3,a1,a2,A1,A2),R0);
fprintf('Valores en el Equilibrio por Newton-Raphson\n');
fprintf('el valor de H1 en equilibrio es:%4.6f\n el valor de H2 en equilibrio
es:%4.6f\n',[P(1),P(2)]);

%resolucion para estado no lineal

t=0:0.01:100;
[Y,T]=ode23t(@(t,H)ecuaciones2(t,H),t,P);

%Grafica

figure(1)
plot(Y,T(:,2),'-b');
xlabel('tiempo (s)');
ylabel('h_2 m^3/s');

end

function [F]=ecuaciones(R,k1,k2,k3,a1,a2,A1,A2)
h1=R(1);
h2=R(2);
f1=((k1*a1)-(k2*sqrt(h1)))/A1;
f2=((k2*sqrt(h1))-(k3*a2*sqrt(h2)))/A2;
F=[f1;f2];
end

function J=jacobiana(R,~,k2,k3,~,a2,A1,A2)
h1=R(1);
h2=R(2);
df11=-k2/(2*A1*h1^(1/2)); %respecto h1
df12=0;%respecto h2
df21=k2/(2*A2*h1^(1/2));%respecto h1
df22=-(a2*k3)/(2*A2*h2^(1/2));%respecto h2
J=[df11,df12;df21,df22];
end

function [F]=ecuaciones2(~,H)
h1=H(1);
h2=H(2);

k1=0.04;
k2=0.03;
k3=0.055;
a1=0.5-0.001;%valvula tanque 1 mas variacion
a2=0.45;%valvula tanque 2
A1=1;
A2=1.5;

f1=((k1*a1)-(k2*sqrt(h1)))/A1;
f2=((k2*sqrt(h1))-(k3*a2*sqrt(h2)))/A2;

F=[f1;f2];
end

function [P,i]=Newton_Raphson_M(f,J,X0)

Error=1e-10;
itermax=1000;

F=feval(f,X0);
Jac=feval(J,X0);
if det(Jac)~=0

for i=1:1:itermax
X=X0-Jac\F;
k=abs(X-X0);
K=norm(k,2);
if K<=Error
P=X;
break
else
X0=X;
F=feval(f,X0);
Jac=feval(J,X0);
end
if i==itermax && k>Error
error('Se alcanzó el número de iteraciones máximas y no converge')
end
end
else
error('Escoge otras condiciones iniciales')
end

end
Ejercicio 2) La pared de un horno, de 0.08 m de espesor, la temperatura del lado
interno es 642 K, si las pérdidas de calor desde la superficie externa se producen
por convección y radiación, determine la temperatura del lado externo de la pared
(T1). La ecuación que rige esta situación problemática es:
𝑘
(𝑇 − 𝑇0 ) + 𝜀𝜎(𝑇14 − 𝑇𝑓4 ) + ℎ(𝑇1 − 𝑇𝑓 ) = 0
∆𝑥 1
Los datos son:
Conductividad térmica, k= 1.33 W/(m K); Emisividad, ε= 0.8; Temperatura del lado
interno de la pared, T0= 642 K; Temperatura del lado externo de la pared, T 1;
Temperatura del aire, Tf= 299 K; Coeficiente convectivo de transferencia calórica,
h= 18 W/(m2 K); Constante de Stefan-Boltzmann, σ= 5.67 x10-8 W/(m2 K4) ; Espesor
de la pared, ∆x=0.08 m.

Código del sistema:


function Proyecto_Final
%%Descripción del problema
%La pared de un horno de 0.08m de espesor, la temperatura del lado interno
%es 642K, si las pérdidas de calor desde la superficie externa se producen
%por convección y radiación, determine la temperatura del lado externo de la
%pared (T1). La ecuación que rige esta situación problemática. Los datos
%son: conductividad térmica k= 1.33 w/mk
%emisividad e= 0.8
% temperatura interna T0=642 k
% temperatura del aire Tf=299k
% coeficiente de transferencia calorífica h=18 w/m^2k
% constante de Stefan-Boltzmann o=5.67x10-8
%espesor de pared dx=0.08m
%resolución por métodos:
% Regla falsa
% Newton Raphson

clc
k=1.33;
e=0.8;
Tint=642;
Taire=299;
h=18;
o=5.67e-8;
dx=0.08;
a=299;
b=642;
%% regla falsa
fprintf('Resuelta por metodo de la "Regla Falsa"\n');
[P,i]=Regla_falsa(@(T)ecuacion(T,k,e,Tint,Taire,h,o,dx),a,b);
fprintf('la Temperatura externa es: %2.4f\n El numero de iteraciones fue de
%i\n',[P,i]);

%% Newton-Raphson
fprintf('\n\nResuelta por método de la "Newton Raphson"\n');
[r,it]=NewtonRaphson1(@(T)NewtonRa(T,k,e,Tint,Taire,h,o,dx),a);
fprintf('la Temperatura externa es: %2.4f\n El numero de iteraciones fue de
%i\n',[r,it]);

%%
fprintf('\n\nResuelta por método de la "Bisección"\n');
[r1,it1]=Biseccion1(@(T)ecuacion(T,k,e,Tint,Taire,h,o,dx),a,b);
fprintf('la Temperatura externa es: %2.4f\nEl numero de iteraciones fue de
%i\n',[r1,it1]);

%%
Graficar(@(T)ecuacion(T,k,e,Tint,Taire,h,o,dx),a,b)

end

function f=ecuacion(T,k,e,Tint,Taire,h,o,dx)
f=((k/dx)*(T-Tint)+(e*o*(T^4-Taire^4)+(h*(T-Taire))));
end

function F=NewtonRa(T,k,e,Tint,Taire,h,o,dx)
f=((k/dx)*(T-Tint)+(e*o*(T^4-Taire^4)+(h*(T-Taire))));
df=(4*e*o*T^3)+h+(k/dx);
F=[f;df];
end

function [p,i]=Biseccion1(f,a,b)
Error=1e-10; %error permitido
Numiter=1000;%Numero máximo de iteraciones
fa=feval(f,a);
fb=feval(f,b);

if sign(fa*fb)==-1

for i=1:1:Numiter
m=(a+b)/2;
fm=feval(f,m);
if sign(fm)==sign(fa)
a=m;
fa=fm;
else
b=m;
end
e=abs(b-a);
if e<=Error
p=m;
break
end
end
else
error('escoge otros valores de a o b')
end

end

function [p,i]=Regla_falsa(f,a,b)

itmax=1000;
Error=1e-10;

fa=feval(f,a);
fb=feval(f,b);

if fa*fb <0
for i=1:1:itmax
m=b-(fb*(b-a))/(fb-fa);
fm=feval(f,m);

if sign(fm)==sign(fa)
k=abs(m-a);
a=m;
fa=fm;
else
k=abs(b-m);
b=m;
fb=fm;
end
if k<=Error || abs(fm)<=Error
p=m;
break
end
end
else
error('Cambie el valor de a o de b');
end

end

function [p,it]=NewtonRaphson1(f,x0)
itmax=1000;%num de iteraciones maximas
Error=1e-10;%error

for i=1:1:itmax
F=feval(f,x0);
k=F(1,1)/F(2,1);
x=x0-k;

if abs(k)<=Error
p=x;
it=i;
break
else
x0=x;
end
if i==itmax && abs(k)>Error
error('Se alcanzó el número de iteraciones máximas\n y no se alcanzó la
convergencia :(');
end

end

end

Você também pode gostar