Process gain in System Identification seems off by 100
Ältere Kommentare anzeigen
Hello,
Running a simple first order test process through System Identification, to make sure I understand the results.
The .mat file is attached with data, after which I import into a iddata.
The output of my data changes from 1000 down to 0 (data does not run far enough to get all the way to 0) and the input changes from 6 to 5.
I would expect a process gain of 1000 / 1 = 1000. However, SI is giving me 10?
Time constant is correct at 0.71sec. Delay is correct at 0.
load ("data.mat", "import");
model = iddata(import.out, import.co, 0.001)
3 Kommentare
Kurt
am 4 Jun. 2024
Kurt
am 5 Jun. 2024
Mathieu NOE
am 7 Jun. 2024
hello
you make your calculations your way , which is maybe not how SI interpret your data , or the way you give data to matlab (and also SI does not know if your output is going to really go down to zero, only you know that)
in other words you compute the plant DC gain based on the variations (so delta output vs delta input )
are you sure the SI functions in your code are working on the delta 's ?
second remark : how can you fit a first order (with delay) low pass model to an output that goes down to zero (with a certain decay rate) vs an input that remains constant and non zero (asymptotic value = 5); if that was correct we should see the output tend towards DCgain*5 = rougly 5000 with your calculations - so there is quite an issue here with the fact that the output is going down towards 0
if an output drops to zero whatever the (constant) asymptotic input value, there must be a zero in the numerator.
Antworten (3)
Rajiv Singh
am 7 Jun. 2024
0 Stimmen
Models have an additional degree of freedom coming from initial conditions. For your data, this interplay means that there is no unique answer. Note that by default the initial conditions are estimated too as part of the fitting process.
For unambiguos results, I would suggest performing an experiment where the output is at a stead-state for constant input, before the input is changed to a new value. That way you can fix the initial conditions to a known fixed value.
Kurt
am 10 Jun. 2024
1 Kommentar
Mathieu NOE
am 10 Jun. 2024
hello again
I never said that your data are not correct or accurate I fully trust them
but I can't find out how a "standard" first order model could match this : Nothing unreasonable about the output being zero with a non-zero input.
unless the dc gain is zero , please explain me this again....
or maybe it's because it's monday and my brain haven't started yet....
Kurt
am 10 Jun. 2024
0 Stimmen
2 Kommentare
Mathieu NOE
am 11 Jun. 2024
hello again
if you trust your identification process, have you tried to simulate your identified model and compare it to the real data ?
Kurt
am 11 Jun. 2024
Kategorien
Mehr zu System Identification Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!