MATLAB: Set a parameter in a contantblock during external simulation with a parfor loop.

Parallel Computing Toolboxparforsetparamsimsimulink

Hi, I want to use sim to simulate an external model 200 times. This should go fast so I'm using parfor. The problem is that the number of the current simulation has to be implied in the model called MPC_model (in a constant block named iteration) every time the sim function is used. I tried several thinks like this:
matlabpool;
parfor i=1:200
iteration=int2str(i);
set_param('MPC_model/iteration','Value',iteration);
[t,x,y1,y2]=sim('MPC_model',[Main_Time; Main_Time+12*48]);
all_gatelevels=[all_gatelevels,y1];
schade=[schade,y2];
end
I usually get problems that the submodel can't find variables that are defined in the workspace of the main model. When I try slightly different things like adding 'SimulationMode', 'rapid' I get other errors (f.e. that there might only be 1 output).
Does anyone know how I can get this to work?

Best Answer

Please read Run Parallel Simulations. In particular, the sections titled sim in parfor with Rapid Accelerator Mode and Resolving Workspace Access Issues may be of interest to you.