diff --git a/ruoyi-admin/src/main/resources/application-plugins.yml b/ruoyi-admin/src/main/resources/application-plugins.yml index 3c654c0..0d0c1f8 100644 --- a/ruoyi-admin/src/main/resources/application-plugins.yml +++ b/ruoyi-admin/src/main/resources/application-plugins.yml @@ -3,7 +3,7 @@ spring: # redis 配置 redis: # 地址 - host: localhost + host: 192.168.3.246 # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/DpFlowCalc.java b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/DpFlowCalc.java index 2e4f5cb..6e902a0 100644 --- a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/DpFlowCalc.java +++ b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/DpFlowCalc.java @@ -7,163 +7,27 @@ import com.ruoyi.caltools.model.GasProps; import javax.swing.*; 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 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) - * @param flowProps * @return 粗糙度修正系数 K (保留4位小数) */ public static double calculateK(FlowProps flowProps){ - double Jdccd; - switch (flowProps.getdPipeType()) { - - case 0: - Jdccd = 0.029F; - break; - case 1: - case 2: - case 3: - Jdccd = 0.075F; - break; - 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: + return switch (flowProps.getdPipeType()) { + case 0 -> 0.029F; + case 1, 2, 3 -> 0.075F; + case 4 -> 0.1F; + case 5,9 -> 0.15F; + case 6 -> 1; + case 7 -> 2.1F; + case 8 -> 0.04F; + case 10 -> 0.13F; + case 11 -> 0.25F; + default -> // 处理未知类型(可选) - throw new IllegalArgumentException("未知的管道类型: "); - } - return Jdccd; + throw new IllegalArgumentException("未知的管道类型: "); + }; } /** @@ -209,8 +73,38 @@ public class DpFlowCalc { double dPipeD_corrected = dPipeD * (1 + 0.000001*dPipeMaterial * (flowProps.getdTf() - 293.15)); 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)) */ - public static void calculateEpsilon(FlowProps flowProps, GasProps gasProps) { - double P1 = flowProps.getdPf(); // 上游绝对压力(Pa) - double deltaP = flowProps.getdDp(); // 差压(Pa) + public static void calculateEpsilon(FlowProps flowProps) { + double P1 = flowProps.getdPf(); + double deltaP = flowProps.getdDp(); double beta = flowProps.getdBeta(); 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 推荐方法) @@ -281,6 +201,8 @@ public class DpFlowCalc { */ public static void iterativeFlowCalculation(FlowProps flowProps, GasProps gasProps) { // 0. 单位转换 + thermalExpansionCorrection(flowProps); // 热膨胀修正 + double D = flowProps.getdPipeD() / 1000.0; // 管道内径(m) double d = flowProps.getdOrificeD() / 1000.0; // 孔板孔径(m) double beta = flowProps.getdBeta(); @@ -288,6 +210,9 @@ public class DpFlowCalc { double deltaP = flowProps.getdDp(); // 差压(Pa) double Tf = flowProps.getdTf() ; // 工况温度(K) + + + flowProps.setdPb_M(gasProps.getdPb()); flowProps.setdTb_M(gasProps.getdTb()); flowProps.setdFpv(FormatUtil.format(gasProps.dFpv,Optional.of(4))); @@ -300,7 +225,7 @@ public class DpFlowCalc { flowProps.setdKappa( calculateKappa(gasProps)); // flowProps.setdDViscosity( calculateDynamicViscosity(gasProps)); flowProps.setdDViscosity(FormatUtil.format( Dlndjs(flowProps.getdPf()/1e6,flowProps.getdTf()),Optional.of(5))); - calculateEpsilon(flowProps, gasProps); + calculateEpsilon(flowProps ); // // flowProps.setdKappa(1.357); // flowProps.setdBeta(0.5792); @@ -312,7 +237,7 @@ public class DpFlowCalc { // 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) * Math.sqrt(2 * deltaP / (gasProps.dRhof * (1 - Math.pow(beta, 4)))); flowProps.setdVFlowf(Qf_initial); // 初始工况流量(m³/s) @@ -323,14 +248,15 @@ public class DpFlowCalc { double currentC = C_initial; double currentReD = calculateReD(Qf_initial, D, gasProps.dRhof, flowProps.getdDViscosity()); int iter = 0; - double prevC=0; + double prevC; // 4. 迭代循环 do { prevC = currentC; // 4.1 计算流出系数C(GB/T 21446-2008 附录A) // 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 更新流量 // 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 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.setdRoughNessPipe(G_me); flowProps.setdRnPipe(currentReD); - - - // 6. 计算标况流量(GB/T 21446-2008 式(1)) double Qn = flowProps.getdVFlowf() * (flowProps.getdFpv()*flowProps.getdFpv() * P1 / flowProps.getdPb_M()) * (flowProps.getdTb_M()) / Tf; @@ -381,10 +308,6 @@ public class DpFlowCalc { } - - - - /** * 计算天然气动力粘度(Sutherland公式简化版,适用于低压天然气) * @param gasProps 气体参数(需包含温度、密度、组分) @@ -417,39 +340,77 @@ public class DpFlowCalc { /** * 计算流出系数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; - // 根据取压方式确定L1/L2(角接取压) - switch (ptMode) { - case 1: // 角接取压 - L1 = L2 = 0; // D单位为mm + + switch (coreType) { + case 0: // 孔板(原有逻辑保留) + // 根据取压方式确定L1/L2(角接取压) + switch (ptMode) { + case 1: // 角接取压 + L1 = L2 = 0; // D单位为mm + break; + case 0: // 法兰取压 + L1 = L2 = 25.4 / D_mm; + break; + case 2: // D-D/2取压 + L1 = 1.0; + L2 = 0.47; + break; + default: + throw new IllegalArgumentException("不支持的取压方式"); + } + + double term1 = 0.5961 + 0.0261 * Math.pow(beta, 2) - 0.216 * Math.pow(beta, 8); + double term2 = 0.000521 * Math.pow(1e6 * beta / ReD, 0.7); + double A = Math.pow(19000 * beta / ReD, 0.8); + double term3 = (0.0188 + 0.0063 * A) * Math.pow(beta, 3.5) * Math.pow(1e6 / ReD, 0.3); + double term4 = (0.043 + 0.08 * Math.exp(-10 * L1) - 0.123 * Math.exp(-7 * L1)) + * (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)) + * Math.pow(beta, 1.3); + Cd = term1 + term2 + term3 + term4 + term5; + // 孔径<71.12mm修正 + if (D_mm < 71.12) { + Cd += 0.011 * (0.75 - beta) * (2.8 - D_mm / 25.4); + } break; - case 0: // 法兰取压 - L1 = L2 = 25.4 / D_mm; + + 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: // D-D/2取压 - L1 = 1.0; - L2 = 0.47; + + 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("不支持的取压方式"); + throw new IllegalArgumentException("不支持的节流装置类型,无法计算流出系数C"); } - double term1 = 0.5961 + 0.0261 * Math.pow(beta, 2) - 0.216 * Math.pow(beta, 8); - double term2 = 0.000521 * Math.pow(1e6 * beta / ReD, 0.7); - double A = Math.pow(19000 * beta / ReD, 0.8); - double term3 = (0.0188 + 0.0063 * A) * Math.pow(beta, 3.5) * Math.pow(1e6 / ReD, 0.3); - double term4 = (0.043 + 0.08 * Math.exp(-10 * L1) - 0.123 * Math.exp(-7 * L1)) - * (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)) - * Math.pow(beta, 1.3); - double Cd = term1 + term2 + term3 + term4 + term5; - - // 孔径<71.12mm修正 - if (D_mm < 71.12) { - Cd += 0.011 * (0.75 - beta) * (2.8 - D_mm / 25.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; 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) - { - case 0: //孔板流量计算 - switch (JiSuanBiaoZhun) - { - case 0: //6143-2004 - 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))); - break; - case 1: //6143-1996 - returnValue = 1 - (0.41 + 0.35 * Math.pow(tempZjb, 4)) * tempDp_Pa / ( tempP_jy * tempDszs); - break; - } - break; - case 1: - case 2: - case 3: - 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; + /** + * 压力损失计算(适配多节流装置类型,需在FlowController中补充) + * @param Cd 流出系数 + * @param beta 直径比 + * @param dp 差压(Pa) + * @param coreType 节流装置类型 + * @return 压力损失(Pa) + */ +// 注:该方法原在FlowController中,此处补充扩展逻辑 + public static double YaLiSunShi(double Cd, double beta, double dp, int coreType) { + return switch (coreType) { + case 0 -> // 孔板(原有逻辑保留) + dp * (1 - Math.pow(beta, 4)) / (Cd * Cd); + case 1 -> // 喷嘴(新增) + dp * 0.1; // 喷嘴压力损失约为差压的10%(经验值) + case 2 -> // 文丘里管(新增) + dp * 0.05; // 文丘里管压力损失约为差压的5%(经验值) + default -> throw new IllegalArgumentException("不支持的节流装置类型,无法计算压力损失"); + }; } - 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; - } } diff --git a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/FlowController.java b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/FlowController.java index 3436247..b3bdb0c 100644 --- a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/FlowController.java +++ b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/controller/FlowController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import static com.ruoyi.caltools.controller.DpFlowCalc.iterativeFlowCalculation; -import static com.ruoyi.caltools.controller.DpFlowCalc.thermalExpansionCorrection; @RestController @RequestMapping("/flowCalTools") @@ -99,10 +98,15 @@ public class FlowController { switch (flowProps.getdMeterType()) { case 0: //差压式流量计 // 执行计算 - thermalExpansionCorrection(flowProps); // 热膨胀修正 - iterativeFlowCalculation(flowProps, gasProps); + switch (flowProps.getdCoreType()) { + case 0: //孔板流量计算 + iterativeFlowCalculation(flowProps, gasProps); + break; + case 1: + break; + + } - //OFlowCal(gasProps,flowProps); break; case 1:// 速度式流量计 SdFlowCal(gasProps, flowProps); diff --git a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/model/FlowProps.java b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/model/FlowProps.java index eb0cd43..2b7ff63 100644 --- a/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/model/FlowProps.java +++ b/ruoyi-models/ruoyi-ngtools/src/main/java/com/ruoyi/caltools/model/FlowProps.java @@ -4,7 +4,6 @@ public class FlowProps { // 流量计算输入参数信息 private int dFlowCalbz; // 流量计算标准 - private int dZcalbz; // 压缩因子计算标准 private int dCbtj; // 计量参比条件压力 private double dPb_M; // 计量参比条件压力 @@ -25,6 +24,95 @@ public class FlowProps { private int dPileDtempUint; // 温度单位 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 int dOrificeUnit; // 长度单位 private double dOrificeDtemp; // 孔板内径参考温度 @@ -77,199 +165,142 @@ public class FlowProps { private double dPressLost; // 压力损失 private double dBeta; // 直径比 private double dKappa; // 等熵指数 - - private int dNozzleType; // 0圆环形喷嘴 2 圆柱形喉部文丘里喷嘴 private double dUpstreamRadius ;// - - - - - public double getdUpstreamRadius() { return dUpstreamRadius; } - public void setdUpstreamRadius(double dUpstreamRadius) { this.dUpstreamRadius = dUpstreamRadius; } - - - - - - public int getdZcalbz() { return dZcalbz; } - public void setdZcalbz(int dZcalbz) { this.dZcalbz = dZcalbz; } - public int getdFlowCalbz() { return dFlowCalbz; } - public void setdFlowCalbz(int dFlowCalbz) { this.dFlowCalbz = dFlowCalbz; } - public int getdCbtj() { return dCbtj; } - public void setdCbtj(int dCbtj) { this.dCbtj = dCbtj; } - public double getdPb_M() { return dPb_M; } - public void setdPb_M(double dPb_M) { this.dPb_M = dPb_M; } - public double getdTb_M() { return dTb_M; } - public void setdTb_M(double dTb_M) { this.dTb_M = dTb_M; } - public double getdPb_E() { return dPb_E; } - public void setdPb_E(double dPb_E) { this.dPb_E = dPb_E; } - public double getdTb_E() { return dTb_E; } - public void setdTb_E(double dTb_E) { this.dTb_E = dTb_E; } - public double getdPatm() { return dPatm; } - public void setdPatm(double dPatm) { this.dPatm = dPatm; } - public int getdPatmUnit() { return dPatmUnit; } - public void setdPatmUnit(int dPatmUnit) { this.dPatmUnit = dPatmUnit; } - public String getdngComponents() { return dngComponents; } - public void setdngComponents(String dngComponents) { this.dngComponents = dngComponents; } - public int getdMeterType() { return dMeterType; } - public void setdMeterType(int dMeterType) { this.dMeterType = dMeterType; } - public int getdCoreType() { return dCoreType; } - public void setdCoreType(int dCoreType) { this.dCoreType = dCoreType; } - public int getdPtmode() { return dPtmode; } - public void setdPtmode(int dPtmode) { this.dPtmode = dPtmode; } - public int getdPipeType() { return dPipeType; } - public void setdPipeType(int dPipeType) { this.dPipeType = dPipeType; } - public double getdPipeD() { return dPipeD; } - public void setdPipeD(double dPipeD) { this.dPipeD = dPipeD; } - public int getdLenUnit() { return dLenUnit; } - public void setdLenUnit(int dLenUnit) { this.dLenUnit = dLenUnit; } - public double getdPipeDtemp() { return dPipeDtemp; } - public void setdPipeDtemp(double dPipeDtemp) { this.dPipeDtemp = dPipeDtemp; } - public int getdPileDtempUint() { return dPileDtempUint; } - public void setdPileDtempUint(int dPileDtempUint) { this.dPileDtempUint = dPileDtempUint; } - public double getdPipeMaterial() { return dPipeMaterial; } - public void setdPipeMaterial(double dPipeMaterial) { this.dPipeMaterial = dPipeMaterial; } - public double getdOrificeD() { return dOrificeD; } - public void setdOrificeD(double dOrificeD) { this.dOrificeD = dOrificeD; } - public int getdOrificeUnit() { return dOrificeUnit; } - public void setdOrificeUnit(int dOrificeUnit) { this.dOrificeUnit = dOrificeUnit; } - public double getdOrificeDtemp() { return dOrificeDtemp; } - public void setdOrificeDtemp(double dOrificeDtemp) { this.dOrificeDtemp = dOrificeDtemp; }