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

📄 jcyhsj.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		  title2=Temp;
		  gcvt(bpl[xuhao[i]],100,Temp);
		  title3=Temp;
		  G6=sscyjxh[xuhao[i]]+"\t"+title+"\t"+title1+"\t"+title2+"\t"+title3+"\t";
          gcvt(LL1[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl1[xuhao[i]]*10,100,Temp);
		  title1=Temp;
		  G6=G6+title+"\t"+title1+"\t";
          gcvt(LL2[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl2[xuhao[i]]*10,100,Temp);
		  title1=Temp;
		  if( LL2[xuhao[i]] > 0)
		  {
			G6 = G6 + title + "\t" + title1+"\t";
		  }
		  else
		  {
			G6 = G6 + "/"+"\t"+ "/"+"\t";
		  }
          gcvt(LL3[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl3[xuhao[i]]*10,100,Temp);
		  title1=Temp;
          if( LL3[xuhao[i]] > 0)
		  {
			G6 = G6 + title + "\t" + title1+"\t";
		  }
		  else
		  {
			G6 = G6 + "/"+"\t"+ "/"+"\t";
		  }
          gcvt(zhmax[xuhao[i]],100,Temp);
		  title=Temp;
		  G6 = G6 + title+"\t";
          gcvt(zhmin[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
		  gcvt(zdnj[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
		  gcvt(llbx[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
          gcvt(sdjgl[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\n";
		  if( G60 != G6)
		  {
			    try
				{    
					f3.WriteString(G6);
				}
				catch (CFileException exception3)
				{
					AfxMessageBox("Error reading file");
					return;
				}
		  }
		}
	  }
  
	  if( sfdayin == 1)
	  {
		G7=G7+"\n";
        try
		{    
			f3.WriteString(G7);
		}
		catch (CFileException exception3)
		{
			AfxMessageBox("Error reading file");
			return;
		}
	  }
//	  G循环次数 = G循环次数 + 1;
//	  主窗口.SSPanel1.FloodPercent = G循环次数 / Max * 100;

	  //四级抽油杆机抽系统设计程序
	  sfdayin = 0;
	  NNN = 0;
	  cshsz();
	  L1 = 0;
	  L2 = 0;
	  L3 = 0;
	  L4 = 0;
	  for(K=1;K<=10;K++)
	  {
		for(int i=1;i<=gcyjsl;i++)//(i----不同型号的抽油机)
		{
		  for(int j=1;j<=5;j++)
		  {
		    if( gcyjxh[i] != scyjxh && scyjxh != "全部")
			{
				break;
			}
			for(int jj=1;jj<=5;jj++)
			{
			  if( gchongci[i][j] * gchongcheng[i][jj] == 0)
			  {
				  break;
			  }
			  //计算每一级抽油杆的长度
			  //单位制换算:将MPa换算为 公斤/cm^2  1公斤/cm^2=0.1MPa  P沉没压力 = P沉没压力 * 10  P井口 = P井口 * 10
			  A = 3.1416 / 4 * pow(DD[K],2) * (H * RUO * (1 + gchongcheng[i][jj] * pow(gchongci[i][j],2) / 1790) * pow(10,(-6)) - (pcmyl * 10 - pjingkou * 10) * pow(10,(-2)));
			  B = 1 + gchongcheng[i][jj] * pow(gchongci[i][j],2) / 1790;
			  D = RUO / (2 * 7850) + gchongcheng[i][jj] * pow(gchongci[i][j],2) / 1790;
			  //计算第一级抽油杆长度L1
			  A1 = pow(Q1,2) * B * D;
			  B1 = Q1 * A * (B / 2 + D);
			  C1 = pow(A,2) / 2 - pow((F1 * fff),2);
			  L1 = long((sqrt(pow(B1,2) - 4 * A1 * C1) - B1) / (2 * A1)+0.5);
			  if( L1 >= H)
			  {
				L1 = H;
				L2 = 0;
				L3 = 0;
				L4 = 0;
			  }
			  else
			  {
				//计算第二级抽油杆长度L2
				A2 = pow(Q2,2) * B * D;
				B2 = Q2 * (A * (B / 2 + D) + 2 * Q1 * L1 * B * D);
				C2 = (A + Q1 * L1 * B) * (A / 2 + Q1 * L1 * D) - pow((F2 * fff),2);
				L2 = long((sqrt(pow(B2,2) - 4 * A2 * C2) - B2) / (2 * A2)+0.5);
				if( L1 + L2 >= H)
				{
				  L2 = H - L1;
				  L3 = 0;
				  L4 = 0;
				}
				else
				{
				  //计算第三级抽油杆长度L3
				  A3 = pow(Q3,2) * B * D;
				  b3 = Q3 * (A * (B / 2 + D) + 2 * (Q1 * L1 + Q2 * L2) * B * D);
				  C3 = (A + (Q1 * L1 + Q2 * L2) * B) * (A / 2 + (Q1 * L1 + Q2 * L2) * D) - pow((F3 * fff),2);
				  L3 = long((sqrt(pow(b3,2) - 4 * A3 * C3) - b3) / (2 * A3)+0.5);
				  if( L1 + L2 + L3 >= H)
				  {
					L3 = H - L1 - L2;
					L4 = 0;
				  }
				  else
				  {
					//计算第四级抽油杆长度L4
					L4 = long(H - L1 - L2 - L3+0.5);
				  }
				}
			  }
			  AA1 = Q1 * L1;
			  aa2 = Q1 * L1 + Q2 * L2;
			  aa3 = Q1 * L1 + Q2 * L2 + Q3 * L3;
			  aa4 = Q1 * L1 + Q2 * L2 + Q3 * L3 + Q4 * L4;
			  //计算每一级抽油杆断面处的当量应力
			  dlyl1 = sqrt((A + B * AA1) * (A / 2 + D * AA1)) / F1;
			  dlyl2 = sqrt((A + B * aa2) * (A / 2 + D * aa2)) / F2;
			  dlyl3 = sqrt((A + B * aa3) * (A / 2 + D * aa3)) / F3;
			  dlyl4 = sqrt((A + B * aa4) * (A / 2 + D * aa4)) / F4;
			  if( L4 > 0)
			  {
				ffff = dlyl4;
			  }
			  else if( L4 == 0 && L3 > 0)
			  {
				ffff = dlyl3;
			  }
			  else if( L3 == 0 && L2 > 0)
			  {
				ffff = dlyl2;
			  }
			  else if( L2 == 0 && L1 > 0)
			  {
				ffff = dlyl1;
			  }
			  //计算抽油泵理论排量
			  QQ = 3.1416 / 4 * pow(DD[K],2) * gchongcheng[i][jj] * gchongci[i][j] * 1440 / 1000000;
			  //计算悬点最大载荷和最小载荷,kN
			  Gmax = (A + B * aa4) / 100;
			  Gmin = (1 - RUO / 7850 - gchongcheng[i][jj] * pow(gchongci[i][j],2) / 1790) * aa4 / 100;
			  //计算曲柄最大扭矩
			  MMAX = gchongcheng[i][jj] / 2 * (100 * Gmax - (1 - RUO / 7850) * aa4 - A / (2 * B)) / 100;
			  //计算抽油杆弹性变形冲程损失
			  XX = L1 / F1 + L2 / F2 + L3 / F3 + L4 / F4;
			  V1 = A / B * XX / gchongcheng[i][jj] / 210;
			  //计算油管弹性变形冲程损失
			  V2 = A / B * H / gchongcheng[i][jj] / 244900;
			  //计算惯性载荷产生的冲程增量
			  V3 = 21 * pow(gchongci[i][j],2) * pow(H,2) / pow(10,9);
			  //计算理论泵效
			  v = 100 - V1 - V2 + V3;
			  //计算电机功率
			  pdjgl = 0.2 * A / B * gchongcheng[i][jj] * gchongci[i][j] * (0.355 + v / 100) / 1000;
			  //输出文件
			  if( QQ >= qsheji && QQ < qsheji * 1.1 && gchongci[i][j] <= 26100 / H && L1 > 100 && ffff < fff * SF)
			  {
				if( Gmax * 1.2 < gxdzdzh[i] * 10 && MMAX * 1.2 < gqbzdnj[i])
				{
				  sscyjxh[NNN]= gcyjxh[i];
				  sbj[NNN]= DD[K];
				  schongci[NNN]= gchongci[i][j];
				  schongcheng[NNN]= gchongcheng[i][jj];
				  bpl[NNN]= QQ;
				  LL1[NNN]= long(L1+0.5);
				  LL2[NNN]= long(L2+0.5);
				  LL3[NNN]= long(L3+0.5);
				  LL4[NNN]= long(L4+0.5);
				  zdyl1[NNN]= dlyl1;
				  zdyl2[NNN]= dlyl2;
				  zdyl3[NNN]= dlyl3;
				  zdyl4[NNN]= dlyl4;
				  zhmax[NNN]= Gmax;
				  zhmin[NNN]= Gmin;
				  zdnj[NNN]= MMAX;
				  llbx[NNN]= v;
				  sdjgl[NNN]= pdjgl;
				  //计算优化目标函数EI(NNN)
				  EI1 = v + QQ / qsheji;
				  EI2 = Gmax / gxdzdzh[i] + MMAX / gqbzdnj[i];
				  EI[NNN]= EI1 / EI2;
				  NNN = NNN + 1;
				}
			  }
			}
		  }
		}
	  }
	  if( NNN > 0)
	  {
		if( NNN > 10)
		{
		  paixu(EI, 0, NNN - 1);
		  MMM = 10;
		}
		else
		{
		  MMM = NNN - 1;
		  for(K=0;K<=MMM;K++)
		  {
		  	xuhao[K] = K;
		  }
		}
		for(i=0;i<=MMM;i++)
		{
		  if( sfdayin == 0)
		  {
			sfdayin = 1;
			title="";
			title=title+"\t" + "$0" + "\t" + "[四级抽油杆机抽设计结果(等强度设计方法)]$0"+"\n";
            try
			{    
				f3.WriteString(title);
			}
			catch (CFileException exception3)
			{
				AfxMessageBox("Error reading file");
				return;
			}
			title="";
			title=title+"$7" + "\t" + "  泵径$7" + "\t" + "  冲次$7" + "\t" + "  冲程$7" + "\t" + " 泵排量$7" + "\t" + " [5/8寸抽油杆]$5" + "\t" + "$6" + "\t" + " [3/4寸抽油杆]$5" + "\t" + "$6" + "\t" + " [7/8寸抽油杆]$5" + "\t" + "$6" + "\t" + " [1寸抽油杆]$5" + "\t" + "$6" + "\t" + " 悬点最$7" + "\t" + " 悬点最$7" + "\t" + " 曲柄最$7" + "\t" + "  理论$7" + "\t" + "  电机$7"+"\n";
			title1="";
			title1=title1+"抽油机型号$3" + "\t" + "$3" + "\t" + "$3" + "\t" + "$3" + "\t" + "$3" + "\t" + "抽油杆长$7" + "\t" + "当量应力$7" + "\t" + "抽油杆长$7" + "\t" + "当量应力$7" + "\t" + "抽油杆长$7" + "\t" + "当量应力$7" + "\t" + "抽油杆长$7" + "\t" + "当量应力$7" + "\t" + " 大载荷$3" + "\t" + " 小载荷$3" + "\t" + " 大扭矩$3" + "\t" + "  泵效$3" + "\t" + "  功率$3"+"\n";
			title2="";
			title2=title2+"$11" + "\t" + "(mm)$11" + "\t" + "(次/分)$11" + "\t" + " (m)$11" + "\t" + "(m^3/d)$11" + "\t" + " (m)$11" + "\t" + " (MPa)$11" + "\t" + " (m)$11" + "\t" + " (MPa)$11" + "\t" + " (m)$11" + "\t" + " (MPa)$11" + "\t" + " (m)$11" + "\t" + " (MPa)$11" + "\t" + " (KN)$11" + "\t" + " (KN)$11" + "\t" + "(KN·m)$11" + "\t" + " (%)$11" + "\t" + " (Kw)$11"+"\n";
            try
			{    
				f3.WriteString(title);
				f3.WriteString(title1);
				f3.WriteString(title2);
			}
			catch (CFileException exception3)
			{
				AfxMessageBox("Error reading file");
				return;
			}
		  }
		  G60 = G6;
		  gtiaojian = "是";
		  gcvt(sbj[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(schongci[xuhao[i]],100,Temp);
		  title1=Temp;
		  gcvt(schongcheng[xuhao[i]],100,Temp);
		  title2=Temp;
		  gcvt(bpl[xuhao[i]],100,Temp);
		  title3=Temp;
		  G6=sscyjxh[xuhao[i]]+"\t"+title+"\t"+title1+"\t"+title2+"\t"+title3+"\t";
          gcvt(LL1[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl1[xuhao[i]]*10,100,Temp);
		  title1=Temp;
		  G6=G6+title+"\t"+title1+"\t";
          gcvt(LL2[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl2[xuhao[i]]*10,100,Temp);
		  title1=Temp;
		  if( LL2[xuhao[i]] > 0)
		  {
			G6 = G6 + title + "\t" + title1+"\t";
		  }
		  else
		  {
			G6 = G6 + "/"+"\t"+ "/"+"\t";
		  }
          gcvt(LL3[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl3[xuhao[i]]*10,100,Temp);
		  title1=Temp;
          if( LL3[xuhao[i]] > 0)
		  {
			G6 = G6 + title + "\t" + title1+"\t";
		  }
		  else
		  {
			G6 = G6 + "/"+"\t"+ "/"+"\t";
		  }
          gcvt(LL4[xuhao[i]],100,Temp);
		  title=Temp;
          gcvt(zdyl4[xuhao[i]],100,Temp);
		  title1=Temp;
          if( LL4[xuhao[i]] > 0)
		  {
			G6 = G6 + title + "\t" + title1+"\t";
		  }
		  else
		  {
			G6 = G6 + "/"+"\t"+ "/"+"\t";
		  }
          gcvt(zhmax[xuhao[i]],100,Temp);
		  title=Temp;
		  G6 = G6 + title+"\t";
          gcvt(zhmin[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
		  gcvt(zdnj[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
		  gcvt(llbx[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\t";
          gcvt(sdjgl[xuhao[i]],100,Temp);
		  title=Temp;
          G6 = G6 + title+"\n";
		  if( G60 != G6)
		  {
			    try
				{    
					f3.WriteString(G6);
				}
				catch (CFileException exception3)
				{
					AfxMessageBox("Error reading file");
					return;
				}
		  }
		}
	  }
	  if( sfdayin == 1)
	  {
        G7=G7+"\n";
        try
		{    
			f3.WriteString(G7);
		}
		catch (CFileException exception3)
		{
			AfxMessageBox("Error reading file");
			return;
		}
	  }
	  if( gtiaojian != "是")
	  {
		title="";
		title=title+"“钢抽油杆柱等强度设计”不能满足设计要求,请从新选择设计参数或者改变设计方法。$0"+"\n";
        try
		{    
			f3.WriteString(title);
		}
		catch (CFileException exception3)
		{
			AfxMessageBox("Error reading file");
			return;
		}
	  }
//	  G循环次数 = G循环次数 + 1;
//	  主窗口.SSPanel1.FloodPercent = G循环次数 / Max * 100
}

void jcyhsj::apisjgcyg()//利用API方法设计钢抽油杆柱------------------
{

	  //确定防冲距:L防冲距,m
	  
	  if( H > 0 && H <= 2400)
	  {
		lfcj = 0.6;
	  }
	  else if( H > 2400 && H <= 3300)
	  {
		lfcj = 0.9;
	  }
	  else if( H > 3300)
	  {
		lfcj = 1.2;
	  }
	  //二级钢杆机抽系统设计程序
	  sfdayin = 0;
	  NNN = 0;
	  L1 = 0;
	  L2 = 0;
	  L3=0;
	  VV3=0;
	  CC3=0;
	  cshsz();
      for(double R1=0.1;R1<=0.8;R1=R1+0.05)//R1代表第一级抽油杆在整个杆串中所占的百分比,级数由上到下为1,2,3...级
	  {
		  //G循环次数 = G循环次数 + 1;
		  //主窗口.SSPanel1.FloodPercent = G循环次数 / Max * 100
			//估算每一级抽油杆的长度,L1,L2,L3...分别代表第1,2,3...级抽油杆长度
			L1 = H * R1;
			L2 = H - long(L1+0.5);
			//计算二级钢杆的线密度Wr,kg/m
			Wr = ((L1 * Q4) + (L2 * Q3)) / H;
			//计算油管的刚度Kt,N/m  E油管--油管的弹性模量  F油管--油管的横截面积
			Kt = (fyouguan * eyouguan) / H;
			//计算二级钢杆的弹性常数Er:单位--m/N.m
			Er = ((L1 / (egang * F4) + L2 / (egang * F3))) / H;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -