//IStation.HydraulicModelValidationHelperJob.Execute(); using IStation; using System.Diagnostics; IStation.Service.ScheduleRequest _service_schedule_request = new(); IStation.Service.ScheduleScada _service_schedule_scada = new(); IStation.Service.ScheduleRule _service_schedule_rule = new(); IStation.Service.ScheduleConclusion _service_schedule_conclusion = new(); IStation.Service.SchedulePump _service_schedule_pump = new(); IStation.Service.Station _service_station = new(); IStation.Service.ScheduleConfig _service_schedule_config = new(); var station_info = _service_station.Get(); double target_flow1 = 22930.774; double target_flow2 = 39599.2; double target_head1 = IStation.Curve.PumpCalculateHelper.Mpa2M(0.2892); double target_head2 = IStation.Curve.PumpCalculateHelper.Mpa2M(0.1756); GlobalHelper.GetRealTimeZyScadaList(out List zy_scada_list, true); var station1 = station_info.Station1; var station2 = station_info.Station2; var station1_same_type_flag_group_first = GlobalHelper.Station1SameTypeFlagGroupFirst; var station2_same_type_flag_group_first = GlobalHelper.Station2SameTypeFlagGroupFirst; var station1_schedule_config = _service_schedule_config.GetStation1(); var station2_schedule_config = _service_schedule_config.GetStation2(); var station1_flag_list = GlobalHelper.Station1FlagList; var station2_flag_list = GlobalHelper.Station2FlagList; GlobalHelper.GetStationOpenFlagList(zy_scada_list, out List station1_open_flag_list, out List station2_open_flag_list); GlobalHelper.GetFlagInletWaterLevelDict(zy_scada_list, out Dictionary station1_flag_inlet_water_level_dict, out Dictionary station2_flag_inlet_water_level_dict); var helper = new ScheduleHelper_Update(); //helper.Initial(station1_open_flag_list, station1_schedule_config); //var optimal_combine1 = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); //var a = optimal_combine1; helper.Initial(station2_open_flag_list, station2_schedule_config); var optimal_combine2 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); var sw2 = new Stopwatch(); sw2.Start(); helper.Init(2); var optimal_2 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); Console.WriteLine($"2-{sw2.Elapsed}"); sw2.Restart(); helper.Init(1.5); var optimal_1_5 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); Console.WriteLine($"1.5-{sw2.Elapsed}"); sw2.Restart(); helper.Init(1); var optimal_1 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); Console.WriteLine($"1-{sw2.Elapsed}"); sw2.Restart(); helper.Init(0.5); var optimal_0_5 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); Console.WriteLine($"0.5-{sw2.Elapsed}"); sw2.Restart(); helper.Init(0.3); var optimal_0_3 = helper.Calc(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); Console.WriteLine($"0.3-{sw2.Elapsed}"); var a = 1; Console.ReadKey(); //2 - 00:00:10.4550449 //1.5 - 00:00:03.3803798 //1 - 00:00:00.5834496 //0.5 - 00:00:00.0636343 //0.3 - 00:00:00.0324420