From 8f15f93b380fac12676487603297e3cc32f377f8 Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期一, 29 七月 2024 17:51:32 +0800
Subject: [PATCH] 更新 调度验证界面

---
 IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs |  225 +++++++-------------------------------------------------
 1 files changed, 28 insertions(+), 197 deletions(-)

diff --git a/IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs b/IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs
index e78f2bd..ebc142e 100644
--- a/IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs
+++ b/IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs
@@ -79,6 +79,7 @@
         /// </summary>
         /// <param name="pumps"></param>
         /// <param name="flag_rpm_dic"></param>
+        /// <param name="flag_inlet_water_level_dict"></param>
         /// <param name="flag_head_dic"></param>
         /// <param name="target_flow"></param>
         /// <param name="target_head"></param>
@@ -86,6 +87,7 @@
         public AnaCombine GetOptAnaCombineByWorking(
             List<Model.Pump> pumps,
             Dictionary<int, double> flag_rpm_dic,
+            Dictionary<int, double> flag_inlet_water_level_dict,
             Dictionary<int, double> flag_head_dic,
             double target_flow,
             double target_head
@@ -118,8 +120,16 @@
                 var curveQP = Curve.PumpCalculateHelper.CalculateSimilarQP(pump.CurveQP, pump.Nr, rpm);
 
                 double flow = 0, head = target_head;
+
                 if (flag_head_dic != null && flag_head_dic.ContainsKey(pump.Flag))
+                {
                     head = flag_head_dic[pump.Flag];
+                }
+
+                if (flag_inlet_water_level_dict != null && flag_inlet_water_level_dict.ContainsKey(pump.Flag))
+                {
+                    head -= flag_inlet_water_level_dict[pump.Flag];
+                }
 
                 flow = curveQH.GetInterPointLastX(head) ?? 0;
                 if (flow < 0)
@@ -128,11 +138,11 @@
                 var fre_pump = new AnaFrePump();
                 fre_pump.Flag = item.Key;
                 fre_pump.Flow = flow;
-                fre_pump.Head = target_head;
+                fre_pump.Head = head;
                 fre_pump.Power = curveQP.GetFitPointY(flow);
                 fre_pump.Efficiency = Curve.PumpCalculateHelper.CalculateE(fre_pump.Flow, fre_pump.Head, fre_pump.Power);
-                fre_pump.Frequency = rpm;
-                fre_pump.Speed = (double)rpm / 50 * pump.Nr;
+                fre_pump.Frequency = rpm / pump.Nr * 50;
+                fre_pump.Speed = rpm;
 
 
                 total_flow += flow;
@@ -855,207 +865,19 @@
             return combine;
         }
 
-        private bool _debug_init = false;
-        private List<AvgStatisticsS1> _debug_avg1_list = null;
-        private List<AvgStatisticsS2> _debug_avg2_list = null;
+       
 
-        private int _station = 1;
-        private Dictionary<int, double> _correction_factor_dict_diff1 = null;
-        private Dictionary<int, double> _correction_factor_dict_diff2 = null;
+
+        private Dictionary<int, double> _correction_factor_dict = null;
 
         /// <summary>
         /// 鍒濆鍖栫粍鍚堜慨姝g郴鏁�
         /// </summary>
-        /// <param name="debug_avg1_list"></param>
-        /// <param name="debug_avg2_list"></param>
-        public void InitCombineCorrectionFactor(List<AvgStatisticsS1> debug_avg1_list, List<AvgStatisticsS2> debug_avg2_list)
+        /// <param name="correction_factor_dict"></param> 
+        public void InitCorrectionFactorDict(Dictionary<int, double> correction_factor_dict)
         {
-            _debug_avg1_list = debug_avg1_list;
-            _debug_avg2_list = debug_avg2_list;
+            _correction_factor_dict = correction_factor_dict;
         }
-
-        /// <summary>
-        /// 鍒濆鍖栫粍鍚堜慨姝g郴鏁�
-        /// </summary>
-        /// <param name="correction_factor_dict_diff1"></param>
-        /// <param name="correction_factor_dict_diff2"></param>
-        public void InitCorrectionFactorDict(Dictionary<int, double> correction_factor_dict_diff1, Dictionary<int, double> correction_factor_dict_diff2)
-        {
-            _correction_factor_dict_diff1 = correction_factor_dict_diff1;
-            _correction_factor_dict_diff2 = correction_factor_dict_diff2;
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栨车绔�
-        /// </summary>
-        public void InitStation(int station)
-        {
-            _station = station;
-        }
-
-        /// <summary>
-        /// 鑾峰彇缁勫悎淇绯绘暟
-        /// </summary>
-        /// <param name="flags"></param>
-        /// <returns></returns>
-        private Dictionary<int, double> GetCombineCorrectionFactor_update_ing(IEnumerable<int> flags)
-        {
-            var correction_factor_dict = new Dictionary<int, double>();
-            var flags_str = IntListHelper.ToString(flags);
-            var avg1 = _debug_avg1_list?.Find(x => x.RunFlags == flags_str);
-            if (avg1 != null)
-            {
-                correction_factor_dict.Add(GlobalHelper.Flag11, avg1.Pump11Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag12, avg1.Pump12Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag13, avg1.Pump13Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag14, avg1.Pump14Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag15, avg1.Pump15Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag16, avg1.Pump16Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag17, avg1.Pump17Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag18, avg1.Pump18Pd ?? 0);
-
-                if (_correction_factor_dict_diff1 != null)
-                {
-                    foreach (var item in _correction_factor_dict_diff1)
-                    {
-                        correction_factor_dict[item.Key] += item.Value;
-                    }
-                }
-                return correction_factor_dict;
-            }
-
-            var avg2 = _debug_avg2_list?.Find(x => x.RunFlags == flags_str);
-            if (avg2 != null)
-            {
-                correction_factor_dict.Add(GlobalHelper.Flag21, avg2.Pump21Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag22, avg2.Pump22Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag23, avg2.Pump23Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag24, avg2.Pump24Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag25, avg2.Pump25Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag26, avg2.Pump26Pd ?? 0);
-                correction_factor_dict.Add(GlobalHelper.Flag27, avg2.Pump27Pd ?? 0);
-
-                if (_correction_factor_dict_diff2 != null)
-                {
-                    foreach (var item in _correction_factor_dict_diff2)
-                    {
-                        correction_factor_dict[item.Key] += item.Value;
-                    }
-                }
-                return correction_factor_dict;
-            }
-
-            if (!correction_factor_dict.Any())
-            {
-                Console.WriteLine(flags_str);
-                if (_station == 1)
-                {
-                    foreach (var item in GlobalHelper.Station1FlagList)
-                    {
-                        correction_factor_dict.Add(item, 0);
-                    }
-
-                    if (_correction_factor_dict_diff1 != null)
-                    {
-                        foreach (var item in _correction_factor_dict_diff1)
-                        {
-                            correction_factor_dict[item.Key] += item.Value;
-                        }
-                    }
-                }
-                else
-                {
-                    foreach (var item in GlobalHelper.Station2FlagList)
-                    {
-                        correction_factor_dict.Add(item, 0);
-                    }
-
-                    if (_correction_factor_dict_diff2 != null)
-                    {
-                        foreach (var item in _correction_factor_dict_diff2)
-                        {
-                            correction_factor_dict[item.Key] += item.Value;
-                        }
-                    }
-                }
-            }
-
-            return correction_factor_dict;
-        }
-
-
-        //        private bool _debug_init = false;
-        //        private List<AvgStatisticsS1> _debug_avg1_list = null;
-        //        private List<AvgStatisticsS2> _debug_avg2_list = null;
-
-        //        /// <summary>
-        //        /// 鑾峰彇缁勫悎淇绯绘暟
-        //        /// </summary>
-        //        /// <param name="flags"></param>
-        //        /// <returns></returns>
-        //        private Dictionary<int, double> GetCombineCorrectionFactor(IEnumerable<int> flags)
-        //        {
-        //            var correction_factor_dict = new Dictionary<int, double>();
-        //#if DEBUG
-        //            if (!_debug_init)
-        //            {
-        //                var avg1_json = File.ReadAllText("D:\\AvgStatisticsS1ViewModelList.json");
-        //                _debug_avg1_list = JsonHelper.Json2Object<List<AvgStatisticsS1>>(avg1_json);
-        //                if (_debug_avg1_list != null)
-        //                {
-        //                    _debug_avg1_list.ForEach(x => x.Round());
-        //                }
-
-        //                var avg2_json = File.ReadAllText("D:\\AvgStatisticsS2ViewModelList.json");
-        //                _debug_avg2_list = JsonHelper.Json2Object<List<AvgStatisticsS2>>(avg2_json);
-        //                if (_debug_avg2_list != null)
-        //                {
-        //                    _debug_avg2_list.ForEach(x => x.Round());
-        //                }
-        //                _debug_init = true;
-        //            }
-
-        //            var flags_str = IntListHelper.ToString(flags);
-
-        //            var avg1 = _debug_avg1_list?.Find(x => x.RunFlags == flags_str);
-        //            if (avg1 != null)
-        //            {
-        //                correction_factor_dict.Add(GlobalHelper.Flag11, avg1.Pump11Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag12, avg1.Pump12Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag13, avg1.Pump13Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag14, avg1.Pump14Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag15, avg1.Pump15Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag16, avg1.Pump16Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag17, avg1.Pump17Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag18, avg1.Pump18Pd ?? 0);
-
-
-        //                return correction_factor_dict;
-        //            }
-
-        //            var avg2 = _debug_avg2_list?.Find(x => x.RunFlags == flags_str);
-        //            if (avg2 != null)
-        //            {
-        //                correction_factor_dict.Add(GlobalHelper.Flag21, avg2.Pump21Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag22, avg2.Pump22Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag23, avg2.Pump23Pd  ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag24, avg2.Pump24Pd  ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag25, avg2.Pump25Pd  ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag26, avg2.Pump26Pd ?? 0);
-        //                correction_factor_dict.Add(GlobalHelper.Flag27, avg2.Pump27Pd ?? 0);
-
-        //                return correction_factor_dict;
-        //            }
-        //#else
-        //            foreach (var flag in flags)
-        //            {
-        //                double factor = 0;
-        //                //factor += r.NextDouble();
-        //                correction_factor_dict.Add(flag, factor);
-        //            } 
-        //#endif
-        //            return correction_factor_dict;
-        //        }
 
         /// <summary>
         /// 鑾峰彇缁勫悎淇绯绘暟
@@ -1064,6 +886,15 @@
         /// <returns></returns>
         private Dictionary<int, double> GetCombineCorrectionFactor(IEnumerable<int> flags)
         {
+            if (_correction_factor_dict != null && _correction_factor_dict.Any())
+            {
+                var fac_flags = _correction_factor_dict.Keys; 
+                if (fac_flags.SequenceEqual(flags))
+                {
+                    return _correction_factor_dict;
+                }
+            }
+
             var correction_factor_dict = new Dictionary<int, double>();
             var r = new Random(0);
             foreach (var flag in flags)

--
Gitblit v1.9.3