| | |
| | | |
| | | #endregion |
| | | |
| | | #region Private Variable |
| | | |
| | | private readonly decimal _frequency_min = 28; |
| | | private readonly decimal _frequency_max = 50; |
| | | private readonly decimal _frequency_space = 1;//频率间隔 |
| | |
| | | private List<List<int>> _same_section_flag_combine_list = null; // 同段泵组合 |
| | | private List<Model.WaterSupplyLimit> _water_supply_limit_list = null; //供水限制列表 |
| | | private List<Model.FrequencyLimit> _frequency_limit_list = null; // 频率限制列表 |
| | | private Dictionary<int,double> _flag_cumulative_runtime_dict = null; // 泵累计运行时长字典 |
| | | private Dictionary<int, double> _flag_cumulative_runtime_dict = null; // 泵累计运行时长字典 |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 初始化 |
| | |
| | | var min_open_count = _min_open_count; |
| | | var max_open_count = _max_open_count < 1 ? pump_list.Count : _max_open_count; |
| | | var must_open_flag_list = _must_open_flag_list; |
| | | var must_close_flag_list = _must_close_flag_list; |
| | | var must_close_flag_list = _must_close_flag_list; |
| | | var forbidden_flag_combine_list = _forbidden_flag_combine_list; |
| | | var associative_flag_combine_list = _associative_flag_combine_list; |
| | | var same_section_flag_combine_list = _same_section_flag_combine_list; |
| | |
| | | var exist_must_close_flag_list = must_close_flag_list != null && must_close_flag_list.Count > 0; |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 存在-禁用组合 |
| | | |
| | | var exist_forbidden_flag_combine_list = forbidden_flag_combine_list != null && forbidden_flag_combine_list.Count > 0; |
| | |
| | | |
| | | #region 存在-泵累计运行时长字典 |
| | | |
| | | var flag_cumulative_runtime_loss_ratio_dict=new Dictionary<int,double>(); |
| | | var flag_cumulative_runtime_loss_ratio_dict = new Dictionary<int, double>(); |
| | | var exist_flag_cumulative_runtime_dict = flag_cumulative_runtime_dict != null && flag_cumulative_runtime_dict.Count > 0; |
| | | if (exist_flag_cumulative_runtime_dict) |
| | | { |
| | |
| | | { |
| | | //供水限制 |
| | | var exist_limit = false; |
| | | #if DEBUG |
| | | #else |
| | | if (exist_water_supply_limit_list) |
| | | { |
| | | var limit = water_supply_limit_list.Find(x => x.PumpCount == current_open_flag_list.Count); |
| | |
| | | exist_limit = true; |
| | | } |
| | | } |
| | | } |
| | | #endif |
| | | } |
| | | if (!exist_limit) |
| | | { |
| | | var opt_ana_combine = GetOptAnaCombine |
| | |
| | | var loss_ratio = 1 - level; |
| | | flag_cumulative_runtime_loss_ratio_dict.Add(flag, loss_ratio); |
| | | } |
| | | |
| | | return flag_cumulative_runtime_dict; |
| | | return flag_cumulative_runtime_loss_ratio_dict; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return lstResult; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取排列组合 |
| | |
| | | var analysis_deviation = _service_analysis_deviation.GetByFlowAndRunFlags(flow, flags); |
| | | if (analysis_deviation == null) |
| | | { |
| | | if (GlobalHelper.IsStation2(flags)) |
| | | { |
| | | Yw.LogHelper.Error($"[{Yw.Untity.IntListHelper.ToString(flags)}]组合不存在偏差系数!"); |
| | | } |
| | | return deviation_factor_dict; |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region Expand |
| | | |
| | | /// <summary> |