How to Programmatically replace blocks in Simulink

58 Ansichten (letzte 30 Tage)
Ramae Smith
Ramae Smith am 26 Jul. 2021
Kommentiert: Ramae Smith am 2 Aug. 2021
I have a model with hundreds of blocks from an old library that I want to replace.
I've made a dummy model. "Version 2" inside the model is the goal. I've done 3 by hand just for clarity.
I want to Replace all Step blocks with Constant blocks. I also want to take the Label of the Step block, and it to the Constant Value of the new Constant block.
There's a couple functions that could work that I've added to the script.
Let me know if you have ideas!

Antworten (2)

Shadaab Siddiqie
Shadaab Siddiqie am 29 Jul. 2021
Form my understanding you want to replace few blocks in your model with another blocks. You can do this using replace_block like so:
%Load the model sldemo_clutch.
openExample('sldemo_clutch');
%In the 'Unlocked' subsystem, replace blocks whose Gain value is bv with Integrator blocks.
replace_block('sldemo_clutch/Unlocked','Gain','bv','Integrator');
If you want to replace block in model with block from another model you can refer pil_block_replace.

Ramae Smith
Ramae Smith am 2 Aug. 2021
My colleague figured it out. The flaw in this code is that it works one block at a time. Ideally I wanted to replace and relabel all of the step blocks in my model at once.
① Get the name of the Step block
paramValue = get_param ('untitled / Step','Name');
② Convert the Step block to the Constant block
RepNames = replace_block ('untitled','Step','Constant');
(3) Set the value value of the converted Constant block to the name of the Step block.
set_param ('untitled / Step','Value', paramValue);

Kategorien

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

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by