From f40086a0b0bbd7542f19cdfc78b96b63c5dfc243 Mon Sep 17 00:00:00 2001 From: Tyrone CT Date: Thu, 26 Mar 2026 22:18:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=80=A7=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CapMachine.Wpf/CapMachine.Wpf.csproj | 2 +- CapMachine.Wpf/Models/CsvRecordModelMap.cs | 16 ++-- ...ThermodynamicSixResultsCalculationInput.cs | 86 ++++++++++++++++++- 3 files changed, 93 insertions(+), 11 deletions(-) diff --git a/CapMachine.Wpf/CapMachine.Wpf.csproj b/CapMachine.Wpf/CapMachine.Wpf.csproj index f053d38..98c763e 100644 --- a/CapMachine.Wpf/CapMachine.Wpf.csproj +++ b/CapMachine.Wpf/CapMachine.Wpf.csproj @@ -1,7 +1,7 @@  - Exe + WinExe net6.0-windows enable enable diff --git a/CapMachine.Wpf/Models/CsvRecordModelMap.cs b/CapMachine.Wpf/Models/CsvRecordModelMap.cs index b72e6ac..faa257a 100644 --- a/CapMachine.Wpf/Models/CsvRecordModelMap.cs +++ b/CapMachine.Wpf/Models/CsvRecordModelMap.cs @@ -49,15 +49,15 @@ namespace CapMachine.Wpf.Models Map(m => m.LiqRefFlow).Name("液冷媒流量[kg/h]"); Map(m => m.InsRes).Name("绝缘电阻[KΩ]"); - Map(m => m.Superheat).Name("过热度[K]"); - Map(m => m.Subcooling).Name("过冷度[K]"); + Map(m => m.Superheat).Name("过热度[K]").TypeConverterOption.Format("0.00"); + Map(m => m.Subcooling).Name("过冷度[K]").TypeConverterOption.Format("0.00"); - Map(m => m.HeatingCapacity).Name("制热量Qh[KW]"); - Map(m => m.COPHeat).Name("压缩机性能系数(制热)"); - Map(m => m.IsentrpEff).Name("等熵效率ns[%]"); - Map(m => m.CoolCapacity).Name("制冷量Qc[KW]"); - Map(m => m.COPCool).Name("压缩机性能系数(制冷)"); - Map(m => m.VoltricEff).Name("容积效率nv[%]"); + Map(m => m.HeatingCapacity).Name("制热量Qh[KW]").TypeConverterOption.Format("0.00"); + Map(m => m.COPHeat).Name("压缩机性能系数(制热)").TypeConverterOption.Format("0.00"); + Map(m => m.IsentrpEff).Name("等熵效率ns[%]").TypeConverterOption.Format("0.00"); + Map(m => m.CoolCapacity).Name("制冷量Qc[KW]").TypeConverterOption.Format("0.00"); + Map(m => m.COPCool).Name("压缩机性能系数(制冷)").TypeConverterOption.Format("0.00"); + Map(m => m.VoltricEff).Name("容积效率nv[%]").TypeConverterOption.Format("0.00"); //Map(m => m.PTCFlow).Name("PTC流量[L/min]"); //Map(m => m.PTCEntTemp).Name("PTC入水温度[℃]"); diff --git a/CapMachine.Wpf/Services/PPCThermodynamicSixResultsCalculationInput.cs b/CapMachine.Wpf/Services/PPCThermodynamicSixResultsCalculationInput.cs index 0352b9f..cded02c 100644 --- a/CapMachine.Wpf/Services/PPCThermodynamicSixResultsCalculationInput.cs +++ b/CapMachine.Wpf/Services/PPCThermodynamicSixResultsCalculationInput.cs @@ -239,13 +239,20 @@ namespace CapMachine.Wpf.Services return false; } - // 第 8 步:计算等熵效率。 - if (!TryComputeIsentropicEfficiencyPct(h1_kJkg, h2_kJkg, h2s_kJkg, out var etaS_pct, out var etaSErr)) + //// 第 8 步:计算等熵效率。 这个是AI 计算的,AI说这个是正确的,需要使用h2s ,但是lABVIEW 给的是需要不需要,为了统一,用LABVIEW 的方法 + //if (!TryComputeIsentropicEfficiencyPct(h1_kJkg, h2_kJkg, h2s_kJkg, out var etaS_pct, out var etaSErr)) + //{ + // error = etaSErr; + // return false; + //} + + if (!TryComputeIsentropicEfficiencyPct_ByUserFormula(mRef_kg_s, h1_kJkg, h2_kJkg, w_kW, out var etaS_pct, out var etaSErr)) { error = etaSErr; return false; } + // 先写入 5 个关键结果。 result.HeatingCapacityQh_kW = qh_kW; result.CoolingCapacityQc_kW = qc_kW; @@ -843,6 +850,81 @@ namespace CapMachine.Wpf.Services return TryComputeEfficiencyPct(isentropicRise_kJkg, actualRise_kJkg, "等熵效率", out etaS_pct, out error); } + /// + /// 这个是来自于Labview 的计算公式,自定义的,用于计算等熵效率,为了跟labview 的结果一致,不代表一定正确,AI说TryComputeIsentropicEfficiencyPct 是正确的 + /// + /// + /// + /// + /// + /// + /// + /// + private bool TryComputeIsentropicEfficiencyPct_ByUserFormula(double mRef_kg_s, double h1_kJkg, double h2_kJkg, double w_kW, out double etaS_pct, out string error) + { + etaS_pct = double.NaN; + error = string.Empty; + + if (double.IsNaN(mRef_kg_s) || double.IsInfinity(mRef_kg_s) || mRef_kg_s <= 0) + { + error = $"无效冷媒质量流量 mRef_kg_s={mRef_kg_s}"; + return false; + } + + if (double.IsNaN(h1_kJkg) || double.IsInfinity(h1_kJkg)) + { + error = $"无效吸气比焓 h1={h1_kJkg}"; + return false; + } + + if (double.IsNaN(h2_kJkg) || double.IsInfinity(h2_kJkg)) + { + error = $"无效排气比焓 h2={h2_kJkg}"; + return false; + } + + if (double.IsNaN(w_kW) || double.IsInfinity(w_kW) || w_kW <= 0) + { + error = $"无效压缩机功率 w_kW={w_kW}"; + return false; + } + + if (!TryComputeEnthalpyDifference_kJkg(h2_kJkg, h1_kJkg, "用户公式等熵效率焓差(h2-h1)", out var deltaH_kJkg, out var deltaErr)) + { + error = deltaErr; + return false; + } + + var capacity_kW = mRef_kg_s * deltaH_kJkg; + if (double.IsNaN(capacity_kW) || double.IsInfinity(capacity_kW)) + { + error = "用户公式等熵效率中间结果(var1*var2)异常"; + return false; + } + + var ratio = capacity_kW / w_kW; + if (double.IsNaN(ratio) || double.IsInfinity(ratio)) + { + error = "用户公式等熵效率中间结果(var3)异常"; + return false; + } + + etaS_pct = ratio * 100.0; + if (double.IsNaN(etaS_pct) || double.IsInfinity(etaS_pct)) + { + error = "用户公式等熵效率结果异常"; + return false; + } + + //TraceValue("用户公式等熵效率.var1_mRef_kg_s", mRef_kg_s, "kg/s"); + //TraceValue("用户公式等熵效率.var2_deltaH_kJkg", deltaH_kJkg, "kJ/kg"); + //TraceValue("用户公式等熵效率.var1xvar2_kW", capacity_kW, "kW"); + //TraceValue("用户公式等熵效率.var3", ratio, "-"); + //TraceValue("Computed.etaS_pct", etaS_pct, "%"); + return true; + } + + /// /// 计算容积效率,单位 %。 ///