Prediction of nonlinear grey-box models

5 vues (au cours des 30 derniers jours)
Jens
Jens le 14 Avr 2016
Commenté : Jens le 19 Avr 2016
Hi, in the System Identification Toolbox nonlinear grey-box model parameters are identified using the Prediction Error Method. I would like to know in this algorithm the prediction step works. nlgrey models are defined by a set of nonlinear ODEs and a set of output equations. This means that for a prediction, an internal state has to be estimated from the measurements given up to this point. Is this done using an observer? If so, what kind of observer is used and how is (partial) un-observability handled? If not, is the prediction step just an open-loop simulation of the system without feedback of the prior measurement data?

Réponses (1)

Anish Mitra
Anish Mitra le 19 Avr 2016
I believe that the prediction step is an open-loop simulation based on the estimated model parameters in the current iteration, and does not take into account any feedback.
The Algorithm section in the above link describes it as the "difference between the measured output and the predicted output of the model".
  1 commentaire
Jens
Jens le 19 Avr 2016
But when I use a model with integrating behavior the result doesn't 'run away'.
Example model:
function [dx, y] = mI(t, x, u, p, varargin)
dx= p*u;
y= x;
and doing
z= iddata((0:19)', ones(20, 1), 1);
nlgr= idnlgrey('mI', [1 1 1], [1.1], 0, 0);
compare(z, nlgr);
gives me a 100% fit even though the parameter value 1.1 should make the model go wrong. Interestingly, even
sim(nlgr, z, 'model');
gives the same 'predicted' result. And still
nlgr = pem(z, nlgr);
is able to find the correct parameter value 1.0. So, there seems to be some kind of prediction feedback going on. Honestly, I think it's a shame this is not better documented.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by