From 95e3126651429a0639d19f43a9aa00aeb714dc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steinar=20Elgs=C3=A6ter?= Date: Wed, 4 Dec 2024 10:04:34 +0100 Subject: [PATCH] - ClosedLoopUnitIdentifier changed to static for convenience --- Dynamic/Identification/ClosedLoopUnitIdentifier.cs | 8 ++++---- ...lantSimulatorHelper.cs => PlantSimulatorSerializer.cs} | 0 TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs | 3 +-- .../FindDisturbanceAndModelSimultanouslyTester_MISO.cs | 3 +-- .../FindDisturbanceAndModelSimultanouslyTester_SISO.cs | 3 +-- 5 files changed, 7 insertions(+), 10 deletions(-) rename Dynamic/PlantSimulator/{PlantSimulatorHelper.cs => PlantSimulatorSerializer.cs} (100%) diff --git a/Dynamic/Identification/ClosedLoopUnitIdentifier.cs b/Dynamic/Identification/ClosedLoopUnitIdentifier.cs index 2282a76..5425f53 100644 --- a/Dynamic/Identification/ClosedLoopUnitIdentifier.cs +++ b/Dynamic/Identification/ClosedLoopUnitIdentifier.cs @@ -54,7 +54,7 @@ public class ClosedLoopUnitIdentifier /// the index of the PID-input to the unit model /// /// The unit model, with the name of the newly created disturbance added to the additiveInputSignals - public (UnitModel, double[]) Identify(UnitDataSet dataSet, PidParameters pidParams = null, int pidInputIdx = 0) + public static (UnitModel, double[]) Identify(UnitDataSet dataSet, PidParameters pidParams = null, int pidInputIdx = 0) { bool wasGainGlobalSearchDone = false; bool doTimeDelayEstOnRun1 = false; @@ -344,7 +344,7 @@ public class ClosedLoopUnitIdentifier return (identUnitModel,disturbance); } - private Tuple GlobalSearchLinearPidGain(UnitDataSet dataSet, PidParameters pidParams, int pidInputIdx, + private static Tuple GlobalSearchLinearPidGain(UnitDataSet dataSet, PidParameters pidParams, int pidInputIdx, UnitModel unitModel_run1, double pidProcessInputInitalGainEstimate, double minPidProcessGain, double maxPidProcessGain, FittingSpecs fittingSpecs, int numberOfGlobalSearchIterations = 40) { @@ -581,7 +581,7 @@ private Tuple GlobalSearchLinearPidGain(UnitDataSet dataSet, P return new Tuple(bestUnitModel, gainUnc); } - private Tuple EstimateSISOdisturbanceForProcGain( UnitModel referenceMISOmodel, + private static Tuple EstimateSISOdisturbanceForProcGain( UnitModel referenceMISOmodel, double pidLinProcessGain, int pidInputIdx, UnitDataSet dataSet, PidParameters pidParams) { var alternativeModel = new UnitModel(referenceMISOmodel.modelParameters.CreateCopy(), "SISO"); @@ -631,7 +631,7 @@ private Tuple EstimateSISOdisturbanceForProcGain /// disturbance vector /// optional name used for plotting /// - public bool ClosedLoopSim(UnitDataSet unitData, UnitParameters modelParams, PidParameters pidParams, + public static bool ClosedLoopSim(UnitDataSet unitData, UnitParameters modelParams, PidParameters pidParams, double[] disturbance,string name="") { if (pidParams == null) diff --git a/Dynamic/PlantSimulator/PlantSimulatorHelper.cs b/Dynamic/PlantSimulator/PlantSimulatorSerializer.cs similarity index 100% rename from Dynamic/PlantSimulator/PlantSimulatorHelper.cs rename to Dynamic/PlantSimulator/PlantSimulatorSerializer.cs diff --git a/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs b/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs index a92586d..d676bc5 100644 --- a/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs +++ b/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs @@ -196,8 +196,7 @@ void ClosedLoopId() Assert.IsTrue(isOk); var pidDataSet = processSim.GetUnitDataSetForPID(inputData.Combine(simData), pidModel1); - var modelId = new ClosedLoopUnitIdentifier(); - (var identifiedModel, var estDisturbance) = modelId.Identify(pidDataSet, pidModel1.GetModelParameters()); + (var identifiedModel, var estDisturbance) = ClosedLoopUnitIdentifier.Identify(pidDataSet, pidModel1.GetModelParameters()); Console.WriteLine(identifiedModel.ToString()); diff --git a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_MISO.cs b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_MISO.cs index 6bbd7b2..a879821 100644 --- a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_MISO.cs +++ b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_MISO.cs @@ -322,8 +322,7 @@ public void GenericMISODisturbanceTest (UnitModel trueProcessModel, double[] tr pidDataSet.U[500,0] = Double.NaN; } - var modelId = new ClosedLoopUnitIdentifier(); - (var identifiedModel, var estDisturbance) = modelId.Identify(pidDataSet, pidModel1.GetModelParameters(), pidInputIdx); + (var identifiedModel, var estDisturbance) = ClosedLoopUnitIdentifier.Identify(pidDataSet, pidModel1.GetModelParameters(), pidInputIdx); Console.WriteLine(identifiedModel.ToString()); Console.WriteLine(); diff --git a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs index 695a44d..d5c2db0 100644 --- a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs +++ b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs @@ -314,8 +314,7 @@ public void GenericDisturbanceTest (UnitModel trueProcessModel, double[] trueDi } - var modelId = new ClosedLoopUnitIdentifier(); - (var identifiedModel, var estDisturbance) = modelId.Identify(pidDataSet, pidModel1.GetModelParameters()); + (var identifiedModel, var estDisturbance) = ClosedLoopUnitIdentifier.Identify(pidDataSet, pidModel1.GetModelParameters()); Console.WriteLine(identifiedModel.ToString()); Console.WriteLine();