Drmeng 发表于 2006-4-14 12:27

请教各位大虾

我的成序一直是死循环。大家帮我看一下。<BR>function =condenser(Td,h_in,m_in,m_out,m_a,T_a_in)<BR>P_c=1730000;<BR>d=0.00952;<BR>L_con=2;<BR>%冷凝器的进口温度等于压缩机的排气温度,初始时刻假定空气的平均温度为室外温度,管壁的平均温度为室外温度.<BR>T_a_p_0=300;<BR>T_w_p_0=300;<BR>M_0=0.6 ;<BR>t=0;<BR>while t&lt;100<BR>%此处假设冷凝压力,并假设出口为饱和气体。<BR>T_out=BHQT(P_c);<BR>V_sat=BHQV(T_out);<BR>h_out=BHQH(T_out);<BR>V_gr=GRQV(V_sat,Td,T_out);<BR>Tcon_in=Td;<BR>T_sh_p_1=T_a_p_0+(Tcon_in-T_out)/log((Tcon_in-T_a_p_0)/(T_out-T_a_p_0));<BR>Ain=1.2 ;<BR>Aout=1.25;<BR>a_in=1230;<BR>a_out=623 ;<BR>dt=1;<BR>A1=a_out*Aout*dt;<BR>A2=a_in*Ain*dt;<BR>A3=2361;<BR>T_w_p_1=(A1*T_a_p_0+A2*T_sh_p_1+A3*T_w_p_0)/(A1+A2+A3);<BR>Ain_j=(m_out*h_out-m_in*h_in)/(a_in*(T_sh_p_1-T_w_p_1));<BR>%求取冷凝管的容积<BR>Vin_j=pi*(Ain_j/(2*pi*L_con))*L_con ;<BR>M_j=2/(V_sat+V_gr)*Vin_j;<BR>M=M_0+(m_in-m_out)*dt;<BR>dm= abs(M_j-M);<BR>while dm&gt;0.5<BR>    if M_j&gt;M<BR>      P_c=P_c-100,<BR>      T_out=BHQT(P_c);<BR>V_sat=BHQV(T_out);<BR>h_out=BHQH(T_out),<BR>V_gr=GRQV(V_sat,Td,T_out);<BR>%冷凝器的进口温度等于压缩机的排气温度<BR>Tcon_in=Td;<BR>%初始时刻假定空气的平均温度为室外温度<BR>T_a_p_0=300;<BR>T_sh_p_1=T_a_p_0+(Tcon_in-T_out)/log10((Tcon_in-T_a_p_0)/(T_out-T_a_p_0));<BR>Ain= 1.2 ;<BR>Aout= 1.25 ;<BR>a_in= 1230 ;<BR>a_out=623 ;<BR>dt=1 ;<BR>A1=a_out*Aout*dt;<BR>A2=a_in*Ain*dt;<BR>A3=2361;<BR>%初始时刻假定管壁的平均温度为室外温度<BR>T_w_p_0=300;<BR>T_w_p_1=(A1*T_a_p_0+A2*T_sh_p_1+A3*T_w_p_0)/(A1+A2+A3);<BR>Ain_j=(m_out*h_out-m_in*h_in)/(a_in*(T_sh_p_1-T_w_p_1));<BR>Vin_j=pi*(Ain_j/(2*pi*L_con))*L_con;<BR>M_j=2/(V_sat+V_gr)*Vin_j;<BR>M=M_0+(m_in-m_out)*dt;<BR>elseif M_j&lt;M<BR>    P_c=P_c+100,<BR>    T_out=BHQT(P_c);<BR>V_sat=BHQV(T_out);<BR>h_out=BHQH(T_out),<BR>V_gr=GRQV(V_sat,Td,T_out);<BR>Tcon_in=Td;<BR>%冷凝器的进口温度等于压缩机的排气温度<BR>T_a_p_0=300;<BR>%初始时刻假定空气的平均温度为室外温度<BR>T_sh_p_1=T_a_p_0+(Tcon_in-T_out)/log10((Tcon_in-T_a_p_0)/(T_out-T_a_p_0));<BR>Ain=1.2 ;<BR>Aout=1.25 ;<BR>a_in= 1230 ;<BR>a_out=623 ;<BR>dt= 1;<BR>A1=a_out*Aout*dt;<BR>A2=a_in*Ain*dt;<BR>A3=2361;<BR>T_w_p_0=300;<BR>%初始时刻假定管壁的平均温度为室外温度<BR>T_w_p_1=(A1*T_a_p_0+A2*T_sh_p_1+A3*T_w_p_0)/(A1+A2+A3);<BR>Ain_j=(m_out*h_out-m_in*h_in)/(a_in*(T_sh_p_1-T_w_p_1));<BR>Vin_j=pi*(Ain_j/(2*pi*L_con))*L_con;<BR>M_j=2/(V_sat+V_gr)*Vin_j;<BR>M=M_0+(m_in-m_out)*dt;<BR>end<BR>h_a_in=27.005 ;<BR>%Cp空气的定压比热<BR>Cp=1.005;<BR>T_a_out=(a_out*Aout*(T_a_p_0-2*T_w_p_1)+2*m_a*h_a_in)/(2*m_a*Cp-a_out*Aout);<BR>M_0=M,<BR>T_a_p_0=(T_a_out+T_a_p_0)/2,<BR>T_w_p_0=T_w_p_1,<BR>t=t+dt,<BR>end<BR>end<BR>我的qq号是:41362159。希望大家多交流。

happy 发表于 2006-4-14 22:21

回复:(Drmeng)请教各位大虾

你这里只有两个循环,第一个循环应该不会出现死循环,你仔细检查一下第二个循环<BR>while dm&gt;0.5<BR><BR>其中dm有没有可能大于0.5<BR>建议最好少用while<BR>用for和if来实现比较好

Drmeng 发表于 2006-4-15 11:52

回复:(happy)回复:(Drmeng)请教各位大虾

<P>谢谢,以后大家多交流<BR></P>
页: [1]
查看完整版本: 请教各位大虾