Process gain in System Identification seems off by 100
Show older comments
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 Comments
Kurt
on 4 Jun 2024
Kurt
on 5 Jun 2024
Mathieu NOE
on 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.
Answers (3)
Rajiv Singh
on 7 Jun 2024
0 votes
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
on 10 Jun 2024
1 Comment
Mathieu NOE
on 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
on 10 Jun 2024
0 votes
2 Comments
Mathieu NOE
on 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
on 11 Jun 2024
Categories
Find more on Linear Model Identification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!