查看: 2867|回复: 4|关注: 0

[已解决] 提问:“试图沿模糊的维增大数组”报错如何解决?

[复制链接]

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
错误部分: %迭代求解汽含率xg%
          xg(i)=0.01;xg_(i)=0.001;%迭代求解赋初值%
          while(xg(i)-xg_(i))^2>0.0000001
                xg(i)=xg_(i);
                %林宗虎计算式%
                a(i)=1.48625-9.26541*(pg(i)/pl(i))+44.6954*(pg(i)/pl(i))^2-60.6150*(pg(i)/pl(i))^3-5.12966*(pg(i)/pl(i))^4-26.5743*(pg(i)/pl(i))^5;
                Eg(i)=1/(1+a(i)*(pl(i)/pg(i))^0.5*(pg(i)/pl(i)*(1-xg(i))/xg(i)));
                vg(i)=G(i)*xg(i)/(pg(i)*Eg(i)*A);
                vl(i)=G(i)*(1-xg(i))/(pl(i)*(1-Eg(i))*A);
                Aa=G(i)*(r(i)+(vg(i)^2+vl(i)^2)/2/1000);
                B=G(i-1)*(r(i-1)+(vg(i-1)^2+vl(i-1)^2)/2/1000);
                C=G(1)*(cp(i-1)*(T(i)-T(i-1))+(vl(i)^2+vl(i-1)^2)/2/1000)-q*Pho*Dz;
                xg_(i)=(B*xg(i-1)-C)/Aa;
          end

错误类型:
试图沿模糊的维增大数组。


出错 diedaiweiwancheng (line 71)
          xg(i)=0.01;xg_(i)=0.001;%迭代求解赋初值%

程序全部:
q=1;%输入热流密度%
Dz=0.1;%控制体长度%
D=0.016;%蒸发段外径%
d=0.014;%蒸发段内径%
L=0.7;%蒸发段长度%
Pho=pi*D;%外壁周长%
Phi=pi*d;%内壁周长%
A=pi*(d/2)^2;%流动截面积%
r(1)=166.22;
xg(1)=0;
cp(1)=1.319;
p(1)=1531.5;
T(1)=40;
pl(1)=1133;
pg(1)=66.225;
ul(1)=2.19e-4;
ug(1)=13.18e-6;
dao(1)=0.0772;
G=q*Pho*L/r(1);
G(1)=G;
Eg(1)=0;
vl(1)=G*(1-xg(1))/pl(1)/A/(1-Eg(1));
if Eg(1)==0
    vg(1)=0;
else
    vg(1)=G(1)*xg(1)/pg(1)/A/Eg(1);
end
pm(1)=pg(1)*Eg(1)+pl(1)*(1-Eg(1));
utp(1)=ug(1)*Eg(1)+ul(1)*(1-Eg(1));
Retp(1)=G(1)*D/utp(1);
if 2000<Retp(1)&&Retp(1)<100000
    ftp(1)=0.0791/((Retp(1))^0.25);
else if Retp(1)<2000
        ftp(1)=16/Retp(1);
    end
end
for i=2:8
    G(i)=G(1);
    T(i)=-9.5;T_(i)=0;
    while (T(i)-T_(i))^2>0.000001 T(i)=T_(i);
          %物性参数计算%
          %相变潜热,温度℃,相变潜热kJ/kg%
          r_t=[0 10 20 30 40 50 60 70 80];
          rr=[204.28 195.92 186.89 177.06 166.22 154.03 139.94 123.00 101.48];
          r(i)=interp1(r_t,rr,T(i));
          %密度p,温度℃,密度kg/m^3%
          l_p_t=[0 10 20 30 40 50 60 70 80];
          p_l=[1284 1249 1213 1174 1133 1085 1032 969.9 894.4];
          p_g=[21.286 28.885 38.550 50.761 66.225 85.984 111.657 137.6686 168.2051];
          pl(i)=interp1(l_p_t,p_l,T(i));
          pg(i)=interp1(l_p_t,p_g,T(i));
          %液态工质定压比热容,温度℃,定压比热容kJ/(kg*K)%
          cp_t=[0 10 20 30 40 50 60 70];
          cp_cp=[1.171 1.199 1.232 1.270 1.319 1.395 1.526 1.720];
          cp(i)=interp1(cp_t,cp_cp,T(i));
          %工质粘度,温度℃,粘度Pa*s%
          u_t=[0 10 20 30 40 50 60 70];
          u_l=[2.67e-4 2.53e-4 2.40e-4 2.29e-4 2.19e-4 2.10e-4 2.027e-4 1.9661e-4];
          u_g=[11.98e-6 12.25e-6 12.68e-6 12.84e-6 13.18e-6 13.54e-6 13.96e-6 14.226e-6];
          ul(i)=interp1(u_t,u_l,T(i));
          ug(i)=interp1(u_t,u_g,T(i));
          %液态工质表面张力,温度℃,表面张力N/m%
          zhangli_t=[0 10 20 30 40 50 60 70];
          zhangli_zhangli=[11.7e-3 10.2e-3 8.7e-3 7.2e-3 5.8e-3 4.5e-3 3.3e-3 2.1e-3];
          zhangli(i)=interp1(zhangli_t,zhangli_zhangli,T(i));
          %导热系数,温度℃,导热系数W/(m*k)%
          dao_t=[0 10 20 30 40 50 60 70 80];
          dao_dao=[0.0977 0.0926 0.0875 0.0824 0.0772 0.0714 0.0646 0.0565 0.0471];
          dao(i)=interp1(dao_t,dao_dao,T(i));
          %迭代求解汽含率xg%
          xg(i)=0.01;xg_(i)=0.001;%迭代求解赋初值%
          while(xg(i)-xg_(i))^2>0.0000001
                xg(i)=xg_(i);
                %林宗虎计算式%
                a(i)=1.48625-9.26541*(pg(i)/pl(i))+44.6954*(pg(i)/pl(i))^2-60.6150*(pg(i)/pl(i))^3-5.12966*(pg(i)/pl(i))^4-26.5743*(pg(i)/pl(i))^5;
                Eg(i)=1/(1+a(i)*(pl(i)/pg(i))^0.5*(pg(i)/pl(i)*(1-xg(i))/xg(i)));
                vg(i)=G(i)*xg(i)/(pg(i)*Eg(i)*A);
                vl(i)=G(i)*(1-xg(i))/(pl(i)*(1-Eg(i))*A);
                Aa=G(i)*(r(i)+(vg(i)^2+vl(i)^2)/2/1000);
                B=G(i-1)*(r(i-1)+(vg(i-1)^2+vl(i-1)^2)/2/1000);
                C=G(1)*(cp(i-1)*(T(i)-T(i-1))+(vl(i)^2+vl(i-1)^2)/2/1000)-q*Pho*Dz;
                xg_(i)=(B*xg(i-1)-C)/Aa;
          end
          utp(i)=ug(i)*Eg(i)+ul(i)*(1-Eg(i));%分相流等效粘度%
          Retp(i)=G(1)*d/utp(i);%两相流动雷诺数%
          if 2000<Retp(i)&&Retp(i)<100000
             ftp(i)=0.0791/((Retp(i))^0.25);%湍流两相流动摩擦系数%
          else if Retp(i)<2000
                ftp(i)=16/Retp(i);%层流两相流动摩擦系数%
              end
          end
        pm(i)=pg(i)*Eg(i)+pl(i)*(1-Eg(i));%分相流等效密度%
        %用计算值反向求解T%
        dpdz1=2*ftp(i-1)*G(i-1)^2/d/pl(i-1)*(1+xg(i-1)*(pl(i-1)/pg(i-1)-1))*(1+xg(i-1)*(ul(i-1)/ug(i-1)-1))^(-0.25)/1000;
        dpdz2=2*ftp(i)*G(i)^2/d/pl(i)*(1+xg(i)*(pl(i)/pg(i)-1))*(1+xg(i)*(ul(i)/ug(i)-1))^(-0.25)/1000;
        dgdz1=pm(i-1)*9.81/1000;
        dgdz2=pm(i)*9.81/1000;
        dpa1=(1-xg(i-1))^2/(pl(i-1)*(1-Eg(i-1)))+xg(i-1)^2/(pg(i-1)*Eg(i-1));
        dpa2=(1-xg(i))^2/(pl(i)*(1-Eg(i)))+xg(i)^2/(pg(i)*Eg(i));
        p(i)=p(i-1)-Dz*(dpdz1+dpdz2+dgdz1+dgdz2)/2-G(i)^2*(dpa2-dpa1)/1000-(G(i)*(xg(i)*vg(i)+(1-xg(i))*vl(i))-G(i-1)*(xg(i-1)*vg(i-1)+((1-xg(i-1))*vl(i-1))))/A/1000;
        %用压力反向求解温度%
        p_t=[498.3 681.1 909.7 1190.8 1531.5 1939.5 2423.6 2994 3662];
        T_t=[0 10 20 30 40 50 60 70 80];
        T_(i)=interp1(p_t,T_t,p(i));
    end
end

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1636

帖子

345

最佳答案
  • 关注者: 81
发表于 2020-4-29 20:55:38 | 显示全部楼层 |此回复为最佳答案
在MATLAB2019b运行正常
微信图片_20200429205309.png
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 2020-4-29 20:58:23 | 显示全部楼层
20141303 发表于 2020-4-29 20:55
在MATLAB2019b运行正常

我使用的是2018b,会是因为版本问题出错吗?感谢回答
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1636

帖子

345

最佳答案
  • 关注者: 81
发表于 2020-4-29 21:04:28 | 显示全部楼层
个人认为有点可能,没遇到过试图沿模糊的维增大数组这个问题
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
 楼主| 发表于 2020-4-29 21:21:20 | 显示全部楼层
20141303 发表于 2020-4-29 21:04
个人认为有点可能,没遇到过试图沿模糊的维增大数组这个问题

我把程序关了重开之后运行就不报错了,不知道是什么原因,不过现在已经解决了,感谢你的帮忙:handshake
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表