| | |
| | | /// <summary> |
| | | /// é¿å
´æ³µç«è°åº¦æ¹æ¡è®¡ç®å¨(æä¼æ¹æ¡) |
| | | /// </summary> |
| | | public class Calculator_OptAna_SHYS_é¿å
´å²: CalculatorOptAnaBase, IOptAnaCalc |
| | | public class Calculator_OptAna_SHYS_é¿å
´å²: CalculatorBase_SHYS_é¿å
´å², IOptAnaCalc |
| | | { |
| | | /// <summary> |
| | | /// / |
| | |
| | | } |
| | | } |
| | | double water_level = 0;//æ°´ä½ |
| | | if (complex_request_paras.WaterLevelPara != null && complex_request_paras.WaterLevelPara.Count > 0) |
| | | if (complex_request_paras.InletPipePara != null && complex_request_paras.InletPipePara.Count > 0) |
| | | { |
| | | //var inletLevel = paras.MonitorPointInfoList.Find(x => x.SignalType == IStation.SignalType.æ°´ä½); |
| | | //Elevation = inletLevel?.Elevation != null ? inletLevel.Elevation.Value : 0;//è·åæµç¹çæ é« |
| | | water_level = complex_request_paras.WaterLevelPara.First().Value; |
| | | water_level = complex_request_paras.InletPipePara.First().Value; |
| | | } |
| | | |
| | | //ä¸é´éé¨ç¶æ |
| | |
| | | Common.DispatchAnaGeneralHelperåå calc_pipe_helper = new Common.DispatchAnaGeneralHelperåå(); |
| | | calc_pipe_helper.InitialParas( |
| | | pipe1_TargetFlow + pipe2_TargetFlow, |
| | | water_level, |
| | | (pipe1_TargetPess + pipe2_TargetPess) / 2, |
| | | null, null, |
| | | _allMachineList, machine_run_status.MachineRunFilter); |
| | | water_level,true , |
| | | (pipe1_TargetPess + pipe2_TargetPess) / 2,false , |
| | | null, null, |
| | | _allMachineList, machine_run_status==null?null: machine_run_status.MachineRunFilter); |
| | | |
| | | return calc_pipe_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); |
| | | #endregion |
| | |
| | | else //éé¨å
³çç¶æä¸ ä¸¤ç®¡ç¸è¿æ°æ®ç¸å |
| | | { |
| | | #region ä¸é´éé¨å
³çç¶æä¸ |
| | | var pipe1_machineIds = new List<long>() { 19, 22 };//1å·æ³µï¼2å·æ³µ |
| | | var pipe2_machineIds = new List<long>() { 25, 28 };//3å·æ³µï¼4å·æ³µ |
| | | |
| | | |
| | | Common.DispatchAnaGeneralHelperåå calc_pipe1_helper = |
| | | new Common.DispatchAnaGeneralHelperåå(); |
| | | |
| | |
| | | {//åªå¼ä¸å·æ³µäºå·æ³µ |
| | | calc_pipe1_helper.InitialParas( |
| | | pipe1_TargetFlow, |
| | | water_level, |
| | | pipe1_TargetPess, |
| | | water_level,true , |
| | | pipe1_TargetPess,false , |
| | | null, null, |
| | | (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), |
| | | machine_run_status ==null?null: machine_run_status.MachineRunFilter); |
| | |
| | | { |
| | | calc_pipe2_helper.InitialParas( |
| | | pipe2_TargetFlow, |
| | | water_level, |
| | | pipe2_TargetPess, |
| | | null, null, |
| | | (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), |
| | | water_level, true, |
| | | pipe2_TargetPess, false, |
| | | null, null, |
| | | (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), |
| | | machine_run_status == null ? null : machine_run_status.MachineRunFilter); |
| | | |
| | | return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); |
| | | } |
| | | calc_pipe1_helper.InitialParas( |
| | | pipe1_TargetFlow, |
| | | water_level, |
| | | pipe1_TargetPess, |
| | | water_level, true, |
| | | pipe1_TargetPess, false, |
| | | null, null, |
| | | (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), |
| | | machine_run_status == null ? null : machine_run_status.MachineRunFilter); |
| | | var pipe1_result = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); |
| | | |
| | | if (pipe1_result == null) |
| | | { |
| | | error_info = String.Format("管路ä¸è°åº¦æ¹æ¡æ æ³è®¡ç®,è¯·ç¡®è®¤æ°æ®æ¯å¦åç,æ¶²ä½:{0}m,åºå£åå:{1}MPa,æµéè¦æ±:{2}", |
| | | water_level, pipe1_TargetPess, pipe1_TargetFlow); |
| | | return null; |
| | | } |
| | | |
| | | calc_pipe2_helper.InitialParas( |
| | | pipe2_TargetFlow, |
| | | water_level, |
| | | pipe2_TargetPess, |
| | | water_level,true , |
| | | pipe2_TargetPess,false , |
| | | null, null, |
| | | (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), |
| | | machine_run_status == null ? null : machine_run_status.MachineRunFilter); |
| | | |
| | | var pipe2_result = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); |
| | | |
| | | if (pipe1_result == null || pipe2_result == null) |
| | | return default; |
| | | if (pipe2_result == null) |
| | | { |
| | | error_info = String.Format("管路äºè°åº¦æ¹æ¡æ æ³è®¡ç®,è¯·ç¡®è®¤æ°æ®æ¯å¦åç,æ¶²ä½:{0}m,åºå£åå:{1}MPa,æµéè¦æ±:{2}", |
| | | water_level, pipe2_TargetPess, pipe2_TargetFlow); |
| | | return null; |
| | | } |
| | | |
| | | var result_1 = pipe1_result.First(); |
| | | var result_2 = pipe2_result.First(); |
| | |
| | | else //éé¨å
³çç¶æä¸ ä¸¤ç®¡ç¸è¿æ°æ®ç¸å |
| | | { |
| | | #region ä¸é´éé¨å
³çç¶æä¸ |
| | | var pipe1_machineIds = new List<long>() { 19, 22 };//1å·æ³µï¼2å·æ³µ |
| | | var pipe2_machineIds = new List<long>() { 25, 28 };//3å·æ³µï¼4å·æ³µ |
| | | |
| | | |
| | | |
| | | Common.DispatchAnaGeneralHelperæ¬ç¨ calc_pipe1_helper = |
| | |
| | | var plan = new Model.AnaScheme(); |
| | | plan.ID = 1; |
| | | plan.TotalWrkQ = result_1.TotalWrkQ + result_2.TotalWrkQ; |
| | | plan.TotalWrkH = result_1.TotalWrkH + result_2.TotalWrkH; |
| | | plan.TotalWrkH = (result_1.TotalWrkH + result_2.TotalWrkH)/2; |
| | | plan.TotalWrkP = result_1.TotalWrkP + result_2.TotalWrkP; |
| | | plan.TotalWrkE = IStation.Common.PumpParaHelper.CalculateE(plan.TotalWrkQ, plan.TotalWrkH, plan.TotalWrkP); |
| | | plan.UWP = CalculateUWP(plan.TotalWrkP, plan.TotalWrkQ, plan.TotalWrkH); |