这一版的干度有跳动的,需要解决
This commit is contained in:
@@ -18,12 +18,12 @@ namespace CapMachine.Wpf.Services
|
||||
/// 计算扫描 Task
|
||||
/// </summary>
|
||||
private static Task CalcTask { get; set; }
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
public ConfigService ConfigService { get; }
|
||||
|
||||
private IEventAggregator _EventAggregator { get; set; }
|
||||
public DataRecordService DataRecordService { get; }
|
||||
public SysRunService SysRunServer { get; }
|
||||
public ILogService Logger { get; }
|
||||
public MachineRtDataService MachineRtDataService { get; }
|
||||
public IDialogService DialogService { get; }
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace CapMachine.Wpf.Services
|
||||
/// 实例化
|
||||
/// </summary>
|
||||
public PPCService(ConfigService configService, IEventAggregator eventAggregator,
|
||||
DataRecordService dataRecordService, SysRunService sysRunService,
|
||||
DataRecordService dataRecordService, SysRunService sysRunService, ILogService logService,
|
||||
MachineRtDataService machineRtDataService, IDialogService dialogService)
|
||||
{
|
||||
ConfigService = configService;
|
||||
@@ -44,6 +44,7 @@ namespace CapMachine.Wpf.Services
|
||||
_EventAggregator = eventAggregator;
|
||||
DataRecordService = dataRecordService;
|
||||
SysRunServer = sysRunService;
|
||||
Logger = logService;
|
||||
MachineRtDataService = machineRtDataService;
|
||||
DialogService = dialogService;
|
||||
TagManager = MachineRtDataService.TagManger;
|
||||
@@ -201,13 +202,9 @@ namespace CapMachine.Wpf.Services
|
||||
public ShortValueTag GasPreValveTempTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 冷媒流量
|
||||
/// 需要计算的结果是:气体质量流量(kg/h)=冷媒流量-液冷媒流量
|
||||
///
|
||||
/// LabVIEW 中该量为常值;此处提供为可配置常量,实时计算直接使用,不再读取 Tag。
|
||||
/// 气相质量流量(kg/h)。
|
||||
/// VRV 安装在气路阀前段,测量值单位为 kg/h,可直接作为 mg(气体质量流量)参与干度加权计算。
|
||||
/// 若值<=0,则视为无效,将导致干度计算失败并置0。
|
||||
/// 气体流量=冷媒流量-液冷媒流量
|
||||
///
|
||||
/// </summary>
|
||||
public ShortValueTag VRVTag { get; set; }
|
||||
|
||||
@@ -319,7 +316,7 @@ namespace CapMachine.Wpf.Services
|
||||
else
|
||||
{
|
||||
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))
|
||||
@@ -327,7 +324,7 @@ namespace CapMachine.Wpf.Services
|
||||
else
|
||||
{
|
||||
Subcool.PVModel.EngValue = 0;
|
||||
Logger.Warn($"过冷度计算失败:{scErr}");
|
||||
Logger.Error($"过冷度计算失败:{scErr}");
|
||||
}
|
||||
|
||||
// 干度计算(LabVIEW 严格流程,质量流量加权):
|
||||
@@ -351,7 +348,7 @@ namespace CapMachine.Wpf.Services
|
||||
{
|
||||
DrynessTag.PVModel.EngValue = 0;
|
||||
}
|
||||
Logger.Warn($"质量流量加权干度:必要测点缺失,已将干度置0。缺失: {string.Join(", ", missing)}");
|
||||
Logger.Error($"质量流量加权干度:必要测点缺失,已将干度置0。缺失: {string.Join(", ", missing)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -367,40 +364,22 @@ namespace CapMachine.Wpf.Services
|
||||
double tlv = TxvFrTempTag.PVModel.EngValue;//膨胀阀前温度 = SUBCOOL出口温度 =液路阀前温度
|
||||
//tlv = 64.96428;
|
||||
|
||||
//液体流量=液冷媒流量 kg/h
|
||||
//气体流量=冷媒流量-液体流量 kg/h
|
||||
// 单位说明:
|
||||
// - 液体质量流量 ml[kg/h] = LiqRefFlowTag.PVModel.EngValue
|
||||
// - 气体质量流量 mg[kg/h] = VRVTag.PVModel.EngValue(VRV 位于气管,单位已为 kg/h)
|
||||
|
||||
double GasMassFlowKgPerH, LiquidMassFlowKgPerH;
|
||||
|
||||
LiquidMassFlowKgPerH = LiqRefFlowTag.PVModel.EngValue; // [kg/h]
|
||||
//GasMassFlowKgPerH = Math.Max(0.0, VRVTag?.PVModel?.EngValue ?? 0.0); // [kg/h]
|
||||
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
|
||||
double dryness = Step_ComputeDryness_LV_FlowWeighted(
|
||||
GasMassFlowKgPerH,
|
||||
LiquidMassFlowKgPerH,
|
||||
ps, pg, tg, plv, tlv,
|
||||
out dryErr
|
||||
);
|
||||
GasMassFlowKgPerH,
|
||||
LiquidMassFlowKgPerH,
|
||||
ps, pg, tg, plv, tlv,
|
||||
out dryErr
|
||||
);
|
||||
|
||||
double val = (!double.IsNaN(dryness)) ? dryness : 0.0;
|
||||
if (DrynessTag != null)
|
||||
@@ -410,14 +389,14 @@ namespace CapMachine.Wpf.Services
|
||||
|
||||
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)
|
||||
{
|
||||
if (DrynessTag != null) DrynessTag.PVModel.EngValue = 0;
|
||||
Logger.Error(ex, "质量流量加权干度计算异常,已置0");
|
||||
Logger.Error("质量流量加权干度计算异常,已置0");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user