When you protect a model, you can automatically create and package the following contents
in a project archive (.mlproj
) for easy sharing:
Protected model file (.slxp
)
Harness model file
MAT-file with base workspace definitions
Data dictionary pruned to relevant definitions
Other supporting files
In the Create Protected Model dialog box, set Contents to
Protected model (.slxp) and dependencies in a project
.
Note
Before sharing the project, check whether the project contains the necessary supporting files. If supporting files are missing, simulating or generating code for the related harness model can help identify them. Add the missing dependencies to the project and update the harness model as needed.
Alternatively, you can use one of these options to deliver the protected model package:
Create a project archive to share a project that contains the protected model file and supporting files. For more information, see Create a Project from a Model and Share Projects.
Provide the protected model file and supporting files as separate files.
Combine the files into a ZIP or other container file.
Provide the files in some other standard or proprietary format specified by the receiver.
Whichever approach you use to deliver a protected model, include information on how to retrieve the original files.
You can create a harness model when you create your protected model. The harness model contains a Model block that references the protected model. A third-party can use the Model block to reference your protected model. The harness model is set up for simulation of the protected model.
Referenced models can use object definitions or tunable parameters that are defined in the MATLAB® base workspace. These variables are not saved with the model. When you protect a model, you must obtain the definitions of required base workspace entities and ship them with the model.
For example, if the model uses the following base workspace variables, they must be saved to a MAT-file:
Global tunable parameter
Global data store
The following objects used by a signal that connects to a root-level model Inport or Outport:
Simulink.Signal
Simulink.Bus
Simulink.Alias
Simulink.NumericType
that is an alias
To determine the required base workspace definitions and save them to a MAT-file, see Protected Models for Model Reference. Before executing the protected model as a part of a third-party model, the receiver of the protected model must load the MAT-file.
Referenced models can use data definitions from a data dictionary, which are not saved with the model. When you protect a model that uses a data dictionary, package and ship the data dictionary with the protected model.
A protected model file (.slxp
) consists of the derived files that
support the options that you selected when you created the protected model. The derived
files are unpacked when you or a third-party use the protected model in simulation. You do
not need to package these derived files with the protected model.
The derived files that are unpacked depends on the support that you enabled when
creating the protected model. The
slprj/sim/
model/
*
files are deleted after they are used.
This table illustrates the files that are unpacked depending on the options that you specified. If you specified the Use generated code or Code Interface options when creating the protected model, additional files are unpacked in the derived folder. To learn about these files, see Protected Model File Contents.
Protected Model Derived Files
Supported Functionality | Derived Files |
---|---|
Created a protected model for simulation only and the referencing model is in
Normal mode | The model .mexext
file is placed in the build folder. |
Created protected model for simulation only and referencing model is in
Accelerator or Rapid Accelerator
mode. | These files are unpacked in the
For the protected model report, these additional files are unpacked (but not in the build folder):
|
Created protected model with HDL code generation support. | The files are unpacked in the
|