| | |
| | | // 修正组合偏差 |
| | | static void Main(string[] args) |
| | | { |
| | | |
| | | var splineList = new List<CurvePoint>(); |
| | | var measuredList = new List<CurvePoint>(); |
| | | |
| | | var name = "22_30"; |
| | | var path = AppDomain.CurrentDomain.BaseDirectory; |
| | | var lienPaht = path + @"\pumpcsv\23_44_old_curve.csv"; |
| | | var measuredPath = path + @"\pumpcsv\23_44.csv"; |
| | | var lienPaht = path + @$"\pumpcsv\{name}_old_curve.csv"; |
| | | var measuredPath = path + @$"\pumpcsv\{name}.csv"; |
| | | |
| | | using (var fs = new FileStream(lienPaht, FileMode.Open, FileAccess.Read)) |
| | | using (var sr = new StreamReader(fs, Encoding.UTF8)) |
| | |
| | | |
| | | |
| | | |
| | | var helper = new PumpCurveDataFusionCorrectorHelper(); |
| | | (double[] mergedX, double[] mergedY, double[] optimizedX, double[] optimizedY) = helper.Corrent(splineX, splineY, measuredXAll, measuredYAll); |
| | | //var helper = new PumpCurveDataFusionCorrectorHelper(); |
| | | var helper = new PumpCurveDataFusionCorrectorHelper2(); |
| | | (double[] mergedX, double[] mergedY, double[] optimizedX, double[] optimizedY) = |
| | | helper.Corrent(splineX, splineY, measuredXAll, measuredYAll); |
| | | |
| | | Console.WriteLine($"{splineX.Min()},{splineX.Max()}"); |
| | | Console.WriteLine($"{mergedX.Min()},{mergedX.Max()}"); |
| | |
| | | pt_list.Add(new CurvePoint(x,y)); |
| | | } |
| | | var fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "pumpcsv"); |
| | | CsvHelper.ExportToCsv(pt_list, Path.Combine(fullPath, $"23_44_update_curve.csv")); |
| | | CsvHelper.ExportToCsv(pt_list, Path.Combine(fullPath, @$"{name}_update_curve.csv")); |
| | | |
| | | Console.WriteLine("ok"); |
| | | Console.ReadKey(); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // 配置类(假设) |
| | | public static class Config |
| | | { |
| | | public const double Z_SCORE_THRESHOLD = 2.5; |
| | | public const double TRANSITION_WIDTH = 500.0; |
| | | } |
| | | |
| | | // Z-Score 计算辅助类 |
| | | public class ZScore |
| | | { |
| | | private readonly double[] _data; |
| | | private readonly double _mean; |
| | | private readonly double _stdDev; |
| | | |
| | | public ZScore(double[] data) |
| | | { |
| | | _data = data; |
| | | _mean = data.Mean(); |
| | | _stdDev = data.StandardDeviation(); |
| | | } |
| | | |
| | | public double[] Scores |
| | | { |
| | | get |
| | | { |
| | | double[] scores = new double[_data.Length]; |
| | | for (int i = 0; i < _data.Length; i++) |
| | | { |
| | | scores[i] = (_data[i] - _mean) / _stdDev; |
| | | } |
| | | return scores; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |