MATLAB Answers

0

Simulink workspace

All-

I have a simulink model with many of the simulation and block parameters defined by variables. I am trying to create the variables and call the model (with the 'sim' command) in a function. However, the model doesn't seem to look for the variables in the function's workspace.

Would just as soon not make the variables global or add them to the base level workspace. How can I add the variables to the model's workspace or have the model reference the function's workspace?

Thanks CC

-------------------------------------------------

A simplified version of my function is:

SimAnalysis = function(controller,plant,Tmax,Ts)
% controller is a structure needed by the mdl that contains the parameters that define my controller
%  plant is a structure needed by the mdl that contains the parameters that define my plant
% Tmax is a scalar that is the stop time of the model in seconds
% Ts is a scalar that is the sample period of the model in seconds
a = 1; % other parameters needed by the simulation, but fixed for this case
b = 2;
c = 3;
sim('my_model.mdl')
SimAnalysis = max(logsout.x.Data); % stand in for my analysis

  0 Comments

Sign in to comment.

2 Answers

Answer by Clinton Cathey on 23 Jun 2011
 Accepted Answer

Paulo-

Thanks - that got me most of the way there. In addition to the destination workspace, I also needed a source workspace:

CC

opts = simset('DstWorkspace','current','SrcWorkspace','current');
sim('my_model.mdl',[], opts)

  1 Comment

Sorry for the mistake, I copied the code from a previous answer but forgot to change DstWorkspace to SrcWorkspace

Sign in to comment.


Answer by Paulo Silva
on 23 Jun 2011

change the workspace of your simulation or define the parameters of the simulation or blocks with set_param, here's the simple solution

opts = simset('DstWorkspace','current') 
sim('my_model.mdl',[], opts);

  0 Comments

Sign in to comment.