Argument Specification for Simulink Function Blocks

When a Simulink Function block is within the scope of a Function Caller block, you do not have to specify the parameters. In such a case, the Function Caller block can determine the input and output argument specifications.

You specify arguments when a Simulink Function block is outside the scope of a Function Caller block. A Simulink Function block is considered to be out of scope of a Function Caller block when the two blocks are in separate models referenced by a common parent model.

Example Argument Specifications for Data Types

This table lists possible input and output argument specifications.

Simulink Function Block Data TypeFunction Caller Block ExpressionDescription
doubledouble(1.0)Double-precision scalar.
doubledouble(ones(12,1))Double-precision column vector of length 12.
singlesingle(1.0)Single-precision scalar.
int8, int16, int32int8(1), int16(1), int32(1)Integer scalars.
 int32([1 1 1])Integer row vector of length 3.
 int32(1+1i)Complex scalar whose real and imaginary parts are 32-bit integers.
uint8, int16, int32uint8(1), uint16(1), uint32(1)Unsigned integer scalars.
booleanboolean(true),boolean(false)Boolean, initialized to true (1) or false (0).

fixdt(1,16)

fixdt (signed, word_length)

fi(0,1,16)

fi (value, signed, word_length)

16-bit fixed-point signed scalar with binary point set to zero.

Fixed-point numbers can have a word size up to 128 bits.

fixdt(1,16,4)fi(0,1,16,4)16-bit fixed-point signed scalar with binary point set to 4.
fixdt(1,16,2^0,0)fi(0,1,16,2^0,0)16-bit fixed-point signed scalar with slope set to 2^0 and bias set to 0.
Bus: <object name>parameter object nameSimulink.Parameter object with the Value parameter set to a MATLAB® structure for the bus.
Enum: <class name>parameter object nameSimulink.Parameter object with the Value parameter set to an enumerated value.
<alias name>parameter object nameSimulink.Parameter object with the DataType parameter set to a Simulink.AliasType object and the Value parameter set to a value.

Input Argument Specification for Bus Data Type

Create a bus with two signals, and then specify the Input argument specification parameter for a Function Caller block. The Function Caller block calls a Simulink Function block that accepts the bus as input.

A bus input to a Function Caller block must be a non-virtual bus using a bus object.

  1. Create a Simulink® bus object myBus.

    myBus = Simulink.Bus;
  2. Add elements A and B.

    myBus.Elements(1).Name = 'A';
    myBus.Elements(2).Name = 'B';

  3. Create a MATLAB structure myBus_MATLABstruct with fields A and B.

    myBus_MATLABStruct.A = 0; 
    myBus_MATLABStruct.B = 0;

  4. Create a Simulink parameter object myBus_parameter and assign the MATLAB structure to the Value parameter.

    myBus_parameter = Simulink.Parameter;
    myBus_parameter.DataType = 'Bus: myBus';
    myBus_parameter.Value = myBus_MATLABStruct;
     
  5. For the Function Caller block dialog box, set the Input argument specification parameter to myBus_parameter.

  6. For the Argument In block dialog box of the Simulink Function block, set the Data type parameter to Bus: myBus.

Input Argument Specification for Enumerated Data Type

Create an enumerated data type for the three primary colors, and then specify the Input argument specification parameter for a Function Caller block. The Function Caller block calls a Simulink Function block that accepts a signal with the enumerated type as input.

  1. Create a MATLAB file for saving the data type definition. On the MATLAB toolstrip, select New > Class.

  2. In the MATLAB editor, define the elements of an enumerated data type. The class BasicColors is a subclass of the class Simulink.IntEnumType.

    classdef BasicColors < Simulink.IntEnumType
      enumeration
        Red(0)
        Yellow(1)
        Blue(2) 
      end
    end 

  3. Save the class definition in a file named BasicColors.m.

  4. Create a Simulink parameter object myEnum_parameter and assign one of the enumerated values to the Value parameter.

    myEnum_parameter = Simulink.Parameter;
    myEnum_parameter.Value = BasicColors.Red;
  5. For the Function Caller block dialog box, set the Input argument specification. to myEnum_parameter.

  6. For the Argument In block dialog box within a Simulink Function block, set the Data type parameter to Enum: BasicColors.

Input Argument Specification for an Alias Data Type

Create an alias name for the data type single, and then specify the Input argument specification parameter for a Function Caller block. The Simulink Function block called by the Function Caller block also uses the alias name to define the input data type.

  1. Create a Simulink alias data type object myAlias.

    myAlias = Simulink.AliasType;
  2. Assign a data type.

    myAlias.BaseType = 'single';

  3. Create a Simulink parameter object myAlias_parameter and assign the alias name to the DataType parameter.

    myAlias_parameter = Simulink.Parameter;
    myAlias_parameter.DataType = 'myAlias';
    myAlias_parameter.Value = 1;
  4. For the Function Caller block dialog box, set the Input argument specification parameter to myAlias_parameter.

  5. For the Argument In block dialog box within a Simulink Function block, set the Data type parameter to myAlias.

See Also

Blocks

Related Topics