Shuxia Ning
2024-08-28 1a8a81785470302fc7fbd6914a9df5d1094dac2a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//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<IStation.Model.ZyScada> 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<int> station1_open_flag_list, out List<int> station2_open_flag_list);
GlobalHelper.GetFlagInletWaterLevelDict(zy_scada_list, out Dictionary<int, double> station1_flag_inlet_water_level_dict, out Dictionary<int, double> 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