📄 shwrjcalfuction.cpp
字号:
if (x >= 1678.5)
{
if (x <= 1750)
y = -1.2238 * x + 2204.11;
if (y >= 62.5 && y <= 150) ; //null
else if (x <= 2200)
y = -0.0004 * pow(x,2) + 2.3458 * x - 2670.64;
else if (x > 2200 && x <= 10000)
y = 0.0000000029212 * pow(x,3) - 0.000064498 * pow(x,2) + 0.4366 * x + 64.8784;
}
else
y=0;
}
else if (wd == 170) //节流前温度为170
{
if (x >= 1857.1)
{
if (x <= 1964.3)
y = -0.3398 * x + 732.074;
if (y >= 62.5 && y <= 100) ; //null
else if (x <= 2100)
y = 1.1519 * x - 1983.38;
else if (x > 2100 && x <= 10000)
y = 0.0000000020945 * pow(x,3) - 0.000048399 * pow(x,2) + 0.3415 * x + 103.194;
}
else
y=0;
}
else if (wd == 180) //节流前温度为180
{
if (x >= 2200)
{
if (x <= 2300)
y = 0.0405 * pow(x,2) - 184.625 * x + 210455;
if (y >= 62.5 && y <= 300) ; //null
else if (x <= 3000)
y = 0.000000037639 * pow(x,3) - 0.0005 * pow(x,2) + 2.122 * x - 2388.45;
else if (x > 3000 && x <= 10000)
y = -0.0000011768 * pow(x,2) - 0.0041 * x + 788.819;
}
else
y=0;
}
else if (wd == 190) //节流前温度为190
{
if (x >= 2500)
{
if (x <= 2600)
y = 0.0125 * pow(x,2) - 65.125 * x + 84887.5;
if (y >= 62.5 && y <= 200) ; //null
else if (x <= 5000)
y = -0.00088 * pow(x,2) + 5.239 * x - 7420.29;
else if (x > 5000 && x <= 10000)
y = 0.0000000027977 * pow(x,3) - 0.000064354 * pow(x,2) + 0.4601 * x - 441.2;
}
else
y=0;
}
else if (wd == 200) //节流前温度为200
{
if (x >= 2900)
{
if (x <= 3000)
y = -0.9 * x + 2760;
if (y >= 60 && y <= 150) ; //null
else if (x <= 10000)
y = 0.0000000039412 * pow(x,3) - 0.000096708 * pow(x,2) + 0.7294 * x - 1264.47;
}
else
y=0;
}
else if (wd == 205) //节流前温度为205
{
if (x >= 4500 && x <= 5000)
y = 0.00012 * pow(x,2) - 1.2194 * x + 3158.64;
else if (x >= 4416.17)
{
if (x < 4500)
y = -0.6002 * x + 2801.09;
if (y > 100 && y <= 150) ; //null
else if (x <= 8333.3)
y = 0.0000000096365 * pow(x,3) - 0.0002 * pow(x,2) + 1.4111 * x - 2912.18;
else if (x >= 8000 && x <= 9000)
y = 0.000044989 * pow(x,2) - 0.6748 * x + 2579.18;
else
y=0;
}
else
y=0;
}
return(y);
}
//图6-23 相对密度为1.0天然气在不形成水化物条件下允许达到的膨胀程度
//x——节流前压力,psia
//y——节流后压力,psia
//wd——节流前温度,oF
double xdmd1010(double x, double wd)
{
double y;
if (wd == 50) //节流前温度为50
{
if (x >= 183.3 && x <= 195.8)
y = 0.1434 * pow(x,2) - 57.50078 * x + 5810.3;
// if (y >= 50 && y <= 90 ) ; //null
if ( x >= 175 && x <= 191.6)
y = 0.3745 * pow(x,2) - 131.777 * x + 11691.7;
else
y=0;
}
else if (wd == 60) //节流前温度为60
{
if (x >= 282)
{
if (x <= 316.7)
y = 0.0852 * pow(x,2) - 52.5807 * x + 8159.24;
if (y >= 50 && y <= 100) ; //null
else if (x <= 400)
y = 2 * x - 400;
else
y=0;
}
else
y=0;
}
else if (wd == 70) //节流前温度为70
{
if (x >= 350)
{
if (x <= 375)
y = 0.282 * pow(x,2) - 207.838 * x + 38334.9;
if (y >= 50 && y <= 150) ; //null
else if (x <= 666.7)
y = 0.000022055 * pow(x,3) - 0.0351 * pow(x,2) + 19.6807 * x - 3378.43;
else
y=0;
}
else
y=0;
}
else if (wd == 80) //节流前温度为80
{
if (x >= 420)
{
if (x <= 440)
y = 0.3429 * pow(x,2) - 299.257 * x + 6535.1;
if (y >= 50 && y <= 150) ; //null
else if (x <= 900)
y = 0.0000060896 * pow(x,3) - 0.0138 * pow(x,2) + 11.2608 * x - 2598.88;
else
y=0;
}
else
y=0;
}
else if (wd == 90) //节流前温度为90
{
if (x >= 500)
{
if (x <= 525)
y = 0.256 * pow(x,2) - 266.4 * x + 69350;
if (y >= 50 && y <= 150) ; //null
else if (x <= 1000)
y = 0.0000037289 * pow(x,3) - 0.0095 * pow(x,2) + 9.0471 * x - 2445.82;
else
y=0;
}
else
y=0;
}
else if (wd == 100) //节流前温度为100
{
if (x >= 600)
{
if (x <= 633.3)
y = 0.2337 * pow(x,2) - 292.675 * x + 91688.2;
if (y >= 50 && y <= 200) ; //null
else if (x <= 1125)
y = 0.0000024521 * pow(x,3) - 0.0074 * pow(x,2) + 8.2434 * x - 2619.93;
else
y=0;
}
else
y=0;
}
else if (wd == 110) //节流前温度为110
{
if (x >= 666.7)
{
if (x <= 700) y = -3.003 * x + 2152.15;
if (y >= 50 && y <= 150) ; //null
else if (x <= 1500)
y = 0.0000012493 * pow(x,3) - 0.0048 * pow(x,2) + 6.7637 * x - 2561.99;
else
y=0;
}
else
y=0;
}
else if (wd == 120) //节流前温度为120
{
if (x >= 766.7)
{
if (x <= 800) y = -0.8175 * x + 708.832;
if (y >= 50 && y <= 80) ; //null
else if (x <= 1437.5)
y = 0.0000049481 * pow(x,3) - 0.0176 * pow(x,2) + 21.1597 * x - 8028.01;
else
y=0;
}
else
y=0;
}
else if (wd == 130) //节流前温度为130
{
if (x >= 833.3)
{
if (x <= 900) y = 0.01698 * pow(x,2) - 30.9619 * x + 4162.6;
if (y >= 50 && y <= 150) ; //null
else if (x <= 1583.3)
y = -0.0000000092791 * pow(x,4) + 0.000045496 * pow(x,3) - 0.0829 * pow(x,2) + 67.336 * x - 20232.4;
else
y=0;
}
else
y=0;
}
else if (wd == 140) //节流前温度为140
{
if (x >= 960)
{
if (x <= 1000) y = 0.0682 * pow(x,2) - 135.991 * x + 67860.5;
if (y >= 50 && y <= 150) ; //null
else if (x <= 1833.3)
y = -0.0000000036897 * pow(x,4) + 0.000020372 * pow(x,3) - 0.0422 * pow(x,2) + 39.6954 * x - 13938.8;
else
y=0;
}
else
y=0;
}
else if (wd == 150) //节流前温度为150
{
if (x >= 1125)
{
if (x <= 1187.5) y = -1.6007 * x + 1937.48;
if (y >= 50 && y <= 100) ; //null
else if (x <= 2125)
y = -0.0000000012064 * pow(x,4) + 0.0000083981 * pow(x,3) - 0.022 * pow(x,2) + 26.1437 * x - 11433.4;
else
y=0;
}
else
y=0;
}
else if (wd == 160) //节流前温度为160
{
if (x >= 1312)
{
if (x <= 1375) y = -2.388 * x + 3318.31;
if (y >= 50 && y <= 150) ; //null
else if (x <= 2500)
y = -0.0000000020684 * pow(x,4) + 0.000015362 * pow(x,3) - 0.0424 * pow(x,2) + 52.188 * x - 23823.8;
else
y=0;
}
else
y=0;
}
else if (wd == 170) //节流前温度为170
{
if (x >= 1500 && x <= 1583.3)
y = 3.0012 * x - 4451.8;
else if (x > 1587.3 && x <= 2750)
y = 0.000000024257 * pow(x,3) - 0.0003 * pow(x,2) + 1.3397 * x - 1132.86;
else if (x > 2750 && x <= 10000)
y = -0.000000000028703 * pow(x,3) - 0.000001556 * pow(x,2) + 0.0085 * x + 850.593;
else
y=0;
}
else if (wd == 180) //节流前温度为180
{
if (x >= 1750)
{
if (x <= 1833.3) y = -1.2005 * x + 2250.84;
if (y >= 50 && y <= 150) ; //null
else if (x <= 3416.7)
y = 0.00000033018 * pow(x,3) - 0.0028 * pow(x,2) + 7.8344 * x - 6800.95;
else if (x > 3416.7 && x <= 10000)
y = -0.00000000061945 * pow(x,3) + 0.000010964 * pow(x,2) - 0.0825 * x + 983.338;
}
else
y=0;
}
else if (wd == 190) //节流前温度为190
{
if (x >= 2000)
{
if (x <= 2125) y = -1.2 * x + 2600;
if (y >= 50 && y <= 200) ; //null
else if (x <= 3000)
y = 0.000000030741 * pow(x,3) - 0.0004 * pow(x,2) + 1.711 * x - 1892.9;
else if (x > 3000 && x <= 10000)
y = 0.0000000010935 * pow(x,3) - 0.000027431 * pow(x,2) + 0.1967 * x + 210.046;
}
else
y=0;
}
else if (wd == 200) //节流前温度为200
{
if (x >= 2500)
{
if (x <= 2625) y = -0.16 * x + 470;
if (y >= 50 && y <= 70) ; //null
else if (x <= 2750) y = 0.66 * x - 1558.33;
else if (x > 2750 && x <= 10000)
y = 0.0000000019318 * pow(x,3) - 0.000045736 * pow(x,2) + 0.3302 * x - 225.476;
}
else
y=0;
}
else if (wd == 210) //节流前温度为210
{
if (x >= 3000)
{
if (x <= 3500) y = 0.00063 * pow(x,2) - 4.2806 * x + 7318.88;
if (y >= 50 && y <= 150) ; //null
else if (x <= 4000)
y = -0.00014 * pow(x,2) + 1.1631 * x - 2079.58;
else if (x > 4000 && x <= 10000)
y = 0.0000000014583 * pow(x,3) - 0.0000381 * pow(x,2) + 0.2906 * x - 267.36;
}
else
y=0;
}
else if (wd == 220) //节流前温度为220
{
if (x >= 5000 )
{
if (x >= 5000 && x < 5200)
y = -0.3 * x + 1650;
else if (x >= 5200 && x <= 6000)
y = -0.0211 * x + 195.7789;
else if (x > 6000 && x <= 7500)
y = 0.000011962 * pow(x,2) - 0.1466 * x + 518.897;
else if (x > 7500 && x <= 7666.7)
y = 0.15 * x - 1050.12;
else if (x>7666.7 && x<=8000)
y = 0.0000000021 * pow(x,3) - 0.0000628 * pow(x,2) + 0.5455 * x - 1270;
else
y=0;
}
else
y=0;
}
return(y);
}
//图6-19 相对密度为0.6天然气在不形成水化物条件下允许达到的膨胀程度
double xdmd6( double x, double wd)
{
double y,y1,y2,wd1,wd2;
if (wd >= 40 && wd < 50) //节流前温度为40
{
if (x >= 260)
{
if (x <= 265)
y = -10 * x + 2800;
if (y >= 150 && y <= 200)
; //null
else if (x <= 275)
y = 5 * x - 1100;
}
else
y=0;
if (fabs(wd - 40) <= 0.001)
return(y);
wd1 = 40;
y1 = y;
}
if (wd > 40 && wd < 60) //节流前温度为50
{
if (x >= 400 && x <= 500)
y = -0.01854 * pow(x,2) + 20.1531 * x - 4943.61;
else
y=0;
if (fabs(wd - 50) <= 0.001)
return(y);
if (wd > 50)
{
wd1 = 50;
y1 = y;
}
else
{
wd2 = 50;
y2 = y;
}
}
if (wd > 40 && wd < 50) //节流前温度在40和50之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 50 && wd < 70) //节流前温度为60
{
if (x >= 570)
{
if (x <= 600)
y = -1.6667 * x + 1150;
if (y >= 150 && y <= 200)
; //null
else if (x <= 880)
y = -0.0039 * pow(x,2) + 7.6659 * x - 2915.77;
else
y=0;
}
if (fabs(wd - 60) <= 0.001)
return(y);
if (wd > 60)
{
wd1 = 60;
y1 = y;
}
else
{
wd2 = 60;
y2 = y;
}
}
if (wd > 50 && wd < 60) //节流前温度在50和60之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 60 && wd < 80) //节流前温度为70
{
if (x >= 742.9)
{
if (x <= 771.4)
y = -1.7544 * x + 1503.33;
if (y >= 150 && y <= 200)
; //null
else if (x <= 1857.1)
y = (-0.00000000099422) * pow(x,4) + 0.0000063458 * pow(x,3) - 0.01454 * pow(x,2) + 15.4738 * x - 5567.23;
else
y=0;
}
if (fabs(wd - 70) <= 0.001)
return(y);
if (wd > 70)
{
wd1 = 70;
y1 = y;
}
else
{
wd2 = 70;
y2 = y;
}
}
if (wd > 60 && wd < 70) //节流前温度在60和70之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 70 && wd < 90) //节流前温度为80
{
if (x >= 870)
{
if (x <= 880)
y = -5 * x + 4550;
if (y >= 150 && y <= 200)
; //null
else if (x <= 4000)
y = -0.000000022731 * pow(x,3) - 0.000015946 * pow(x,2) + 1.5305 * x - 1145.47;
else if (x > 4000 && x <= 10000)
y = -0.000000025478 * pow(x,2) + 0.4696 * x + 1982.29;
}
else
y=0;
if (fabs(wd - 80) <= 0.001)
return(y);
if (wd > 80)
{
wd1 = 80;;
y1 = y;
}
else
{
wd2 = 80;
y2 = y;
}
}
if (wd > 70 && wd < 80) //节流前温度在70和80之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 80 && wd < 100) //节流前温度为90
{
if (x >= 1130)
{
if (x <= 1150)
y = -2.5 * x + 3025;
if (y >= 150 && y <= 200)
; //null
else if (x <= 1714.3)
y = -0.0011 * pow(x,2) + 4.5354 * x - 3507.45;
else if (x > 1714.3 && x <= 10000)
y = -0.000000052345 * pow(x,3) + 0.00023 * pow(x,2) + 0.7476 * x - 698.967;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -