该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
H=6;
[T0,P0]=ambient(H);
k=1.4;
kg=1.33;
const=-kg/(kg-1);
EFFb=0.98;
EFFm=0.98;
deltaH=43000;%KJ/kg
ccloss=0.03;
exloss=0.215;
P5=P0/(1-exloss);
ERfpt=2;
ERfptacl=1;
ERmap=1.5;
ERcal=1.1;
RPM=50500;
BETA=1;
while(abs(ERfptacl-ERfpt)/ERfpt>0.01)
BETA=BETA+0.01;
[M1,PR,EFF]=compr_map(BETA,RPM);
NDM1=M1;
T1=T0;
P1=P0;
P2=P1*PR;
T2=T1*(1+(PR^((k-1)/k)-1)/EFF);
PWRc=Air_H(T2)-Air_H(T1);
Cp2=Air_Cp(T2);
f=0.019;
while (abs(ERmap-ERcal)/ERmap>0.01)
f=f+0.0001;
T3=T2;
t=1100;
while (abs(T3-t)/t>0.002)
t=T3;
AAA=(1+f)*Gas_Cp(t,f);
T3=(Cp2*T2+EFFb*f*deltaH)/AAA;
end
P3=P2*(1-ccloss);
PWRggt=PWRc/(EFFm*(1+f));
T4=T3;
tt=800;
pwrggt=PWRggt/2;
while (abs(PWRggt-pwrggt)/PWRggt>0.01)
tt=T4;
pwrggt=Gas_H(T3,f)-Gas_H(tt,f);
T4=tt-1;
end
NDM3=NDM1*(1+f)*((T3/T1)^0.5)*(P1/P3);
[ERggt,EFFggt]=GGT_map(NDM3);
ERmap=ERggt;
ERcal=(1-(1-T4/T3)/EFFggt)^(const);
end
P4=P3/ERcal;
NDM4=NDM3*((T4/T3)^0.5)*(P3/P4);
[ERfpt,EFFfpt]=FPT_map(NDM4);
ERfptacl=P4/P5;
end
无报错,主要就是两层while循环,但是运行一直显示busy,得不到结果(结果以disp任意参数为例都可)。
如果取消内层迭代(即内层while的条件删除,外层每循环一次,内层里的内容只执行一次),只外层迭代可以计算,且计算很快(能够得到不满足内层while条件的结果);如果删掉外层while判断条件,只内层迭代也可执行,(能够得到不满足外层while条件的结果);但是两层嵌套就是算不出来,算了一天一夜都是busy。
有几个函数文件没有贴,但是检查过了没有问题,问题应该还是在两个while循环里,实在找不出原因了,希望帮忙解答一下,无比感谢。