ningshuxia
8 天以前 1519533649b43337d214523f7cd075edf237b3f7
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
// See https://aka.ms/new-console-template for more information
 
 
using IStation;
using IStation.Application;
using IStation.Epanet.Network.Structures;
using Microsoft.IdentityModel.Logging;
using Yw;
 
IStation.Service.Station _service_station = new();
IStation.Service.ScheduleConfig _service_schedule_config = new();
 
 
 
 
var receipt_time = DateTime.Now;
var log_title = string.Empty;
 
Console.WriteLine("初始化基础信息文件");
var station_info = _service_station.Get();
var is_monitor_record_debug = true;
Console.WriteLine("实时ZyScada请求");
var get_msg = GlobalHelper.GetMonitorRecordList(receipt_time, out List<IStation.Model.MonitorRecord> monitor_record_list, is_monitor_record_debug);
 
 
 
var station1 = station_info.Station1;
var station2 = station_info.Station2;
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(monitor_record_list, out List<int> station1_open_flag_list, out List<int> station2_open_flag_list);
GlobalHelper.GetStationFlagStateList(monitor_record_list, out List<int> station1_flag_maintenance_list, out List<int> station2_maintenance_flag_list, out List<int> station1_priority_flag_list, out List<int> station2_priority_flag_list);
GlobalHelper.GetFlagInletWaterLevelDict(monitor_record_list, out Dictionary<int, double> station1_flag_inlet_water_level_dict, out Dictionary<int, double> station2_flag_inlet_water_level_dict);
 
Console.WriteLine("机泵检修");
if (station1_flag_maintenance_list != null && station1_flag_maintenance_list.Any())
{
    Console.WriteLine($"1输水:{Yw.Untity.IntListHelper.ToString(station1_flag_maintenance_list)}");
    station1_schedule_config.MustCloseFlagList.AddRange(station1_flag_maintenance_list);
}
if (station2_maintenance_flag_list != null && station2_maintenance_flag_list.Any())
{
    Console.WriteLine($"2输水:{Yw.Untity.IntListHelper.ToString(station2_maintenance_flag_list)}");
    station2_schedule_config.MustCloseFlagList.AddRange(station2_maintenance_flag_list);
}
 
Console.WriteLine("机泵优先");
if (station1_priority_flag_list != null && station1_priority_flag_list.Any())
{
    Console.WriteLine($"1输水:{Yw.Untity.IntListHelper.ToString(station1_priority_flag_list)}");
    station1_schedule_config.PriorityOpenFlagList.AddRange(station1_priority_flag_list);
}
if (station2_priority_flag_list != null && station2_priority_flag_list.Any())
{
    Console.WriteLine($"2输水:{Yw.Untity.IntListHelper.ToString(station2_priority_flag_list)}");
    station2_schedule_config.PriorityOpenFlagList.AddRange(station2_priority_flag_list);
 
}
var analysis_deviation_list = new IStation.Service.AnalysisDeviation().GetList();
 
log_title = "调度返回";
var helper = new IStation.Service.ScheduleHelper();
 
var target_flow1 = 20722.197;
var target_mpa_pressure1 = 0.2556;
var target_flow2 = 34628.6;
var target_mpa_pressure2 = 0.1595;
var target_pressure1 = IStation.Curve.PumpCalculateHelper.Mpa2M(target_mpa_pressure1);
var target_pressure2 = IStation.Curve.PumpCalculateHelper.Mpa2M(target_mpa_pressure2);
 
 
helper.Initial(station1_open_flag_list, station1_schedule_config, analysis_deviation_list);
var optimal_combine1 = helper.GetOptAnaCombine(station1, station1_flag_inlet_water_level_dict, target_flow1, target_pressure1);
 
 
helper.Initial(station2_open_flag_list, station2_schedule_config, analysis_deviation_list);
var optimal_combine2 = helper.GetOptAnaCombine(station2, station2_flag_inlet_water_level_dict, target_flow2, target_pressure2);
 
 
Console.ReadKey();