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

📄 shwrjcalfuction.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			else if (x > 3000 && x <= 10000)
				y = 4.0447 * pow(x,3) - 9.491 * pow(x,2) + 0.686 * x - 2.8194;
		}
		else
			y=0;
	}
	else if (wd == 140)            //节流前温度为140
	{
		if (x >= 1928.6)
		{
            if (x <= 2000)      y = -1.12045 * x + 2360.9;
			if (y >= 120 && y <= 200)     ;            //null
			else if (x <= 6000)
				y = 0.000000040536 * pow(x,3) - 0.0006 * pow(x,2) + 3.005 * x - 3622.07;
	           else if (x > 6000 && x < 10000)
                   y = -0.0000000025 * pow(x,3) + 0.000057143 * pow(x,2) - 0.4568 * x + 2603.86;
		}
		else
			y=0;
	}
	else if (wd == 150)            //节流前温度为150
	{
		if (x >= 2150)
		{
            if (x <= 2200)        y = -1.6 * x + 3640;
			if (y >= 120 && y <= 200)    ;         //null
			else if (x <= 3287.1)
				y = -0.0002 * pow(x,2) + 1.7792 * x - 2590.53;
			else if (x > 3287.1 && x <= 10000)
				y = 0.0000000020833 * pow(x,3) - 0.000054167 * pow(x,2) + 0.4295 * x + 92.8568;
		}
		else
			y=0;
	}
	else if (wd == 160)           //节流前温度为160
	{
		if (x >= 2450 && x <= 2500)           y = 3.6 * x - 8700;
		else if (x > 2500 && x <= 6500)
			y = 0.000000017592 * pow(x,3) - 0.00029 * pow(x,2) + 1.6232 * x - 2192.64;
		else if (x > 6500 && x <= 10000)
			y = 0.0000023176 * pow(x,2) - 0.09 * x + 1464.71;
		else
			y=0;
	}
	else if (wd == 170)          //节流前温度为170
	{
		if (x >= 2900)
		{
            if (x <= 3000)     y = -0.8 * x + 2520;
			if (y >= 120 && y <= 200)         ;            //null
			else if (x <= 6500)
				y = 0.000000028415 * pow(x,3) - 0.00046 * pow(x,2) + 2.5131 * x - 3867.85;
	           else if (x > 6500 && x <= 10000)
                   y = -0.000000003535 * pow(x,3) + 0.000083692 * pow(x,2) - 0.6817 * x + 2582.79;
		}
		else
			y=0;
	}
	else if (wd == 180)           //节流前温度为180
	{
		if (x >= 3930)
		{
            if (x <= 4000)      y = -1.1429 * x + 4691.43;
			if (y >= 120 && y <= 200)  
				;         //null
			else if (x <= 6000)
				y = -0.000049312 * pow(x,2) + 0.6076 * x - 1401.98;
			else if (x > 6000 && x <= 10000)
				y = 0.00000000060408 * pow(x,3) - 0.000020416 * pow(x,2) + 0.1796 * x - 1.8806;
			{   
				if (y >= 400 && y < 470)    ;                  //null
				else if (x > 6000 && x <= 6750)        y = -0.1 * x + 790;
				if (y >= 120 && y <= 200)
					;   //null
				else if (x > 6000 && x <= 8250)     y = -0.000048417 * pow(x,2) + 0.6912 * x - 2204.86;
				if (y >= 200 && y <= 260)  
					;                   //null
				else if (x >= 7750 && x < 8250) 
					y = 0.00016 * pow(x,2) - 2.4 * x + 9110;
			}
		}
		else
			y=0;
	}
	else if (wd == 184)               //节流前温度为184
	{
		if (x >= 4800)
		{
            if (x <= 5000)     y = -0.4 * x + 2116.67;
			if (y >= 120 && y <= 200)        ;           //null
			else if (x <= 6500)   
				y = -0.000096221 * pow(x,2) + 1.1882 * x - -3264.74;
			else if (x > 6500 && x <= 10000)
				y = -0.0000057148 * pow(x,2) + 0.0498 * x + 320.837;
		}
		else
			y=0;
	}
	return(y);
}




//图6-21 相对密度为0.8天然气在不形成水化物条件下允许达到的膨胀程度
//x——节流前压力,psia
//y——节流后压力,psia
//wd——节流前温度,oF
double  xdmd88( double x, double wd)
{
    double y;
	if (wd == 50)                 //节流前温度为50
	{
		if (x >= 245.4 && x <= 250)
			y = 21.7391 * x - 5234.78;
		else if (x > 250 && x <= 272.7)
			y = 3.2026 * x - 600.66;
		else
			y=0;
    }
    else if (wd == 60)           //节流前温度为60
	{
		if (x >= 343.8)
		{
			if (x <= 350)    y = -8.0645 * x + 2922.58;
            if (y >= 100 && y <= 150)
				;        //null
            else if (x <= 560)
				y = -0.0048 * pow(x,2) + 6.13075 * x - 1375.92;
			else
				y=0;
		}
		else
			y=0;
	}
    else if (wd == 70)              //节流前温度为70
	{
		if (x >= 466.7)
		{
			if (x <= 475)     y = 6.0241 * x - 2711.45;
            if (y >= 100 && y <= 150)       ;        //null
            else if (x <= 1454.6)
				y = 0.0000016924 * pow(x,3) - 0.0052 * pow(x,2) + 6.1589 * x - 1723.69;
			else
				y=0;
		}
		else
			y=0;
	}
    else if (wd == 80)                //节流前温度为80
	{
		if (x >= 560 && x <= 600)
			y = 5 * x - 2700;
		else if (x > 600 && x <= 4000)
			y = -0.000000000016155 * pow(x,4) + 0.0000001645 * pow(x,3) - 0.0006 * pow(x,2) + 1.968 * x - 675.239;
		else if (x > 4000 && x <= 10000)
			y = 0.000003566 * pow(x,2) - 0.3161 * x + 5321.83;
		else
			y=0;
    }
    else if (wd == 90)              //节流前温度为90
	{
		if (x >= 700)
		{
			if (x <= 737.5)          y = -1.3333 * x + 1083.33;
			if (y >= 100 && y <= 150)           ;      //null
			else if (x <= 1000)
				y = 0.000009534 * pow(x,3) - 0.0278 * pow(x,2) + 28.128 * x - 9179.92;
			else if (x > 1000 && x <= 5000)
				y = 0.0000000024526 * pow(x,3) - 0.00017 * pow(x,2) + 1.4408 * x - 650.53;
			else if (x > 5000 && x <= 10000)
				y = -0.000000002525 * pow(x,3) + 0.000042204 * pow(x,2) - 0.3189 * x + 3489.03;
		}
		else
			y=0;
	}
    else if (wd == 100)           //节流前温度为100
	{
		if (x >= 866.7)
		{
			if (x <= 900)      y = -3.003 * x + 2803.7;
			if (y >= 100 && y <= 150)          ;        //null
			else if (x <= 5000)
				y = 0.000000027526 * pow(x,3) - 0.00038 * pow(x,2) + 1.8571 * x - 1103.21;
			else if (x > 5000 && x <= 10000)
				y = -0.0000000012324 * pow(x,3) + 0.0000044131 * pow(x,2) + 0.0431 * x + 1918.97;
		}
		else
			y=0;
	}
    else if (wd == 110)         //节流前温度为110
	{
		if (x >= 1068.2)
		{
			if (x <= 1090.9)   y = -4.4053 * x + 4905.71;
			if (y >= 100 && y <= 200) 
				;     //null
			else if (x <= 3000)
				y = 0.000000041601 * pow(x,3) - 0.0005 * pow(x,2) + 2.1981 * x - 1547.61;
			else if (x > 3000 && x <= 10000)
				y = -0.00000000092593 * pow(x,3) + 0.000014583 * pow(x,2) - 0.0946 * x + 1975.2;
		}
		else
			y=0;
	}
    else if (wd == 120)             //节流前温度为120
	{
		if (x >= 1227.2 && x <= 1272.7)
			y = 3.956 * x - 4734.86;
		else if (x > 1272.7 && x <= 3000)
			y = 0.000000052762 * pow(x,3) - 0.0006 * pow(x,2) + 2.5508 * x - 1997.14;
		else if (x > 3000 && x <= 10000)
			y = 0.000010383 * pow(x,2) - 0.1085 * x + 1933.89;
		else
			y=0;
	}
    else if (wd == 130)           //节流前温度为130
	{
        if (x >= 1363.6)
		{
			if (x <= 1409)      y = -1.1013 * x + 1651.76;
			if (y >= 100 && y <= 150)            ;        //null
			else if (x <= 4000)
				y = 0.000000050328 * pow(x,3) - 0.0006 * pow(x,2) + 2.6911 * x - 2444.28;
			else if (x > 4000 && x <= 10000)
				y = 0.00000000041945 * pow(x,3) - 0.00001025 * pow(x,2) + 0.0594 * x + 1352.43;
		}
		else
			y=0;
	}
    else if (wd == 140)              //节流前温度为140
	{
		if (x >= 1562.5)
		{
			if (x <= 1593.75)          y = -1.6 * x + 2650;
            if (y >= 100 && y <= 150)          ;        //null
            else if (x <= 5000)
				y = 0.000000073664 * pow(x,3) - 0.00088 * pow(x,2) + 3.5405 * x - 3485.39;
			else if (x > 5000 && x <= 10000)
				y = -0.00000000016944 * pow(x,3) + 1.5499 * pow(x,2) - 0.02095 * x + 1407.85;
		}
		else
			y=0;
	}
    else if (wd == 150)              //节流前温度为150
	{
		if (x >= 1812.5)
		{
			if (x <= 1843.75)       y = -0.381 * x + 840.476;
			if (y >= 100 && y <= 150)          ; //null
			else if (x <= 5000)
				y = 0.00000008474 * pow(x,3) - 0.0001 * pow(x,2) + 3.928 * x - 4122.69;
			else if (x > 5000 && x <= 10000)
				y = -0.0000000013185 * pow(x,3) + 0.000021402 * pow(x,2) - 0.1252 * x + 1397.98;
		}
		else
			y=0;
    }
    else if (wd == 160)              //节流前温度为160
	{
		if (x >= 2000 && x <= 2090.9)
			y = 2.2002 * x - 4900.43;
		else if (x > 2090.9 && x <= 3375)
			y = 0.000000073823 * pow(x,3) - 0.0009 * pow(x,2) + 3.7362 * x - 4186.67;
		else if (x > 3375 && x <= 10000)
			y = -0.00000000094074 * pow(x,3) + 0.000017392 * pow(x,2) - 0.1179 * x + 1249.07;
		else
			y=0;
    }
    else if (wd == 170)            //节流前温度为170
	{
		if (x >= 2272.7 && x <= 2363.6)
			y = 2.2002 * x - 4900.43;
		else if (x > 2363.6 && x <= 2545.4)
			y = -0.0005 * pow(x,2) + 3.2931 * x - 4597.15;
		else if (x > 2545.4 && x <= 10000)
			y = 0.0000000016017 * pow(x,3) - 0.000039075 * pow(x,2) + 0.2941 * x + 107.021;
		else
			y=0;
	}
    else if (wd == 180)            //节流前温度为180
	{
        if (x >= 2636.3) 
		{
			if (x <= 2727.2)             y = -1.1001 * x + 3100.22;
			if (y >= 100 && y <= 200)      ;        //null
			else if (x <= 6000)
				y = -0.000064205 * pow(x,2) + 0.6756 * x - 1048.1;
			else if (x > 6000 && x <= 10000)
				y = -0.0000070929 * pow(x,2) + 0.0801 * x + 490.303;
		}
		else
			y=0;
	}
    else if (wd == 190)              //节流前温度为190
	{
        if (x >= 3000)
		{ 
			if (x <= 3250)       y = -0.2 * x + 750;
			if (y >= 100 && y <= 150)            ;     //null
			else if (x <= 6000)
				y = -0.000000002514 * pow(x,3) - 0.000015602 * pow(x,2) + 0.4185 * x - 889.391;
			else if (x > 6000 && x <= 10000)
				y = 0.000000001525 * pow(x,3) - 0.000042071 * pow(x,2) + 0.3388 * x - 331.488;
		}
		else
			y=0;
	}
    else if (wd == 195)             //节流前温度为195
	{
        if (x >= 3875)
		{
			if (x <= 4000)      y = -0.4 * x + 1700;
			if (y >= 100 && y <= 150)             ;        //null
			else if (x <= 6000)
				y = 0.000000029995 * pow(x,3) - 0.00049 * pow(x,2) + 2.7091 * x - 4748.25;
			else if (x > 6000 && x <= 10000)
				y = -0.000026793 * pow(x,2) + 0.3612 * x - 817.497;
		}
		else
			y=0;
	}
    else if (wd == 197.5)           //节流前温度为197.5
	{
		if (x >= 4500)
		{
			if (x <= 4833.3)          y = -0.15 * x + 825.068;
			if (y >= 100 && y <= 150)             ;        //null
			else if (x <= 5400)
				y = -0.000067142 * pow(x,2) + 0.8325 * x - 2229.79;
			else if (x > 5400 && x <= 9000)
				y = -0.0000000026333 * pow(x,3) + 0.000037069 * pow(x,2) - 0.1724 * x + 618.722;
			else if (x > 9000 && x <= 10000)
				y = 0.15 * x - 1200.14;
		}
		else
			y=0;
	}
	return(y);
}




//图6-22 相对密度为0.9天然气在不形成水化物条件下允许达到的膨胀程度
//x——节流前压力,psia
//y——节流后压力,psia
//wd——节流前温度,oF
double xdmd99(double x, double wd)
{
	double y;
    if (wd == 50)       //节流前温度为50
	{
		if (x >= 215)
		{
			if (x <= 240) 
				y = 0.1617 * pow(x,2) - 76.7205 * x + 9165.81;
            if (y >= 62.5 && y <= 150)             ;       //null
			else if (x <= 260)
				y = -0.02963 * pow(x,2) + 16.5185 * x - 2031.86;
			else
				y=0;
		}
		else
			y=0;
	}
	else if (wd == 60)      //节流前温度为60
	{
		if (x >= 328.6)
		{
			if (x <= 350)         y = 0.07445 * pow(x,2) - 52.2707 * x + 9237.74;
			if (y >= 62.5 && y <= 100)          ;         //null
			else if (x <= 450)
				y = -0.01828 * pow(x,2) + 16.8623 * x - 3450.18;
			else
				y=0;
		}
		else
			y=0;
	}
	else if (wd == 70)        //节流前温度为70
	{
		if (x >= 425)
		{
			if (x <= 450)         y = -0.0364 * pow(x,2) + 30.3792 * x - 6230.38;
			if (y >= 62.5 && y <= 100)          ;         //null
			else if (x <= 800)
				y = -0.0013 * pow(x,2) + 3.2578 * x - 1010.8;
			else
				y=0;
		}
		else
			y=0;
	}
	else if (wd == 80)      //节流前温度为80
	{
		if (x >= 500)
		{
			if (x <= 550)           y = 0.0583 * pow(x,2) - 63 * x + 17066.7;
			if (y >= 62.5 && y <= 150)            ;        //null
			else if (x <= 2400)
				y = 2.0286E-14 * pow(x,5) - 0.0000000002715 * pow(x,4) + 0.0000013246 * pow(x,3) - 0.003 * pow(x,2) + 4.1226 * x - 1278.84;
			else if (x > 2400 && x <= 10000)
				y = -0.000013693 * pow(x,2) + 0.0948 * x + 2620.1;
		}
		else
			y=0;
	}
	else if (wd == 90)         //节流前温度为90
	{
		if (x >= 628.6)
		{
			if (x <= 685.7)          y = 0.00603 * pow(x,2) - 9.7661 * x + 3915.97;
			if (y >= 62.5 && y<=150)    ;       //null
			else if (x <= 4000)
				y = 1.1386E-14 * pow(x,5) - 0.00000000015467 * pow(x,4) + 0.00000078645 * pow(x,3) - 0.002 * pow(x,2) + 3.2768 * x - 1237.37;
			else if (x > 4000 && x <= 10000)
				y = 0.00000031924 * pow(x,2) - 0.0865 * x + 2686.13;
		}
		else
			y=0;
	}
	else if (wd == 100)     //节流前温度为100
	{
		if (x >= 742.9)
		{
			if (x <= 785.7)
				y = 0.1009 * pow(x,2) - 156.251 * x + 60552.7;
			if (y >= 62.5 && y <= 150)         ;          //null
			else if (x <= 2000)
				y = -0.0000000011744 * pow(x,4) + 0.0000074275 * pow(x,3) - 0.017 * pow(x,2) + 17.4801 * x - 6124.37;
			else if (x > 2000 && x <= 10000)
				y = -1.5714E-12 * pow(x,4) + 0.000000044167 * pow(x,3) - 0.00045 * pow(x,2) + 1.9063 * x - 897.017;
		}
		else
			y=0;
	}
	else if (wd == 110)      //节流前温度为110
	{
		if (x >= 833.3)
		{
			if (x <= 866.7)     y = 0.0045 * pow(x,2) - 8.7422 * x + 4272.62;
			if (y >= 62.5 && y <= 100)            ;          //null
			else if (x <= 2400)
				y = -0.000000001107 * pow(x,4) + 0.000007317 * pow(x,3) - 0.0178 * pow(x,2) + 19.2051 * x - 7256.91;
			else if (x > 2400 && x <= 10000)
				y = 0.0000000037186 * pow(x,3) - 0.000084505 * pow(x,2) + 0.5609 * x + 633.986;
		}
		else
			y=0;
	}
	else if (wd == 120)          //节流前温度为120
	{
		if (x >= 933.3)
		{
			if (x <= 1000)
				y = 0.0253 * pow(x,2) - 50.1889 * x + 24967.5;
			if (y >= 60 && y <= 150)     ;          //null
			else if (x <= 3000)
				y = -0.000000045814 * pow(x,3) + 0.000095837 * pow(x,2) + 0.8462 * x - 655.878;
			else if (x > 3000 && x <= 10000)
				y = 0.0000000030327 * pow(x,3) - 0.000068201 * pow(x,2) + 0.449 * x + 702.192;
		}
		else
			y=0;
	}
	else if (wd == 130)          //节流前温度为130
	{
		if (x >= 1075)
		{
			if (x <= 1150)
				y = 0.013 * pow(x,2) - 30.055 * x + 17434.6;
			if (y >= 62.5 && y <= 150)      ;          //null
			else if (x <= 4000)
				y = -0.000000011459 * pow(x,3) - 0.000078804 * pow(x,2) + 1.0712 * x - 861.993;
			else if (x > 4000 && x <= 10000)
				y = 0.0000000014803 * pow(x,3) - 0.00003743 * pow(x,2) + 0.2637 * x + 876.314;
		}
		else
			y=0;
	}
	else if (wd == 140)     //节流前温度为140
	{
		if (x >= 1300)
		{
			if (x <= 1325)
				y = 0.00000000013866 * pow(x,4) + 0.0000013641 * pow(x,3) - 0.0051 * pow(x,2) - 3.6 * x + 4830;
			if (y >= 60 && y <= 150)                ;          //null
			else if (x <= 2600)
				y = -0.00024 * pow(x,2) + 1.5695 * x - 1456.65;
			else if (x > 2600 && x <= 10000)
				y = 0.0000000027508 * pow(x,3) - 0.000064256 * pow(x,2) + 0.445 * x + 328.829;
		}
		else
			y=0;
	}
	else if (wd == 150)     //节流前温度为150
	{
		if (x >= 1475)
		{
			if (x <= 1500) 
				y = -3.6 * x + 5460;
			if (y >= 60 && y <= 150)     ;         //null
			else if (x <= 3000)
				y = -0.00025 * pow(x,2) + 1.66 * x - 1724.01;
			else if (x > 3000 && x <= 10000)
				y = 0.0000000028636 * pow(x,3) - 0.000068208 * pow(x,2) + 0.4876 * x + 84.3209;
		}
		else
			y=0;
	}
	else if (wd == 160)          //节流前温度为160
	{

⌨️ 快捷键说明

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