Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

My model output is different with use of Simulink and sim function

Asked by Saeed on 23 May 2013

I have a NARX model with 4 input and 1 output. I use Iddata Source, Nonlinear ARX Model and Siganl to workspace bolck in Simulink. The simulation stop time is 100 and i use these code for iddata object and model initial state:

XX = iddata(out, in, 1);

[X1,U1,REPORT1] = findop(MN1,'steady',[in(1,1),in(1,2),in(1,3),in(1,4)],NaN);

After run, output from signal to workspace block contain 101 data!?. and I have to erase the first data because I don’t need it. This issue happened to me for several other problem in Simulink such as MPC or PID or other model that the block output is always have one extra data.

Next problem is that, when I use same model with same iddata and initial state with sim function, I get 100 output data, but completely different from Simulink output!?

mout11=sim(MN1,XX,'init',X1);

mout1=mout11.OutputData; %Extracting data to array matrix

Can anyone help me?

0 Comments

Saeed

Products

1 Answer

Answer by Rajiv Singh on 25 May 2013
Accepted answer

For iddata source, it helps to set Tstart to 0 since the simulation in Simulink starts there by default. That is, use: XX = iddata(out, in, 1, 'Tstart', 0)

For matching simulation response, you have to set the initial conditions correctly. See:

http://www.mathworks.com/matlabcentral/answers/51708-problem-with-system-identification-toolbox-and-sim-command

2 Comments

Saeed on 26 May 2013

Thank U for Ur help. the link was very helpful too. Just to be sure, when the focus option be on prediction and the created model be used in Simulink or SIM command, is the output count for simulation or prediction?

Rajiv Singh on 26 May 2013

Once a model is available it can be used for either prediction or simulation. SIM command (or Simulink) will give you simulated response. PREDICT command will give you predicted response. See also: http://www.mathworks.com/matlabcentral/answers/5391-doubt-on-the-block-diagram-of-the-narx-model-matlab-documentation

Rajiv Singh

Contact us