这一版的干度有跳动的,需要解决

This commit is contained in:
2025-10-17 12:03:02 +08:00
parent 4cf5429a8d
commit 663defc0ff

View File

@@ -18,12 +18,12 @@ namespace CapMachine.Wpf.Services
/// 计算扫描 Task /// 计算扫描 Task
/// </summary> /// </summary>
private static Task CalcTask { get; set; } private static Task CalcTask { get; set; }
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public ConfigService ConfigService { get; } public ConfigService ConfigService { get; }
private IEventAggregator _EventAggregator { get; set; } private IEventAggregator _EventAggregator { get; set; }
public DataRecordService DataRecordService { get; } public DataRecordService DataRecordService { get; }
public SysRunService SysRunServer { get; } public SysRunService SysRunServer { get; }
public ILogService Logger { get; }
public MachineRtDataService MachineRtDataService { get; } public MachineRtDataService MachineRtDataService { get; }
public IDialogService DialogService { get; } public IDialogService DialogService { get; }
@@ -36,7 +36,7 @@ namespace CapMachine.Wpf.Services
/// 实例化 /// 实例化
/// </summary> /// </summary>
public PPCService(ConfigService configService, IEventAggregator eventAggregator, public PPCService(ConfigService configService, IEventAggregator eventAggregator,
DataRecordService dataRecordService, SysRunService sysRunService, DataRecordService dataRecordService, SysRunService sysRunService, ILogService logService,
MachineRtDataService machineRtDataService, IDialogService dialogService) MachineRtDataService machineRtDataService, IDialogService dialogService)
{ {
ConfigService = configService; ConfigService = configService;
@@ -44,6 +44,7 @@ namespace CapMachine.Wpf.Services
_EventAggregator = eventAggregator; _EventAggregator = eventAggregator;
DataRecordService = dataRecordService; DataRecordService = dataRecordService;
SysRunServer = sysRunService; SysRunServer = sysRunService;
Logger = logService;
MachineRtDataService = machineRtDataService; MachineRtDataService = machineRtDataService;
DialogService = dialogService; DialogService = dialogService;
TagManager = MachineRtDataService.TagManger; TagManager = MachineRtDataService.TagManger;
@@ -201,13 +202,9 @@ namespace CapMachine.Wpf.Services
public ShortValueTag GasPreValveTempTag { get; set; } public ShortValueTag GasPreValveTempTag { get; set; }
/// <summary> /// <summary>
/// 冷媒流量 /// 气相质量流量kg/h
/// 需要计算的结果是气体质量流量kg/h=冷媒流量-液冷媒流量 /// VRV 安装在气路阀前段,测量值单位为 kg/h可直接作为 mg气体质量流量参与干度加权计算。
///
/// LabVIEW 中该量为常值;此处提供为可配置常量,实时计算直接使用,不再读取 Tag。
/// 若值<=0则视为无效将导致干度计算失败并置0。 /// 若值<=0则视为无效将导致干度计算失败并置0。
/// 气体流量=冷媒流量-液冷媒流量
///
/// </summary> /// </summary>
public ShortValueTag VRVTag { get; set; } public ShortValueTag VRVTag { get; set; }
@@ -319,7 +316,7 @@ namespace CapMachine.Wpf.Services
else else
{ {
Superheat.PVModel.EngValue = 0; Superheat.PVModel.EngValue = 0;
Logger.Warn($"过热度计算失败:{shErr}"); Logger.Error($"过热度计算失败:{shErr}");
} }
if (TryComputeSubcoolK_ByBarA(TxvFrPressTag.PVModel.EngValue, TxvFrTempTag.PVModel.EngValue, out double subcoolK, out string scErr)) if (TryComputeSubcoolK_ByBarA(TxvFrPressTag.PVModel.EngValue, TxvFrTempTag.PVModel.EngValue, out double subcoolK, out string scErr))
@@ -327,7 +324,7 @@ namespace CapMachine.Wpf.Services
else else
{ {
Subcool.PVModel.EngValue = 0; Subcool.PVModel.EngValue = 0;
Logger.Warn($"过冷度计算失败:{scErr}"); Logger.Error($"过冷度计算失败:{scErr}");
} }
// 干度计算LabVIEW 严格流程,质量流量加权): // 干度计算LabVIEW 严格流程,质量流量加权):
@@ -351,7 +348,7 @@ namespace CapMachine.Wpf.Services
{ {
DrynessTag.PVModel.EngValue = 0; DrynessTag.PVModel.EngValue = 0;
} }
Logger.Warn($"质量流量加权干度必要测点缺失已将干度置0。缺失: {string.Join(", ", missing)}"); Logger.Error($"质量流量加权干度必要测点缺失已将干度置0。缺失: {string.Join(", ", missing)}");
} }
else else
{ {
@@ -367,33 +364,15 @@ namespace CapMachine.Wpf.Services
double tlv = TxvFrTempTag.PVModel.EngValue;//膨胀阀前温度 = SUBCOOL出口温度 =液路阀前温度 double tlv = TxvFrTempTag.PVModel.EngValue;//膨胀阀前温度 = SUBCOOL出口温度 =液路阀前温度
//tlv = 64.96428; //tlv = 64.96428;
//液体流量=液冷媒流量 kg/h // 单位说明:
//气体流量=冷媒流量-液体流量 kg/h // - 液体质量流量 ml[kg/h] = LiqRefFlowTag.PVModel.EngValue
// - 气体质量流量 mg[kg/h] = VRVTag.PVModel.EngValueVRV 位于气管,单位已为 kg/h
double GasMassFlowKgPerH, LiquidMassFlowKgPerH; double GasMassFlowKgPerH, LiquidMassFlowKgPerH;
LiquidMassFlowKgPerH = LiqRefFlowTag.PVModel.EngValue; // [kg/h] LiquidMassFlowKgPerH = LiqRefFlowTag.PVModel.EngValue; // [kg/h]
//GasMassFlowKgPerH = Math.Max(0.0, VRVTag?.PVModel?.EngValue ?? 0.0); // [kg/h]
GasMassFlowKgPerH = (double)(VRVTag?.PVModel?.EngValue - LiquidMassFlowKgPerH); GasMassFlowKgPerH = (double)(VRVTag?.PVModel?.EngValue - LiquidMassFlowKgPerH);
////单位转换和数据计算
//// VRV 为体积流量 [L/min],需结合管段相态与 T/P 计算密度后换算为质量流量 [kg/h]
//double vrvLmin = VRVTag?.PVModel?.EngValue ?? 0.0;
//double totalMassKgPerH;
//string flowErr;
//if (TryConvertVolumetricFlowLMinToMassKgPerH(vrvLmin, plv, tlv, 1, out totalMassKgPerH, out flowErr)) // 1=液相(若 VRV 在液管)
//{
// GasMassFlowKgPerH = Math.Max(0.0, totalMassKgPerH - LiquidMassFlowKgPerH);
//}
//else
//{
// Logger.Warn($"VRV 体积流量→质量流量换算失败:{flowErr}。已将气体质量流量置 0。输入: VRV={vrvLmin:F3} L/min, Pl={plv:F3} BarA, Tl={tlv:F3} ℃");
// GasMassFlowKgPerH = 0.0;
//}
//LiquidMassFlowKgPerH = 214.3051;
//GasMassFlowKgPerH = 264.7956- 214.3051;
//压力参数要求为BarA //压力参数要求为BarA
double dryness = Step_ComputeDryness_LV_FlowWeighted( double dryness = Step_ComputeDryness_LV_FlowWeighted(
GasMassFlowKgPerH, GasMassFlowKgPerH,
@@ -410,14 +389,14 @@ namespace CapMachine.Wpf.Services
if (double.IsNaN(dryness)) if (double.IsNaN(dryness))
{ {
Logger.Warn($"质量流量加权干度计算失败:{dryErr}已置0。输入: mg={GasMassFlowKgPerH:F3} kg/h, ml={LiquidMassFlowKgPerH:F3} kg/h, Ps={ps:F3} BarA, Pg={pg:F3} BarA, Tg={tg:F3} ℃, Pl={plv:F3} BarA, Tl={tlv:F3} ℃"); Logger.Error($"质量流量加权干度计算失败:{dryErr}已置0。输入: mg={GasMassFlowKgPerH:F3} kg/h, ml={LiquidMassFlowKgPerH:F3} kg/h, Ps={ps:F3} BarA, Pg={pg:F3} BarA, Tg={tg:F3} ℃, Pl={plv:F3} BarA, Tl={tlv:F3} ℃");
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
if (DrynessTag != null) DrynessTag.PVModel.EngValue = 0; if (DrynessTag != null) DrynessTag.PVModel.EngValue = 0;
Logger.Error(ex, "质量流量加权干度计算异常已置0"); Logger.Error("质量流量加权干度计算异常已置0");
} }
} }
} }