Effacer les filtres
Effacer les filtres

How to Programmatically replace blocks in Simulink

111 vues (au cours des 30 derniers jours)
Ramae Smith
Ramae Smith le 26 Juil 2021
Commenté : Ramae Smith le 2 Août 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!

Réponses (2)

Shadaab Siddiqie
Shadaab Siddiqie le 29 Juil 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.
%In the 'Unlocked' subsystem, replace blocks whose Gain value is bv with Integrator blocks.
If you want to replace block in model with block from another model you can refer pil_block_replace.
  1 commentaire
Ramae Smith
Ramae Smith le 2 Août 2021
Thanks, this adresses the repalcement aspect.

Connectez-vous pour commenter.

Ramae Smith
Ramae Smith le 2 Août 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);


En savoir plus sur Load Signal Data for Simulation dans Help Center et File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by