ningshuxia
2022-10-31 2967027410e4131e18c13daf9a80782c3351da4d
Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs
@@ -138,7 +138,9 @@
            List<double> all_power = new List<double>();
            //用的是泵站的总数量,
            result_pipe.InitialRunList(this._allMachineList.Count());
            result_pipe.InitialRunList(this._allMachineList.Count());
            double qhTotal = 0;
            #region  开机状态 和数量
            int pump_open_count = 0;
@@ -154,6 +156,7 @@
                    continue;
                }
                var result_pump = pump.AnaResult;
                if (result_pump == null)
                {
@@ -162,14 +165,15 @@
                    allPumpPowerOk = false;
                    continue;
                }
                if (!pump.IsRunIng)
                {
                    result_pipe.SetPumpStatusByIndex(i, result_pump.HZa, result_pump.RSa);
                    continue;
                }
                bool validQ = false, validH = false;
                result_pipe.PutStationAnalyInfo(result_pump.AnalyInfo, pump.MachineID);
@@ -195,6 +199,7 @@
                else
                {
                    all_flow.Add(result_pump.Qa.Value);
                    validQ = true;
                }
                if (result_pump.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Ha) ||
@@ -213,6 +218,12 @@
                else
                {
                    all_head.Add(result_pump.Ha.Value);
                    validH = true;
                }
                if (validQ && validH)
                {
                    qhTotal += result_pump.Qa.Value * result_pump.Ha.Value;
                }
                if (result_pump.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Pa))
@@ -259,11 +270,27 @@
                if (allPumpPowerOk && result_pipe.Ha != null && result_pipe.Pa != null && result_pipe.Qa != null)
                {
                    //计算效率
                    double eta = Math.Round(Model.EtaSingleRealRecordPure.Calc_Eta(result_pipe.Qa.Value, result_pipe.Ha.Value, result_pipe.Pa.Value, WaterDensity, g), 1);
                    result_pipe.Ea = eta;
                    //计算效率 旧代码
                    //double eta = Math.Round(Model.EtaSingleRealRecordPure.Calc_Eta(result_pipe.Qa.Value, result_pipe.Ha.Value, result_pipe.Pa.Value, WaterDensity, g), 1);
                    double eta = 0;
                    foreach (var item in all_machine_list)
                    {
                        var result = item.AnaResult;
                        if (result == null)
                            continue;
                        if (result.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Qa) || result.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Ha))
                            continue;
                        if (result.Ea.HasValue && result.Qa.HasValue && result.Ha.HasValue)
                        {
                            eta += (result.Qa.Value * result.Ha.Value / qhTotal) * result.Ea.Value;
                        }
                    }
                    result_pipe.Ea = Math.Round(eta, 1);
                    result_pipe.UWPa = 0;
                    result_pipe.WPa = 0;
                    result_pipe.WPa = 0;
                    // 检查效率
                    if (eta > 98)
                    {//有时, 大流量曲线部分,是曲线不精确, 造成Q H曲线不符合实际, 造成效率计算出问题