el 05-15-2012 02:58 AM
Buenos días, debo hacer mi proyecto de fin de carrera de ingeniería con el programa LabView, jamás he trabajado con este programa y me siento muy perdida y agobiada, si pudiérais ayudarme lo agradecería en el alma.
Uno de mis numerosos problemas es que tengo que calcular la temperatura del agua dentro de un tubo y en la pared de ese tubo. Tengo que discretizar la longitud del tubo y calcular la temperatura en cada punto de discretizacion de la longitud en cada instante de tiempo para un tiempo de utilización determinado. No se como hacer los bucles para que calcule para cada tiempo la temperatura en todos los puntos de la longitud del tubo. El codigo utilizado en matlab sería:
Delta_t_utilisateur = 1;
M = 0.004;
Dint = 0.005;
Dext = 0.006;
q = 40000;
Tinf = 288;
L = 0.2;
n=10;
g=9.81;
rho_Cu=8900;
Cp_Cu=389;
K_Cu=(372+385)/2;
perimetre_int=pi*Dint;
perimetre_ext=pi*Dext;
S=pi/4*Dint^2;
Ax=L/n;
a_Cu=K_Cu/(rho_Cu*Cp_Cu);
At_fourier_1=(Ax*rho_Cu*pi*Dint^2/4)/(0.004*10);
m_1=(Delta_t_utilisateur/At_fourier_1)+1;
m=fix(m_1)+1;
At_fourier=Delta_t_utilisateur/(m-1);
for j=1:m
for l=1:n
Tf(1,l)=Tinf;
Tp(1,l)=293;
Tf(j,1)=Tinf;
Tp(j,1)=293;
end
end
for j=2:m
for l=2:n
Tm(j-1,l)=(Tf(j-1,l)+Tp(j-1,l))/2;
rho(j-1,l)=-0.0000001122*(Tm(j-1,l)-273)^4+0.0000372467*(Tm(j-1,l)-273)^3-0.0071796133*(Tm(j-1,l)-273)^2+0.0413053150*(Tm(j-1,l)-273)+999.9643281348;
Cp(j-1,l)=-0.000000026906*(Tm(j-1,l)-273)^5+0.000009300200*(Tm(j-1,l)-273)^4-0.001243459106*(Tm(j-1,l)-273)^3+0.088330365059*(Tm(j-1,l)-273)^2-3.032738610723*(Tm(j-1,l)-273)+4217.921302035310;
kw(j-1,l)=0.0000000006*(Tm(j-1,l)-273)^4-0.0000001165*(Tm(j-1,l)-273)^3-0.0000019248*(Tm(j-1,l)-273)^2+0.0019759690*(Tm(j-1,l)-273)+0.5606108063;
mu(j-1,l)=-0.0000000021*(Tm(j-1,l)-273)^3+0.0000004843*(Tm(j-1,l)-273)^2-0.0000418378*(Tm(j-1,l)-273)+0.0016769992;
rhoa(j-1,l)=-0.0000000355*(((Tp(j-1,l)-273)+(Tinf-273))/2)^3+0.0000158130*(((Tp(j-1,l)-273)+(Tinf-273))/2)^2-0.0046557937*(((Tp(j-1,l)-273)+(Tinf-273))/2)+1.2756013125;
Cpa(j-1,l)=-0.0000000048*(((Tp(j-1,l)-273)+(Tinf-273))/2)^4+0.0000008159*(((Tp(j-1,l)-273)+(Tinf-273))/2)^3+0.0003691428*(((Tp(j-1,l)-273)+(Tinf-273))/2)^2+0.0148648025*(((Tp(j-1,l)-273)+(Tinf-273))/2)+1005.9224578201;
ka(j-1,l)=0.0000717582*(((Tp(j-1,l)-273)+(Tinf-273))/2)+0.0240588239;
mua(j-1,l)=0.0000000472*(((Tp(j-1,l)-273)+(Tinf-273))/2)+0.0000177345;
x(l-1)=(l-1)*Ax;
Re(j-1,l)=M*Dint/(S*mu(j-1,l));
Pr(j-1,l)=Cp(j-1,l)*mu(j-1,l)/kw(j-1,l);
Lt(j-1,l)=0.05*Dint*Re(j-1,l)*Pr(j-1,l);
Gz(j-1,l)=Pr(j-1,l)*Re(j-1,l)*(Dint/2)/x(l-1);
Gr(j-1,l)=((rhoa(j-1,l))^2*g*2*(Tp(j-1,l)-Tinf)*x(l-1)^3)/((mua(j-1,l))^2*(Tp(j-1,l)+Tinf));
Pra(j-1,l)=Cpa(j-1,l)*mua(j-1,l)/rhoa(j-1,l);
Ra(j-1,l)=Gr(j-1,l)*Pra(j-1,l);
if Re(j-1,l)<2300
if x(l-1)>Lt(j-1,l)
Nu(j-1,l)=4.36;
else
Nu(j-1,l)=1.637*(Gz(j-1,l))^(1/3);
end
else
if x(l-1)/Dint>=60
Nu(j-1,l)=0.023*(Re(j-1,l))^0.8*(Pr(j-1,l))^(1/3);
elseif x(l-1)/Dint>=20 & x(l-1)/Dint<60
Nu(j-1,l)=(0.023*(Re(j-1,l))^0.8*(Pr(j-1,l))^(1/3))*(1+6*Dint/x(l));
elseif x(l-1)/Dint>0 & x(l-1)/Dint<20
Nu(j-1,l)=(0.023*(Re(j-1,l))^0.8*(Pr(j-1,l))^(1/3))*(1+(Dint/x(l)))^(0.7);
end
end
hint(j-1,l)=kw(j-1,l)*Nu(j-1,l)/Dint;
if Ra(j-1,l)<1000000000
Nue(j-1,l)=(Gr(j-1,l)/4)^(1/4)*g*Pra(j-1,l);
else
Nue(j-1,l)=0.0293*(Pra(j-1,l))^(7/15)*(1+0.444*(Pra(j-1,l))^(2/3))^(-2/5)*(Gr(j-1,l))^(2/5);
end
hext(j-1,l)=ka(j-1,l)*Nue(j-1,l)/Dext;
f1(j-1,l)=M*At_fourier/(rho(j-1,l)*S*Ax);
f2(j-1,l)=hint(j-1,l)*perimetre_int*At_fourier/(rho(j-1,l)*S*Cp(j-1,l));
E1=K_Cu*At_fourier/(Ax^2*rho_Cu*Cp_Cu);
E2(j-1,l)=hext(j-1,l)*perimetre_ext*At_fourier/(pi/4*(Dext^2-Dint^2)*rho_Cu*Cp_Cu);
E3(j-1,l)=hint(j-1,l)*perimetre_int*At_fourier/(pi/4*(Dext^2-Dint^2)*rho_Cu*Cp_Cu);
E4=q*perimetre_ext*At_fourier/(pi/4*(Dext^2-Dint^2)*rho_Cu*Cp_Cu);
Tf(j,l)=f1(j-1,l)*(Tf(j-1,l-1)-Tf(j-1,l))+f2(j-1,l)*(Tp(j-1,l)-Tf(j-1,l))+Tf(j-1,l);
if l==n
Tp(j,l)=E1*(Tp(j-1,l)-Tp(j-1,l-1))+E2(j-1,l)*(Tinf-Tp(j-1,l))-E3(j-1,l)*(Tp(j-1,l)-Tf(j-1,l))+E4+Tp(j-1,l);
else
Tp(j,l)=E1*(Tp(j-1,l)-Tp(j-1,l-1))-E1*(Tp(j-1,l)-Tp(j-1,l+1))+E2(j-1,l)*(Tinf-Tp(j-1,l))-E3(j-1,l)*(Tp(j-1,l)-Tf(j-1,l))+E4+Tp(j-1,l);
end
end
end
Como se ve al final del código calculo cada temperatura a partir del tiempo anterior. j se refiere al tiempo y l se refiere a la longitud del tubo. En rojo oscuro señalo las ecuaciones a partir de las cuales calculo las temperaturas. Las otras ecuaciuones son para calcular los coeficientes de estas primeras, las variables del fluido dentro y fuera del conducto que son variables con la temperatura.
Por favor, necesito ayuda, muchas gracias de antemano.
el 05-16-2012 09:00 AM
Para acceder al valor en el ciclo anterior en Labview se utilizan los shift register, cablea el dato a la salida del ciclo for, das click derecho en la salida y selecciona add shift register.