📄 jcyhsj.cpp
字号:
break;
case 5:
mm5=title1;
break;
case 6:
mm6=title1;
break;
case 7:
mm7=title1;
break;
case 8:
mm8=title1;
break;
case 9:
mm9=title1;
break;
case 10:
mm10=title1;
break;
case 11:
mm11=title1;
break;
case 12:
mm12=title1;
break;
case 13:
mm13=title1;
break;
case 14:
mm14=title1;
break;
}
}
else
{
title=title+AA.Mid(j,1); //AA.Mid(J,1)
}
}
gcyjxh[i]=mm2;
gxdzdzh[i]=atof(mm3);
gqbzdnj[i]=atof(mm4);
gchongcheng[i][1]=atof(mm5);
gchongcheng[i][2]=atof(mm6);
gchongcheng[i][3]=atof(mm7);
gchongcheng[i][4]=atof(mm8);
gchongcheng[i][5]=atof(mm9);
gchongci[i][1]=atof(mm10);
gchongci[i][2]=atof(mm11);
gchongci[i][3]=atof(mm12);
gchongci[i][4]=atof(mm13);
gchongci[i][5]=atof(mm14);
if( gcyjsl == ZZ)
{
scyjxh = gcyjxh[gcyjsl];
}
}
catch (CFileException exception5)
{
AfxMessageBox("Error reading file");
return;
}
} while (AA!="[END]\n");
}
f5.Close();
gcyjsl=i-1;
//dd(i) 泵径,mm
g_iProgress = 15; // 计算进度
ENDCOMPUTE;
DD[1] = 28; DD[2] = 32; DD[3] = 38; DD[4] = 44; DD[5] = 51;
DD[6] = 56; DD[7] = 63; DD[8] = 70; DD[9] = 83; DD[10] = 95;
switch(cdkjg)
{
case 1:
if( H2S > 0)
{
SF = 0.5;
}
else if(NaCl > 0)
{
SF = 0.65;
}
else
{
SF = 1;
}
break;
case 2:
if( H2S > 0)
{
SF = 0.7;
}
else if( NaCl > 0)
{
SF = 0.9;
}
else
{
SF = 1;
}
break;
case 3:
if( H2S > 0 )
{
SF = 0.9;
}
else
{
SF = 1;
}
break;
}
//单位制换算:将MPa换算为 公斤/mm^2 1公斤/mm^2=10MPa
fff = fff / 10;
CString jsff;
if(MMPF == 1)
{
jsff = "Hagedorn和Brown多相流方法";
}
else if(MMPF == 2)
{
jsff = "Duns和Ros多相流方法";
}
else if(MMPF == 3)
{
jsff = "Orkiszewski多相流方法";
}
else if(MMPF == 4)
{
jsff = "Beggs和Brill多相流方法";
}
else if(MMPF == 5)
{
jsff = "Mukherjee和Brill多相流方法";
}
else if(MMPF == 6)
{
jsff = "SWPI和SPA多相流方法";
}
//变换含水率,如果 Fw=1 为排水采气,否则为采油
Fw = 1;
Pb = pdiceng;
OG=0.8;
//rjdtgx(PLI, QB, Qomax, Qtmax, qceshi, pceshi, pdiceng, Pb, Fw);//入井动态关系IPR
zpjjs.rjIPR(PLI, qceshi, pceshi, pdiceng, Pb, Fw);
QB=zpjjs.QB;
Qomax=zpjjs.Qomax;
Qtmax=zpjjs.Qtmax;
PLI=zpjjs.PLIZZZ;
fyouguan=3.14159 / 4 * (pow(DOT,2)-pow(DIT,2));
H2S = H2S / 100; CO2 = CO2 / 100; N2 = N2 / 100;
if( RR == 0)
{
RR = 0.05 / DIT;
}
DIT = DIT / 1000; DOT = DOT / 1000; DIC = DIC / 1000;
tjingkou = tjingkou + 273.15; tdiceng = tdiceng + 273.15;
TG = (tdiceng - tjingkou) / DVW;
ldiv_t DVWshang;
DVWshang=ldiv(long(DVW),50);
if(fmod(DVW,50)==0)
{
nygds =DVWshang.quot;
}
else
{
nygds =DVWshang.quot+ 1;
}
// trqljcs(PC, TC, GG, H2S, CO2, "干气");//天然气的临界参数
csjs.trqnjcs(GG, H2S, CO2,1);//临界参数
PC=csjs.Pc;//对比压力
TC=csjs.Tc;//对比温度
RUO = (Fw * GW + (1 - Fw) * OG) * 1000;
QL = qsheji;
if( QL == 0 || QL >= 0.75 * Qtmax)
{
QL = 0.75 * Qtmax;
}
if( QL > 100)
{
QL = 100;
}
if( pcmyl <= 0)
{
pcmyl = 3;
}
pmaxcmyl = 20;
//求设计产量下的井底流压
// fromqtopwf(PWF, QL, PLI, QB, Qomax, Qtmax, pdiceng, Pb, Fw);//由Q求PWF
PWF=zpjjs.YQPWF(QL, PLI, QB, Qomax, Qtmax, pdiceng, Pb, Fw);
//求井筒多相流压力梯度
if(fmod(DVW,50)==0)
{
nygds =DVWshang.quot;
}
else
{
nygds = DVWshang.quot + 1;
}
QO = QL * (1 - Fw);
QW = QL * Fw;
QG = QL * GWR;
dtidu[0] = DVW;
ptidu[0] = PWF;
for(i=1;i<=nygds;i++)
{
dtidu[i] = 0;
ptidu[i] = 0;
}
// dxl(pjisuan, PWF, tdiceng, TG, QG, QW, QO, GG, GW, OG, DVW, DIT, 0, RR, H2S, CO2, N2, NaCl, nygds, -1, 1, MMPF);//多相流
pjisuan=zpjjs.dxl(MMPF,PWF, tdiceng, TG, QG, QW, QO, GG, GW, OG, DVW, DIT, 0, RR, H2S, CO2, N2, NaCl, nygds, -1, 1);
dshengdu[0] = 0; pyali[0] = 0;
for(i=1;i<=nygds;i++)
{
dshengdu[i] = int(10 * i * DVW / nygds);
dshengdu[i] =dshengdu[i] / 10;
pyali[i] =ptidu[nygds-i];
}
if( H == 0)
{
for(i=2;i<=nygds;i++)
{
if(pyali[i] > pcmyl && pyali[i - 1] < pcmyl)
{
H = dshengdu[i - 1] + DVW / nygds * (pcmyl - pyali[i - 1]) / (pyali[i] - pyali[i - 1]);
break;
}
}
if( H == 0)
{
MessageBox(NULL,"该井压力太低,不能保证沉没压力!", "方法选择不当",MB_ICONINFORMATION);
return;
}
}
else
{
double pchenmo = 0;
for(i=2;i<=nygds;i++)
{
if(dshengdu[i] > H && dshengdu[i - 1] < H)
{
pchenmo = pyali[i - 1] + (pyali[i] - pyali[i - 1]) * (H - dshengdu[i - 1]) / (DVW / nygds);
break;
}
}
if( pchenmo = 0 || pchenmo < pcmyl)
{
for(i=2;i<=nygds;i++)
{
if(pyali[i] > pcmyl && pyali[i - 1] < pcmyl)
{
H = dshengdu[i - 1] + DVW / nygds * (pcmyl - pyali[i - 1]) / (pyali[i] - pyali[i - 1]);
break;
}
}
if( H == 0)
{
MessageBox(NULL, "该井压力太低,不能保证沉没压力!","方法选择不当",MB_ICONINFORMATION);
return;
}
}
else if( pchenmo > pmaxcmyl)
{
pcmyl = pmaxcmyl;
for(i=2;i<=nygds;i++)
{
if(pyali[i] > pcmyl && pyali[i - 1] < pcmyl)
{
H = dshengdu[i - 1] + DVW / nygds * (pcmyl - pyali[i - 1]) / (pyali[i] - pyali[i - 1]);
break;
}
}
}
else
{
pcmyl = int(100 * pchenmo);
pcmyl =pcmyl / 100;
}
}
H = long(H+0.5);
/* fileDialogFilter2 ="Data files (*.RDR)|*.RDR|All files (*.*)|*.*||";
fileDialogExt2 = "RDR";
CFileDialog fileDialog2( FALSE,
fileDialogExt2, NULL,
0, fileDialogFilter2 );
fileDialog2.m_ofn.lpstrTitle="保存计算结果";
if( fileDialog2.DoModal() == IDCANCEL )
{
return;
} */
templs1 = ((CCVenusApp*)AfxGetApp())->GetMyAppPath();
templs1 += "\\tempfile.txt";
status1 = f3.Open(templs1,CFile::modeCreate|CFile::modeWrite);
if (!status1)
{
char s[100];
sprintf(s, "Error opening file for reading. Code:%d",
exception3.m_cause);
AfxMessageBox(s);
return;
}
title="\t\t$$抽油机排水采气优化设计结果$0\n";
try
{
f3.WriteString("\n");
f3.WriteString(title);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
gcvt(QL,80,Temp);
title1=Temp;
title1="设计排液量=$0\t\t"+title1+ "$0"+"\t"+"(m^3/d)$0\t\t";
gcvt(H,100,Temp);
title=Temp;
title1=title1+"设计泵挂深度 =$0\t\t" + title + "$0" + "\t" + "(m)$0\t\t";
gcvt(pcmyl,100,Temp);
title=Temp;
title1=title1+"泵的沉没压力 =$0\t\t" + title + "$0" + "\t" + "(MPa)$0\n";
try
{
f3.WriteString("\n");
f3.WriteString(title1);
f3.WriteString("\n");
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
if( pyali[1] > pjingkou)
{
title="";
title=title+"该井抽油机助排后井能够自喷。$0\n";
try
{
f3.WriteString(title);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
}
/* ww1 = 3;
ww2 = 15 + 13;
ww3 = 5 + 5;
G循环次数 = 0*/
//确定不同计算方法的最大循环次数
/* if( sheji1 == 1 && sheji2 == 1 && sheji3 == 1)
{
Max = ww1 + ww2 + ww3;
}
else if( sheji1 == 1 && sheji2 == 1)
{
Max = ww1 + ww2;
}
else if( sheji1 == 1 && sheji3 == 1)
{
Max = ww1 + ww3;
}
else if( sheji2 == 1 && sheji3 == 1)
{
Max = ww2 + ww3;
}
else if( sheji1 == 1)
{
Max = ww1;
}
else if( sheji2 == 1)
{
Max = ww2;
}
else if( sheji3 == 1)
{
Max = ww3;
}*/
gtiaojian = "否";
if( sheji1 == 1)
{
gcygdqdsj();//钢抽油杆柱等强度设计
}
g_iProgress = 45; // 计算进度
ENDCOMPUTE;
if( sheji2 == 1)
{
apisjgcyg();//利用API方法设计钢抽油杆柱
}
g_iProgress = 70; // 计算进度
ENDCOMPUTE;
if( sheji3 == 1)
{
blggzsj();//玻璃钢杆柱设计
}
g_iProgress = 95; // 计算进度
ENDCOMPUTE;
title="";
title=title+"18"+"\t"+"8"+"\n";
try
{
// f3.WriteString(title);
}
catch (CFileException exception3)
{
AfxMessageBox("Error reading file");
return;
}
f3.Close();
g_iProgress = 100; // 计算进度
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -