NGToolsCSharp/NGTools/MYJS/SQGYJS.js
2024-09-13 16:44:30 +08:00

336 lines
12 KiB
JavaScript

var GDZone =
[
{ "text": "一级地区有套管穿越三、四级公路的管道", "ID": "0.72" },
{ "text": "一级地区无套管穿越三、四级公路的管道", "ID": "0.6" },
{ "text": "一级地区有套管穿越一、二级公路、高速公路、铁路的管道", "ID": "0.6" },
{ "text": "一级地区输气站内及其200米内,截断阀室及其50米内的管道", "ID": "0.5" },
{ "text": "一级地区人群聚集场所的管道", "ID": "0.5" },
{ "text": "二级地区有套管穿越三、四级公路的管道", "ID": "0.6" },
{ "text": "二级地区无套管穿越三、四级公路的管道", "ID": "0.5" },
{ "text": "二级地区有套管穿越一、二级公路、高速公路、铁路的管道", "ID": "0.6" },
{ "text": "二级地区输气站内及其200米内,截断阀室及其50米内的管道", "ID": "0.5" },
{ "text": "二级地区人群聚集场所的管道", "ID": "0.5" },
{ "text": "三级地区有套管穿越三、四级公路的管道", "ID": "0.5" },
{ "text": "三级地区无套管穿越三、四级公路的管道", "ID": "0.5" },
{ "text": "三级地区有套管穿越一、二级公路、高速公路、铁路的管道", "ID": "0.5" },
{ "text": "三级地区输气站内及其200米内,截断阀室及其50米内的管道", "ID": "0.5" },
{ "text": "三级地区人群聚集场所的管道", "ID": "0.5" },
{ "text": "四级地区有套管穿越三、四级公路的管道", "ID": "0.4" },
{ "text": "四级地区无套管穿越三、四级公路的管道", "ID": "0.4" },
{ "text": "四级地区有套管穿越一、二级公路、高速公路、铁路的管道", "ID": "0.4" },
{ "text": "四级地区输气站内及其200米内,截断阀室及其50米内的管道", "ID": "0.4" },
{ "text": "四级地区人群聚集场所的管道", "ID": "0.4" }
]
var HjgyXS = [
{ "text": "手工电弧焊", "ID": "0.7" },
{ "text": "有垫环对焊焊接", "ID": "0.9" },
{ "text": "无垫环对焊焊接", "ID": "0.7" },
{ "text": "手工双面加强焊接", "ID": "0.95" },
{ "text": "自动双面焊接", "ID": "1.0" },
{ "text": "自动单面焊接", "ID": "0.8" }]
var TZXS = [
{ "text": "干沙土", "ID": "1.0" },
{ "text": "很湿的沙土", "ID": "3.0" },
{ "text": "潮湿的粘土", "ID": "1.35" },
{ "text": "无法确定", "ID": "1.5" },
]
var TZXS = [
{ "text": "10#钢", "ID": "205" },
{ "text": "20#钢", "ID": "245" },
{ "text": "16Mn钢", "ID": "345" },
{ "text": "09MnV钢", "ID": "295" },
{ "text": "A3F钢", "ID": "240" },
]
var SQGYJSCS = [
{ "text": "输气能力(m³/d)", "ID": "0" },
{ "text": "管道内径(mm)", "ID": "1" },
{ "text": "管道长度(km)", "ID": "2" },
{ "text": "起点表压力(MPa)", "ID": "3" },
{ "text": "终点表压力(MPa)", "ID": "4" },
{ "text": "管存量(m³)", "ID": "5" },
]
var SQGYJSGS = [
{ "text": "威莫斯公式", "ID": "0" },
{ "text": "潘汉德尔修正公式", "ID": "1" },
{ "text": "前苏联早期公式", "ID": "2" },
{ "text": "前苏联近期公式", "ID": "3" },
//{ "text": "终点压力", "ID": "4" },
]
var SQGLX = [
{ "text": "水平输气管", "ID": "0" },
{ "text": "地形起伏输气管", "ID": "1" },
//{ "text": "管道长度", "ID": "2" },
//{ "text": "起点压力", "ID": "3" },
//{ "text": "终点压力", "ID": "4" },
]
//pipeDw
//pipeBH
//pipeL
//startP
//endP
//flowSQ
//XDMD
//Zf
//Tavg
function SQGYJS(jsCS, JSGS, par) {
//alert(JSON.stringify(par));
var Dn = (parseFloat(par.pipeDw) - 2 * parseFloat(par.pipeBH)) / 10;
var result = 0;
try {
var Ps = parseFloat(par.startP) + 0.101325;
} catch (e) {
}
try {
var Pe = parseFloat(par.endP) + 0.101325;
} catch (e) {
}
var RD = parseFloat(par.XDMD);
var T = parseFloat(par.Tavg) + 273.15;
var L = parseFloat(par.pipeL);
var Z = parseFloat(par.Zf);
var Zn = parseFloat(par.Zn);
var Q = parseFloat(par.flowSQ);
var Exlxs = XLXS(parseFloat(par.pipeDw));
//alert(Ps + "_" + Pe + "_" + RD + "_" + T + "_" + L + "_" + Z + "_" + Dn+ "_" + Q);
switch (jsCS) {
case "0": //输气能力
var ZRDTL = Z * RD * T * L;
var ZRDTL051 = Z * Math.pow(RD, 0.961) * T * L;
var PowZRDTL05 = Math.pow(ZRDTL, 0.5);
var PowZRDTL051 = Math.pow(ZRDTL051, 0.51);
var powDn83 = Math.pow(Dn, 8 / 3);
var powDn253 = Math.pow(Dn, 2.53);
var powDn27 = Math.pow(Dn, 2.7);
var powDn26 = Math.pow(Dn, 2.6);
var powPsPe05 = Math.pow((Ps * Ps - Pe * Pe), 0.5);
var powPsPe051 = Math.pow((Ps * Ps - Pe * Pe), 0.51);
switch (JSGS) {
case "0": //10.8432=5033/10^(8/3)
result = 5033 * powDn83 * powPsPe05 / PowZRDTL05;
break;
case "1": //24.8244=11522/10^(8/3)
//alert(Exlxs + "_" + powDn253 + "_" + powPsPe051 + "_" + PowZRDTL051 + "_" + L + "_" + Z + "_" + Dn + "_" + Q);
result = 11522 * Exlxs * powDn253 * powPsPe051 / PowZRDTL051;
break;
case "2": //24.8244=11522/10^(8/3)
result = 4464.2 * powDn27 * powPsPe05 / PowZRDTL05;
break;
case "3": //24.8244=11522/10^(8/3)
result = 6775.6 * Exlxs * 1 * powDn26 * powPsPe05 / PowZRDTL05;
break;
default:
}
break;
case "1": //管道内径计算
var ZRDTL = Z * RD * T * L;
var ZRDTL051 = Z * Math.pow(RD, 0.961) * T * L;
var PowZRDTL05 = Math.pow(ZRDTL, 0.5);
var PowZRDTL051 = Math.pow(ZRDTL051, 0.51);
var powPsPe05 = Math.pow((Ps * Ps - Pe * Pe), 0.5);
var powPsPe051 = Math.pow((Ps * Ps - Pe * Pe), 0.51);
switch (JSGS) {
case "0": //10.8432=5033/10^(8/3)
result = Math.pow(Q / (5033 * powPsPe05 / PowZRDTL05), 3 / 8) * 10; //* Math.pow(Dn, 8 / 3)
break;
case "1": //24.8244=11522/10^(8/3)
//result = Math.pow(Q / (11522 * powPsPe051 / PowZRDTL051), 1 / 2.53)*10; //* Math.pow(Dn, 2.53)
//Exlxs = XLXS(parseFloat(result));
result = Math.pow(Q / (11522 * Exlxs * powPsPe051 / PowZRDTL051), 1 / 2.53) * 10; //* Math.pow(Dn, 2.53)
break;
case "2": //24.8244=11522/10^(8/3)
result = Math.pow(Q / (4464.2 * powPsPe05 / PowZRDTL05), 1 / 2.7) * 10; //* Math.pow(Dn, 2.7)
break;
case "3": //24.8244=11522/10^(8/3)
result = Math.pow(Q / (6775.6 * Exlxs * 1 * powPsPe05 / PowZRDTL05), 1 / 2.6) * 10; //* Math.pow(Dn, 2.6)
break;
default:
}
break;
case "2": //管道长度
var ZRDTL = Z * RD * T;
var ZRDTL051 = Z * Math.pow(RD, 0.961) * T;
var PowZRDTL05 = Math.pow(ZRDTL, 0.5);
var PowZRDTL051 = Math.pow(ZRDTL051, 0.51);
var powDn83 = Math.pow(Dn, 8 / 3);
var powDn253 = Math.pow(Dn, 2.53);
var powDn27 = Math.pow(Dn, 2.7);
var powDn26 = Math.pow(Dn, 2.6);
var powPsPe05 = Math.pow((Ps * Ps - Pe * Pe), 0.5);
var powPsPe051 = Math.pow((Ps * Ps - Pe * Pe), 0.51);
switch (JSGS) {
case "0": //10.8432=5033/10^(8/3)
result = Math.pow(5033 * powDn83 * powPsPe05 / PowZRDTL05 / Q, 2);
break;
case "1": //24.8244=11522/10^(8/3)
result = Math.pow(11522 * Exlxs * powDn253 * powPsPe051 / PowZRDTL051 / Q, 1 / 0.51);
break;
case "2": //24.8244=11522/10^(8/3)
result = Math.pow(4464.2 * powDn27 * powPsPe05 / PowZRDTL05 / Q, 2);
break;
case "3": //24.8244=11522/10^(8/3)
result = Math.pow(6775.6 * Exlxs * 1 * powDn26 * powPsPe05 / PowZRDTL05 / Q, 2);
break;
default:
}
break;
case "3": //起点压力
var ZRDTL = Z * RD * T * L;
var ZRDTL051 = Z * Math.pow(RD, 0.961) * T * L;
var PowZRDTL05 = Math.pow(ZRDTL, 0.5);
var PowZRDTL051 = Math.pow(ZRDTL051, 0.51);
var powDn83 = Math.pow(Dn, 8 / 3);
var powDn253 = Math.pow(Dn, 2.53);
var powDn27 = Math.pow(Dn, 2.7);
var powDn26 = Math.pow(Dn, 2.6);
//var powPsPe05 = Math.pow((Ps * Ps - Pe * Pe), 0.5);
//var powPsPe051 = Math.pow((Ps * Ps - Pe * Pe), 0.51);
switch (JSGS) {
case "0": //10.8432=5033/10^(8/3)
result = Math.sqrt(Math.pow(Q / (5033 * powDn83 / PowZRDTL05), 2) + Pe * Pe);
break;
case "1": //24.8244=11522/10^(8/3)
result = Math.sqrt(Math.pow(Q / (11522 * Exlxs * powDn253 / PowZRDTL051), 1 / 0.51) + Pe * Pe);;
break;
case "2": //24.8244=11522/10^(8/3)
result = Math.sqrt(Math.pow(Q / (4464.2 * powDn27 / PowZRDTL05), 2) + Pe * Pe);
break;
case "3": //24.8244=11522/10^(8/3)
result = Math.sqrt(Math.pow(Q / (6775.6 * Exlxs * 1 * powDn26 / PowZRDTL05), 2) + Pe * Pe);
break;
default:
}
result = result - 0.101325;
break;
case "4": //终点压力
var ZRDTL = Z * RD * T * L;
var ZRDTL051 = Z * Math.pow(RD, 0.961) * T * L;
var PowZRDTL05 = Math.pow(ZRDTL, 0.5);
var PowZRDTL051 = Math.pow(ZRDTL051, 0.51);
var powDn83 = Math.pow(Dn, 8 / 3);
var powDn253 = Math.pow(Dn, 2.53);
var powDn27 = Math.pow(Dn, 2.7);
var powDn26 = Math.pow(Dn, 2.6);
//var powPsPe05 = Math.pow((Ps * Ps - Pe * Pe), 0.5);
//var powPsPe051 = Math.pow((Ps * Ps - Pe * Pe), 0.51);
switch (JSGS) {
case "0": //10.8432=5033/10^(8/3)
result = Math.sqrt(Ps * Ps - Math.pow(Q / (5033 * powDn83 / PowZRDTL05), 2));
break;
case "1": //24.8244=11522/10^(8/3)
result = Math.sqrt(Ps * Ps - Math.pow(Q / (11522 * Exlxs * powDn253 / PowZRDTL051), 1 / 0.51));
break;
case "2": //24.8244=11522/10^(8/3)
result = Math.sqrt(Ps * Ps - Math.pow(Q / (4464.2 * powDn27 / PowZRDTL05), 2));
break;
case "3": //24.8244=11522/10^(8/3)
result = Math.sqrt(Ps * Ps - Math.pow(Q / (6775.6 * Exlxs * 1 * powDn26 / PowZRDTL05), 2));
break;
default:
}
result = result - 0.101325;
break;
case "5": //管存量
var V = 3.1415926 * Dn * Dn * L * 1000 / 40000;
//alert(Dn +"_"+V);
result = V * ((Ps + Pe) / 2) * Zn * 293.15 / Z / T / 0.101325;
default:
}
//alert(result);
return result;
}
function XLXS(pipeDNJ) {
var pD = parseFloat(pipeDNJ);
//alert(pD);
if (pD > 0 & pD < 300) {
return 0.84;
}
else if (pD >= 300 & pD < 400) {
return 0.85;
}
else if (pD >= 400 & pD < 500) {
return 0.84;
}
else if (pD >= 500 & pD < 600) {
return 0.87;
}
else if (pD >= 700 & pD < 800) {
return 0.9;
}
else if (pD >= 800 & pD < 1000) {
return 0.91;
}
else {
return 0.85;
}
}