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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//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.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();