Simulink Initialize Function: Use In-Port for init and normal running

4 visualizzazioni (ultimi 30 giorni)
Currently the documentation for initialize functions clearly states
If a model containing an Initialize Function, Reset Function, or Terminate Function block is an export-function model, the signal from the root Inport must not be branched to a Simulink Function block. If the model is not an export-function model, the signal from the root Inport must not be branched to any other block.
Indeed, trying to connect my model inport to the initialize function and to normal blocks in the model will trigger errors.
I have, however, the need to use the same input for initialization as well as, later, during the normal run-time of my model.
I can also not just add an additional port with the same datatype because my model will be used for code generation, and I have to adhere to some standard interface.
Is there any way around this?

Risposte (1)

Suman
Suman il 2 Mag 2024
Modificato: Suman il 2 Mag 2024
Hi Lionel,
One of the ways you can get around this issue could be to use a data store memory block. The same input that you are using for the root inport can be written to a data memory block and then it can be used during the normal runtime by reading it using a data store read block. This way you can avoid branching the root inport.
I hope that helps!
  1 Commento
Lionel Pöffel
Lionel Pöffel il 7 Mag 2024
Unfortunately this is not a solution for me. The input interface is very wide, and storing it completely inside my library completely violates the strict memory constraints. I just need to modify some static internal data based on the input values during init, and then continue to use the input values during the normal "run" phase.
With hand-written code this is no problem whatsoever.
In any case, because there was no suitable solution we had to do a work-around using hand-written wrappers.

Accedi per commentare.

Categorie

Scopri di più su Event Functions in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by