代码如下:(标红部分非法使用if,是哪里出错了呢?求指教)
clear all;clc
%% Variable definition
Clo=0.5;
M=1.2;
W=0;
Ta=22;
Tmrt=22; % 黑球温度?
va=0.1;
rh=60/100;
%% calculate
T= 273+Ta;
if((0<Ta < 200))
Ps=exp(-5800.2206/T+1.3914993+(-0.048640239)*T+(0.41764768e-4)*T*T+(-0.14452093e-7)*T*T*T+6.5459673*log(T)); %饱和水蒸气的饱和压力
else
Ps= exp(-5674.5359/T+6.3925247+(-0.9677843e-2)*T+(0.62215701e-6)*T*T+(0.20747825e-18)*T*T*T+(-0.9484024e-12)*T*T*T*T+4.1635019*log(T));
end
pa=Ps*rh; %当前温度下空气中水蒸气的分压力
%pa=rh*610.6*exp((17.26*Ta)/(273+Ta));
ICL=0.155*Clo; % 代谢水平的单位从Met转换为W/m2
Met=M*58.15;
RMW=Met-W;
% Calculate FCl Value
if(Clo<0.5)
FCL=1.0+0.2*Clo;
else
FCL=1.05+0.1*Clo; % Clothing Area Factor
end
HCF=12.1*(va)^0.5;
TaA=Ta+273;
TRA=Tmrt+273;
%%CALCULATE SURFACE TEMPERATURE OF CLOTHING BY ITERATION
TCLA=TaA+(35.5-Ta)/(3.5*(Clo+0.1));
P1=ICL*FCL;
P2=P1*3.96;
P3=P1*100;
P4=P1*TaA;
P5=308.7-0.028*RMW+P2*(TRA/100)*4;
XN=TCLA/100;
XF=XN;
nIterations=0;
Tolerance=0.000001; % Accuracy definition
while(abs(XN-XF)>Tolerance)
{
if(nIterations<150)
{
XF=(XF+XN)/2;
HCN=2.38*abs(100*XF-TaA)^0.25;
if(HCF>HCN)
HC=HCF;
else
HC=HCN;
end
XN=(P5+P4*HC-P2*XF^4)/(100+P3*HC);
nIterations=nIterations+1;
}
else
PMV1=999;
PPD=100;
end
}
end
TCL=100*XN-273;
%%HEAT LOSS COMPONENTS
HL1=3.05*0.001*(5733-6.99*RMW-pa);
HL2=0.0;
if(RMW>58)
HL2=0.42*(RMW-58);
end
HL3=1.7*0.00001*Met*(5867-pa);
HL4=0.0014*Met*(34-Ta);
HL5=3.96*FCL*(XN^4-(TRA/100)^4); %注意检查括号!!!!
HL6=FCL*HC*(TCL-Ta);
TS=0.303*exp(-0.036*Met)+0.028;
PMV1=TS*(RMW-HL1-HL2-HL3-HL4-HL5-HL6);
PPD=100-95*exp(-0.03353*PMV1^4-0.2179*PMV1^2);
PMVT=PMV1
PPDT=PPD

 Accepted Answer

你这是跟C语言编程搞混淆了吧,把你那段代码的花括号{}去掉,改成我给你的代码,代码如下:
while(abs(XN-XF)>Tolerance)
   
       if (nIterations<150)
        
            XF=(XF+XN)/2;
            HCN=2.38*abs(100*XF-TaA)^0.25;
            if(HCF>HCN)
                HC=HCF;
            else
                HC=HCN;
            end
            XN=(P5+P4*HC-P2*XF^4)/(100+P3*HC);
            nIterations=nIterations+1;
        
        else
            PMV1=999;
            PPD=100;
        end
   
end

More Answers (0)

Categories

Find more on MATLAB 快速入门 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!