From 38aac127f295bcf21002cec61eca2b4d9e5ffb67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steinar=20Elgs=C3=A6ter?= Date: Thu, 14 Mar 2024 14:05:43 +0100 Subject: [PATCH] -added example in documentation about identification of a step disturbance --- .../ClosedLoopUnitIdentifier.cs | 4 + .../Examples/SystemIdent.cs | 71 +++++++++++++++++- ...urbanceAndModelSimultanouslyTester_SISO.cs | 2 +- TimeSeriesAnalysis.csproj | 2 +- docs/articles/images/sysid_ex_closedloop1.png | Bin 0 -> 59244 bytes docs/articles/images/sysid_ex_closedloop2.png | Bin 0 -> 42353 bytes docs/articles/images/sysid_ex_closedloop3.png | Bin 0 -> 48367 bytes docs/articles/images/sysid_ex_closedloop4.png | Bin 0 -> 41941 bytes docs/articles/sysid_disturbance.md | 5 +- docs/articles/sysid_ex_closedloop.md | 52 +++++++++++++ docs/articles/toc.yml | 4 +- 11 files changed, 133 insertions(+), 7 deletions(-) create mode 100644 docs/articles/images/sysid_ex_closedloop1.png create mode 100644 docs/articles/images/sysid_ex_closedloop2.png create mode 100644 docs/articles/images/sysid_ex_closedloop3.png create mode 100644 docs/articles/images/sysid_ex_closedloop4.png create mode 100644 docs/articles/sysid_ex_closedloop.md diff --git a/Dynamic/Identification/ClosedLoopUnitIdentifier.cs b/Dynamic/Identification/ClosedLoopUnitIdentifier.cs index c73508b7..a4d73c3a 100644 --- a/Dynamic/Identification/ClosedLoopUnitIdentifier.cs +++ b/Dynamic/Identification/ClosedLoopUnitIdentifier.cs @@ -312,6 +312,10 @@ public class ClosedLoopUnitIdentifier identUnitModel.modelParameters.Fitting.SolverID = "ClosedLoop local (NO global search)"; identUnitModel.modelParameters.Fitting.NFittingTotalDataPoints = dataSet.GetNumDataPoints(); } + // closed-loop simulation, adds U_sim and Y_sim to "dataset" + { + ClosedLoopSim(dataSet, identUnitModel.modelParameters, pidParams, disturbance); + } return (identUnitModel,disturbance); } diff --git a/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs b/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs index c51c2e99..091cb03e 100644 --- a/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs +++ b/TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs @@ -27,6 +27,12 @@ public void PidIdent_Ex() PidModelId(); } + [TestCase, Explicit] + public void ClosedLoop_Ex() + { + ClosedLoopId(); + } + #region ex_NONLINEAR_UNIT_MODEL public void NonlinearUnitModel() @@ -140,7 +146,70 @@ void PidModelId() Array2D.GetColumn(pidDataSet.U_sim,(int)INDEX.FIRST) }, new List{ "y1=y_sim", "y1=y_set","y3=u_pid","y3=u_pid(id)" },timeBase_s); } - #endregion + #endregion + + //adopted from Dynamic_DistStep_EstiamtesOk(5,5) unit test + #region ex_CLOSED_LOOP + void ClosedLoopId() + { + PidParameters pidParameters1 = new PidParameters() + { + Kp = 0.2, + Ti_s = 20 + }; + UnitParameters trueModelParameters = new UnitParameters + { + TimeConstant_s = 10, + LinearGains = new double[] { 1.5 }, + TimeDelay_s = 5, + Bias = 5 + }; + + double stepAmplitude = 5; + int timeBase_s = 1; + int N = 300; + var trueDisturbance = TimeSeriesCreator.Step(100, N, 0, stepAmplitude); + + var trueProcessModel = new UnitModel(trueModelParameters, "TrueProcessModel"); + + // create synthetic dataset + var pidModel1 = new PidModel(pidParameters1, "PID1"); + + var processSim = new PlantSimulator( + new List { pidModel1, trueProcessModel }); + processSim.ConnectModels(trueProcessModel, pidModel1); + processSim.ConnectModels(pidModel1, trueProcessModel); + var inputData = new TimeSeriesDataSet(); + + inputData.Add(processSim.AddExternalSignal(pidModel1, SignalType.Setpoint_Yset), TimeSeriesCreator.Constant(50, N)); + inputData.Add(processSim.AddExternalSignal(trueProcessModel, SignalType.Disturbance_D), trueDisturbance); + inputData.CreateTimestamps(timeBase_s); + var isOk = processSim.Simulate(inputData, out TimeSeriesDataSet simData); + Assert.IsTrue(isOk); + var pidDataSet = processSim.GetUnitDataSetForPID(inputData.Combine(simData), pidModel1); + + var modelId = new ClosedLoopUnitIdentifier(); + (var identifiedModel, var estDisturbance) = modelId.Identify(pidDataSet, pidModel1.GetModelParameters()); + + Console.WriteLine(identifiedModel.ToString()); + + Shared.EnablePlots(); + Plot.FromList(new List{ pidDataSet.Y_meas, pidDataSet.Y_setpoint, + pidDataSet.U.GetColumn(0), trueDisturbance }, + new List { "y1=y meas", "y1=y set", "y2=u(right)", "y3=true disturbance" }, + pidDataSet.GetTimeBase(), "ClosedLoopId_dataset"); + Plot.FromList(new List{ estDisturbance, trueDisturbance }, + new List { "y1=est disturbance", "y1=true disturbance" }, + pidDataSet.GetTimeBase(), "ClosedLoopId_disturbances"); + Plot.FromList(new List { pidDataSet.Y_meas, pidDataSet.Y_sim }, + new List { "y1=y_meas", "y1=y_sim" }, + pidDataSet.GetTimeBase(), "ClosedLoopId_ysim"); + Plot.FromList(new List { pidDataSet.U.GetColumn(0), pidDataSet.U_sim.GetColumn(0) }, + new List { "y1=u_meas", "y1=u_sim" }, + pidDataSet.GetTimeBase(), "ClosedLoopId_usim"); + Shared.DisablePlots(); + } + #endregion } } diff --git a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs index 960ba757..467d1eb4 100644 --- a/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs +++ b/TimeSeriesAnalysis.Tests/Tests/FindDisturbanceAndModelSimultanouslyTester_SISO.cs @@ -39,7 +39,7 @@ class FindDisturbanceAndModelSimultanouslyTester_SISO int timeBase_s = 1; - int N = 300;// TODO:influences the results! + int N = 300; DateTime t0 = new DateTime(2010,1,1); diff --git a/TimeSeriesAnalysis.csproj b/TimeSeriesAnalysis.csproj index 68712f43..183f6144 100644 --- a/TimeSeriesAnalysis.csproj +++ b/TimeSeriesAnalysis.csproj @@ -14,7 +14,7 @@ False https://github.com/equinor/TimeSeriesAnalysis.git readme.md - 1.3.09 + 1.3.10 Equinor Equinor true diff --git a/docs/articles/images/sysid_ex_closedloop1.png b/docs/articles/images/sysid_ex_closedloop1.png new file mode 100644 index 0000000000000000000000000000000000000000..d6cf5cce26c014145a472348615877c04decdd24 GIT binary patch literal 59244 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 JSh9Ni{{T>7Vj=(l literal 0 HcmV?d00001 diff --git a/docs/articles/images/sysid_ex_closedloop2.png b/docs/articles/images/sysid_ex_closedloop2.png new file mode 100644 index 0000000000000000000000000000000000000000..f7166cd1120f4478568522347b3f57f5f5dfdabd GIT binary patch literal 42353 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 JWbCuM`ai>28x8;f literal 0 HcmV?d00001 diff --git a/docs/articles/images/sysid_ex_closedloop3.png b/docs/articles/images/sysid_ex_closedloop3.png new file mode 100644 index 0000000000000000000000000000000000000000..aa85101b78f4fe43249f02d3b83b4c23998ce1dc GIT binary patch literal 48367 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 literal 0 HcmV?d00001 diff --git a/docs/articles/images/sysid_ex_closedloop4.png b/docs/articles/images/sysid_ex_closedloop4.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6453a352e279126875780c5e096fd43541cdd8 GIT binary patch literal 41941 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 literal 0 HcmV?d00001 diff --git a/docs/articles/sysid_disturbance.md b/docs/articles/sysid_disturbance.md index 1b8d6194..8ebe0d84 100644 --- a/docs/articles/sysid_disturbance.md +++ b/docs/articles/sysid_disturbance.md @@ -106,9 +106,8 @@ to the algorithm, so that the algorith can infer about the control error ``e``. > closed-loop be positive process gains. ### First, model-free estimate - -In order to initialize the sequential estimation, a model-free estimate of the disturbance -is require initially. +A model-free estimate of the disturbance is required to initialize +subsequent sequential estimation. For the first iteration, all process dynamics and nonlinearities are neglected, a linear static model essentially boils down to estimating the process gain. diff --git a/docs/articles/sysid_ex_closedloop.md b/docs/articles/sysid_ex_closedloop.md new file mode 100644 index 00000000..178e3aaa --- /dev/null +++ b/docs/articles/sysid_ex_closedloop.md @@ -0,0 +1,52 @@ + +This example shows how the ``ClosedLoodIdentifier`` can be used to identify a model of a closed-loop system +as well as the disturbance (a time-series) that acted on the system. + +The code for this example: +[!code-csharp[Examples](../../TimeSeriesAnalysis.Tests/Examples/SystemIdent.cs?name=ex_CLOSED_LOOP)] + +The output of ``idModel.ToString()`` gives details on the model: +``` +ABLE to identify +TimeConstant : 12 sec +TimeDelay : 0 sec +ProcessGains(at u0) : + 1.57 ± 4 + -> Linear Gain : + 1.57 ± 4 + -> Curvature Gain : + NaN ± NaN + -> u0 : [30] + -> uNorm : [1] +Bias : 50 ± 1.6 +``` + +The dataset created is shown below, a disturbance step creates a first order respone in the output ''y_meas'', as the +PID-controller works to bring ''y_meas'' back to the setpoint ''y_set``. In a real dataset, the actual disturbance would of course be unkown, +but the advantage of creating a synthetic dataet is that the disturbance is known and can be compared to the estimate. + +![Ex_Dataset](./images/sysid_ex_closedloop1.png) + +The below three plots show the comparison of ``u``, ``y`` and disturbance ``d`` for the given syntethic dataset with the result of + `ClosedLoopIdentifer''. + +![Ex_u](./images/sysid_ex_closedloop2.png) + +![Ex_y](./images/sysid_ex_closedloop3.png) + +![Ex_d](./images/sysid_ex_closedloop4.png) + + +The measured and simulated ``y`` generally always tend to match due to how the disturbance signal is defined ``y_meas = y_model +d``, +so in essence the disturbance signal is selected so that these two signals match. + +The measured and simulated ``u`` on the other hand do not neccesarily need to match, but ``ClosedLoopIdentifier`` has by a combination +of trial and error, and knowledge of the Pid-paramters chosen the UnitModel so that measured and simulated ``u`` match as closely as possible. + +While the actual gain was ``1.5`` and time-constant was ``10s``, the estimated result were ``1.57`` and ``12s``, thus the estimate of +the distubance signal ``d''has a small transient overshoot and a slightly too high amplitude as well, but the estimate is still quite good, given the +complex nature of estimating processes in closed-loop. + +This example is significant, because once the disturbance signal can be estimated, it becomes possible to +1. analyze correlation among PID-control loops to quantify the coupling, and +2. to re-simulate "what-if" simulations, of how the disturbance could have been rejected by other PID-tunings or even other control structures \ No newline at end of file diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml index de38476f..ec16448e 100644 --- a/docs/articles/toc.yml +++ b/docs/articles/toc.yml @@ -71,7 +71,9 @@ - name: Nonlinear unit model identification href: sysid_ex_nonlin.md - name: PID model identification - href: sysid_ex_pid.md + href: sysid_ex_pid.md + - name: Closed-loop identification (disturbances) + href: sysid_ex_closedloop.md