| | |
| | | /// åå§ååæ° |
| | | /// </summary> |
| | | /// <param name="targetQ"></param> |
| | | /// <param name="water_level"></param> |
| | | /// <param name="outlet_press"></param> |
| | | /// <param name="inlet_para"></param> |
| | | /// <param name="inlet_is_waterlevel"></param> |
| | | /// <param name="outlet_para"></param> |
| | | /// <param name="outlet_is_waterlevel"></param> |
| | | /// <param name="MinQ"></param> |
| | | /// <param name="MaxQ"></param> |
| | | /// <param name="allEnginePumpList"></param> |
| | | /// <param name="MachineRunFilterList"></param> |
| | | /// <returns></returns> |
| | | public bool InitialParas( |
| | | double targetQ, double water_level, double outlet_press, string MinQ, string MaxQ, |
| | | double targetQ, |
| | | double inlet_para,bool inlet_is_waterlevel, |
| | | double outlet_para,bool outlet_is_waterlevel, |
| | | string MinQ, string MaxQ, |
| | | List<IStation.Calculation.DispatchAna.Model.MachineDetail> allEnginePumpList, |
| | | List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> MachineRunFilterList) |
| | | { |
| | | this._targetInletPress = Math.Round(water_level / 102, 4); |
| | | this._targetOutletPress = outlet_press; |
| | | { |
| | | if (inlet_is_waterlevel) |
| | | { |
| | | this._targetInletPress = Math.Round(inlet_para / 102, 4); |
| | | } |
| | | else |
| | | { |
| | | this._targetInletPress = Math.Round(inlet_para, 4); |
| | | } |
| | | |
| | | if (outlet_is_waterlevel) |
| | | { |
| | | this._targetOutletPress = Math.Round(outlet_para / 102, 4); |
| | | } |
| | | else |
| | | { |
| | | this._targetOutletPress = outlet_para; |
| | | } |
| | | |
| | | this._targetQ = targetQ; |
| | | this._allMachineList = allEnginePumpList; |
| | | |
| | |
| | | |
| | | #region å¼å§åæ |
| | | _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); |
| | | |
| | | int max_fre_num = 2;//æå¤åé¢2å°, å
¶ä½çå³ä½¿åé¢,乿50HZè¿è¡ |
| | | var arry_allMachineList = all_machine_ana_result_list.ToArray(); |
| | | for (int openPumpNum = 1; openPumpNum <= all_machine_ana_result_list.Count(); openPumpNum++) |
| | | if (all_machine_ana_result_list.Count() == 0) |
| | | { |
| | | //å¾å°æææåç»å |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[]> open_machine_combine_list = |
| | | IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>.GetCombination( |
| | | arry_allMachineList, openPumpNum); |
| | | |
| | | |
| | | foreach (var open_machine_list in open_machine_combine_list) |
| | | return null; |
| | | } |
| | | else if (all_machine_ana_result_list.Count() == 1) |
| | | { |
| | | var first_pump = all_machine_ana_result_list.First(); |
| | | first_pump.AsFrequency = true; |
| | | IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[] open_machine_list = new |
| | | IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[] { first_pump }; |
| | | AnaMahineComb(open_machine_list); |
| | | } |
| | | else |
| | | { |
| | | int max_fre_num = 2;//æå¤åé¢2å°, å
¶ä½çå³ä½¿åé¢,乿50HZè¿è¡ |
| | | var arry_allMachineList = all_machine_ana_result_list.ToArray(); |
| | | for (int openPumpNum = 1; openPumpNum <= all_machine_ana_result_list.Count(); openPumpNum++) |
| | | { |
| | | var fre_machines = (from x in open_machine_list where x.IsFrequency select x).ToArray(); |
| | | //å¾å°æææåç»å |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[]> open_machine_combine_list = |
| | | IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>.GetCombination( |
| | | arry_allMachineList, openPumpNum); |
| | | |
| | | if (fre_machines.Count() > max_fre_num) |
| | | {//æå¤æ2å°æ³µå½ä½å颿³µè¿è¡, å
¶ä½æå·¥é¢æ³µè¿è¡ |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[]> real_fre_machine_combine_list = |
| | | IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>.GetCombination( |
| | | fre_machines, max_fre_num);//æåç»å,æ¾éé¢ç2å° |
| | | |
| | | foreach (var real_fre_machine_list in real_fre_machine_combine_list) |
| | | foreach (var open_machine_list in open_machine_combine_list) |
| | | { |
| | | var fre_machines = (from x in open_machine_list where x.IsFrequency select x).ToArray(); |
| | | |
| | | if (fre_machines.Count() > max_fre_num) |
| | | {//æå¤æ2å°æ³µå½ä½å颿³µè¿è¡, å
¶ä½æå·¥é¢æ³µè¿è¡ |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[]> real_fre_machine_combine_list = |
| | | IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>.GetCombination( |
| | | fre_machines, max_fre_num);//æåç»å,æ¾éé¢ç2å° |
| | | |
| | | foreach (var real_fre_machine_list in real_fre_machine_combine_list) |
| | | { |
| | | foreach (var m in fre_machines) |
| | | {//å
æææå颿³µå½ä½å·¥é¢æ³µ |
| | | m.AsFrequency = false; |
| | | } |
| | | foreach (var m in real_fre_machine_list) |
| | | {//ææåç»åä¸ç两å°è®¾ç½®ä½å颿³µ |
| | | m.AsFrequency = true; |
| | | } |
| | | AnaMahineComb(open_machine_list); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | foreach (var m in fre_machines) |
| | | {//å
æææå颿³µå½ä½å·¥é¢æ³µ |
| | | m.AsFrequency = false; |
| | | } |
| | | foreach (var m in real_fre_machine_list) |
| | | {//ææåç»åä¸ç两å°è®¾ç½®ä½å颿³µ |
| | | { |
| | | m.AsFrequency = true; |
| | | } |
| | | AnaMahineComb(open_machine_list); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | foreach (var m in fre_machines) |
| | | { |
| | | m.AsFrequency = true; |
| | | } |
| | | AnaMahineComb(open_machine_list); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | if (_anaSchemeList.Count() == 0) |
| | |
| | | fixPumpAnaCombine.Add(machine); |
| | | } |
| | | } |
| | | if (fre_pump_count > 0) |
| | | { |
| | | if (total_min_flow > _targetQmax) |
| | | { |
| | | return; |
| | | } |
| | | if (total_max_flow < _targetQmin) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | if (total_min_flow > _targetQmax) |
| | | { |
| | | return; |
| | | } |
| | | if (total_max_flow < _targetQmin) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (fre_pump_count == 0) |
| | | {//åªç¨åºé¢æ³µå³å¯ |