Model References

Reuse models as blocks in other models

You can include one model in another by using a Model block. Each instance of a Model block is a model reference. For simulation and code generation, blocks within a referenced model execute together as a unit. The model that contains a referenced model is a parent model. A collection of parent and referenced models constitutes a model hierarchy.

Like subsystems, model references allow you to organize large models hierarchically. Like libraries, model references allow you to define a set of blocks once and use it repeatedly. Model references provide several advantages that are unavailable with subsystems and libraries. Several of these advantages result from referenced models compiling independent of the context of the Model block, including:

  • Modular development

  • Model protection

  • Inclusion by reference

  • Incremental loading

  • Accelerated simulation

  • Incremental code generation

  • Independent configuration sets


ModelReference another model to create model hierarchy
Variant Subsystem, Variant ModelTemplate subsystem containing Subsystem blocks or Model blocks as Variant choices


expand all

depviewAnalyze and visualize model referencing dependencies with or without library dependencies
find_mdlrefsFind referenced models and Model blocks in model hierarchy
Simulink.BlockPathFully specified Simulink block path
Simulink.fileGenControlSpecify root folders for files generated by diagram updates and model builds
Simulink.ModelReference.refreshUpdate Model blocks to reflect changes to referenced models
Simulink.SubSystem.convertToModelReferenceConvert subsystem to model reference
slbuildBuild standalone executable or model reference target for model
slxcinfoQuery contents of Simulink cache files
slxcunpackUnpack simulation and code generation targets from Simulink cache file
Simulink.ProtectedModel.createHarnessCreate harness model that provides isolated environment for testing protected model
Simulink.ProtectedModel.getPublisherReturn information about publisher that signed the protected model
Simulink.ProtectedModel.verifySignatureVerify digital signature on protected model
Simulink.ProtectedModel.suppressSignatureVerificationSuppress digital signature verification of protected models


Model Reference Conversion AdvisorConvert subsystems to referenced models
Referenced Files PaneView, save, and close referenced subsystems and models


Determine When to Reference Models

Model Reference Basics

Create a model hierarchy by referencing one model in another model. A referenced model contains blocks that execute together as a unit.

Component-Based Modeling Guidelines

Consider componentization for large models and multiuser development teams.

Model Reference Requirements and Limitations

Model references have requirements and limitations relating to features such as reusability, simulation modes, masking, and debugging.

Create Model References

Reference Existing Models

Include a model in another model.

Reference Protected Models from Third Parties

Use a protected model that you received from a third party.

Convert Subsystems to Referenced Models

Prepare a subsystem for conversion, convert the subsystem to a model, and compare simulation results before and after conversion.

Model Reference Interface and Boundary

Ports in the referenced model correspond with ports at the model reference. Signals that cross the model boundary must meet certain requirements.

Inspect Model Hierarchies

Examine the contents, structure, model versions, and logged signals in a model hierarchy.

Configure Model References

Set Configuration Parameters for Model Hierarchies

Configuration parameter values can be different in top models and referenced models. Some configuration parameter values have special requirements or behavior with model referencing.

Modify Referenced Models for Conditional Execution

Execute referenced models conditionally, similar to conditionally executed subsystems.

Referenced Model Sample Times

A referenced model can inherit sample times from the model that references it.

Parameterize Instances of a Reusable Referenced Model

When you model a reusable component as a referenced model, to configure each instance of the component to use different values for block parameters, create model arguments.

Parameterize a Referenced Model Programmatically

This example shows how to programmatically configure multiple instances of a referenced model to use different values for the same block parameter.

Group Multiple Model Arguments into a Single Structure

This example shows how to programmatically configure multiple instances of a referenced model to use different values for the same block parameter by using structures.

Configure Instance-Specific Data for Lookup Tables Programmatically

When you use Simulink.LookupTable objects to store and configure lookup table data for ASAP2 or AUTOSAR code generation (for example, STD_AXIS or CURVE), you can configure the objects as model arguments.

Simulate Model Hierarchies

Choose Simulation Modes for Model Hierarchies

Select the simulation mode for models in a model hierarchy.

Manage Simulation Targets for Referenced Models

A simulation target, or SIM target, is a MEX-file that implements a referenced model that executes in accelerator mode.

Share Simulink Cache Files for Faster Simulation

Use Simulink cache files to share build artifacts that let you avoid the cost of a first-time build.

Reduce Update Time for Referenced Models by Using Parallel Builds

Reduce diagram update time for large model reference hierarchies by using parallel builds.

Simulate Conditionally Executed Referenced Models

Run a standalone simulation of a conditionally executed referenced model.

Simulate Multiple Referenced Model Instances in Normal Mode

Simulate a model that contains multiple instances of a referenced model.

Featured Examples