Main Content

MATLAB System

Include System object in model

  • MATLAB System block

Libraries:
Simulink / User-Defined Functions
HDL Coder / User-Defined Functions

Description

The MATLAB System block brings existing System objects (based on matlab.System) into Simulink®. It also enables you to use System object APIs to develop new blocks for Simulink. For more information on this block, see Create Custom Blocks Using MATLAB System Block and System objects.

For interpreted execution, the model simulates the block using the MATLAB® execution engine.

For code generation, the model simulates the block using code generation (using the subset of MATLAB code supported for code generation). The MATLAB System block supports only a subset of the functions available in MATLAB. See Functions and Objects Supported for C/C++ Code Generation for a complete list of functions. These functions include those in common categories, such as:

By default, the block recognizes 1-D input signals and propagates 1-D output signals as 2-D. Use the supports1DVectorsImpl method to enable the block to recognize and propagate 1-D inputs and outputs as 1-D signals.

System Objects

To use the MATLAB System block, you must first have a new System object™ or use an existing one. For more information, see Author Blocks Using MATLAB System Objects.

Examples

Ports

Input

expand all

The MATLAB System block accepts inputs of the types listed in the Block Characteristics table. For more information, see Data Types Supported by Simulink.

For information on fixed-point support for this block, see Code Acceleration and Code Generation from MATLAB (Fixed-Point Designer).

The MATLAB System block supports Simulink frames. For more information, see Sample- and Frame-Based Concepts (DSP System Toolbox).

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Output

expand all

Signal output of a MATLAB System block that the System object returns.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Parameters

expand all

Specify the full name of the user-defined System object class without the file extension. This entry is case sensitive. The class name must exist on the MATLAB path.

You can specify a System object name in one of these ways:

  • Enter the name in the text box.

  • Click the list arrow attached to the text box. If valid System objects exist in the current folder, the names appear in the list. Select a System object from this list.

  • Browse to a folder that contains a valid System object. If the folder is not on your MATLAB path, the software prompts you to add it.

If you need to create a System object, you can create one from a template by clicking New.

After you save the System object, the name appears in the System object name text box.

Use the full name of the user-defined System object class name. The block does not accept a MATLAB variable that you have assigned to a System object class name.

Programmatic Use

Block Parameter: System
Type: character vector
Value: name of the System object
Default: ' '

Select one of the options for a System object template.

Basic

Starts MATLAB Editor and displays a template for a simple System object using the fewest System object methods.

Advanced

Starts MATLAB Editor and displays a template for a more advanced System object using most of the System object methods.

Simulink Extension

Starts MATLAB Editor and displays a file that contains utilities for customizing the block for Simulink. This is the same file available in MATLAB when you select New > System Object > Simulink Extension.

After you save the System object, you can enter the name in the System object name text box.

Select the simulation mode.

Code generation

On the first model run, simulate and generate code for MATLAB System block using only MATLAB functions supported for code generation. If the structure of the block does not change, subsequent model runs do not regenerate the code.

If the simulation mode is Code generation, System Objects accept a maximum of 32 inputs.

Interpreted execution

Simulate model using all supported MATLAB functions. Choosing this option can slow simulation performance.

After you assign a valid System object class name to the block, the next time you open the block dialog box, the parameter is visible. This parameter appears for every MATLAB System block. You cannot remove it.

  • If the block has no tabs, this parameter appears at the bottom of the dialog box.

  • If the block has multiple tabs, this parameter appears at the bottom of the first tab of the dialog box.

On

Overflows saturate to either the minimum or maximum value that the data type can represent. For example, an overflow associated with a signed 8-bit integer can saturate to -128 or 127.

Off

Overflows wrap to the appropriate value that the data type can represent. For example, the number 130 does not fit in a signed 8-bit integer and wraps to -126.

Tips

  • Consider selecting this check box when your model has a possible overflow and you want explicit saturation protection in the generated code.

  • Consider clearing this check box when you want to optimize efficiency of your generated code. Clearing this check box also helps you to avoid overspecifying how a block handles out-of-range signals. For more information, see Troubleshoot Signal Range Errors.

  • When you select this check box, saturation applies to every internal operation on the block, not just the output or result.

  • In general, the code generation process can detect when overflow is not possible. In this case, the code generator does not produce saturation code.

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

Programmatic Use

Block Parameter:SaturateOnIntegerOverflow
Type: character vector
Values: 'off' | 'on'
Default: 'off'

Select which inherited data types to treat fi data types,

Fixed-point

Treat fixed-point data types as fi data types.

Fixed-point & Integer

Treat fixed-point and integer data types as fi data types.

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

Select which fixed-point math settings to use.

Same as MATLAB

Use the current MATLAB fixed-point math settings.

Specify Other

Enable the edit box for specifying the desired fixed-point math settings. For information on setting fixed-point math, see fimath (Fixed-Point Designer).

Dependency

This check box appears when you use the showFiSettingsImpl method in the System object.

Block Characteristics

Data Types

Booleana | busba | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

Direct Feedthrough

no

Multidimensional Signals

yesa

Variable-Size Signals

yesca

Zero-Crossing Detection

no

a Actual data type or capability support depends on block implementation.

b See Nonvirtual Buses and MATLAB System Block for more information.

c See Variable-Size Signals for more information.

Extended Capabilities

Version History

Introduced in R2013b

expand all