| | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | static public double ExtendMaxRatio = 1.25;//æå¤§å»¶é¿ç 25% |
| | | static public double ExtendMaxRatio = 1.25;//æ²çº¿æå¤§å»¶é¿ç 25% |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | static public double ChangeFrequenceSpaece = 0.5;//é¢çååå¼(ç²ç®) |
| | | |
| | | //private double _defaultInletDia = 1000; |
| | | //private double _defaultOutletDia = 800; |
| | | ///// <summary> |
| | | ///// |
| | | ///// </summary> |
| | | ///// <param name="inletDia"></param> |
| | | ///// <param name="outletDia"></param> |
| | | //public void SetDia(double inletDia, double outletDia) |
| | | //{ |
| | | // this._defaultInletDia = inletDia; |
| | | // this._defaultOutletDia = outletDia; |
| | | //} |
| | | private double _targetQmaxDefaultPercent = 125; |
| | | /// <summary> |
| | | /// æµéè崿大ç¾åæ¯ 0 表示没æè®¾ç½®(è³å°å¤§äº100) |
| | | /// </summary> |
| | | public double TargetQmaxDefaultPercent { get { return _targetQmaxDefaultPercent; } set { _targetQmaxDefaultPercent = value; } } |
| | | |
| | | private double _targetQinDefaultPercent = 85; |
| | | |
| | | |
| | | private double _targetQ; |
| | | private double _targetInletPress; |
| | | private double _targetOutletPress; |
| | | private double _targetQmax, _targetQmin; |
| | | |
| | | |
| | | private List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> _machineRunFilterList = null; |
| | | private List<long> _must_open_machine_array = null; |
| | |
| | | error_info = "æµéå¼è¿ä½æ æ³åæ"; |
| | | return false; |
| | | } |
| | | if(this._targetOutletPress<= this._targetInletPress + 0.01) |
| | | double min_rated_h = 1000; |
| | | foreach(var m in pipeMachineList) |
| | | { |
| | | if (m.RatedH < 0.1) |
| | | continue; |
| | | |
| | | min_rated_h = Math.Min(min_rated_h, m.RatedH); |
| | | } |
| | | if (this._targetOutletPress <= this._targetInletPress + min_rated_h / 2000) |
| | | { |
| | | error_info = "è¿åºå£ååå¼è®¾ç½®ä¸åç"; |
| | | return false; |
| | |
| | | this._allMachineList = pipeMachineList; |
| | | |
| | | |
| | | this._targetQmax = targetQ * 1.25; |
| | | this._targetQmin = targetQ * 0.85; |
| | | |
| | | if(_targetQmaxDefaultPercent >101) |
| | | this._targetQmax = targetQ * _targetQmaxDefaultPercent / 100; |
| | | else |
| | | this._targetQmax = targetQ * 1.25; |
| | | this._targetQmin = targetQ * _targetQinDefaultPercent /100; |
| | | if (!string.IsNullOrEmpty(MinQ)) |
| | | { |
| | | double minq = targetQ; |
| | |
| | | /// <param name="SchemeSortType"></param> |
| | | /// <param name="ReturnSchemeNumber"></param> |
| | | /// <returns></returns> |
| | | public List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptList( |
| | | public List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptList( |
| | | IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType, |
| | | int ReturnSchemeNumber) |
| | | { |
| | |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | #region é¢ç®ä¸ä¸ |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase> all_machine_ana_result_list = |
| | | new List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>(); |
| | | bool isHaveFrequency = false; |
| | | foreach (var machine in this._allMachineList) |
| | | { |
| | | if (machine.IsFrequency) |
| | | {//å颿³µ |
| | | isHaveFrequency = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (isHaveFrequency) |
| | | { |
| | | return CalcOptListæåé¢(SchemeSortType, ReturnSchemeNumber); |
| | | } |
| | | else |
| | | { |
| | | return CalcOptListæ åé¢(SchemeSortType, ReturnSchemeNumber); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æå颿³µ |
| | | /// </summary> |
| | | /// <param name="SchemeSortType"></param> |
| | | /// <param name="ReturnSchemeNumber"></param> |
| | | /// <returns></returns> |
| | | private List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListæåé¢( |
| | | IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType, |
| | | int ReturnSchemeNumber) |
| | | { |
| | | #region é¢ç®ä¸ä¸ |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase> all_machine_ana_result_list = |
| | | new List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>(); |
| | | int frequency_pump_count = 0; |
| | | foreach (var machine in this._allMachineList) |
| | | { |
| | | if (machine.IsFrequency) |
| | | {//å颿³µ |
| | | frequency_pump_count++; |
| | | var anaData = GetFrePumpAnaData(machine); |
| | | if (anaData != null) |
| | | { |
| | |
| | | { |
| | | return null; |
| | | } |
| | | else if (all_machine_ana_result_list.Count() == 1) |
| | | if (frequency_pump_count > 0) |
| | | { |
| | | 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); |
| | | #region æå颿³µ,å¯ä»¥ç²¾ç¡®è®¡ç® |
| | | 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++) |
| | | { |
| | | //å¾å°æææåç»å |
| | | 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) |
| | | { |
| | | 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; |
| | | } |
| | | int ana_ret = AnaMahineComb(open_machine_list); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | foreach (var m in fre_machines) |
| | | { |
| | | if (m.IsFrequency) |
| | | m.AsFrequency = true; |
| | | } |
| | | int ana_ret = AnaMahineComb(open_machine_list); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | int max_fre_num = 2;//æå¤åé¢2å°, å
¶ä½çå³ä½¿åé¢,乿50HZè¿è¡ |
| | | #region 齿¯å·¥é¢æ³µ |
| | | var arry_allMachineList = all_machine_ana_result_list.ToArray(); |
| | | for (int openPumpNum = 1; openPumpNum <= all_machine_ana_result_list.Count(); openPumpNum++) |
| | | { |
| | |
| | | |
| | | 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; |
| | | } |
| | | int ana_ret = AnaMahineComb(open_machine_list); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | foreach (var m in fre_machines) |
| | | { |
| | | if (m.IsFrequency) |
| | | m.AsFrequency = true; |
| | | } |
| | | int ana_ret = AnaMahineComb(open_machine_list); |
| | | } |
| | | int ana_ret = AnaMahineComb(open_machine_list); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | |
| | | #endregion |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 没æå颿³µ,å
¨æ¯å·¥é¢æ³µ |
| | | /// </summary> |
| | | /// <param name="SchemeSortType"></param> |
| | | /// <param name="ReturnSchemeNumber"></param> |
| | | /// <returns></returns> |
| | | private List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListæ åé¢ ( |
| | | IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType, |
| | | int ReturnSchemeNumber) |
| | | { |
| | | // |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase> all_machine_ana_result_list = |
| | | new List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>(); |
| | | |
| | | foreach (var machine in this._allMachineList) |
| | | { |
| | | var anaData = GetFixPumpAnaData(machine); |
| | | if (anaData != null) |
| | | { |
| | | all_machine_ana_result_list.Add(anaData); |
| | | } |
| | | } |
| | | if (all_machine_ana_result_list.Count() == 0) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | #region å¼å§åæ |
| | | _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); |
| | | |
| | | |
| | | var ds_disp_project_list = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); |
| | | |
| | | var arry_allMachineList = all_machine_ana_result_list.ToArray(); |
| | | for (int openPumpNum = 1; openPumpNum <= all_machine_ana_result_list.Count(); openPumpNum++) |
| | | { |
| | | //å¾å°æææåç»å |
| | | 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) |
| | | { |
| | | //æ£æ¥æ¯å¦ç¬¦å弿ºçº¦æ |
| | | List<long> machine_ids = (from x in open_machine_list select x.MachineID).ToList(); |
| | | if (!IsAccordMachineRunFilter(machine_ids)) |
| | | { |
| | | continue; |
| | | } |
| | | var total_flow = (from x in open_machine_list select x.AnaItem50Hz.WorkPointQ).Sum(); |
| | | if (total_flow > _targetQmax || total_flow < this._targetQmin) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | var project = new IStation.Calculation.DispatchAna.Model.AnaScheme(); |
| | | project.ID = 1; |
| | | project.TotalWrkQ = total_flow; |
| | | |
| | | project.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); |
| | | |
| | | foreach (var fixPump in open_machine_list) |
| | | { |
| | | if (fixPump.AnaItem50Hz.WorkPointQ < 1) |
| | | continue; |
| | | |
| | | var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem50Hz); |
| | | |
| | | project.Items.Add(itemRow); |
| | | } |
| | | |
| | | project.TotalWrkP = (from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(); |
| | | |
| | | var default_pump = open_machine_list.FirstOrDefault(); |
| | | project.TotalWrkH = Math.Round(this.CalcHeadByPress(this._targetInletPress, |
| | | this._targetOutletPress, |
| | | default_pump.MachineDetail.InletCaliber, default_pump.MachineDetail.OutletCaliber, |
| | | total_flow / open_machine_list.Count()), 3); |
| | | project.TotalWrkE = IStation.Common.PumpParaHelper.CalculateE(project.TotalWrkQ, project.TotalWrkH, project.TotalWrkP); |
| | | project.UWP = Math.Round(project.UWP, 3); |
| | | project.WP = Math.Round(project.WP, 3); |
| | | project.SpanQ = Math.Round(project.TotalWrkQ - _targetQ, 0); |
| | | project.CalcItemParas(); |
| | | |
| | | ds_disp_project_list.Add(project); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // 0 åç 1 æµéé´é |
| | | if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.åç) |
| | | ds_disp_project_list = (from x in ds_disp_project_list orderby x.TotalWrkP select x).ToList(); |
| | | else if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.æµéå·®å¼) |
| | | ds_disp_project_list = (from x in ds_disp_project_list orderby Math.Abs(x.SpanQ) select x).ToList(); |
| | | |
| | | |
| | | //éæ°ç¼å·ID |
| | | for (int i = 0; i < ds_disp_project_list.Count; i++) |
| | | { |
| | | ds_disp_project_list[i].ID = i + 1; |
| | | } |
| | | |
| | | if (ReturnSchemeNumber <= 0) |
| | | return ds_disp_project_list; |
| | | else |
| | | return ds_disp_project_list.Take(ReturnSchemeNumber).ToList(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 没æå颿³µ,å
¨æ¯å·¥é¢æ³µ |
| | | /// </summary> |
| | | /// <param name="SchemeSortType"></param> |
| | | /// <param name="ReturnSchemeNumber"></param> |
| | | /// <returns></returns> |
| | | private List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListæ åé¢_æè¿( |
| | | IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType, |
| | | int ReturnSchemeNumber) |
| | | { |
| | | // |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase> all_machine_ana_result_list = |
| | | new List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase>(); |
| | | |
| | | foreach (var machine in this._allMachineList) |
| | | { |
| | | var anaData = GetFixPumpAnaData(machine); |
| | | if (anaData != null) |
| | | { |
| | | all_machine_ana_result_list.Add(anaData); |
| | | } |
| | | } |
| | | if (all_machine_ana_result_list.Count() == 0) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | #region å¼å§åæ |
| | | _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); |
| | | |
| | | double total_flow_æé è¿ = 0; |
| | | double total_flow_æé è¿_dis = this._targetQ * 2; |
| | | List<IStation.Calculation.DispatchAna.Model.PumpAnaDataBase> open_machine_combine_list_æé è¿ = null; |
| | | |
| | | var arry_allMachineList = all_machine_ana_result_list.ToArray(); |
| | | for (int openPumpNum = 1; openPumpNum <= all_machine_ana_result_list.Count(); openPumpNum++) |
| | | { |
| | | //å¾å°æææåç»å |
| | | 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) |
| | | { |
| | | //æ£æ¥æ¯å¦ç¬¦å弿ºçº¦æ |
| | | List<long> machine_ids = (from x in open_machine_list select x.MachineID).ToList(); |
| | | |
| | | if (!IsAccordMachineRunFilter(machine_ids)) |
| | | { |
| | | continue; |
| | | } |
| | | var total_flow = (from x in open_machine_list select x.AnaItem50Hz.WorkPointQ).Sum(); |
| | | if (Math.Abs(this._targetQ - total_flow) < total_flow_æé è¿_dis) |
| | | { |
| | | if (total_flow_æé è¿ < total_flow) |
| | | { |
| | | if ((Math.Abs(total_flow_æé è¿ - total_flow) / this._targetQ) < 10) |
| | | continue; |
| | | } |
| | | total_flow_æé è¿ = total_flow; |
| | | total_flow_æé è¿_dis = Math.Abs(total_flow_æé è¿ - total_flow); |
| | | open_machine_combine_list_æé è¿ = open_machine_list.ToList(); |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | if (total_flow_æé è¿ > _targetQmax && total_flow_æé è¿ < this._targetQmin) |
| | | return null; |
| | | var project = new IStation.Calculation.DispatchAna.Model.AnaScheme(); |
| | | project.ID = 1; |
| | | project.TotalWrkQ = total_flow_æé è¿; |
| | | |
| | | var default_pump = open_machine_combine_list_æé è¿.FirstOrDefault(); |
| | | project.TotalWrkH = Math.Round(this.CalcHeadByPress(this._targetInletPress, |
| | | this._targetOutletPress, |
| | | default_pump.MachineDetail.InletCaliber, default_pump.MachineDetail.OutletCaliber, |
| | | total_flow_æé è¿ / open_machine_combine_list_æé è¿.Count()), 3); |
| | | project.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); |
| | | |
| | | foreach (var fixPump in open_machine_combine_list_æé è¿) |
| | | { |
| | | if (fixPump.AnaItem50Hz.WorkPointQ < 1) |
| | | continue; |
| | | |
| | | var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem50Hz); |
| | | |
| | | project.Items.Add(itemRow); |
| | | } |
| | | |
| | | |
| | | var ds_disp_project_list = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); |
| | | |
| | | |
| | | ds_disp_project_list.Add(project); |
| | | |
| | | project.UWP = Math.Round(project.UWP, 3); |
| | | project.WP = Math.Round(project.WP, 3); |
| | | project.SpanQ = Math.Round(project.TotalWrkQ - _targetQ, 0); |
| | | project.CalcItemParas(); |
| | | |
| | | |
| | | // 0 åç 1 æµéé´é |
| | | if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.åç) |
| | | ds_disp_project_list = (from x in ds_disp_project_list orderby x.TotalWrkP select x).ToList(); |
| | | else if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.æµéå·®å¼) |
| | | ds_disp_project_list = (from x in ds_disp_project_list orderby Math.Abs(x.SpanQ) select x).ToList(); |
| | | |
| | | |
| | | return ds_disp_project_list; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="open_machine_list"></param> |
| | |
| | | int fre_pump_count = 0; |
| | | double total_min_flow_弿ºæ³µ = 0; |
| | | double total_max_flow_弿ºæ³µ = 0; |
| | | |
| | | foreach (var machine in open_machine_list) |
| | | { |
| | | if (machine.AnaItem50Hz == null) |
| | | return 0; |
| | | |
| | | total_max_flow_弿ºæ³µ += machine.AnaItem50Hz.CurveInfoQH.Max; |
| | | |
| | | if (machine.IsFrequency) |
| | | { |
| | | { |
| | | if (!machine.AsFrequency) |
| | | { |
| | | fixPumpAnaCombine.Add(machine); |
| | |
| | | if (fre_pump_count == 0) |
| | | {//åªç¨åºé¢æ³µå³å¯ |
| | | var ret = AddOnlyFixPumpPrj(open_machine_list, _targetQ); |
| | | if(ret == null) |
| | | return 0; |
| | | else |
| | | if (ret) |
| | | return 1; |
| | | else |
| | | return 0; |
| | | } |
| | | else if (fre_pump_count == 1) |
| | | { //åªæä¸å°å颿³µ |
| | |
| | | anaData.CurveInfoQH = Machine.MaxCurveInfoQH; |
| | | anaData.CurveInfoQP = Machine.MaxCurveInfoQP; |
| | | anaData.Frequence = 50; |
| | | anaData.Speed = Machine.Ratedn; |
| | | anaData.Speed = Machine.RatedN; |
| | | |
| | | return new IStation.Calculation.DispatchAna.Model.FixPumpAnaData() { MachineID = Machine.MachineID, MachineDetail = Machine, AnaItem50Hz = anaData }; |
| | | } |
| | |
| | | |
| | | |
| | | #region æ·»å é¡¹ç® (åªç¨åºé¢æ³µ) |
| | | private IStation.Calculation.DispatchAna.Model.AnaScheme AddOnlyFixPumpPrj( |
| | | private bool AddOnlyFixPumpPrj( |
| | | IStation.Calculation.DispatchAna.Model.PumpAnaDataBase[] fixPumpAnaDataList, |
| | | double totalQ) |
| | | { |
| | | // |
| | | int pump_count = fixPumpAnaDataList.Count(); |
| | | var default_pump = fixPumpAnaDataList.First(); |
| | | var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); |
| | |
| | | |
| | | rowPrj.Items.Add(itemRow); |
| | | } |
| | | AddScheme(rowPrj, false); |
| | | |
| | | return rowPrj; |
| | | return AddScheme(rowPrj, false); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | |
| | | int addPrjNum = 0; |
| | | var freqPump = allFreqPumpAnaList.FirstOrDefault(); |
| | | { |
| | | { |
| | | var frePump_flow = (this._targetQ - fix_pump_total_flow); |
| | | double h = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); |
| | | Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, |
| | | freqPump.MachineDetail.InletCaliber, freqPump.MachineDetail.OutletCaliber, |
| | | (this._targetQ - fix_pump_total_flow) ), 3); |
| | | |
| | | freqPump.MachineDetail.InletCaliber, freqPump.MachineDetail.OutletCaliber, frePump_flow), 3); |
| | | var dp = new IStation.Model.CurvePoint(frePump_flow, h); |
| | | var wrkSpeed = IStation.Common.SpeedSimuCalculer.GetSimuValue( |
| | | freqPump.MachineDetail.MaxCurveInfoQH, |
| | | new IStation.Model.CurvePoint(_targetQ - fix_pump_total_flow, h), 2900); |
| | | |
| | | dp, 2900); |
| | | if (wrkSpeed < 0) |
| | | return 0;// |
| | | IStation.Calculation.DispatchAna.Model.AnaCurveItem currentAna = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); |
| | | |
| | | double fre = Math.Round(50 * wrkSpeed / 2900, 1); |