📄 shwrjcalfuction.cpp
字号:
}
if (wd > 110 && wd < 120) //节流前温度在110和120之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 120 && wd < 140) //节流前温度为130
{
if (x >= 1714.2)
{
if (x <= 1750)
y = -2.2346 * x + 4030.61;
if (y >= 120 && y <= 200 )
; //null
else if (x <= 3000)
y = -0.00038 * pow(x,2) + 2.5881 * x - 3088.37;
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;
}
if (fabs(wd - 130) <= 0.001)
return(y);
if (wd > 130)
{
wd1 = 130;
y1 = y;
}
else
{
wd2 = 130;
y2 = y;
}
}
if (wd > 120 && wd < 130) //节流前温度在120和130之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 130 && wd < 150) //节流前温度为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;
}
if (fabs(wd - 140) <= 0.001)
return(y);
if (wd > 140)
{
wd1 = 140;
y1 = y;
}
else
{
wd2 = 140;
y2 = y;
}
}
if (wd > 130 && wd < 140) //节流前温度在130和140之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 140 && wd < 160) //节流前温度为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;
}
if (fabs(wd - 150) <= 0.001)
return(y);
if (wd > 150)
{
wd1 = 150;
y1 = y;
}
else
{
wd2 = 150;
y2 = y;
}
}
if (wd > 140 && wd < 150) //节流前温度在140和150之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 150 && wd < 170) //节流前温度为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;
if (fabs(wd - 170) <= 0.001)
return(y);
if (wd > 160)
{
wd1 = 160;
y1 = y;
}
else
{
wd2 = 160;
y2 = y;
}
}
if (wd > 150 && wd < 160) //节流前温度在150和160之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 160 && wd < 180) //节流前温度为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;
}
if (fabs(wd - 170) <= 0.001)
return(y);
if (wd > 170)
{
wd1 = 170;
y1 = y;
}
else
{
wd2 = 170;
y2 = y;
}
}
if (wd > 160 && wd < 170) //节流前温度在160和170之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 170 && wd < 190) //节流前温度为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 <= 6750)
y = -0.1 * x + 790;
if (y >= 120 && y <= 200)
; //null
else if (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;
}
if (fabs(wd - 180) <= 0.001)
return(y);
if (wd > 180)
{
wd1 = 180;
y1 = y;
}
else
{
wd2 = 180;
y2 = y;
}
}
if (wd > 170 && wd < 180) //节流前温度在170和180之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 180 && 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;
}
if (fabs(wd - 184) <= 0.001)
return(y);
wd2 = 170;
y2 = y;
}
if (wd > 180 && wd < 184) //节流前温度在180和184之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
return(y);
}
//图6-21 相对密度为0.8天然气在不形成水化物条件下允许达到的膨胀程度
//x--节流前压力,psia
//y--节流后压力,psia
//wd--节流前温度,oF
double xdmd8(double x, double wd)
{
double y,y1,y2,wd1,wd2;
if (wd >= 50 && wd < 60) //节流前温度为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;
if (fabs(wd - 50) <= 0.001)
return(y);
wd1 = 50;
y1 = y;
}
if (wd > 50 && wd < 70) //节流前温度为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;
}
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 >= 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;
}
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 >= 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;
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 >= 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;
}
if (fabs(wd - 90) <= 0.001)
return(y);
if (wd > 90)
{
wd1 = 90;
y1 = y;
}
else
{
wd2 = 90;
y2 = y;
}
}
if (wd > 80 && wd < 90) //节流前温度在80和90之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 90 && wd < 110) //节流前温度为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;
}
if (fabs(wd - 100) <= 0.001)
return(y);
if (wd > 100)
{
wd1 = 100;
y1 = y;
}
else
{
wd2 = 100;
y2 = y;
}
}
if (wd > 90 && wd < 100) //节流前温度在90和100之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 100 && wd < 120) //节流前温度为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;
}
if (fabs(wd - 110) <= 0.001)
return(y);
if (wd > 110)
{
wd1 = 110;
y1 = y;
}
else
{
wd2 = 110;
y2 = y;
}
}
if (wd > 100 && wd < 110) //节流前温度在100和110之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 110 && wd < 130) //节流前温度为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;
if (fabs(wd - 120) <= 0.001)
return(y);
if (wd > 120)
{
wd1 = 120;
y1 = y;
}
else
{
wd2 = 120;
y2 = y;
}
}
if (wd > 110 && wd < 120) //节流前温度在110和120之间
{
y = y1 - (y1 - y2) * (wd1 - wd) / (wd1 - wd2);
return(y);
}
if (wd > 120 && wd < 140) //节流前温度为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;
}
if (fabs(wd - 130) <= 0.001)
return(y);
if (wd > 130)
{
wd1 = 130;
y1 = y;
}
else
{
wd2 = 130;
y2 = y;
}
}
if (wd > 120 && wd < 130) //节流前温度在120和130之间
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -