From af52a79c029c6f0123dc37ee024db5936ab4f42e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steinar=20Elgs=C3=A6ter?= Date: Fri, 12 Jan 2024 14:09:46 +0100 Subject: [PATCH] correlation calculator: turn two hard-coded constants into optional method inputs --- TimeSeriesAnalysis/CorrelationCalculator.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/TimeSeriesAnalysis/CorrelationCalculator.cs b/TimeSeriesAnalysis/CorrelationCalculator.cs index 804b4a36..eb7856a1 100644 --- a/TimeSeriesAnalysis/CorrelationCalculator.cs +++ b/TimeSeriesAnalysis/CorrelationCalculator.cs @@ -94,13 +94,14 @@ public static double Calculate(double[] signal1, double[] signal2, List ind /// /// /// the dataset, which must have a correctly set timestamps in order to estimate time constants + /// calculate time-shift for every corr coeff that is above this threshold(0.0-1.0) + /// for a time-shift to be valid, the resulting model nees to have Rsq over this threshold /// a - public static List CalculateAndOrder(string mainSignalName, TimeSeriesDataSet dataSet) + public static List CalculateAndOrder(string mainSignalName, TimeSeriesDataSet dataSet, + double minimumCorrCoeffToDoTimeshiftCalc=0.4,double minimumRsqAbs = 10) { - const double minimumCorrCoeffToDoTimeshiftCalc = 0.4; - (double?,double?) EstiamteTimeShift(double[] signalIn, double[] signalOut) + (double?,double?) EstimateTimeShift(double[] signalIn, double[] signalOut) { - const double minimumRsqAbs = 10; var dataSetUnit = new UnitDataSet(); dataSetUnit.Y_meas = signalOut; dataSetUnit.U = Array2D.CreateFromList(new List { signalIn }); @@ -148,7 +149,7 @@ public static List CalculateAndOrder(string mainSignalName, T double[] curSignalValues = dataSet.GetValues(curSignalName); if (curSignalValues != null) { - (timeConstant_s,timeDelay_s) = EstiamteTimeShift(curSignalValues,mainSignalValues); + (timeConstant_s,timeDelay_s) = EstimateTimeShift(curSignalValues,mainSignalValues); // else { // check if it is possible to identify model if we reverse which signal is in and which is out. // var timeShiftReversed = EstiamteTimeShift(mainSignalValues,curSignalValues );