请问大家为什么我这个循环中的Re1每次算的都一样
还有怎么能在上一次的Pwf1-下一次的Pwf1<0.02的情况下跳出for循环啊
谢谢了
H=3000;Pwh=2;T=50;Ppc=4.6;Tpc=205;
yg=0.65;Qsc=10*10^4;D=62;d=0.062;e=0.016;
Pwf0=Pwh*(1+0.00008*H);
Tav1=273+50;
for n=1:10
%平均参数
Pav1=(Pwf0+Pwh)/2;
Ppr1=Pav1/Ppc;
Tpr=Tav1/Tpc;
Zav1=0.96-(n-1)*0.02;
ug=0.013;
%Re的计算
Bg1=3.447*10^(-4)*Zav1*Tav1/Pav1;
v1=Qsc*Bg1/(3.14*86400*(0.062/2)^2);
Density1=3484.4*((yg*Pav1)/(Zav1*Tav1));
Re1=(v1*Density1*d)/(0.013*0.001); %请问大家这里的结果为什么每次都一样啊Density1和v1每次都变化了,
% 是我公式打的有问题吗,我想让Re1=(v1*Density1*d)/(ug*0.013)
%f的计算
f1=(1.14-2*log10(e/D+21.25/(Re^0.9)))^-2
%无量纲量S的计算
S1=(0.03415*yg*H)/(Tav1*Zav1);
%井底流压的计算
Pwf1=sqrt(Pwh^2*exp(1)^(2*S1)+1.324*10^-18*0.015*(Qsc*Tav1*Zav1)^2*(exp(1)^(2*S1)-1)/d^5);
%计算结果的显示
fprintf('第%d次试算的Pav=%6.3f\n',n,Pav1)
fprintf('第%d次试算的Ppr=%6.3f\n',n,Ppr1)
fprintf('第%d次试算的Tpr=%6.3f\n',n,Tpr)
fprintf('第%d次试算的Zav=%6.3f\n',n,Zav1)
fprintf('第%d次试算的Bg=%6.3f\n',n,Bg1)
fprintf('第%d次试算的Density=%6.3f\n',n,Density1)
fprintf('第%d次试算的v=%6.3f\n',n,v1)
fprintf('第%d次试算的Re=%8.3f\n',n,Re1)
fprintf('第%d次试算的f=%6.3f\n',n,f1)
fprintf('第%d次试算的井底流压Pwf= %6.2f\n',n,Pwf1)
Pwf0=Pwf1;
end
我的结果,每次算的Re都一样
>> H=3000;Pwh=2;T=50;Ppc=4.6;Tpc=205;
yg=0.65;Qsc=10*10^4;D=62;d=0.062;e=0.016;
Pwf0=Pwh*(1+0.00008*H);
Tav1=273+50;
for n=1:10
%平均参数
Pav1=(Pwf0+Pwh)/2;
Ppr1=Pav1/Ppc;
Tpr=Tav1/Tpc;
Zav1=0.96-(n-1)*0.02;
ug=0.013;
%Re的计算
Bg1=3.447*10^(-4)*Zav1*Tav1/Pav1;
v1=Qsc*Bg1/(3.14*86400*(0.062/2)^2);
Density1=3484.4*((yg*Pav1)/(Zav1*Tav1));
Re1=(v1*Density1*d)/(0.013*0.001); %请问大家这里的结果为什么每次都一样啊Density1和v1每次都变化了,
% 是我公式打的有问题吗,我想让Re1=(v1*Density1*d)/(ug*0.013)
%f的计算
f1=(1.14-2*log10(e/D+21.25/(Re^0.9)))^-2
%无量纲量S的计算
S1=(0.03415*yg*H)/(Tav1*Zav1);
%井底流压的计算
Pwf1=sqrt(Pwh^2*exp(1)^(2*S1)+1.324*10^-18*0.015*(Qsc*Tav1*Zav1)^2*(exp(1)^(2*S1)-1)/d^5);
%计算结果的显示
fprintf('第%d次试算的Pav=%6.3f\n',n,Pav1)
fprintf('第%d次试算的Ppr=%6.3f\n',n,Ppr1)
fprintf('第%d次试算的Tpr=%6.3f\n',n,Tpr)
fprintf('第%d次试算的Zav=%6.3f\n',n,Zav1)
fprintf('第%d次试算的Bg=%6.3f\n',n,Bg1)
fprintf('第%d次试算的Density=%6.3f\n',n,Density1)
fprintf('第%d次试算的v=%6.3f\n',n,v1)
fprintf('第%d次试算的Re=%8.3f\n',n,Re1)
fprintf('第%d次试算的f=%6.3f\n',n,f1)
fprintf('第%d次试算的井底流压Pwf= %6.2f\n',n,Pwf1)
Pwf0=Pwf1;
end
f1 =
0.0151
第1次试算的Pav= 2.240
第1次试算的Ppr= 0.487
第1次试算的Tpr= 1.576
第1次试算的Zav= 0.960
第1次试算的Bg= 0.048
第1次试算的Density=16.361
第1次试算的v=18.302
第1次试算的Re=1428118.365
第1次试算的f= 0.015
第1次试算的井底流压Pwf= 4.16
f1 =
0.0151
第2次试算的Pav= 3.081
第2次试算的Ppr= 0.670
第2次试算的Tpr= 1.576
第2次试算的Zav= 0.940
第2次试算的Bg= 0.034
第2次试算的Density=22.986
第2次试算的v=13.027
第2次试算的Re=1428118.365
第2次试算的f= 0.015
第2次试算的井底流压Pwf= 4.15
f1 =
0.0151
第3次试算的Pav= 3.074
第3次试算的Ppr= 0.668
第3次试算的Tpr= 1.576
第3次试算的Zav= 0.920
第3次试算的Bg= 0.033
第3次试算的Density=23.429
第3次试算的v=12.781
第3次试算的Re=1428118.365
第3次试算的f= 0.015
第3次试算的井底流压Pwf= 4.13
f1 =
0.0151
第4次试算的Pav= 3.067
第4次试算的Ppr= 0.667
第4次试算的Tpr= 1.576
第4次试算的Zav= 0.900
第4次试算的Bg= 0.033
第4次试算的Density=23.894
第4次试算的v=12.532
第4次试算的Re=1428118.365
第4次试算的f= 0.015
第4次试算的井底流压Pwf= 4.12
f1 =
0.0151
第5次试算的Pav= 3.060
第5次试算的Ppr= 0.665
第5次试算的Tpr= 1.576
第5次试算的Zav= 0.880
第5次试算的Bg= 0.032
第5次试算的Density=24.381
第5次试算的v=12.282
第5次试算的Re=1428118.365
第5次试算的f= 0.015
第5次试算的井底流压Pwf= 4.11
f1 =
0.0151
第6次试算的Pav= 3.053
第6次试算的Ppr= 0.664
第6次试算的Tpr= 1.576
第6次试算的Zav= 0.860
第6次试算的Bg= 0.031
第6次试算的Density=24.892
第6次试算的v=12.030
第6次试算的Re=1428118.365
第6次试算的f= 0.015
第6次试算的井底流压Pwf= 4.09
f1 =
0.0151
第7次试算的Pav= 3.046
第7次试算的Ppr= 0.662
第7次试算的Tpr= 1.576
第7次试算的Zav= 0.840
第7次试算的Bg= 0.031
第7次试算的Density=25.430
第7次试算的v=11.775
第7次试算的Re=1428118.365
第7次试算的f= 0.015
第7次试算的井底流压Pwf= 4.08
f1 =
0.0151
第8次试算的Pav= 3.040
第8次试算的Ppr= 0.661
第8次试算的Tpr= 1.576
第8次试算的Zav= 0.820
第8次试算的Bg= 0.030
第8次试算的Density=25.997
第8次试算的v=11.519
第8次试算的Re=1428118.365
第8次试算的f= 0.015
第8次试算的井底流压Pwf= 4.07
f1 =
0.0151
第9次试算的Pav= 3.034
第9次试算的Ppr= 0.660
第9次试算的Tpr= 1.576
第9次试算的Zav= 0.800
第9次试算的Bg= 0.029
第9次试算的Density=26.594
第9次试算的v=11.260
第9次试算的Re=1428118.365
第9次试算的f= 0.015
第9次试算的井底流压Pwf= 4.06
f1 =
0.0151
第10次试算的Pav= 3.028
第10次试算的Ppr= 0.658
第10次试算的Tpr= 1.576
第10次试算的Zav= 0.780
第10次试算的Bg= 0.029
第10次试算的Density=27.225
第10次试算的v=10.999
第10次试算的Re=1428118.365
第10次试算的f= 0.015
第10次试算的井底流压Pwf= 4.05
>>
上面代码21行Re后少了个1吗?
错误的原因是Density1和v1都是虚数结果,你使用%f打印的只是实数部分的结果。请检查算法流程是否正确,如有疑问,请继续追问。