Model Workspaces
Model Workspace Differences from MATLAB Workspace
Each model is provided with its own workspace for storing variable values.
The model workspace is similar to the base MATLAB® workspace except that:
Variables in a model workspace are visible only in the scope of the model.
If both the MATLAB workspace and a model workspace define a variable of the same name, and the variable does not appear in any intervening masked subsystem or model workspaces, the Simulink® software uses the value of the variable in the model workspace. A model's workspace effectively provides it with its own name space, allowing you to create variables for the model without risk of conflict with other models.
When the model is loaded, the workspace is initialized from a data source.
The data source can be a Model file, a MAT-file, a MATLAB file, or MATLAB code stored in the model file. For more information, see Data source.
You can interactively reload and save MAT-file, MATLAB file, and MATLAB code data sources.
To store a signal object in a model workspace, set the storage class of the object to
Auto
. Signal objects includeSimulink.Signal
and subclasses that you create.If you specify a storage class other than
Auto
, you must store signal objects in the base workspace or a data dictionary to ensure the objects are unique within the global Simulink context and accessible to all models.When you store MATLAB variables and parameter objects (such as
Simulink.Parameter
) in a model workspace, some tunability limitations apply. See Tunability Considerations and Limitations for Other Modeling Goals. In addition, if you store anAUTOSAR.Parameter
object in a model workspace, the code generator ignores the storage class that you specify for the object.When you store
Simulink.NumericType
objects you cannot use the object as a data type alias. You must set theIsAlias
property tofalse
.
Note
When resolving references to variables used in a referenced model, the variables of the referenced model are resolved as if the parent model did not exist. For example, suppose a referenced model references a variable that is defined in both the parent model's workspace and in the MATLAB workspace but not in the referenced model's workspace. In this case, the MATLAB workspace is used.
Troubleshooting Memory Issues
When you use a workspace variable as a block parameter, Simulink creates a copy of the variable during the compilation phase of the simulation and stores the variable in memory. This can cause your system to run out of memory during simulation, or in the process of generating code. Your system might run out of memory if you have:
Large models with many parameters
Models with parameters that have a large number of elements
This issue does not affect the amount of memory that is used to represent parameters in generated code.
Manipulate Model Workspace Programmatically
For most common data management tasks, regardless of data source, you can use the
Simulink.data.connect
function to create a connection to your data
source, then use the common set of functions provided by the Simulink.data.DataConnection
object. For more information, see Manage Design Data for Simulink Models Programmatically.
For tasks specific to a model workspace, use a Simulink.ModelWorkspace
object. An
object of the Simulink.ModelWorkspace
class
describes a model workspace. Simulink creates an instance of this class for each model that you open during
a Simulink session. The methods associated with this class can be used to
accomplish a variety of tasks related to the model workspace, including:
Listing the variables in the model workspace
Assigning values to variables
Evaluating expressions
Clearing the model workspace
Reloading the model workspace from the data source
Saving the model workspace to a specified MAT-file or MATLAB file
Saving the workspace to the MAT-file or MATLAB file that the workspace designates as its data source
See Also
Simulink.ModelWorkspace
| Simulink.data.DataConnection
| Simulink.data.connect