Export data from simulink to workspace when using sim command

5 Ansichten (letzte 30 Tage)
Hello,
I want to run automatically several SIMULINK simulations with different input variables values. I have created a .m for this purpose to read the values for each simulation, run the simulation and extract the output needed.
My problem is the following: If I run the simulink model directly (no using any .m nor any command line) the two blocks 'To Workspace' creates the proper variables in the simulink workspace. On the other hand, when I run the simulation calling them from the .m file, the variables from these two blocks do not appear and I cannot extract the info I need. What I have now is: sim('model',[0,0.1],simset('DstWorkspace','base')); but it does not work either. Maybe is only to rewirte the sim command, but if I write [t,x,y]=sim... I am not sure if the two variables that I need are inside y.
Thank you in advance

Akzeptierte Antwort

Paulo Silva
Paulo Silva am 21 Jun. 2011
[t,x,y]=sim(...
Returns the simulation's output matrix. Each column contains the output of a root-level Outport block, in port number order. If any Outport block has a vector input, its output takes the appropriate number of columns.
[t,x,y1,...,yn]=sim(...
Each yi returns the output of the corresponding root-level Outport block for a model that has n such blocks.
  3 Kommentare
Titus Edelhofer
Titus Edelhofer am 22 Jun. 2011
Hi Javier,
take a look at the simulation parameters (menu configuration). There you specify if the model should output or not ...?
Titus
Javier Guiterrez
Javier Guiterrez am 23 Jun. 2011
Finally it has worked in the ususal way but I still do not know why.
t,x,y1,...,yn]=sim(... was the first thing I probed but after some problems it is working. Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Titus Edelhofer
Titus Edelhofer am 21 Jun. 2011
Hi Javier,
usually I would prefer
[t,x,y] = sim('model', [0 0.1], simset('DstWorkspace', 'current'));
because when you put this into a function, you ToWorkspace blocks will save the output in the current workspace, i.e., where you call sim. Note, the call to sim (output variables) depends on the version of MATLAB you are using. I think that calling sim without output arguments makes a difference to calling with output, so you should use the call above even if you don't care about t, x and y.
Titus

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by