From 3886a51f03ec14650e5b7127539104ad40e496da Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 04 十二月 2024 20:36:12 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 100 insertions(+), 2 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs index c724738..f2d1533 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs @@ -10,6 +10,9 @@ using System.Threading.Tasks; using System.Windows.Forms; using Yw.EPAnet; +using Yw.Geometry; +using Yw.Pump; +using Yw.WinFrmUI.Phart; namespace HStation.WinFrmUI { @@ -97,13 +100,108 @@ this.txtP.EditValue = calcuResult.CalcuP.HasValue ? $"{Math.Round(calcuResult.CalcuP.Value, 1)}kW" : null; this.txtE.EditValue = calcuResult.CalcuE.HasValue ? $"{Math.Round(calcuResult.CalcuE.Value, 1)}%" : null; } - var matching = AssetsMatchingParasHelper.Create(_hydroInfo, pump, _allCalcuResultVisualDict.Values.ToList()); - //this.singlePumpCalcCtrl1.SetBindindData(matching); + var vm = CreateViewModel(pump); + this.pumpRunViewChart1.SetBindingData(vm); } } } + //鍒涘缓 + private PumpRunViewViewModel CreateViewModel(Yw.Model.HydroPumpInfo pump) + { + if (_hydroInfo == null) + { + return default; + } + var vm = new PumpRunViewViewModel(); + vm.Id = pump.Code; + vm.Name = pump.Name; + vm.CurveName = $"棰濆畾鏇茬嚎({pump.RatedHz}hz)"; + vm.RatedQ = pump.RatedQ.HasValue ? pump.RatedQ.Value : 0; + vm.RatedH = pump.RatedH.HasValue ? pump.RatedH.Value : 0; + vm.RatedP = pump.RatedP; + vm.RatedN = pump.RatedN.HasValue ? pump.RatedN.Value : 0; + vm.RatedHz = pump.RatedHz; + + var curveqh = _hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH); + if (curveqh != null) + { + var qh_pts = curveqh.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qh_pts != null && qh_pts.Count > 3) + { + vm.CurveQH = new CubicSpline2d(qh_pts); + } + } + + var curveqp = _hydroInfo.Curves?.Find(x => x.Code == pump.CurveQP); + if (curveqp != null) + { + var qp_pts = curveqp.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qp_pts != null && qp_pts.Count > 3) + { + vm.CurveQP = new CubicSpline2d(qp_pts); + } + } + + var curveqe = _hydroInfo.Curves?.Find(x => x.Code == pump.CurveQE); + if (curveqe != null) + { + var qepts = curveqe.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qepts != null && qepts.Count > 3) + { + vm.CurveQE = new CubicSpline2d(qepts); + } + } + + if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open) + { + vm.Items = new List<PumpRunViewItemViewModel>(); + var vmItem = new PumpRunViewItemViewModel(); + vm.Items.Add(vmItem); + vmItem.Id = string.Empty; + vmItem.Name = "杩愯"; + vmItem.Hz = Math.Round(pump.RatedHz * pump.SpeedRatio, 1); + if (pump.RatedN.HasValue) + { + vmItem.N = Math.Round(pump.RatedN.Value * pump.SpeedRatio, 1); + } + var calcuResult = _allCalcuResultVisualDict?.GetValue(pump.Code) as HydroCalcuPumpResult; + if (calcuResult != null) + { + vmItem.Q = calcuResult.CalcuQ ?? 0; + vmItem.H = calcuResult.CalcuH ?? 0; + vmItem.P = calcuResult.CalcuP; + vmItem.E = calcuResult.CalcuE; + } + vmItem.CurveName = $"杩愯鏇茬嚎({vmItem.Hz}hz)"; + + if (vm.CurveQH != null) + { + var qh_pts = vm.CurveQH.GetPointList(20); + var qh_run_pts = qh_pts.GetQHPointListByN(vm.RatedHz, vmItem.Hz); + vmItem.CurveQH = new CubicSpline2d(qh_run_pts); + } + + if (vm.CurveQP != null) + { + var qp_pts = vm.CurveQP.GetPointList(20); + var qp_run_pts = qp_pts.GetQPPointListByN(vm.RatedHz, vmItem.Hz); + vmItem.CurveQP = new CubicSpline2d(qp_run_pts); + } + + if (vm.CurveQE != null) + { + var qe_pts = vm.CurveQE.GetPointList(20); + var qe_run_pts = qe_pts.GetQEPointListByN(vm.RatedHz, vmItem.Hz); + vmItem.CurveQE = new CubicSpline2d(qe_run_pts); + } + + } + + return vm; + } + } } -- Gitblit v1.9.3