Skip to content

Commit

Permalink
correlation calculator: turn two hard-coded constants into optional m…
Browse files Browse the repository at this point in the history
…ethod inputs
  • Loading branch information
Steinar Elgsæter committed Jan 12, 2024
1 parent 96dee0c commit af52a79
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions TimeSeriesAnalysis/CorrelationCalculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,14 @@ public static double Calculate(double[] signal1, double[] signal2, List<int> ind
/// </summary>
/// <param name="mainSignalName"></param>
/// <param name="dataSet">the dataset, which must have a correctly set timestamps in order to estimate time constants</param>
/// <param name="minimumCorrCoeffToDoTimeshiftCalc">calculate time-shift for every corr coeff that is above this threshold(0.0-1.0)</param>
/// <param name="minimumRsqAbs">for a time-shift to be valid, the resulting model nees to have Rsq over this threshold</param>
/// <returns>a</returns>
public static List<CorrelationObject> CalculateAndOrder(string mainSignalName, TimeSeriesDataSet dataSet)
public static List<CorrelationObject> 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<double>.CreateFromList(new List<double[]> { signalIn });
Expand Down Expand Up @@ -148,7 +149,7 @@ public static List<CorrelationObject> 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 );
Expand Down

0 comments on commit af52a79

Please sign in to comment.