MATLAB: Tunable Parameter/Gain and rapid acceleration

simulinktunable parameter rapid acceleration

I am having difficulty using Tunable parameters. Here is how it looks inside simulink mdl = 'Mymodel.mdl':
* Constant Block (value 1)---> GainA -> mpt.paramter constant block
I will be running this simulation on a single set of input dataset in a for loop, changing the gain for each itiration (with same input vector).
Sample Code:
for i=1:10000
if i==1
rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(mdl);
end
Simulink.BlockDiagram.modifyTunableParameters(rtp,'GainA',Input_Gain(i));
SimOutput = sim(mdl,'SimulationMode','rapid','RapidAcceleratorUpToDateCheck','off');
end
-----------
This code need to build new rapid target for each itiration else it runs same model again and again without changing GainA. Is there any way around?

Best Answer

But you never pass the modified parameter into SIM right? Simulink.BlockDiagram.modifyTunableParameters creates a new RTP structure. It doesn't apply it to the model.
Try:
rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(mdl);
for i=1:10000
new_rtp = Simulink.BlockDiagram.modifyTunableParameters(rtp, ...
'GainA',Input_Gain(i));
SimOutput = sim(mdl,'SimulationMode','rapid', ...
'RapidAcceleratorUpToDateCheck','off', ...
'RapidAcceleratorParameterSets', new_rtp);
end