Escolar Documentos
Profissional Documentos
Cultura Documentos
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
De manera general el flujo que pasa por una válvula en estado estacionario es dado
por:
: una constante
: Área de paso
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)]);
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.
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