How to generate RTW file programmatically?

3 views (last 30 days)
Soham Sinha
Soham Sinha on 29 Jan 2022
Commented: Mark McBroom on 1 Feb 2022
Is there any API to generate only the rtw file programmatically for a subsystem or a model?
For example, slbuild builds the entire model or a subsystem. Is there any way to just generate the model.rtw or subsystem.rtw.
Also is there any way to just generate code for a particular subsystem or a model, and not try to build the entire model itself?
It seems like %include "codegenentry" does this. However, I found no programmatic (in matlab) way to call this on a subsystem or model. Only interface is the slbuild which builds the entire model including compilation of the generated code.

Answers (1)

Mark McBroom
Mark McBroom on 29 Jan 2022
slbuild() can be used to generate code for a subsystem:
% open example model
rtwdemo_rtwintro
%generate code for subsystem
slbuild('rtwdemo_rtwintro/Amplifier')
  2 Comments
Soham Sinha
Soham Sinha on 1 Feb 2022
But slbuild is prohibited to be called recursively. So if I am compiling a top model, I cannot compile a subsystem independently.
I don't even want to compile the whole model or the subsystem as well. I just want to generate the respective code for a subsystem. Is there any API just for code generation, not building the entire subsystem/model?
Mark McBroom
Mark McBroom on 1 Feb 2022
No, it is not possible to build/update/genereate code only for a subsystem. This is because Simulink needs to understand the context in which the subsystem is being used ( rates, data types, sizes, etc) before code can be generated. If you want code only for a subsystem, you will need to place into a seperate model and reference that model from the parent model. You can then use the following slbuild option to only generate code for the referenced model:
slbuild(<modelname>,"ModelReferenceCoderTargetOnly")

Sign in to comment.

Categories

Find more on Simulink Coder in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!