HStation.Xhs.Core.sdf | 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/PBS.WinFrmUI.Hydro/03-model-edit/00-core/ModelEditPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/DynamicThresholdProcessor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/04-special/01-operation/PumpOperationChart.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/04-special/02-working-view/PumpWorkingViewChart.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HStation.Xhs.Core.sdfBinary files differ
WinFrmUI/PBS.WinFrmUI.Hydro/03-model-edit/00-core/ModelEditPage.cs
@@ -4,7 +4,7 @@ { public partial class ModelEditPage : DocumentPage { public ModelEditPage() public ModelEditPage() { InitializeComponent(); this.facilityTreeListCtrl1.SelectFacilityEvent += FacilityTreeListCtrl1_SelectFacilityEvent; @@ -18,6 +18,7 @@ private PropertyForm _propertyForm; private bool _isInitial = false; /// <summary> /// 初始化数据源 /// </summary> WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/DynamicThresholdProcessor.cs
@@ -1,22 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PBS.WinFrmUI.Hydro namespace PBS.WinFrmUI.Hydro { public class DynamicThresholdProcessor { { public static List<Yw.Geometry.Point2d> FilterWithDynamicSigma(List<Yw.Geometry.Point2d> rawData) { return ProcessGroup(rawData); } private static List<Yw.Geometry.Point2d> ProcessGroup(List<Yw.Geometry.Point2d> group) { { const int minSize = 3; if (group.Count < minSize) if (group.Count < minSize) return group; var pressures = group.Select(p => p.Y).ToList(); @@ -24,24 +20,24 @@ // 计算统计量 var (mean, stdDev) = CalculateStats(pressures); double skewness = CalculateSkewness(pressures); if (group.Count > 5) { } // 动态调整σ倍数 double sigmaMultiplier = CalculateSigmaMultiplier(skewness); if (sigmaMultiplier==3) { } // 计算边界 double lower = mean - sigmaMultiplier * stdDev; double upper = mean + sigmaMultiplier * stdDev; return group.Where(p => p.Y >= lower && p.Y <= upper).ToList(); } // 核心统计计算 private static (double mean, double stdDev) CalculateStats(List<double> values) @@ -50,6 +46,7 @@ double stdDev = Math.Sqrt(values.Sum(v => Math.Pow(v - mean, 2)) / (values.Count - 1)); return (mean, stdDev); } // 偏度计算(Pearson's moment coefficient) private static double CalculateSkewness(List<double> values) @@ -60,10 +57,10 @@ return (sum * values.Count) / ((values.Count - 1) * (values.Count - 2)); } // 动态σ倍数计算规则 private static double CalculateSigmaMultiplier(double skewness) { { return skewness switch { > 1.0 => 2.0, // 强正偏态 @@ -74,5 +71,6 @@ }; } } } WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs
@@ -1,7 +1,5 @@ using DevExpress.CodeParser; using DevExpress.Utils; using DevExpress.Utils; using DevExpress.XtraCharts; using System.Linq; using Yw.WinFrmUI.Phart; namespace PBS.WinFrmUI.Hydro WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/04-special/01-operation/PumpOperationChart.cs
@@ -367,9 +367,17 @@ return; } var equip_pt_list = Yw.Pump.PerformParabolaHelper.GetEquipCurvePointListByQH(_vm.CurveQH.GetPerformCurve(Yw.Ahart.eCurveType.QH, _feat_type_qh), _equip_pt, start_head.Value, 30, true, out Yw.Geometry.Point2d sect_pt); if (equip_pt_list == null || sect_pt == null) var temp_curve = _vm.CurveQH.GetPerformCurve(Yw.Ahart.eCurveType.QH, _feat_type_qh); var equip_pt_list = Yw.Pump.PerformParabolaHelper.GetEquipCurvePointListByQH(temp_curve, _equip_pt, start_head.Value, 30, true, out Yw.Geometry.Point2d sect_pt); if (equip_pt_list == null || !equip_pt_list.Any()) return; if (equip_pt_list.Exists(x=>x.IsInvalid())) return; if (sect_pt==null) return; double flow = 0, head = 0; WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/04-special/02-working-view/PumpWorkingViewChart.cs
@@ -445,8 +445,12 @@ { var qh_pt_list = vm.CurveQH.GetPointList(_feat_type_qh); var max_ratio = vm.Q / qh_pt_list.Max(x => x.X) * 1.05; { { qh_pt_list = qh_pt_list.GetExpandPointList(_feat_type_qh, 1, max_ratio); if (qh_pt_list == null || !qh_pt_list.Any()) { continue; } var xxx = qh_pt_list.Select(x => x.X); var yyy = qh_pt_list.Select(x => x.Y);