# Prediction of nonlinear grey-box models

7 views (last 30 days)
Jens on 14 Apr 2016
Commented: Jens on 19 Apr 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?

Anish Mitra on 19 Apr 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 Comment

Jens on 19 Apr 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.