duheng
2025-03-28 b825d70578b0ddf6d479569887c194f919795dad
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/01-/02-schedule/ScheduleHelper.cs
ÎļþÃû´Ó WinFrmUI/PBS.WinFrmUI.Hydro/06-simulation-drill/01-/02-schedule/ScheduleHelper.cs ÐÞ¸Ä
@@ -217,7 +217,7 @@
        {
            if (combine == null || !combine.Any())
                return default;
            //先修正组合曲线和模型的偏差扬程 
            var conclusion_ex_list_list = new List<List<AnalysisConclusionViewModel>>();
            var conclusion_ex_list_dict = new Dictionary<long, List<AnalysisConclusionViewModel>>();
@@ -226,9 +226,7 @@
            { 
                //进口水位
                var inlet_water_level = 0;
                var inlet_water_level = 0;
                var current_pressure_diff = target_pressure - inlet_water_level +  _sel_opt_pump_pressure_excess;
                current_pressure_diff = Math.Round(current_pressure_diff, 1);
@@ -264,13 +262,13 @@
                return default;
            var total_flow_deviation_ratio = Math.Abs(1 - Math.Abs(total_flow / target_flow));
            if (total_flow_deviation_ratio > _sel_opt_flow_deviation_ratio)
                return default;
            if (total_flow_deviation_ratio > _sel_opt_reasonable_flow_deviation_ratio)
            {
                combine_merit_ratio -= total_flow_deviation_ratio;
            }
            //var total_flow_deviation_ratio = Math.Abs(1 - Math.Abs(total_flow / target_flow));
            //if (total_flow_deviation_ratio > _sel_opt_flow_deviation_ratio)
            //    return default;
            //if (total_flow_deviation_ratio > _sel_opt_reasonable_flow_deviation_ratio)
            //{
            //    combine_merit_ratio -= total_flow_deviation_ratio;
            //}
            double eff = 0, wp = 0, uwp = 0;
            wp =  Yw.Pump.CalculationHelper.CalcuWP(total_power, total_flow);
@@ -343,8 +341,8 @@
                var current_frequency_space = frequency_space + (i * frequency_iteration_space);
                cl_ex_list_list_list = FrequencyFilters(target_flow, frequency_min, frequency_max, current_frequency_space, all_fre_conclusion_ex_list_list, all_fix_conclusion_ex_list_list);
                if (cl_ex_list_list_list.Any())
                {
                    break;
                 {
                      break;
                }
            }
@@ -355,7 +353,7 @@
            //分组排列组合求最优
            var ana_combine_list = new List<AnaCombine>();
            foreach (var item_cl_ex_list_list in cl_ex_list_list_list)
             foreach (var item_cl_ex_list_list in cl_ex_list_list_list)
            {
                var cl_ex_list_list = CartesianProduct(item_cl_ex_list_list, target_flow);
                var opt_cl_ex_list = cl_ex_list_list.OrderBy(x => x.Sum(x => x.Power)).FirstOrDefault();