//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.Init(1.5m); var optimal_test = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); var sw2 = new Stopwatch(); sw2.Restart(); helper.Init(1.5m); var optimal_1_5 = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); Console.WriteLine($"1.5-{sw2.Elapsed}"); sw2.Restart(); helper.Init(1); var optimal_1 = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); Console.WriteLine($"1-{sw2.Elapsed}"); sw2.Restart(); helper.Init(0.5m); var optimal_0_5 = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); Console.WriteLine($"0.5-{sw2.Elapsed}"); sw2.Restart(); helper.Init(0.3m); var optimal_0_3 = helper.Calc(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); Console.WriteLine($"0.3-{sw2.Elapsed}"); //1.5 - 00:00:16.1402898 //1 - 00:00:02.5989584 //0.5 - 00:00:00.1812056 //0.3 - 00:00:00.1045830 //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 f= 1; Console.ReadKey();