ningshuxia
10 天以前 1519533649b43337d214523f7cd075edf237b3f7
02-desktop/Desktop/IStation.Test/helper/DynamicThresholdProcessorHelper.cs
@@ -3,9 +3,12 @@
    public class DynamicThresholdProcessorHelper
    {
        public static List<PointViewModel> Filter(List<PointViewModel> ptList)
        public static List<PumpViewModel> Filter(List<PumpViewModel> ptList)
        {
            var pressures = ptList.Select(p => p.Y).ToList();
            var pressures = ptList.Select(p => p.PressureDiff).ToList();
            // 计算统计量
            var (mean, stdDev) = CalculateStats(pressures);
@@ -14,12 +17,11 @@
            double sigmaMultiplier = CalculateSigmaMultiplier(skewness);
            sigmaMultiplier = 3;//目前默认 标准差
            // 计算边界
            double lower = mean - sigmaMultiplier * stdDev;
            double upper = mean + sigmaMultiplier * stdDev;
            return ptList.Where(p => p.Y >= lower && p.Y <= upper).ToList();
            return ptList.Where(p => p.PressureDiff >= lower && p.PressureDiff <= upper).ToList();
        }
        public static List<Model.StationSignalRecord> Filter(List<Model.StationSignalRecord> ptList)
@@ -63,7 +65,7 @@
        // 核心统计计算
        private static (double mean, double stdDev) CalculateStats(List<double> values)
        public static (double mean, double stdDev) CalculateStats(List<double> values)
        {
            double mean = values.Average();
            double stdDev = Math.Sqrt(values.Sum(v => Math.Pow(v - mean, 2)) / (values.Count - 1));
@@ -71,7 +73,7 @@
        }
        // 偏度计算(Pearson's moment coefficient)
        private static double CalculateSkewness(List<double> values)
        public static double CalculateSkewness(List<double> values)
        {
            double mean = values.Average();
            double std = CalculateStats(values).stdDev;
@@ -80,7 +82,7 @@
        }
        // 动态σ倍数计算规则
        private static double CalculateSigmaMultiplier(double skewness)
        public static double CalculateSigmaMultiplier(double skewness)
        {
            return skewness switch