We're doing a system identification starting from a given response and we want to match it to our mathematical system, obtaining some parameters that are not known. We are using the PEM algorithm built in in MATLAB, with the option set to Levenberg-Marquardt.
Everything goes according to plan, and we obtain the parameters we needed with a 94% match with the given curve.
The issue is that when we pull the covariance matrix associated to those parameters, all the entries are way bigger than expected. For example, the first parameter is in the order or 1e-3
and its variance is something like 1e9
...that doesn't seem correct.
Does someone know why it is happening?
Thanks in advance to whoever will answer, I'll post a slice of the code related to the question.
opt2 = greyestOptions('InitialState', 'zero',...
'SearchMethod', 'lm');
opt2.SearchOption.Tolerance = 0.001;
opt2.SearchOption.MaxIter = 400;
sys = pem(data, idsys, opt2);
[x_opt, t, x] = lsim(sys, u, t);