Filter löschen
Filter löschen

Is there a way to get the Simulink real-time parameter set (rtp) from a rapid accelerator build without rebuilding it?

9 Ansichten (letzte 30 Tage)
I am building and using a rapid accelerator target for myModel using
rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(myModel);
newRtp = Simulink.BlockDiagram.modifyTunableParameters(rtp, 'myParam', myValue);
sim(myModel, 'SimulationMode', 'rapid', ...
'RapidAcceleratorUpToDateCheck', 'off', ...
'RapidAcceleratorParameterSets', new_rtp);
If I don't have an rtp object (but I know my model hasn't changed and I want to run in rapid mode without re-building the model) can I get rtp from the model somehow (without re-building)?
Something like:
Simulink.BlockDiagram.buildRapidAcceleratorTarget(myModel); % oops, should have captured the output
rtp = Simulink.BlockDiagram.getExistingRapidAcceleratorTarget(myModel); % does something like this exist?

Antworten (1)

Nirja Mehta
Nirja Mehta am 30 Aug. 2017
You can check the checksum of your model and get rtp only if checksums are different.
% To compile the model before calling Simulink.BlockDiagram.getChecksum
myModel([],[],[],'compile')
[cs1,csdet1]=Simulink.BlockDiagram.getChecksum(myModel);
% Get rtp for first time
rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(myModel);
[cs2,csdet2]=Simulink.BlockDiagram.getChecksum(myModel);
if (cs1 ~= cs2)
% This means your model changed, time to update rtp
rtp = Simulink.BlockDiagram.buildRapidAcceleratorTarget(myModel);
end
% Your code now
newRtp = Simulink.BlockDiagram.modifyTunableParameters(rtp, 'myParam', myValue);
sim(myModel, 'SimulationMode', 'rapid', ...
'RapidAcceleratorUpToDateCheck', 'off', ...
'RapidAcceleratorParameterSets', new_rtp);
Hope this helps.
  3 Kommentare
Robert
Robert am 30 Okt. 2017
Thanks, Lee, for helping to clarify my question. You are exactly right. I am looking for something along the lines of ` 'RapidAcceleratorUpToDateCheck', 'off' but for Simulink.BlockDiagram.buildRapidAcceleratorTarget. This would allow me to run the rapid accelerator target using sim and modifying the parameter in rtp without rebuilding the model.
The simplest solution is to save rtp to a *.mat file whenever I create it in case I want to load it back in to be used in a simulation later. But it seems to me that there should be a better way.
Lee
Lee am 30 Okt. 2017
Does saving and reloading the rtp object even work? I've had strange behaviors when reloading saved objects in the past so hadn't even tried it yet... In theory this is a solution, but i agree, no where near as elegant as your proposed function call. Mathworks?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Multicore Processor Targets 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