A referenced model uses a configuration set in the same way that any other model does, as described in Manage a Configuration Set. By default, every model in a hierarchy has its own configuration set. Each model uses its configuration set the same way that it would if the model executed independently.
Because each model can have its own configuration set, configuration parameter values can be different in different models. Furthermore, some parameter values are intrinsically incompatible with model referencing. The Simulink® response to an inconsistent or unusable configuration parameter depends on the parameter:
Where an inconsistency has no significance, or a trivial resolution without risk exists, Simulink ignores or resolves the inconsistency without posting a warning.
Where a nontrivial and possibly acceptable solution exists, Simulink resolves the conflict silently, resolves it with a warning, or generates an error. See Diagnostics That Are Ignored in Accelerator Mode for details.
Where no acceptable resolution is possible, Simulink generates an error. Change some or all parameter values to eliminate the problem.
Manually eliminating all configuration parameter incompatibilities can be tedious when:
A model hierarchy contains many referenced models that have incompatible parameter values
A changed parameter value must propagate to many referenced models
You can control or eliminate such overhead by using configuration references to assign an externally stored configuration set to multiple models. See Manage a Configuration Reference for details.
Some configuration parameter options can cause problems if set:
In certain ways, as indicated in the tables
Differently in a referenced model than in a parent model
Where possible, Simulink resolves violations of these requirements automatically, but most cases require changes to the parameters in some or all models.
|Dialog Box Pane||Option||Requirement|
|Solver||Start time||The start time of the top model and all referenced models must be the same, but need not be zero.|
|Stop time||Simulink uses Stop time of the top model for simulation, overriding any differing Stop time in a referenced model.|
|The Type and Solver of the top model apply throughout the hierarchy. See Solver Settings.|
|Data Import/Export||Initial state||Can be |
Math and Data Types
|Default parameter behavior||If the parent model has this option set to
Application lifespan (days)
For code generation, must be the same for parent and referenced models. For simulation, the setting can be different for the parent and referenced models.
|Model Referencing||Total number of instances allowed per top model||Must not be |
Model referencing works with both fixed-step and variable-step solvers. All models in a model hierarchy use the same solver, which is always the solver specified by the top model. An error occurs if the solver type specified by the top model is incompatible with the solver type specified by any referenced model.
|Top Model Solver Type||Referenced Model Solver Type||Compatibility|
|Fixed step||Fixed step||Allowed|
|Variable step||Variable Step||Allowed|
|Variable step||Fixed step||Allowed unless the referenced model is multirate and specifies both a discrete sample time and a continuous sample time|
|Fixed Step||Variable step||Error|
If an incompatibility exists between the top model solver and any referenced model solver, one or both models must change to use compatible solvers. For information about solvers, see Solvers and Solver Types.
A referenced model must specify that it is available to be referenced, and whether it can be referenced at most once or can have multiple instances. The Total number of instances allowed per top model parameter provides this specification. The possible values for this parameter are:
Zero — A model cannot reference this model.
An error occurs if a reference to the model occurs in another model.
One — A model hierarchy can reference the
model at most once. An error occurs if more than one instance of the model
exists. This value is sometimes preferable or required.
Multiple — A model hierarchy can reference
the model more than once, if it contains no constructs that preclude multiple
references. An error occurs if the model cannot be multiply referenced, even if
only one reference exists.
Setting Total number of instances allowed per top model
Multiple for a model that is referenced only once can
reduce execution efficiency slightly. However, this setting does not affect data
values that result from simulation or from executing code Simulink
Coder™ generates. Specifying
Multiple when only one
model instance exists avoids having to change or rebuild the model when reusing the
In the same hierarchy
Multiple times in a different hierarchy
Some model properties and constructs require setting Total number of
instances allowed per top model to
For details, see Model Reuse.
For models referenced in accelerator mode, Simulink ignores the values of these configuration parameter settings if you set
them to a value other than
Array bounds exceeded
Inf or NaN block output
Simulation range checking
Division by singular matrix
Wrap on overflow
Also, for models referenced in accelerator mode, Simulink ignores these Configuration Parameters > Diagnostics > Data Validity > Data Store Memory block parameters if you set them to a value other than
all. For details, see Data Store Diagnostics.
Detect read before write
Detect write after read
Detect write after write
You can use the Model Advisor to identify models referenced in accelerator mode for which Simulink ignores the configuration parameters listed above.
In the Simulink Editor, select Analysis > Model Advisor.
Select By Task.
Run the Check diagnostic settings ignored during accelerated model reference simulation check.
To see the results of running the identified diagnostics with settings to produce warnings or errors, simulate the model in normal mode. Inspect the diagnostic warnings and then simulate in accelerator mode.
Configuration parameters on the Code Generation pane of the Configuration Parameters dialog box do not affect simulation in either normal or accelerator mode. Code Generation parameters affect only code generation by Simulink Coder itself. Accelerated mode simulation requires code generation to create a simulation target. Simulink uses default values for all Code Generation parameters when generating the target, and restores the original parameter values after code generation is complete.
During model referencing simulation in accelerator and rapid accelerator mode,
Simulink temporarily sets several Configuration Parameters > Diagnostics > Data Validity parameter settings to
None, if they are set to
Error. You can use
the Model Advisor to check for parameters that change. For details, see Diagnostic Configuration Parameters Ignored in Accelerator Mode.
If the Configuration Parameters > Code Generation > Symbols parameters hold identifier information about the name of a referenced
model and do not use a
$R token, code generation prepends the
$R token to the name of the model. You can use the Model Advisor
to check for changed model names. See
Simulink Coder Model Referencing Requirements (Simulink Coder).