StableRLS
  • Simulink Structure
    • Troubleshoot
StableRLS
  • Simulink Structure
  • View page source

Simulink Structure

One main part of this package is the generation of bus structures for the inport and outport of the MATLAB Simulink model. Sadly, this is required for the model compilation. The function iterates recursively through the model and supports the following features:

  • “Inport” and “Bus Element” support

  • Goto Labels

  • Connections to multiple subsystems or blocks

The function is also optimized to reduce the complexity of the bus structure by removing duplicate elements. However, MATLAB seems to have introduced some strange compilation dependencies, and the FMU compilation fails sometimes. To avoid this issue, it is recommended to wrap your whole system inside one subsystem on the top level and connect “inports” and “outports” to the connections. Your model should look something like this:

Troubleshoot

The MATLAB engine has some errors while running getports. This is related to existing bus definitions within the model. Simply run the following code to reset all signals to inherit:

path = 'your_model_name'

inports = find_system(path,'LookUnderMasks','on',...
    'FollowLinks','on', 'BlockType','Inport');
outports = find_system(path,'LookUnderMasks','on',...
    'FollowLinks','on', 'BlockType','Outport');
ports = cat(1, inports, outports);
for i = 1 : length(ports)
    set_param(ports{i},'OutDataTypeStr','Inherit: auto');
end

During the FMU compilation, the error The specified key is not present in this container occurs. This is related to internal MATLAB issues. Just pack your model inside a subsystem as mentioned above, and this should work.


© Copyright 2023, Robert Annuth, Finn Nußbaum.

Built with Sphinx using a theme provided by Read the Docs.