ningshuxia
10 天以前 1519533649b43337d214523f7cd075edf237b3f7
02-desktop/Desktop/IStation.Test/helper/DynamicThresholdProcessorHelper.cs
@@ -4,44 +4,7 @@
    public class DynamicThresholdProcessorHelper
    {
        public static List<(int, double, double)> Filter(List<(int, double, double)> ptList)
        {
            var pressures = ptList.Select(p => p.Item3).ToList();
            // 计算统计量
            var (mean, stdDev) = CalculateStats(pressures);
            double skewness = CalculateSkewness(pressures);
            // 动态调整σ倍数
            double sigmaMultiplier = CalculateSigmaMultiplier(skewness);
            sigmaMultiplier = 3;//目前默认 标准差
            // 计算边界
            double lower = mean - sigmaMultiplier * stdDev;
            double upper = mean + sigmaMultiplier * stdDev;
            return ptList.Where(p => p.Item3 >= lower && p.Item3 <= upper).ToList();
        }
        public static List<PointViewModel> Filter(List<PointViewModel> ptList)
        {
            var pressures = ptList.Select(p => p.Y).ToList();
            // 计算统计量
            var (mean, stdDev) = CalculateStats(pressures);
            double skewness = CalculateSkewness(pressures);
            // 动态调整σ倍数
            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();
        }
        public static List<PumpViewModel> Filter(List<PumpViewModel> ptList)
        {
@@ -119,7 +82,7 @@
        }
        // 动态σ倍数计算规则
        private static double CalculateSigmaMultiplier(double skewness)
        public static double CalculateSigmaMultiplier(double skewness)
        {
            return skewness switch