Main Content

Types of Custom Blocks

MATLAB Function Blocks

A MATLAB®Function block allows you to use the MATLAB language to define custom functionality. These blocks are a good starting point for creating a custom block if:

  • You have an existing MATLAB function that models the custom functionality.

  • You find it easier to model custom functionality using a MATLAB function than using a Simulink®block diagram.

  • The custom functionality does not include continuous or discrete dynamic states.

You can create a custom block from a MATLAB function using one of the following types of MATLAB function blocks.

  • TheInterpreted MATLAB Functionblock allows you to use a MATLAB function to define a SISO block.

  • TheMATLAB Functionblock allows you to define a custom block with multiple inputs and outputs that you can deploy to an embedded processor.

Each of these blocks has advantages in particular modeling applications. For example, you can generate code from models containingMATLAB Functionblocks.

MATLAB System Blocks

AMATLAB Systemblock allows you to use System objects written with the MATLAB language to define custom functionality. These blocks are a good starting point for creating a custom block if:

  • You have an existing System object™ that models the custom functionality.

  • You find it easier to model custom functionality using the MATLAB language than using a Simulink block diagram.

  • The custom functionality includes discrete dynamic states.

Subsystem Blocks

Subsystem blocks allow you to build a Simulink diagram to define custom functionality. These blocks serve as a good starting point for creating a custom block if:

  • You have an existing Simulink diagram that models custom functionality.

  • You find it easier to model custom functionality using a graphical representation rather than using handwritten code.

  • The custom functionality is a function of continuous or discrete system states.

  • You can model the custom functionality using existing Simulink blocks.

Once you have a Simulink subsystem that models the required behavior, you can convert it into a custom block by:

  1. Masking the block to hide the block contents and provide a custom block dialog box.

  2. Placing the block in a library to prohibit modifications and allow for easily updating copies of the block.

For more information, seeCustom LibrariesandCreate Block Masks.

C Caller Block

TheC Callerblock allows you to integrate C code into Simulink blocks. These blocks serve as a good starting point for creating a custom block if:

  • You have existing C code that models custom functionality.

  • Your C functions do not read or write global/static variables.

  • You want blocks to easily integrate with other Simulink features, such asSimulink Coverage™,Simulink Test™, andSimulink Coder™.

  • You are not modeling dynamic systems.

C Function Block

TheC Functionblock allows you to integrate C code into Simulink blocks. These blocks serve as a good starting point for creating a custom block if:

  • You have existing C code that models custom functionality.

  • You want to call multiple C functions from the block, or call C functions conditionally.

  • You want to include C code to preprocess and postprocess data before and after calling C functions.

  • You want to specify different code for simulation and code generation.

  • You are not modeling dynamic systems with continuous states.

S-Function Blocks

S-function blocks allow you to write MATLAB, C, or C++ code to define custom functionality. These blocks serve as a good starting point for creating a custom block if:

  • You have existing MATLAB, C, or C++ code that models custom functionality.

  • You use continuous or discrete dynamic states or other system behaviors that require access to the S-function API.

  • You cannot model the custom functionality using existing Simulink blocks.

You can create a custom block from an S-function using one of the following types of S-function blocks.

The S-function target in theSimulink Coderproduct automatically generates a C MEX S-function from a graphical subsystem. If you want to build your custom block in a Simulink subsystem, but implement the final version of the block in an S-function, you can use the S-function target to convert the subsystem to an S-function. See加速模拟,重用代码,或保护强度llectual Property by Using S-Function Target(Simulink Coder)in theSimulink CoderUser's Guide for details and limitations on using the S-function target.

Masked Blocks

You can customize any block by adding a mask to it. A mask is a custom interface to the block. You can customize a block using a mask in many ways, such as:

  • Change the block appearance.

  • Hide some or all of the parameters from the user of the block.

  • Customize block parameters.

To learn more about masked blocks, seeCreate Block Masks.

See Also

|||||||||

Related Topics