System identification tool and Simulink

3 views (last 30 days)
Hi guys,
i have create some estimation models in the SI Tool. They have a fitness of 94%. Also the fitness ot my validation data is not bad. Like 82%. This is the result of a Hammerstein-Wiener-Model.
No i want this result simulate in Simulink. I use the block for Hammerstein-Wiener-Models, the inputs, and a scope for the output.
Why i get a differ of the simulationresult and SI-Tool result??
Has anyone an idea why the result are not same??
Marcus

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 22 Aug 2012
Edited: Arkadiy Turevskiy on 22 Aug 2012
Most likely this happens due to initial conditions. In the GUI and in the COMPARE function, the fit is computed by estimating the initial conditions (by default) that maximize the fit to the data. In Simulink, you have to enter the appropriate initial conditions yourself based on your knowledge of the state of the system at the start of the simulation. By default, initial conditions are set to zero in the Simulink block.
See the doc for idnlhw, specifically the section "idnlhw States" for information on how to set initial conditions.
HTH.
Arkadiy

More Answers (1)

Markus
Markus on 24 Aug 2012
Hi Arkadiy, thx for ur answer. Great!! It works with the command of findstates.
But i have now another problem. Mybe i have only a thought blocking:-). I hope u can explain it to me.
i set the inital conditons with the findstates command. x0 = findstates(mhw1,z1,[],'maxiter',50);
If i started the simulation i get the same results like the SI-tool. But it should also applied to other datasets.
I replace the dataset z1 against an other dataset called z2. If i started the simulation again i get not used results. I have to set new intital conditions for a new dataset. Is it right??
But how it works if i used this model for a live simulation forecast?
  1 Comment
Rajiv Singh
Rajiv Singh on 7 Sep 2012
Initial conditions should not be thought of as a property of the model. It is really the effect of the environment on the initial set up of the model. In a real-life application, you should think about what conditions existed before the model simulation started, or what type of assumptions you can make about them. Some common choices are:
- system at rest (zero)
- system at steady state equilibrium (constant I/o values)
- system at some operating point specified in various ways; use isnlhw/findop to transform your specifications to numerical values of states.
If the goal is to pick initial states that maximize the fit to some measured output signal for a given input signal, then FINDSTATES is your friend.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!