A Comparison of Componentization Constructs for Supporting Modularity in Simulink 2020-01-1290
The Model-Based Development (MBD) paradigm is widely used for embedded controls development, with the MathWorks Simulink modelling environment being extensively used in the automotive industry. As production-scale Simulink models are typically large and complex, there exists a need to decompose them properly in order to facilitate their maintainability, understandability, and evolution. MathWorks recommends the use of three constructs for model “componentization” or decomposition: the Subsystem, Library, and Model Reference. However, a recently added construct introduced in Simulink R2014b, the Simulink Function, can also be used for this purpose, while also supporting information hiding due to the construct’s ability to be scoped and encapsulate data. This paper provides an in-depth comparison of these Simulink constructs to fully understand the differences in their reusability, sharing of program state, encapsulation, and code generation, with the goal of facilitating model evolution. An automotive powertrain example is provided to highlight the differences between approaches. Conventions for structuring models are also presented.