添加ISA1932喷嘴计算,文丘里喷嘴计算 /** 喷嘴喉部直径(mm,对应ISO 1932标准) */
private double dNozzleD;
/** 喷嘴入口圆弧半径(mm,标准要求 r≥0.2d) */
private double dNozzleR;
/** 喷嘴总长度(mm,长径喷嘴L1≥0.6D;短径喷嘴L1=0.3D) */
private double dNozzleL1;
/** 喷嘴类型:0-长径喷嘴;1-短径喷嘴 */
private int dNozzleType;
// ==================== 经典文丘里管专属参数 ====================
/** 文丘里管喉部直径(mm) */
private double dVenturiD;
/** 收缩段锥角(°,标准范围15°~25°) */
private double dVenturiTheta1;
/** 扩散段锥角(°,标准范围5°~15°) */
private double dVenturiTheta2;
/** 喉部平直段长度(mm,标准Lt=0.5d~1.0d) */
private double dVenturiLt;
/** 文丘里管类型:0-粗铸收缩段;1-机械加工收缩段;2-粗焊铁板收缩段;3-文丘里喷嘴 */
private int dVenturiType;
This commit is contained in:
parent
662dc541ea
commit
2760f4ca8a
@ -3,7 +3,7 @@ spring:
|
|||||||
# redis 配置
|
# redis 配置
|
||||||
redis:
|
redis:
|
||||||
# 地址
|
# 地址
|
||||||
host: localhost
|
host: 192.168.3.246
|
||||||
# 端口,默认为6379
|
# 端口,默认为6379
|
||||||
port: 6379
|
port: 6379
|
||||||
# 数据库索引
|
# 数据库索引
|
||||||
|
|||||||
@ -7,163 +7,27 @@ import com.ruoyi.caltools.model.GasProps;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import static com.ruoyi.caltools.controller.FlowController.FlowConvert_BaseToWork;
|
|
||||||
import static com.ruoyi.caltools.controller.FlowController.YaLiSunShi;
|
|
||||||
|
|
||||||
|
|
||||||
public class DpFlowCalc {
|
public class DpFlowCalc {
|
||||||
/**
|
|
||||||
标准孔板流量计算
|
|
||||||
*/
|
|
||||||
public void OFlowCal(GasProps gasProps, FlowProps flowProps){
|
|
||||||
|
|
||||||
flowProps.setdOrificeD(flowProps.getdOrificeD() * (1 + 0.000001 * (flowProps.getdOrificeMaterial()) * (flowProps.getdTf() - 293.15)));
|
|
||||||
flowProps.setdPipeD(flowProps.getdPipeD() * (1 + 0.000001 * (flowProps.getdPipeMaterial()) * (flowProps.getdTf() - 293.15)));
|
|
||||||
flowProps.setdBeta(flowProps.getdOrificeD() / flowProps.getdPipeD());
|
|
||||||
// flowProps.setdBeta(0.5972);
|
|
||||||
|
|
||||||
//求渐近速度系数 E
|
|
||||||
flowProps.setdE(1 / Math.pow((1 - Math.pow(flowProps.getdBeta(), 4)), 0.5));
|
|
||||||
// flowProps.setdE(1.0615);
|
|
||||||
|
|
||||||
//求相对密度系数 FG
|
|
||||||
// LiuTiType = 1
|
|
||||||
flowProps.setdFG(Math.pow((1 / gasProps.dRD_Real), 0.5));
|
|
||||||
// flowProps.setdFG(1.2531);
|
|
||||||
//求流动温度系数 'FT
|
|
||||||
flowProps.setdFT(Math.pow((293.15 / flowProps.getdTf()), 0.5));
|
|
||||||
// flowProps.setdFT(1.0086);
|
|
||||||
//求等熵指数?????????????????????????????????
|
|
||||||
|
|
||||||
flowProps.setdKappa(gasProps.dKappa);
|
|
||||||
// flowProps.setdKappa(1.357);
|
|
||||||
|
|
||||||
//求动力粘度 dlnd
|
|
||||||
flowProps.setdDViscosity(Dlndjs(flowProps.getdPf()/1e6, flowProps.getdTf()));
|
|
||||||
// flowProps.setdDViscosity(0.01096);
|
|
||||||
|
|
||||||
//求可膨胀系数
|
|
||||||
flowProps.setdDExpCoefficient(KePenZhang_JiSuan(flowProps.getdPf() , flowProps.getdDp(), flowProps.getdBeta(), gasProps.getdKappa(), flowProps.getdCoreType(), 0));
|
|
||||||
// flowProps.setdDExpCoefficient(0.9977);
|
|
||||||
|
|
||||||
// gasProps.dFpv=1.0195;
|
|
||||||
// gasProps.dHhvv=39.944;
|
|
||||||
// gasProps.dRD_Real=0.6368;
|
|
||||||
|
|
||||||
//迭代计算流量和流出系数
|
|
||||||
|
|
||||||
double conQvA = 0.0000031795 * (1530000.0D * gasProps.dRD_Real / (flowProps.getdDViscosity() * flowProps.getdOrificeD())) * flowProps.getdE() * Math.pow(flowProps.getdOrificeD(), 2) * gasProps.dFpv * flowProps.getdFG() * flowProps.getdDExpCoefficient() * flowProps.getdFT() * Math.sqrt(flowProps.getdPf() * flowProps.getdDp() / 1e6);
|
|
||||||
double[] XQv = new double[4];
|
|
||||||
double[] CQv = new double[4];
|
|
||||||
double[] dQv = new double[4];
|
|
||||||
double Qn = 0;
|
|
||||||
int n ;
|
|
||||||
XQv[0] = 1000000.0F;
|
|
||||||
boolean xhFlag=true;
|
|
||||||
_100000:
|
|
||||||
|
|
||||||
while(xhFlag) {
|
|
||||||
for (n = 1; n <= 2; n++) {
|
|
||||||
CQv[n] = C_JiSuan(flowProps.getdOrificeD(), flowProps.getdBeta(), XQv[n - 1], conQvA, flowProps.getdPtmode(), flowProps.getdCoreType(), 0);
|
|
||||||
XQv[n] = conQvA * CQv[n];
|
|
||||||
dQv[n] = XQv[n] - XQv[n - 1];
|
|
||||||
}
|
|
||||||
if (XQv[2] == XQv[1] || dQv[2] == dQv[1]) {
|
|
||||||
Qn = conQvA * flowProps.getdDViscosity() * flowProps.getdOrificeD() * CQv[2] / (1530000.0D * gasProps.dRD_Real);
|
|
||||||
//管道雷诺数
|
|
||||||
flowProps.setdRnPipe(XQv[2]);
|
|
||||||
//流出系数
|
|
||||||
flowProps.setdCd(CQv[2]);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (Math.abs((conQvA - XQv[2] / CQv[1]) / conQvA) > 0.00000000000000005) {
|
|
||||||
XQv[0] = XQv[n - 1] - dQv[n - 1] * ((XQv[n - 1] - XQv[n - 2]) / (dQv[n - 1] - dQv[n - 2]));
|
|
||||||
//C# TO JAVA CONVERTER TODO TASK: There is no 'goto' in Java:
|
|
||||||
continue _100000;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
xhFlag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//孔板锐利度系数Bk
|
|
||||||
flowProps.setdOrificeSharpness(1);
|
|
||||||
if (flowProps.getdCoreType() == 0)
|
|
||||||
{
|
|
||||||
flowProps.setdBk((flowProps.getdOrificeSharpness() == 0) ? (BkTable(flowProps.getdOrificeRk(), flowProps.getdOrificeD(), 1)) : (flowProps.getdOrificeSharpness()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flowProps.setdBk(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//管道粗糙度系数 Gme
|
|
||||||
flowProps.setdRoughNessPipe(CcdXsjs(flowProps.getdPipeType(), flowProps.getdPipeD(), flowProps.getdBeta(), flowProps.getdRnPipe()));
|
|
||||||
//修正后的流出系数
|
|
||||||
flowProps.setdCd(flowProps.getdCd() * flowProps.getdBk() * flowProps.getdRoughNessPipe());
|
|
||||||
// flowProps.setdCd(0.6039);
|
|
||||||
//标况体积流量 m³、s
|
|
||||||
flowProps.setdVFlowb(Qn * flowProps.getdBk() * flowProps.getdRoughNessPipe());
|
|
||||||
//工况体积流量
|
|
||||||
flowProps.setdVFlowf(FlowConvert_BaseToWork(flowProps, gasProps));
|
|
||||||
//标况质量流量
|
|
||||||
flowProps.setdMFlowb(flowProps.getdVFlowb() * gasProps.dRhob);
|
|
||||||
//标况能量流量
|
|
||||||
flowProps.setdEFlowb(flowProps.getdVFlowb() * gasProps.dHhvv);
|
|
||||||
//管道内天然气流速
|
|
||||||
flowProps.setdVelocityFlow(flowProps.getdVFlowf() / (3.1415926 * Math.pow((flowProps.getdPipeD() / 2000), 2)));
|
|
||||||
//压力损失
|
|
||||||
flowProps.setdPressLost(YaLiSunShi(flowProps.getdCd(), flowProps.getdBeta(), flowProps.getdDp(), flowProps.getdCoreType()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算管道绝对粗糙度 K (GB/T 21446-2008 附录C)
|
* 计算管道绝对粗糙度 K (GB/T 21446-2008 附录C)
|
||||||
* @param flowProps
|
|
||||||
* @return 粗糙度修正系数 K (保留4位小数)
|
* @return 粗糙度修正系数 K (保留4位小数)
|
||||||
*/
|
*/
|
||||||
public static double calculateK(FlowProps flowProps){
|
public static double calculateK(FlowProps flowProps){
|
||||||
double Jdccd;
|
return switch (flowProps.getdPipeType()) {
|
||||||
switch (flowProps.getdPipeType()) {
|
case 0 -> 0.029F;
|
||||||
|
case 1, 2, 3 -> 0.075F;
|
||||||
case 0:
|
case 4 -> 0.1F;
|
||||||
Jdccd = 0.029F;
|
case 5,9 -> 0.15F;
|
||||||
break;
|
case 6 -> 1;
|
||||||
case 1:
|
case 7 -> 2.1F;
|
||||||
case 2:
|
case 8 -> 0.04F;
|
||||||
case 3:
|
case 10 -> 0.13F;
|
||||||
Jdccd = 0.075F;
|
case 11 -> 0.25F;
|
||||||
break;
|
default ->
|
||||||
case 4:
|
|
||||||
Jdccd = 0.1F;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
Jdccd = 0.15F;
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
Jdccd = 1;
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
Jdccd = 2.1F;
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
Jdccd = 0.04F;
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
Jdccd = 0.15F;
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
Jdccd = 0.13F;
|
|
||||||
break;
|
|
||||||
case 11:
|
|
||||||
Jdccd = 0.25F;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// 处理未知类型(可选)
|
// 处理未知类型(可选)
|
||||||
throw new IllegalArgumentException("未知的管道类型: ");
|
throw new IllegalArgumentException("未知的管道类型: ");
|
||||||
}
|
};
|
||||||
return Jdccd;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -209,8 +73,38 @@ public class DpFlowCalc {
|
|||||||
double dPipeD_corrected = dPipeD * (1 + 0.000001*dPipeMaterial * (flowProps.getdTf() - 293.15));
|
double dPipeD_corrected = dPipeD * (1 + 0.000001*dPipeMaterial * (flowProps.getdTf() - 293.15));
|
||||||
flowProps.setdPipeD(FormatUtil.format(dPipeD_corrected,Optional.of(2)));
|
flowProps.setdPipeD(FormatUtil.format(dPipeD_corrected,Optional.of(2)));
|
||||||
|
|
||||||
|
// 新增:喷嘴喉部直径热膨胀修正(对应ISO 1932喷嘴)
|
||||||
|
if (flowProps.getdCoreType() == 1) {
|
||||||
|
double nozzleMaterial = flowProps.getdOrificeMaterial(); // 喷嘴与孔板共用材料参数(可单独扩展)
|
||||||
|
double nozzleD = flowProps.getdNozzleD();
|
||||||
|
double nozzleD_corrected = nozzleD * (1 + 0.000001*nozzleMaterial * (flowProps.getdTf() - 293.15));
|
||||||
|
flowProps.setdNozzleD(FormatUtil.format(nozzleD_corrected, Optional.of(2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增:文丘里管喉部直径热膨胀修正
|
||||||
|
if (flowProps.getdCoreType() == 2) {
|
||||||
|
double venturiMaterial = flowProps.getdOrificeMaterial(); // 文丘里管与孔板共用材料参数(可单独扩展)
|
||||||
|
double venturiD = flowProps.getdVenturiD();
|
||||||
|
double venturiD_corrected = venturiD * (1 + 0.000001*venturiMaterial * (flowProps.getdTf() - 293.15));
|
||||||
|
flowProps.setdVenturiD(FormatUtil.format(venturiD_corrected, Optional.of(2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新直径比β(新增:根据节流装置类型切换计算基准)
|
||||||
|
double beta;
|
||||||
|
if (flowProps.getdCoreType() == 0) {
|
||||||
|
// 孔板:孔径/管道内径
|
||||||
|
beta = flowProps.getdOrificeD() / flowProps.getdPipeD();
|
||||||
|
} else if (flowProps.getdCoreType() == 1) {
|
||||||
|
// 喷嘴:喉部直径/管道内径
|
||||||
|
beta = flowProps.getdNozzleD() / flowProps.getdPipeD();
|
||||||
|
} else if (flowProps.getdCoreType() == 2) {
|
||||||
|
// 文丘里管:喉部直径/管道内径
|
||||||
|
beta = flowProps.getdVenturiD() / flowProps.getdPipeD();
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("不支持的节流装置类型,无法计算直径比β");
|
||||||
|
}
|
||||||
// 更新直径比β
|
// 更新直径比β
|
||||||
flowProps.setdBeta( FormatUtil.format(flowProps.getdOrificeD() / flowProps.getdPipeD(),Optional.of(4)));
|
flowProps.setdBeta( FormatUtil.format(beta,Optional.of(4)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -241,16 +135,42 @@ public class DpFlowCalc {
|
|||||||
/**
|
/**
|
||||||
* 计算可膨胀系数ε(GB/T 21446-2008 式(11))
|
* 计算可膨胀系数ε(GB/T 21446-2008 式(11))
|
||||||
*/
|
*/
|
||||||
public static void calculateEpsilon(FlowProps flowProps, GasProps gasProps) {
|
public static void calculateEpsilon(FlowProps flowProps) {
|
||||||
double P1 = flowProps.getdPf(); // 上游绝对压力(Pa)
|
double P1 = flowProps.getdPf();
|
||||||
double deltaP = flowProps.getdDp(); // 差压(Pa)
|
double deltaP = flowProps.getdDp();
|
||||||
double beta = flowProps.getdBeta();
|
double beta = flowProps.getdBeta();
|
||||||
double kappa = flowProps.getdKappa();
|
double kappa = flowProps.getdKappa();
|
||||||
|
double tau = FormatUtil.format((P1 - deltaP) / P1, Optional.of(4));
|
||||||
|
double epsilon;
|
||||||
|
switch (flowProps.getdCoreType()) {
|
||||||
|
case 0: // 孔板(原有逻辑保留)
|
||||||
|
epsilon = 1 - (0.351 + 0.256 * Math.pow(beta, 4) + 0.93 * Math.pow(beta, 8)) * (1 - Math.pow(tau, 1 / kappa));
|
||||||
|
break;
|
||||||
|
case 1: // ISO 932喷嘴(新增:符合GB/T 21446-2008附录B)
|
||||||
|
if (flowProps.getdNozzleType() == 0) {
|
||||||
|
// 长径喷嘴
|
||||||
|
epsilon = 1 - (0.41 + 0.35 * Math.pow(beta, 4)) * (1 - Math.pow(tau, 1 / kappa)) / kappa;
|
||||||
|
} else {
|
||||||
|
// 短径喷嘴
|
||||||
|
epsilon = 1 - (0.39 + 0.38 * Math.pow(beta, 4)) * (1 - Math.pow(tau, 1 / kappa)) / kappa;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // 经典文丘里管(新增:符合GB/T 21446-2008附录C)
|
||||||
|
epsilon = switch (flowProps.getdVenturiType()) { // 粗铸收缩段
|
||||||
|
// 机械加工收缩段
|
||||||
|
case 0, 1, 2 -> // 粗焊铁板收缩段
|
||||||
|
1 - (0.386 + 0.318 * Math.pow(beta, 4)) * (1 - Math.pow(tau, 1 / kappa)) / kappa;
|
||||||
|
case 3 -> // 文丘里喷嘴
|
||||||
|
1 - (0.40 + 0.36 * Math.pow(beta, 4)) * (1 - Math.pow(tau, 1 / kappa)) / kappa;
|
||||||
|
default -> throw new IllegalArgumentException("未知的文丘里管类型");
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("不支持的节流装置类型,无法计算可膨胀系数ε");
|
||||||
|
}
|
||||||
|
|
||||||
double tau = FormatUtil.format((P1 - deltaP) / P1, Optional.of(4)); // 压力比
|
|
||||||
double epsilon=1 - (0.351 + 0.256 * Math.pow(beta, 4) + 0.93 * Math.pow(beta, 8)) * (1 - Math.pow(tau, 1/kappa));
|
|
||||||
|
|
||||||
flowProps.setdDExpCoefficient( FormatUtil.format(epsilon,Optional.of(4)));
|
flowProps.setdDExpCoefficient(FormatUtil.format(epsilon, Optional.of(4)));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 计算等熵指数κ(GB/T 21446-2008 推荐方法)
|
* 计算等熵指数κ(GB/T 21446-2008 推荐方法)
|
||||||
@ -281,6 +201,8 @@ public class DpFlowCalc {
|
|||||||
*/
|
*/
|
||||||
public static void iterativeFlowCalculation(FlowProps flowProps, GasProps gasProps) {
|
public static void iterativeFlowCalculation(FlowProps flowProps, GasProps gasProps) {
|
||||||
// 0. 单位转换
|
// 0. 单位转换
|
||||||
|
thermalExpansionCorrection(flowProps); // 热膨胀修正
|
||||||
|
|
||||||
double D = flowProps.getdPipeD() / 1000.0; // 管道内径(m)
|
double D = flowProps.getdPipeD() / 1000.0; // 管道内径(m)
|
||||||
double d = flowProps.getdOrificeD() / 1000.0; // 孔板孔径(m)
|
double d = flowProps.getdOrificeD() / 1000.0; // 孔板孔径(m)
|
||||||
double beta = flowProps.getdBeta();
|
double beta = flowProps.getdBeta();
|
||||||
@ -288,6 +210,9 @@ public class DpFlowCalc {
|
|||||||
double deltaP = flowProps.getdDp(); // 差压(Pa)
|
double deltaP = flowProps.getdDp(); // 差压(Pa)
|
||||||
double Tf = flowProps.getdTf() ; // 工况温度(K)
|
double Tf = flowProps.getdTf() ; // 工况温度(K)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
flowProps.setdPb_M(gasProps.getdPb());
|
flowProps.setdPb_M(gasProps.getdPb());
|
||||||
flowProps.setdTb_M(gasProps.getdTb());
|
flowProps.setdTb_M(gasProps.getdTb());
|
||||||
flowProps.setdFpv(FormatUtil.format(gasProps.dFpv,Optional.of(4)));
|
flowProps.setdFpv(FormatUtil.format(gasProps.dFpv,Optional.of(4)));
|
||||||
@ -300,7 +225,7 @@ public class DpFlowCalc {
|
|||||||
flowProps.setdKappa( calculateKappa(gasProps));
|
flowProps.setdKappa( calculateKappa(gasProps));
|
||||||
// flowProps.setdDViscosity( calculateDynamicViscosity(gasProps));
|
// flowProps.setdDViscosity( calculateDynamicViscosity(gasProps));
|
||||||
flowProps.setdDViscosity(FormatUtil.format( Dlndjs(flowProps.getdPf()/1e6,flowProps.getdTf()),Optional.of(5)));
|
flowProps.setdDViscosity(FormatUtil.format( Dlndjs(flowProps.getdPf()/1e6,flowProps.getdTf()),Optional.of(5)));
|
||||||
calculateEpsilon(flowProps, gasProps);
|
calculateEpsilon(flowProps );
|
||||||
//
|
//
|
||||||
// flowProps.setdKappa(1.357);
|
// flowProps.setdKappa(1.357);
|
||||||
// flowProps.setdBeta(0.5792);
|
// flowProps.setdBeta(0.5792);
|
||||||
@ -312,7 +237,7 @@ public class DpFlowCalc {
|
|||||||
|
|
||||||
|
|
||||||
// 2. 初始雷诺数估算(假设初始C=0.6)
|
// 2. 初始雷诺数估算(假设初始C=0.6)
|
||||||
double C_initial = 0.6;
|
double C_initial = flowProps.getdCoreType() == 0 ? 0.6 : 0.99; // 喷嘴/文丘里初始C值更高
|
||||||
double Qf_initial = (C_initial * flowProps.getdE() * flowProps.getdDExpCoefficient() * Math.PI * Math.pow(d, 2) / 4)
|
double Qf_initial = (C_initial * flowProps.getdE() * flowProps.getdDExpCoefficient() * Math.PI * Math.pow(d, 2) / 4)
|
||||||
* Math.sqrt(2 * deltaP / (gasProps.dRhof * (1 - Math.pow(beta, 4))));
|
* Math.sqrt(2 * deltaP / (gasProps.dRhof * (1 - Math.pow(beta, 4))));
|
||||||
flowProps.setdVFlowf(Qf_initial); // 初始工况流量(m³/s)
|
flowProps.setdVFlowf(Qf_initial); // 初始工况流量(m³/s)
|
||||||
@ -323,14 +248,15 @@ public class DpFlowCalc {
|
|||||||
double currentC = C_initial;
|
double currentC = C_initial;
|
||||||
double currentReD = calculateReD(Qf_initial, D, gasProps.dRhof, flowProps.getdDViscosity());
|
double currentReD = calculateReD(Qf_initial, D, gasProps.dRhof, flowProps.getdDViscosity());
|
||||||
int iter = 0;
|
int iter = 0;
|
||||||
double prevC=0;
|
double prevC;
|
||||||
// 4. 迭代循环
|
// 4. 迭代循环
|
||||||
do {
|
do {
|
||||||
prevC = currentC;
|
prevC = currentC;
|
||||||
|
|
||||||
// 4.1 计算流出系数C(GB/T 21446-2008 附录A)
|
// 4.1 计算流出系数C(GB/T 21446-2008 附录A)
|
||||||
// currentC =FormatUtil.format( calculateCd(beta, currentReD, flowProps.getdPipeD(), flowProps.getdPtmode()),Optional.of(4));
|
// currentC =FormatUtil.format( calculateCd(beta, currentReD, flowProps.getdPipeD(), flowProps.getdPtmode()),Optional.of(4));
|
||||||
currentC = calculateCd(beta, currentReD, flowProps.getdPipeD(), flowProps.getdPtmode());
|
currentC = calculateCd(beta, currentReD, flowProps.getdPipeD(), flowProps.getdPtmode(), flowProps.getdCoreType(),
|
||||||
|
flowProps.getdNozzleType(), flowProps.getdVenturiType() );
|
||||||
|
|
||||||
// 4.2 更新流量
|
// 4.2 更新流量
|
||||||
// double Qf =FormatUtil.format ((currentC * flowProps.getdDExpCoefficient() * Math.PI * Math.pow(d, 2) / 4)
|
// double Qf =FormatUtil.format ((currentC * flowProps.getdDExpCoefficient() * Math.PI * Math.pow(d, 2) / 4)
|
||||||
@ -354,15 +280,16 @@ public class DpFlowCalc {
|
|||||||
|
|
||||||
double K = calculateK(flowProps); // 根据实际管道类型选择
|
double K = calculateK(flowProps); // 根据实际管道类型选择
|
||||||
double G_me = calculateRoughnessFactor(flowProps.getdPipeD(), K, currentC);
|
double G_me = calculateRoughnessFactor(flowProps.getdPipeD(), K, currentC);
|
||||||
double C_corrected = FormatUtil.format(currentC * G_me, Optional.of(4));
|
|
||||||
|
// 喷嘴/文丘里管无需粗糙度修正,仅孔板应用
|
||||||
|
double C_corrected = flowProps.getdCoreType() == 0
|
||||||
|
? FormatUtil.format(currentC * G_me, Optional.of(4))
|
||||||
|
: FormatUtil.format(currentC, Optional.of(4));
|
||||||
|
|
||||||
flowProps.setdCd(C_corrected);
|
flowProps.setdCd(C_corrected);
|
||||||
flowProps.setdRoughNessPipe(G_me);
|
flowProps.setdRoughNessPipe(G_me);
|
||||||
flowProps.setdRnPipe(currentReD);
|
flowProps.setdRnPipe(currentReD);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 6. 计算标况流量(GB/T 21446-2008 式(1))
|
// 6. 计算标况流量(GB/T 21446-2008 式(1))
|
||||||
double Qn = flowProps.getdVFlowf() * (flowProps.getdFpv()*flowProps.getdFpv() * P1 / flowProps.getdPb_M())
|
double Qn = flowProps.getdVFlowf() * (flowProps.getdFpv()*flowProps.getdFpv() * P1 / flowProps.getdPb_M())
|
||||||
* (flowProps.getdTb_M()) / Tf;
|
* (flowProps.getdTb_M()) / Tf;
|
||||||
@ -381,10 +308,6 @@ public class DpFlowCalc {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算天然气动力粘度(Sutherland公式简化版,适用于低压天然气)
|
* 计算天然气动力粘度(Sutherland公式简化版,适用于低压天然气)
|
||||||
* @param gasProps 气体参数(需包含温度、密度、组分)
|
* @param gasProps 气体参数(需包含温度、密度、组分)
|
||||||
@ -417,8 +340,13 @@ public class DpFlowCalc {
|
|||||||
/**
|
/**
|
||||||
* 计算流出系数C(GB/T 21446-2008 附录A)
|
* 计算流出系数C(GB/T 21446-2008 附录A)
|
||||||
*/
|
*/
|
||||||
public static double calculateCd(double beta, double ReD, double D_mm, int ptMode) {
|
public static double calculateCd(double beta, double ReD, double D_mm, int ptMode,
|
||||||
|
int coreType, int nozzleType, int venturiType) {
|
||||||
|
double Cd ;
|
||||||
double L1, L2;
|
double L1, L2;
|
||||||
|
|
||||||
|
switch (coreType) {
|
||||||
|
case 0: // 孔板(原有逻辑保留)
|
||||||
// 根据取压方式确定L1/L2(角接取压)
|
// 根据取压方式确定L1/L2(角接取压)
|
||||||
switch (ptMode) {
|
switch (ptMode) {
|
||||||
case 1: // 角接取压
|
case 1: // 角接取压
|
||||||
@ -443,13 +371,46 @@ public class DpFlowCalc {
|
|||||||
* (1 - 0.11 * A) * Math.pow(beta, 4) / (1 - Math.pow(beta, 4));
|
* (1 - 0.11 * A) * Math.pow(beta, 4) / (1 - Math.pow(beta, 4));
|
||||||
double term5 = -0.031 * (2 * L2 / (1 - beta) - 0.8 * Math.pow(2 * L2 / (1 - beta), 1.1))
|
double term5 = -0.031 * (2 * L2 / (1 - beta) - 0.8 * Math.pow(2 * L2 / (1 - beta), 1.1))
|
||||||
* Math.pow(beta, 1.3);
|
* Math.pow(beta, 1.3);
|
||||||
|
Cd = term1 + term2 + term3 + term4 + term5;
|
||||||
double Cd = term1 + term2 + term3 + term4 + term5;
|
|
||||||
|
|
||||||
// 孔径<71.12mm修正
|
// 孔径<71.12mm修正
|
||||||
if (D_mm < 71.12) {
|
if (D_mm < 71.12) {
|
||||||
Cd += 0.011 * (0.75 - beta) * (2.8 - D_mm / 25.4);
|
Cd += 0.011 * (0.75 - beta) * (2.8 - D_mm / 25.4);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // ISO 932喷嘴(新增)
|
||||||
|
if (nozzleType == 0) {
|
||||||
|
// 长径喷嘴(角接取压专用)
|
||||||
|
Cd = 0.9975 - 0.00653 * Math.pow(beta, 0.5) * Math.pow(1e6 / ReD, 0.5);
|
||||||
|
// 管道内径修正
|
||||||
|
if (D_mm < 71.12) {
|
||||||
|
Cd += 0.0002 * (71.12 - D_mm) / 25.4;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 短径喷嘴(角接取压专用)
|
||||||
|
Cd = 0.9965 - 0.0060 * Math.pow(beta, 0.5) * Math.pow(1e6 / ReD, 0.5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // 经典文丘里管(新增)
|
||||||
|
Cd = switch (venturiType) {
|
||||||
|
case 0 -> // 粗铸收缩段
|
||||||
|
0.984; // 雷诺数ReD>2e5时近似为常数
|
||||||
|
case 1 -> // 机械加工收缩段
|
||||||
|
0.995; // 雷诺数ReD>2e5时近似为常数
|
||||||
|
case 2 -> // 粗焊铁板收缩段
|
||||||
|
0.975; // 雷诺数ReD>2e5时近似为常数
|
||||||
|
case 3 -> // 文丘里喷嘴
|
||||||
|
0.990 - 0.005 * Math.pow(beta, 0.5) * Math.pow(1e6 / ReD, 0.2);
|
||||||
|
default -> throw new IllegalArgumentException("未知的文丘里管类型");
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("不支持的节流装置类型,无法计算流出系数C");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return FormatUtil.format(Cd,Optional.of(4));
|
return FormatUtil.format(Cd,Optional.of(4));
|
||||||
}
|
}
|
||||||
//查表计算粘度μ
|
//查表计算粘度μ
|
||||||
@ -629,510 +590,26 @@ public class DpFlowCalc {
|
|||||||
s2 = Dlndjs_Dlnd_Data[m + 1][n] + (Dlndjs_Dlnd_Data[m + 1][n + 1] - Dlndjs_Dlnd_Data[m + 1][n]) * ky;
|
s2 = Dlndjs_Dlnd_Data[m + 1][n] + (Dlndjs_Dlnd_Data[m + 1][n + 1] - Dlndjs_Dlnd_Data[m + 1][n]) * ky;
|
||||||
return (s1 + (s2 - s1) * kx) / 100000.0D;
|
return (s1 + (s2 - s1) * kx) / 100000.0D;
|
||||||
}
|
}
|
||||||
//可膨胀系数计算
|
|
||||||
private double KePenZhang_JiSuan(double tempP_jy, double tempDp_Pa, double tempZjb, double tempDszs, int JIeliuType, int JiSuanBiaoZhun) // 求可膨胀系数
|
|
||||||
{
|
|
||||||
double returnValue = 0;
|
|
||||||
//0标准孔板
|
|
||||||
//1ISA1932喷嘴
|
|
||||||
//2长径喷嘴
|
|
||||||
//3文丘里喷嘴
|
|
||||||
//4粗铸收缩段经典文丘里管
|
|
||||||
//5机械加工收缩段经典文丘里管
|
|
||||||
//6粗焊铁板收缩段经典文丘里管
|
|
||||||
//7 1/4圆孔板
|
|
||||||
|
|
||||||
double tuo ;
|
/**
|
||||||
switch (JIeliuType)
|
* 压力损失计算(适配多节流装置类型,需在FlowController中补充)
|
||||||
{
|
* @param Cd 流出系数
|
||||||
case 0: //孔板流量计算
|
* @param beta 直径比
|
||||||
switch (JiSuanBiaoZhun)
|
* @param dp 差压(Pa)
|
||||||
{
|
* @param coreType 节流装置类型
|
||||||
case 0: //6143-2004
|
* @return 压力损失(Pa)
|
||||||
tuo = (tempP_jy - tempDp_Pa) / (tempP_jy );
|
*/
|
||||||
returnValue = 1 - (0.351 + 0.256 * Math.pow(tempZjb, 4) + 0.93 * Math.pow(tempZjb, 8)) * (1 - Math.pow(tuo, (1 / tempDszs)));
|
// 注:该方法原在FlowController中,此处补充扩展逻辑
|
||||||
break;
|
public static double YaLiSunShi(double Cd, double beta, double dp, int coreType) {
|
||||||
case 1: //6143-1996
|
return switch (coreType) {
|
||||||
returnValue = 1 - (0.41 + 0.35 * Math.pow(tempZjb, 4)) * tempDp_Pa / ( tempP_jy * tempDszs);
|
case 0 -> // 孔板(原有逻辑保留)
|
||||||
break;
|
dp * (1 - Math.pow(beta, 4)) / (Cd * Cd);
|
||||||
}
|
case 1 -> // 喷嘴(新增)
|
||||||
break;
|
dp * 0.1; // 喷嘴压力损失约为差压的10%(经验值)
|
||||||
case 1:
|
case 2 -> // 文丘里管(新增)
|
||||||
case 2:
|
dp * 0.05; // 文丘里管压力损失约为差压的5%(经验值)
|
||||||
case 3:
|
default -> throw new IllegalArgumentException("不支持的节流装置类型,无法计算压力损失");
|
||||||
case 4:
|
};
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
switch (JiSuanBiaoZhun)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
//标准喷嘴 iso5167-2002
|
|
||||||
tuo = (tempP_jy - tempDp_Pa) / (tempP_jy );
|
|
||||||
returnValue = Math.pow((((tempDszs * Math.pow(tuo, (2 / tempDszs))) / (tempDszs - 1)) * ((1 - Math.pow(tempZjb, 4)) / (1 - Math.pow(tempZjb, 4) * Math.pow(tuo, (2 / tempDszs)))) * ((1 - Math.pow(tuo, ((tempDszs - 1) / tempDszs))) / (1 - tuo))), 0.5);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: //iso5167-93
|
|
||||||
returnValue = 1 - (0.41 + 0.35 * Math.pow(tempZjb, 4)) * tempDp_Pa / ( tempP_jy * tempDszs);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 7: //1/4圆孔板
|
|
||||||
returnValue = 1 - (0.41 + 0.35 * Math.pow(tempZjb, 4)) * tempDp_Pa / ( tempP_jy * tempDszs);
|
|
||||||
break;
|
|
||||||
case 8: //锥形入口孔板
|
|
||||||
tuo = (tempP_jy - tempDp_Pa) / (tempP_jy );
|
|
||||||
returnValue = 1 - (0.351 + 0.256 * Math.pow(tempZjb, 4) + 0.93 * Math.pow(tempZjb, 8)) * (1 - Math.pow(tuo, (1 / tempDszs)));
|
|
||||||
|
|
||||||
tuo = (tempP_jy - tempDp_Pa) / (tempP_jy );
|
|
||||||
|
|
||||||
returnValue = 0.5 * (returnValue + Math.pow((((tempDszs * Math.pow(tuo, (2 / tempDszs))) / (tempDszs - 1)) * ((1 - Math.pow(tempZjb, 4)) / (1 - Math.pow(tempZjb, 4) * Math.pow(tuo, (2 / tempDszs)))) * ((1 - Math.pow(tuo, ((tempDszs - 1) / tempDszs))) / (1 - tuo))), 0.5));
|
|
||||||
break;
|
|
||||||
case 9: //偏心孔板
|
|
||||||
returnValue = 1 - (0.41 + 0.35 * Math.pow(tempZjb, 4)) * tempDp_Pa / ( tempP_jy * tempDszs);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
//流出系数计算
|
|
||||||
public final double C_JiSuan(double tempGj, double tempZjb, double tempReD, double tempconQvA, int tempQyfs, int JieLiuType, int JiSuanBiaoZhun)
|
|
||||||
{
|
|
||||||
double returnValue = 0;
|
|
||||||
//流出系数计算函数
|
|
||||||
//输入:直径比,雷诺数,取压方式,节流装置类型,计算采用标准
|
|
||||||
//输出:流出系数
|
|
||||||
|
|
||||||
//jieliutype
|
|
||||||
|
|
||||||
//0标准孔板
|
|
||||||
//1ISA1932喷嘴
|
|
||||||
//2长径喷嘴
|
|
||||||
//3文丘里喷嘴
|
|
||||||
//4粗铸收缩段经典文丘里管
|
|
||||||
//5机械加工收缩段经典文丘里管
|
|
||||||
//6粗焊铁板收缩段经典文丘里管
|
|
||||||
|
|
||||||
double L1 = 0;
|
|
||||||
double L2 = 0;
|
|
||||||
switch (JieLiuType)
|
|
||||||
{
|
|
||||||
case 0: //孔板
|
|
||||||
switch (tempQyfs)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
L1 = 25.4 / tempGj;
|
|
||||||
L2 = L1;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
L1 = 0;
|
|
||||||
L2 = 0;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
L1 = 1;
|
|
||||||
L2 = 0.47F;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
switch (JiSuanBiaoZhun)
|
|
||||||
{
|
|
||||||
case 0: //6143-2004
|
|
||||||
if (tempGj >= 71.12)
|
|
||||||
{
|
|
||||||
returnValue = 0.5961 + 0.0261 * Math.pow(tempZjb, 2) - 0.216 * Math.pow(tempZjb, 8) + 0.000521 * Math.pow((1000000.0D * tempZjb / tempReD), 0.7) + (0.0188 + 0.0063 * Math.pow((19000 * tempZjb / tempReD), 0.8)) * Math.pow(tempZjb, 3.5) * Math.pow((1000000.0D / tempReD), 0.3) + (0.043 + 0.08 * Math.exp(-10 * L1) - 0.123 * Math.exp(-7 * L1)) * (1 - 0.11 * Math.pow((19000 * tempZjb / tempReD), 0.8)) * (Math.pow(tempZjb, 4) * Math.pow((1 - Math.pow(tempZjb, 4)), (-1))) - 0.031 * (2 * L2 / (1 - tempZjb) - 0.8 * Math.pow((2 * L2 / (1 - tempZjb)), 1.1)) * Math.pow(tempZjb, 1.3);
|
|
||||||
}
|
|
||||||
else if (tempGj < 71.12)
|
|
||||||
{
|
|
||||||
returnValue = (0.5961 + 0.0261 * Math.pow(tempZjb, 2) - 0.216 * Math.pow(tempZjb, 8) + 0.000521 * Math.pow((1000000.0D * tempZjb / tempReD), 0.7) + (0.0188 + 0.0063 * Math.pow((19000 * tempZjb / tempReD), 0.8)) * Math.pow(tempZjb, 3.5) * Math.pow((1000000.0D / tempReD), 0.3) + (0.043 + 0.08 * Math.exp(-10 * L1) - 0.123 * Math.exp(-7 * L1)) * (1 - 0.11 * Math.pow((19000 * tempZjb / tempReD), 0.8)) * Math.pow(tempZjb, 4) * Math.pow((1 - Math.pow(tempZjb, 4)), (-1)) - 0.031 * (2 * L2 / (1 - tempZjb) - 0.8 * Math.pow((2 * L2 * (1 - tempZjb)), 1.1)) * Math.pow(tempZjb, 1.3) + 0.011 * (0.75 - tempZjb) * (2.8 - tempGj / 25.4));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1: //6143-1996
|
|
||||||
if (0.09 * L1 >= 0.039)
|
|
||||||
{
|
|
||||||
returnValue = 0.5959 + 0.0312 * Math.pow(tempZjb, (2.1)) - 0.184 * Math.pow(tempZjb, 8) + 0.0029 * Math.pow(tempZjb, 2.5) * Math.pow((1000000.0D / tempReD), 0.75) + 0.039 * Math.pow(tempZjb, 4) * Math.pow((1 - Math.pow(tempZjb, 4)), (-1)) - 0.0337 * L1 * Math.pow(tempZjb, 3);
|
|
||||||
}
|
|
||||||
else if (0.09 * L1 < 0.039)
|
|
||||||
{
|
|
||||||
returnValue = (0.5959 + 0.0312 * Math.pow(tempZjb, (2.1)) - 0.184 * Math.pow(tempZjb, 8) + 0.0029 * Math.pow(tempZjb, 2.5) * Math.pow((1000000.0D / tempReD), 0.75) + 0.09 * L1 * Math.pow(tempZjb, 4) * Math.pow((1 - Math.pow(tempZjb, 4)), (-1)) - 0.0337 * L1 * Math.pow(tempZjb, 3));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1: //ISA1932喷嘴
|
|
||||||
returnValue = (0.99 - 0.2262 * Math.pow(tempZjb, 4.1) - (0.00175 * Math.pow(tempZjb, 2) - 0.0033 * Math.pow(tempZjb, 4.15)) * (1000000.0D / Math.pow(tempReD, 1.15)));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2: //长径喷嘴
|
|
||||||
returnValue = (0.9965 - 0.00653 * Math.pow(tempZjb, 0.5) * Math.pow((1000000.0D / tempReD), 0.5));
|
|
||||||
break;
|
|
||||||
case 3: //文丘里喷嘴
|
|
||||||
returnValue = (0.9858 - 0.196 * Math.pow(tempZjb, 4.5));
|
|
||||||
break;
|
|
||||||
case 4: //粗铸收缩段经典文丘里管
|
|
||||||
returnValue = (0.984F);
|
|
||||||
break;
|
|
||||||
case 5: //机械加工收缩段经典文丘里管
|
|
||||||
returnValue = (0.995F);
|
|
||||||
break;
|
|
||||||
case 6: //粗焊铁板收缩段经典文丘里管
|
|
||||||
returnValue = (0.985F);
|
|
||||||
break;
|
|
||||||
case 7: //1/4圆孔板
|
|
||||||
returnValue = 0.73823 - 0.3309 * tempZjb - 1.1615 * Math.pow(tempZjb, 2) + 1.5084 * Math.pow(tempZjb, 3);
|
|
||||||
break;
|
|
||||||
case 8: //锥形入口孔板
|
|
||||||
returnValue = (0.734F);
|
|
||||||
break;
|
|
||||||
case 9: //偏心孔板
|
|
||||||
returnValue = 0.9355 - 1.6889 * tempZjb + 3.0428 * Math.pow(tempZjb, 2) - 1.7989 * Math.pow(tempZjb, 3);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
double tempRed1 ;
|
|
||||||
switch (JieLiuType)
|
|
||||||
{
|
|
||||||
case 0: //孔板流量计算
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
switch (JieLiuType)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if (tempRed1 < (170 * Math.pow(tempZjb, 2) * tempGj))
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过标准孔板的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (tempZjb >= 0.1 & tempZjb <= 0.56)
|
|
||||||
{
|
|
||||||
if (tempRed1 < 5000)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过标准喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (tempZjb > 0.56)
|
|
||||||
{
|
|
||||||
if (tempRed1 < (16000 * Math.pow(tempZjb, 2) * tempGj))
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过标准喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: //标准喷嘴
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempZjb >= 0.3 & tempZjb < 0.44)
|
|
||||||
{
|
|
||||||
if (tempRed1 < 70000 | tempRed1 > 10000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过标准喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (tempZjb >= 0.44 & tempZjb < 0.8)
|
|
||||||
{
|
|
||||||
if (tempRed1 < 20000 | tempRed1 > 10000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过标准喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2: //长径喷嘴
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempRed1 < 10000.0D | tempRed1 > 10000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过长径喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3: //文丘里喷嘴
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempRed1 < 150000.0D | tempRed1 > 2000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过文丘里喷嘴的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4: //粗铸收缩段经典文丘里管
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempRed1 < 200000.0D | tempRed1 > 2000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过粗铸收缩段经典文丘里管的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 5: //机械加工收缩段经典文丘里管
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempRed1 < 200000.0D | tempRed1 > 1000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过机械加工收缩段经典文丘里管的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6: //粗焊铁板收缩段经典文丘里管
|
|
||||||
tempRed1 = tempconQvA * returnValue;
|
|
||||||
if (tempRed1 < 200000.0D | tempRed1 > 2000000.0D)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "雷诺数超过粗焊铁板收缩段经典文丘里管的使用范围!停止计算!", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
//标准孔板
|
|
||||||
//ISA1932喷嘴
|
|
||||||
//长径喷嘴
|
|
||||||
//文丘里喷嘴
|
|
||||||
//粗铸收缩段经典文丘里管
|
|
||||||
//机械加工收缩段经典文丘里管
|
|
||||||
//粗焊铁板收缩段经典文丘里管
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
return returnValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double BkTable(double temPrk, double tempKj, int tempBkjsff) {
|
|
||||||
double[] BkTable_x = new double[10];
|
|
||||||
double[] BkTable_Y = new double[10];
|
|
||||||
//On Error Resume Next VBConversions Warning: On Error Resume Next not supported in C#
|
|
||||||
if (tempBkjsff == 1) {
|
|
||||||
double tempRkBiKj = temPrk / tempKj;
|
|
||||||
// static double[] x = new double[10]; //VBConversions Note: Static variable moved to class level and renamed BkTable_x. Local static variables are not supported in C#.
|
|
||||||
// static double[] Y = new double[10]; //VBConversions Note: Static variable moved to class level and renamed BkTable_Y. Local static variables are not supported in C#.
|
|
||||||
int i;
|
|
||||||
int xIndex = 0;
|
|
||||||
//If x(0) = 0 Then
|
|
||||||
BkTable_x[0] = 0.0004F;
|
|
||||||
BkTable_x[1] = 0.001F;
|
|
||||||
BkTable_x[2] = 0.002F;
|
|
||||||
BkTable_x[3] = 0.004F;
|
|
||||||
BkTable_x[4] = 0.006F;
|
|
||||||
BkTable_x[5] = 0.008F;
|
|
||||||
BkTable_x[6] = 0.01F;
|
|
||||||
BkTable_x[7] = 0.012F;
|
|
||||||
BkTable_x[8] = 0.014F;
|
|
||||||
BkTable_x[9] = 0.015F;
|
|
||||||
|
|
||||||
BkTable_Y[0] = 1;
|
|
||||||
BkTable_Y[1] = 1.005F;
|
|
||||||
BkTable_Y[2] = 1.012F;
|
|
||||||
BkTable_Y[3] = 1.022F;
|
|
||||||
BkTable_Y[4] = 1.032F;
|
|
||||||
BkTable_Y[5] = 1.04F;
|
|
||||||
BkTable_Y[6] = 1.048F;
|
|
||||||
BkTable_Y[7] = 1.055F;
|
|
||||||
BkTable_Y[8] = 1.062F;
|
|
||||||
BkTable_Y[9] = 1.065F;
|
|
||||||
//End If
|
|
||||||
|
|
||||||
if (tempRkBiKj <= 0.0004) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
if (tempRkBiKj > 0.015) {
|
|
||||||
return 1.065F;
|
|
||||||
}
|
|
||||||
for (i = 0; i <= 8; i++) {
|
|
||||||
if (tempRkBiKj >= BkTable_x[i] && tempRkBiKj <= BkTable_x[i + 1]) {
|
|
||||||
xIndex = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return BkTable_Y[xIndex] + (tempRkBiKj - BkTable_x[xIndex]) * (BkTable_Y[xIndex + 1] - BkTable_Y[xIndex]) / (BkTable_x[xIndex + 1] - BkTable_x[xIndex]);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
//管道粗糙度计算
|
|
||||||
private double CcdXsjs(double tempPipeType, double tempGj, double tempZjb, double TempRed)
|
|
||||||
{
|
|
||||||
double returnValue ;
|
|
||||||
//粗糙度系数计算
|
|
||||||
double Jdccd = 0; //绝对粗糙度
|
|
||||||
double Xdccd ; //相对粗糙度
|
|
||||||
//Dim CcdXs As single
|
|
||||||
double s1 ;
|
|
||||||
double s2 ;
|
|
||||||
double ky ;
|
|
||||||
double kx ;
|
|
||||||
int i ;
|
|
||||||
int m = 0;
|
|
||||||
int n = 0;
|
|
||||||
if (tempPipeType == 0)
|
|
||||||
{
|
|
||||||
Jdccd = 0.029F;}
|
|
||||||
else if (tempPipeType == 1)
|
|
||||||
{
|
|
||||||
Jdccd = 0.075F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 2)
|
|
||||||
{
|
|
||||||
Jdccd = 0.075F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 3)
|
|
||||||
{
|
|
||||||
Jdccd = 0.075F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 4)
|
|
||||||
{
|
|
||||||
Jdccd = 0.1F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 5)
|
|
||||||
{
|
|
||||||
Jdccd = 0.15F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 6)
|
|
||||||
{
|
|
||||||
Jdccd = 1;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 7)
|
|
||||||
{
|
|
||||||
Jdccd = 2.1F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 8)
|
|
||||||
{
|
|
||||||
Jdccd = 0.04F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 9)
|
|
||||||
{
|
|
||||||
Jdccd = 0.15F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 10)
|
|
||||||
{
|
|
||||||
Jdccd = 0.13F;
|
|
||||||
}
|
|
||||||
else if (tempPipeType == 11)
|
|
||||||
{
|
|
||||||
Jdccd = 0.25F;
|
|
||||||
}
|
|
||||||
Xdccd = tempGj / Jdccd;
|
|
||||||
if (Xdccd < 400)
|
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "粗糙度取得太高,粗略计算", "提示", JOptionPane.PLAIN_MESSAGE);
|
|
||||||
Xdccd = 400;
|
|
||||||
}
|
|
||||||
if (Xdccd >= 3400)
|
|
||||||
{
|
|
||||||
Xdccd = 3400;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Xdccd < 3200 & Math.pow(tempZjb, 2) > 0.1 & Math.pow(tempZjb, 2) < 0.64)
|
|
||||||
{
|
|
||||||
|
|
||||||
int[] Xdccdb = new int[10];
|
|
||||||
double[] Btf = new double[8];
|
|
||||||
double[][] CcdXsb = new double[10][8];
|
|
||||||
|
|
||||||
Xdccdb[0] = 400;
|
|
||||||
Xdccdb[1] = 800;
|
|
||||||
Xdccdb[2] = 1200;
|
|
||||||
Xdccdb[3] = 1600;
|
|
||||||
Xdccdb[4] = 2000;
|
|
||||||
Xdccdb[5] = 2400;
|
|
||||||
Xdccdb[6] = 2800;
|
|
||||||
Xdccdb[7] = 3200;
|
|
||||||
Xdccdb[8] = 3400;
|
|
||||||
|
|
||||||
Btf[0] = 0.1F;
|
|
||||||
Btf[1] = 0.2F;
|
|
||||||
Btf[2] = 0.3F;
|
|
||||||
Btf[3] = 0.4F;
|
|
||||||
Btf[4] = 0.5F;
|
|
||||||
Btf[5] = 0.6F;
|
|
||||||
Btf[6] = 0.64F;
|
|
||||||
|
|
||||||
CcdXsb[0][0] = 1.002;
|
|
||||||
CcdXsb[1][0] = 1;
|
|
||||||
CcdXsb[2][0] = 1;
|
|
||||||
CcdXsb[3][0] = 1;
|
|
||||||
CcdXsb[4][0] = 1;
|
|
||||||
CcdXsb[5][0] = 1;
|
|
||||||
CcdXsb[6][0] = 1;
|
|
||||||
CcdXsb[7][0] = 1;
|
|
||||||
CcdXsb[8][0] = 1;
|
|
||||||
CcdXsb[0][1] = 1.003;
|
|
||||||
CcdXsb[1][1] = 1.002;
|
|
||||||
CcdXsb[2][1] = 1.001;
|
|
||||||
CcdXsb[3][1] = 1;
|
|
||||||
CcdXsb[4][1] = 1;
|
|
||||||
CcdXsb[5][1] = 1;
|
|
||||||
CcdXsb[6][1] = 1;
|
|
||||||
CcdXsb[7][1] = 1;
|
|
||||||
|
|
||||||
CcdXsb[0][2] = 1.006;
|
|
||||||
CcdXsb[1][2] = 1.004;
|
|
||||||
CcdXsb[2][2] = 1.002;
|
|
||||||
CcdXsb[3][2] = 1.001;
|
|
||||||
CcdXsb[4][2] = 1;
|
|
||||||
CcdXsb[5][2] = 1;
|
|
||||||
CcdXsb[6][2] = 1;
|
|
||||||
CcdXsb[7][2] = 1;
|
|
||||||
|
|
||||||
CcdXsb[0][3] = 1.009;
|
|
||||||
CcdXsb[1][3] = 1.006;
|
|
||||||
CcdXsb[2][3] = 1.004;
|
|
||||||
CcdXsb[3][3] = 1.002;
|
|
||||||
CcdXsb[4][3] = 1.001;
|
|
||||||
CcdXsb[5][3] = 1;
|
|
||||||
CcdXsb[6][3] = 1;
|
|
||||||
CcdXsb[7][3] = 1;
|
|
||||||
|
|
||||||
CcdXsb[0][4] = 1.014;
|
|
||||||
CcdXsb[1][4] = 1.009;
|
|
||||||
CcdXsb[2][4] = 1.006;
|
|
||||||
CcdXsb[3][4] = 1.004;
|
|
||||||
CcdXsb[4][4] = 1.002;
|
|
||||||
CcdXsb[5][4] = 1.001;
|
|
||||||
CcdXsb[6][4] = 1;
|
|
||||||
CcdXsb[7][4] = 1;
|
|
||||||
|
|
||||||
CcdXsb[0][5] = 1.02;
|
|
||||||
CcdXsb[1][5] = 1.013;
|
|
||||||
CcdXsb[2][5] = 1.009;
|
|
||||||
CcdXsb[3][5] = 1.006;
|
|
||||||
CcdXsb[4][5] = 1.003;
|
|
||||||
CcdXsb[5][5] = 1.002;
|
|
||||||
CcdXsb[6][5] = 1;
|
|
||||||
CcdXsb[7][5] = 1;
|
|
||||||
|
|
||||||
CcdXsb[0][6] = 1.024;
|
|
||||||
CcdXsb[1][6] = 1.016;
|
|
||||||
CcdXsb[2][6] = 1.011;
|
|
||||||
CcdXsb[3][6] = 1.007;
|
|
||||||
CcdXsb[4][6] = 1.004;
|
|
||||||
CcdXsb[5][6] = 1.002;
|
|
||||||
CcdXsb[6][6] = 1.002;
|
|
||||||
CcdXsb[7][6] = 1;
|
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i <= 8; i++)
|
|
||||||
{
|
|
||||||
if (Xdccd >= Xdccdb[i] && Xdccd <= Xdccdb[i + 1])
|
|
||||||
{
|
|
||||||
m = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i = 0; i <= 6; i++)
|
|
||||||
{
|
|
||||||
if (Math.pow(tempZjb, 2) >= Btf[i] && Math.pow(tempZjb, 2) <= Btf[i + 1])
|
|
||||||
{
|
|
||||||
n = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ky = (Btf[n + 1] - Btf[n] != 0) ? ((Math.pow(tempZjb, 2) - Btf[n]) / (Btf[n + 1] - Btf[n])) : 0;
|
|
||||||
|
|
||||||
kx = (Xdccdb[m + 1] - Xdccdb[m] != 0) ? ((Xdccd - Xdccdb[m]) / (Xdccdb[m + 1] - Xdccdb[m])) : 0;
|
|
||||||
|
|
||||||
s1 = CcdXsb[m][n] + (CcdXsb[m][n + 1] - CcdXsb[m][n]) * ky;
|
|
||||||
s2 = CcdXsb[m + 1][n] + (CcdXsb[m + 1][n + 1] - CcdXsb[m + 1][n]) * ky;
|
|
||||||
returnValue = s1 + (s2 - s1) * kx;
|
|
||||||
|
|
||||||
returnValue = TempRed > 1000000.0 ? returnValue : ((returnValue - 1) * Math.pow((Math.log10(TempRed) / 2), 2) + 1);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
returnValue = 1;
|
|
||||||
}
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import static com.ruoyi.caltools.controller.DpFlowCalc.iterativeFlowCalculation;
|
import static com.ruoyi.caltools.controller.DpFlowCalc.iterativeFlowCalculation;
|
||||||
import static com.ruoyi.caltools.controller.DpFlowCalc.thermalExpansionCorrection;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/flowCalTools")
|
@RequestMapping("/flowCalTools")
|
||||||
@ -99,10 +98,15 @@ public class FlowController {
|
|||||||
switch (flowProps.getdMeterType()) {
|
switch (flowProps.getdMeterType()) {
|
||||||
case 0: //差压式流量计
|
case 0: //差压式流量计
|
||||||
// 执行计算
|
// 执行计算
|
||||||
thermalExpansionCorrection(flowProps); // 热膨胀修正
|
switch (flowProps.getdCoreType()) {
|
||||||
|
case 0: //孔板流量计算
|
||||||
iterativeFlowCalculation(flowProps, gasProps);
|
iterativeFlowCalculation(flowProps, gasProps);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//OFlowCal(gasProps,flowProps);
|
|
||||||
break;
|
break;
|
||||||
case 1:// 速度式流量计
|
case 1:// 速度式流量计
|
||||||
SdFlowCal(gasProps, flowProps);
|
SdFlowCal(gasProps, flowProps);
|
||||||
|
|||||||
@ -4,7 +4,6 @@ public class FlowProps {
|
|||||||
// 流量计算输入参数信息
|
// 流量计算输入参数信息
|
||||||
private int dFlowCalbz; // 流量计算标准
|
private int dFlowCalbz; // 流量计算标准
|
||||||
|
|
||||||
|
|
||||||
private int dZcalbz; // 压缩因子计算标准
|
private int dZcalbz; // 压缩因子计算标准
|
||||||
private int dCbtj; // 计量参比条件压力
|
private int dCbtj; // 计量参比条件压力
|
||||||
private double dPb_M; // 计量参比条件压力
|
private double dPb_M; // 计量参比条件压力
|
||||||
@ -25,6 +24,95 @@ public class FlowProps {
|
|||||||
private int dPileDtempUint; // 温度单位
|
private int dPileDtempUint; // 温度单位
|
||||||
private double dPipeMaterial; // 管道材料
|
private double dPipeMaterial; // 管道材料
|
||||||
|
|
||||||
|
// FlowProps.java 中新增以下成员变量及 getter/setter
|
||||||
|
// ==================== ISO 1932 喷嘴专属参数 ====================
|
||||||
|
|
||||||
|
public double getdNozzleD() {
|
||||||
|
return dNozzleD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdNozzleD(double dNozzleD) {
|
||||||
|
this.dNozzleD = dNozzleD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdNozzleR() {
|
||||||
|
return dNozzleR;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdNozzleR(double dNozzleR) {
|
||||||
|
this.dNozzleR = dNozzleR;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdNozzleL1() {
|
||||||
|
return dNozzleL1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdNozzleL1(double dNozzleL1) {
|
||||||
|
this.dNozzleL1 = dNozzleL1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdVenturiD() {
|
||||||
|
return dVenturiD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdVenturiD(double dVenturiD) {
|
||||||
|
this.dVenturiD = dVenturiD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdVenturiTheta1() {
|
||||||
|
return dVenturiTheta1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdVenturiTheta1(double dVenturiTheta1) {
|
||||||
|
this.dVenturiTheta1 = dVenturiTheta1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdVenturiTheta2() {
|
||||||
|
return dVenturiTheta2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdVenturiTheta2(double dVenturiTheta2) {
|
||||||
|
this.dVenturiTheta2 = dVenturiTheta2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getdVenturiLt() {
|
||||||
|
return dVenturiLt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdVenturiLt(double dVenturiLt) {
|
||||||
|
this.dVenturiLt = dVenturiLt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getdVenturiType() {
|
||||||
|
return dVenturiType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdVenturiType(int dVenturiType) {
|
||||||
|
this.dVenturiType = dVenturiType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 喷嘴喉部直径(mm,对应ISO 1932标准) */
|
||||||
|
private double dNozzleD;
|
||||||
|
/** 喷嘴入口圆弧半径(mm,标准要求 r≥0.2d) */
|
||||||
|
private double dNozzleR;
|
||||||
|
/** 喷嘴总长度(mm,长径喷嘴L1≥0.6D;短径喷嘴L1=0.3D) */
|
||||||
|
private double dNozzleL1;
|
||||||
|
/** 喷嘴类型:0-长径喷嘴;1-短径喷嘴 */
|
||||||
|
private int dNozzleType;
|
||||||
|
|
||||||
|
// ==================== 经典文丘里管专属参数 ====================
|
||||||
|
/** 文丘里管喉部直径(mm) */
|
||||||
|
private double dVenturiD;
|
||||||
|
/** 收缩段锥角(°,标准范围15°~25°) */
|
||||||
|
private double dVenturiTheta1;
|
||||||
|
/** 扩散段锥角(°,标准范围5°~15°) */
|
||||||
|
private double dVenturiTheta2;
|
||||||
|
/** 喉部平直段长度(mm,标准Lt=0.5d~1.0d) */
|
||||||
|
private double dVenturiLt;
|
||||||
|
/** 文丘里管类型:0-粗铸收缩段;1-机械加工收缩段;2-粗焊铁板收缩段;3-文丘里喷嘴 */
|
||||||
|
private int dVenturiType;
|
||||||
|
|
||||||
|
|
||||||
private double dOrificeD; // 孔板孔径
|
private double dOrificeD; // 孔板孔径
|
||||||
private int dOrificeUnit; // 长度单位
|
private int dOrificeUnit; // 长度单位
|
||||||
private double dOrificeDtemp; // 孔板内径参考温度
|
private double dOrificeDtemp; // 孔板内径参考温度
|
||||||
@ -77,199 +165,142 @@ public class FlowProps {
|
|||||||
private double dPressLost; // 压力损失
|
private double dPressLost; // 压力损失
|
||||||
private double dBeta; // 直径比
|
private double dBeta; // 直径比
|
||||||
private double dKappa; // 等熵指数
|
private double dKappa; // 等熵指数
|
||||||
|
|
||||||
private int dNozzleType; // 0圆环形喷嘴 2 圆柱形喉部文丘里喷嘴
|
|
||||||
private double dUpstreamRadius ;//
|
private double dUpstreamRadius ;//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public double getdUpstreamRadius() {
|
public double getdUpstreamRadius() {
|
||||||
return dUpstreamRadius;
|
return dUpstreamRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdUpstreamRadius(double dUpstreamRadius) {
|
public void setdUpstreamRadius(double dUpstreamRadius) {
|
||||||
this.dUpstreamRadius = dUpstreamRadius;
|
this.dUpstreamRadius = dUpstreamRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int getdZcalbz() {
|
public int getdZcalbz() {
|
||||||
return dZcalbz;
|
return dZcalbz;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdZcalbz(int dZcalbz) {
|
public void setdZcalbz(int dZcalbz) {
|
||||||
this.dZcalbz = dZcalbz;
|
this.dZcalbz = dZcalbz;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdFlowCalbz() {
|
public int getdFlowCalbz() {
|
||||||
return dFlowCalbz;
|
return dFlowCalbz;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdFlowCalbz(int dFlowCalbz) {
|
public void setdFlowCalbz(int dFlowCalbz) {
|
||||||
this.dFlowCalbz = dFlowCalbz;
|
this.dFlowCalbz = dFlowCalbz;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdCbtj() {
|
public int getdCbtj() {
|
||||||
return dCbtj;
|
return dCbtj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdCbtj(int dCbtj) {
|
public void setdCbtj(int dCbtj) {
|
||||||
this.dCbtj = dCbtj;
|
this.dCbtj = dCbtj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPb_M() {
|
public double getdPb_M() {
|
||||||
return dPb_M;
|
return dPb_M;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPb_M(double dPb_M) {
|
public void setdPb_M(double dPb_M) {
|
||||||
this.dPb_M = dPb_M;
|
this.dPb_M = dPb_M;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdTb_M() {
|
public double getdTb_M() {
|
||||||
return dTb_M;
|
return dTb_M;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdTb_M(double dTb_M) {
|
public void setdTb_M(double dTb_M) {
|
||||||
this.dTb_M = dTb_M;
|
this.dTb_M = dTb_M;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPb_E() {
|
public double getdPb_E() {
|
||||||
return dPb_E;
|
return dPb_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPb_E(double dPb_E) {
|
public void setdPb_E(double dPb_E) {
|
||||||
this.dPb_E = dPb_E;
|
this.dPb_E = dPb_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdTb_E() {
|
public double getdTb_E() {
|
||||||
return dTb_E;
|
return dTb_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdTb_E(double dTb_E) {
|
public void setdTb_E(double dTb_E) {
|
||||||
this.dTb_E = dTb_E;
|
this.dTb_E = dTb_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPatm() {
|
public double getdPatm() {
|
||||||
return dPatm;
|
return dPatm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPatm(double dPatm) {
|
public void setdPatm(double dPatm) {
|
||||||
this.dPatm = dPatm;
|
this.dPatm = dPatm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdPatmUnit() {
|
public int getdPatmUnit() {
|
||||||
return dPatmUnit;
|
return dPatmUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPatmUnit(int dPatmUnit) {
|
public void setdPatmUnit(int dPatmUnit) {
|
||||||
this.dPatmUnit = dPatmUnit;
|
this.dPatmUnit = dPatmUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getdngComponents() {
|
public String getdngComponents() {
|
||||||
return dngComponents;
|
return dngComponents;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdngComponents(String dngComponents) {
|
public void setdngComponents(String dngComponents) {
|
||||||
this.dngComponents = dngComponents;
|
this.dngComponents = dngComponents;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdMeterType() {
|
public int getdMeterType() {
|
||||||
return dMeterType;
|
return dMeterType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdMeterType(int dMeterType) {
|
public void setdMeterType(int dMeterType) {
|
||||||
this.dMeterType = dMeterType;
|
this.dMeterType = dMeterType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdCoreType() {
|
public int getdCoreType() {
|
||||||
return dCoreType;
|
return dCoreType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdCoreType(int dCoreType) {
|
public void setdCoreType(int dCoreType) {
|
||||||
this.dCoreType = dCoreType;
|
this.dCoreType = dCoreType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdPtmode() {
|
public int getdPtmode() {
|
||||||
return dPtmode;
|
return dPtmode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPtmode(int dPtmode) {
|
public void setdPtmode(int dPtmode) {
|
||||||
this.dPtmode = dPtmode;
|
this.dPtmode = dPtmode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdPipeType() {
|
public int getdPipeType() {
|
||||||
return dPipeType;
|
return dPipeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPipeType(int dPipeType) {
|
public void setdPipeType(int dPipeType) {
|
||||||
this.dPipeType = dPipeType;
|
this.dPipeType = dPipeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPipeD() {
|
public double getdPipeD() {
|
||||||
return dPipeD;
|
return dPipeD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPipeD(double dPipeD) {
|
public void setdPipeD(double dPipeD) {
|
||||||
this.dPipeD = dPipeD;
|
this.dPipeD = dPipeD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdLenUnit() {
|
public int getdLenUnit() {
|
||||||
return dLenUnit;
|
return dLenUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdLenUnit(int dLenUnit) {
|
public void setdLenUnit(int dLenUnit) {
|
||||||
this.dLenUnit = dLenUnit;
|
this.dLenUnit = dLenUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPipeDtemp() {
|
public double getdPipeDtemp() {
|
||||||
return dPipeDtemp;
|
return dPipeDtemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPipeDtemp(double dPipeDtemp) {
|
public void setdPipeDtemp(double dPipeDtemp) {
|
||||||
this.dPipeDtemp = dPipeDtemp;
|
this.dPipeDtemp = dPipeDtemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdPileDtempUint() {
|
public int getdPileDtempUint() {
|
||||||
return dPileDtempUint;
|
return dPileDtempUint;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPileDtempUint(int dPileDtempUint) {
|
public void setdPileDtempUint(int dPileDtempUint) {
|
||||||
this.dPileDtempUint = dPileDtempUint;
|
this.dPileDtempUint = dPileDtempUint;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdPipeMaterial() {
|
public double getdPipeMaterial() {
|
||||||
return dPipeMaterial;
|
return dPipeMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdPipeMaterial(double dPipeMaterial) {
|
public void setdPipeMaterial(double dPipeMaterial) {
|
||||||
this.dPipeMaterial = dPipeMaterial;
|
this.dPipeMaterial = dPipeMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdOrificeD() {
|
public double getdOrificeD() {
|
||||||
return dOrificeD;
|
return dOrificeD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdOrificeD(double dOrificeD) {
|
public void setdOrificeD(double dOrificeD) {
|
||||||
this.dOrificeD = dOrificeD;
|
this.dOrificeD = dOrificeD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getdOrificeUnit() {
|
public int getdOrificeUnit() {
|
||||||
return dOrificeUnit;
|
return dOrificeUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdOrificeUnit(int dOrificeUnit) {
|
public void setdOrificeUnit(int dOrificeUnit) {
|
||||||
this.dOrificeUnit = dOrificeUnit;
|
this.dOrificeUnit = dOrificeUnit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getdOrificeDtemp() {
|
public double getdOrificeDtemp() {
|
||||||
return dOrificeDtemp;
|
return dOrificeDtemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setdOrificeDtemp(double dOrificeDtemp) {
|
public void setdOrificeDtemp(double dOrificeDtemp) {
|
||||||
this.dOrificeDtemp = dOrificeDtemp;
|
this.dOrificeDtemp = dOrificeDtemp;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user