| Simulink® | ![]() |
Math Operations

The Sum block performs addition or subtraction on its inputs. This block can add or subtract scalar, vector, or matrix inputs. It can also collapse the elements of a signal.
You specify the operations of the block with the List of signs parameter. Plus (+), minus (-), and spacer (|) characters indicate the operations to be performed on the inputs:
If there are two or more inputs, then the number of + and - characters must equal the number of inputs. For example, "+-+" requires three inputs and configures the block to subtract the second (middle) input from the first (top) input, and then add the third (bottom) input.
All nonscalar inputs must have the same dimensions. Scalar inputs will be expanded to have the same dimensions as the other inputs.
A spacer character creates extra space between ports on the block's icon.
If only addition of all inputs is required, then a numeric parameter value equal to the number of inputs can be supplied instead of "+" characters.
If only one input port, a single "+" or "-" will collapse the element using the specified operation.
The Sum block first converts the input data type(s) to its accumulator data type, then performs the specified operations. The block converts the result to its output data type using the specified rounding and overflow modes.
The Sum block accepts real or complex signals of any numeric data type supported by Simulink software, including fixed-point data types. The inputs may be of different data types unless you select the Require all inputs to have the same data type parameter.
The Main pane of the Sum block dialog appears as follows:

The Signal Attributes pane of the Sum block dialog appears as follows:

Display the Data Type Assistant.
The Data Type Assistant helps you set the Output data type parameter.
See Specifying Block Output Data Types for more information.
See Block-Specific Parameters for the command-line information.
Designate the icon shape of the block.
Default: round
Designate the icon shape of the block as rectangular.
Designate the icon shape of the block as round.
See Block-Specific Parameters for the command-line information.
Enter plus (+) and minus (-) characters.
Default: |++
Addition is the default operation, so if you only want to add the inputs, enter the number of input ports.
For a single vector input, "+" or "-" will collapse the vector using the specified operation.
Enter as many plus (+) and minus (-) characters as there are inputs.
You can manipulate the positions of the input ports on the block by inserting spacers (|) between the signs in the List of signs parameter. For example, "++|--" creates an extra space between the second and third input ports.
Entering only one element enables the Sum over parameter.
See Block-Specific Parameters for the command-line information.
Select dimension over which to perform the sum over operation.
Default: All dimensions
Sum all input elements, yielding a scaler.
Display the Dimension parameter, where you specify the dimension over which the operation is to be performed.
Selecting Specified dimension enables the Dimension parameter.
This parameter is enabled by List of signs when that parameter has only one element.
See Block-Specific Parameters for the command-line information.
Specify the dimension over which the operation is to be performed.
Default: 1
The block follows the same summation rules as the MATLAB sum function.
For example, for a 2 x 3 matrix U, setting Specified dimension to 1 results in the output Y being computed as:
![]()
Setting Specified dimension to 2 results in Y being computed as:
![]()
If the specified dimension is greater than the dimension of the input, Simulink software reports an error.
This parameter is enabled by selecting Specified dimension to Sum over.
See Block-Specific Parameters for the command-line information.
Enter the discrete interval between sample time hits or specify another appropriate sample time such as continuous or inherited.
Default: -1
By default, the block inherits its sample time based upon the context of the block within the model. To set a different sample time, enter a valid sample time based upon the table in Types of Sample Time.
See also Specifying Sample Time in the online documentation for more information.
See Block-Specific Parameters for the command-line information.
Require that all inputs have the same data type.
Default: Off
Require that all inputs have the same data type.
Do not require that all inputs have the same data type.
See Block-Specific Parameters for the command-line information.
Select to lock scaling of outputs.
Default: Off
Lock scaling of outputs.
Do not lock scaling of outputs.
This parameter is enabled when you enter an expression for the Output data type or Data type parameter.
See Block-Specific Parameters for the command-line information.
Select the rounding mode for fixed-point operations.
Default: Floor
Round number toward zero.
Round number to the nearest representable value.
Round both positive and negative numbers toward positive infinity.
Round both positive and negative numbers toward negative infinity.
This option provides for an optimization of the rounding code for several blocks.
See Block-Specific Parameters for the command-line information.
For more information, see Rounding in the Simulink Fixed Point User's Guide.
Specify whether overflows saturate.
Default: Off
Overflows saturate.
Overflows do not saturate.
See Block-Specific Parameters for the command-line information.
Specify the accumulator data type.
Default: Inherit: Inherit via internal rule
Use internal rule to determine accumulator data type.
Use data type of first input signal.
Accumulator data type is double.
Accumulator data type is single.
Accumulator data type is int8.
Accumulator data type is uint8.
Accumulator data type is int16.
Accumulator data type is uint16.
Accumulator data type is int32.
Accumulator data type is uint32.
Accumulator data type is fixed point fixdt(1,16,0).
Accumulator data type is fixed point fixdt(1,16,2^0,0).
The name of a data type object, for example Simulink.NumericType
See Block-Specific Parameters for the command-line information.
See Using the Data Type Assistant in the Simulink User's Guide for more information.
Specify the minimum value that the block should output.
Default: []
The default value, [], is equivalent to -Inf.
Simulink software uses this value to perform:
Parameter range checking (see Checking Parameter Values) for some blocks
Simulation range checking (see Checking Signal Ranges)
Automatic scaling of fixed-point data types
This number must be a double scalar value.
See Block-Specific Parameters for the command-line information.
Specify the maximum value that the block should output.
Default: []
The default value, [], is equivalent to Inf.
Simulink software uses this value to perform:
Parameter range checking (see Checking Parameter Values) for some blocks
Simulation range checking (see Checking Signal Ranges)
Automatic scaling of fixed-point data types
This number must be a double scalar value.
See Block-Specific Parameters for the command-line information.
Specify the output data type.
Default: Inherit: Inherit via internal rule (Discrete-Time Integrator, Gain, Product, Sum, Switch block), Inherit: Inherit from 'Constant value' (Constant block default), Inherit: Inherit via back propagation (Data Type Conversion block), Inherit: Same as input (Saturation block)
This option appears for some blocks. Simulink software chooses a combination of output scaling and data type that requires the smallest amount of memory consistent with accommodating the calculated output range and maintaining the output precision of the block and with the word size of the targeted hardware implementation specified for the model. If the Device type parameter on the Hardware Implementation configuration parameters pane is set to ASIC/FPGA, Simulink software chooses the output data type without regard to hardware constraints. Otherwise, Simulink software chooses the smallest available hardware data type capable of meeting the range and precision constraints. For example, if the block multiplies an input of type int8 by a gain of int16 and ASIC/FPGA is specified as the targeted hardware type, the output data type is sfix24. If Unspecified (assume 32-bit Generic), i.e., a generic 32-bit microprocessor, is specified as the target hardware, the output data type is int32. If none of the word lengths provided by the target microprocessor can accommodate the output range, Simulink software displays an error message in the Simulation Diagnostics Viewer.
Use data type of Constant value parameter. This option appears for some blocks.
A rule that inherits a data type
Use data type of sole input signal. This option appears for some blocks.
Use data type of first input signal. This option appears for some blocks.
Output data type same as accumulator data type. This option appears for some blocks.
Output data type is double.
Output data type is single.
Output data type is int8.
Output data type is uint8.
Output data type is int16.
Output data type is uint16.
Output data type is int32.
Output data type is unt32.
Output data type is fixed point fixdt(1,16,0).
Output data type is fixed point fixdt(1,16,2^0,0).
The name of a data type object, for example Simulink.NumericType
See Block-Specific Parameters for the command-line information.
See Specifying Block Output Data Types in the Simulink User's Guide for more information.
Select the category of accumulator data to specify
Default: Inherit
Inheritance rules for data types. Selecting Inherit enables a second menu/text box to the right. Below are the possible values, which can vary by block:
Inherit via internal rule
Same as first input
Built-in data types. Selecting Built in enables a second menu/text box to the right. Below are the possible values, which can vary by block:
double
single
int8
uint8
int16
uint16
int32
uint32
Fixed-point data types.
Enumerated data types. This option is available on some blocks.
Expressions that evaluate to data types. Selecting Expression enables a second menu/text to the right. Below are the possible values, which can vary by block:
<data type expression>
This parameter is enabled by the Show data type assistant button.
See Block-Specific Parameters for the command-line information.
See Using the Data Type Assistant in the Simulink User's Guide.
Select the category of data to specify
Default: Inherit (Constant, Data Type Conversion, Discrete Time Integrator, Gain, Inport, Outport, Product, Saturation, Sum, Switch), Built in (Logical Operator, Relational Operator)
Inheritance rules for data types. Selecting Inherit enables a second menu/text box to the right. Below are the possible values, which can vary by block:
Inherit from 'Constant value' (Constant block default)
Inherit via internal rule (Discrete-Time Integrator, Gain, Product, Sum, Switch block default)
Inherit via back propogation (Data Type Conversion block default)
auto (Inport, Outport block default)
Logical (see Configuration Parameters: Optimization)
Same as first input
Same as input (Saturation block default)
Same as accumulator
Built-in data types. Selecting Built in enables a second menu/text box to the right. Below are the possible values, which can vary by block:
double (Constant, Data Type Conversion, Discrete-Time Integrator, Gain, Inport, Outport, Product, Saturation, Sum, Switch block default)
single
int8
uint8
int16
uint16
int32
uint32
boolean (Logical Operator, Relational Operator block default)
Fixed-point data types.
Enumerated data types. This option is available on some blocks. Selecting Enumerated enables a second menu/text box to the right. Below are the possible values, which can vary by block:
<class name>
Expressions that evaluate to data types. Selecting Expression enables a second menu/text box to the right. Below are the possible values, which can vary by block:
<data type expression>
This parameter is enabled by the Show data type assistant button.
See Block-Specific Parameters for the command-line information.
See Using the Data Type Assistant in the Simulink User's Guide.
Specify whether you want the fixed-point data to be signed or unsigned.
Default: Signed
Specify the fixed-point data to be signed.
Specify the fixed-point data to be unsigned.
This parameter is enabled by selecting Mode > Fixed point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify the bit size of the word that will hold the quantized integer.
Default: 16
Minimum: 0
Maximum: 32
Large word sizes represent large values with greater precision than small word sizes.
This parameter is enabled by selecting Mode > Fixed point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify the method for scaling your fixed-point data to avoid overflow conditions and minimize quantization errors.
Default: Best precision or Binary point
Specify binary point location.
Enter slope and bias.
Specify best-precision values. This option appears for some blocks.
This parameter is enabled by selecting Mode > Fixed point.
Selecting Binary point enables
Fraction length
Calculate Best-Precision Scaling
Selecting Slope and bias enables:
Slope
Bias
Calculate Best-Precision Scaling
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify fraction length for fixed-point data type.
Default: 0
Binary points can be positive or negative integers.
This parameter is enabled by selecting Scaling > Binary point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify slope for the fixed-point data type.
Default: 2^0
Specify any positive real number.
This parameter is enabled by selecting Scaling > Slope and bias.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify bias for the fixed-point data type.
Default: 0
Specify any real number.
This parameter is enabled by selecting Scaling > Slope and bias.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify whether you want the fixed-point data to be signed or unsigned.
Default: Signed
Specify the fixed-point data to be signed.
Specify the fixed-point data to be unsigned.
This parameter is enabled by selecting Mode > Fixed point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify the bit size of the word that will hold the quantized integer.
Default: 16
Minimum: 0
Maximum: 32
Large word sizes represent large values with greater precision than small word sizes.
This parameter is enabled by selecting Mode > Fixed point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify the method for scaling your fixed-point data to avoid overflow conditions and minimize quantization errors.
Default: Best precision (Constant), Binary point (Data Type Conversion, Discrete-Time Integrator, Gain, Inport, Outport, Product, Saturation, Sum, Switch), Integer (Logical Operator, Relational Operator)
Specify binary point location.
Enter slope and bias.
Specify best-precision values. This option appears for some blocks.
Specify integer. This setting has the same result as specifying a binary point location and setting fraction length to 0. This option appears for some blocks.
This parameter is enabled by selecting Mode > Fixed point.
Selecting Binary point enables
Fraction length
Calculate Best-Precision Scaling
Selecting Slope and bias enables:
Slope
Bias
Calculate Best-Precision Scaling
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify fraction length for fixed-point data type.
Default: 0
Binary points can be positive or negative integers.
This parameter is enabled by selecting Scaling > Binary point.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify slope for the fixed-point data type.
Default: 2^0
Specify any positive real number.
This parameter is enabled by selecting Scaling > Slope and bias.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Specify bias for the fixed-point data type.
Default: 0
Specify any real number.
This parameter is enabled by selecting Scaling > Slope and bias.
See Block-Specific Parameters for the command-line information.
See Specifying a Fixed-Point Data Type in the Simulink User's Guide for more information.
Direct Feedthrough | Yes |
Sample Time | Specified in the Sample time parameter |
Scalar Expansion | Yes |
States | 0 |
Dimensionalized | Yes |
Multidimensionalized | Yes, only along the specified dimension |
Zero Crossing | No |
![]() | Subsystem, Atomic Subsystem, CodeReuse Subsystem | Switch | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |