⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jcyhsj.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
							   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 + -