主要内容

添加减去元素和总和

添加或减去输入

  • 库:
  • 金宝appSimulink /数学运算

    HDL编码器/ HDL浮点运算

    HDL编码/数学运算

  • 添加块

描述

总和块对其输入执行加法或减法。Add, Subtract, Sum of Elements和Sum块是相同的块。此块可以添加或减去标量、矢量或矩阵输入。它还可以分解信号的元素并进行求和。

指定块的操作标志列表带+(的参数+),减去(-),以及垫片(|).

  • 的数量+-字符数等于输入的数量。例如,+-+需要三个输入。该块从第一个(顶部)输入中减去第二个(中间)输入,然后添加第三个(底部)输入。

  • 间隔字符在块图标上的端口之间创建额外的空间。

  • 如果只执行加法,则可以使用等于输入数的数值。

  • 如果只有一个输入端口,一个+-在所有维度上或指定维度中添加或减去元素。

Sum块首先将输入数据类型转换为累加器数据类型,然后执行指定的操作。该块使用指定的舍入和溢出模式将结果转换为其输出数据类型。

块输出的计算

Sum块的输出计算取决于块输入的数量和输入端口的符号:

如果Sum块有… 和… 计算输出的公式是… 在那里……

一个输入端口

输入端口符号为“+”

Y = e[0] + e[1] + e[2]…+ e [m]


e[我]是I吗?th输入u的元素

输入端口符号为-

Y = 0.0 - e[0] - e[1] - e[2]…- e [m]


两个或多个输入端口

所有输入端口的标志都是-

Y = 0.0 - u[0] - u[1] - u[2]…- u [n]


你(我)I的输入是多少th输入端口

kth输入端口是第一个符号为+的端口

y = u [k] - u [0] - [1] - u [2] - u (k - 1) (+ / -) [k + 1]…(+ / -) u [n]


港口

输入

全部展开

输入可以是不同的数据类型,除非您选择要求所有输入具有相同的数据类型参数。

加减运算的输入信号。如果只有一个输入信号,则对所有维度或指定维度上的元素执行加法或减法。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

n操作的输入信号。输入的数量与符号的数量相匹配标志列表参数。该块按照列出的顺序对输入应用操作。也可以使用等于输入端口数量的数值作为标志列表参数。该块创建输入端口并对所有输入应用加法。例如,如果你分配5标志列表参数,块创建5输入端口,并将它们加在一起产生输出。

所有非标量输入必须具有相同的维度。标量输入被扩展为与其他输入具有相同的维度。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

输出

全部展开

由加法和/或减法运算产生的输出信号。输出信号与输入信号具有相同的维数。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

参数

全部展开

主要

指定块的图标形状为矩形或圆形。

对于矩形块,第一个输入端口是顶部端口。对于圆形Sum块,第一个输入端口是最靠近12点钟位置的端口,沿逆时针方向绕块运行。类似地,其他输入端口以逆时针顺序出现在块周围。

编程使用

块参数IconShape
类型:字符向量
“矩形”|“圆”
默认的“圆”

输入对输入执行的加法和减法操作。为每个操作创建一个输入端口。垫片(|)在块图标的输入端口之间创建额外的空间。添加是默认操作。如果您只想添加输入,请输入输入端口数。操作按照所列的顺序执行。

当您只输入一个元素时,该块将启用求和参数。对于单个矢量输入,+-在所有维度上或指定维度中添加或减去元素。

提示

您可以通过插入间隔条(|)的标志之间标志列表参数。例如,“++|--在第二和第三个输入端口之间创造了额外的空间。

编程使用

块参数输入
类型:字符向量
“+”|“- - -”|||整数
默认的“+ +”

选择块执行求和操作的维度。

所有维度,对所有输入元素求和。选择配置参数时使用针对行为主数组布局优化的算法,仿金宝app真软件®启用行主要算法进行仿真。若要生成行主码,请设置配置参数阵列布局(金宝app仿真软件编码器)除了选择使用针对行为主数组布局优化的算法.列主要算法和行主要算法仅在求和顺序上有所不同。在某些情况下,由于对同一数据集的操作顺序不同,您可能会在列为主算法和行为主算法的输出中遇到轻微的数值差异。

当你选择指定的尺寸,另一个参数出现了。选择特定的维度来求和向量输入。

依赖

中只列出一个标志时启用标志列表参数。

编程使用

块参数CollapseMode
类型:字符向量
“所有维度”|“指定维度”
默认的“所有维度”

当你选择指定的尺寸求和参数时,指定要执行操作的维度。

该块遵循与MATLAB相同的求和规则®总和函数。

假设你有一个2 × 3矩阵U

  • 设置1输出结果Y计算为:

    Y = = 1 2 U j

  • 设置2输出结果Y计算为:

    Y = j = 1 3. U j

如果指定的尺寸大于输入的尺寸,则会出现错误消息。

依赖

当您选择时启用指定的尺寸求和参数。

编程使用

块参数CollapseDim
类型:字符向量
价值整数
默认的' 1 '

将采样时间指定为非1.有关更多信息,请参见指定采样时间

依赖关系

这个参数是不可见的,除非它被显式地设置为一个值1.要了解更多信息,请参见不推荐采样时间的块

编程使用

块参数:SampleTime
类型:字符串标量或字符向量
默认值:“1”

信号的属性

单击显示数据类型助手按钮要显示数据类型助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

指定输入信号是否必须具有相同的数据类型。如果启用此参数,则如果输入信号类型不同,则在模拟期间发生错误。

编程使用

块参数:InputSameDT
类型:特征向量
价值观:'off' b| 'on'
默认值:“关闭”

选择累加器的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType.当你选择继承:通过内部规则继承, 金宝appSimulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑到嵌入式目标硬件的属性。

编程使用

块参数AccumDataTypeStr
类型:字符向量
继承:通过内部规则继承|“继承:与第一次输入相同”|“双”“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“继承:通过内部规则继承”

Simulink检查输出范围的较低值。金宝app

金宝appSimulink使用最小值来执行:

请注意

输出最小不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMin
类型:字符向量
“[]”|标量
默认的“[]”

Simulink检测输出范围的最大值。金宝app

金宝appSimulink使用最大值来执行:

请注意

输出最大不饱和或剪辑实际输出信号。使用饱和块来代替。

编程使用

块参数OutMax
类型:字符向量
“[]”|标量
默认的“[]”

选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType

当你选择一个继承的选项时,块的行为如下:

  • 继承:通过内部规则继承s金宝appimulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑到嵌入式目标硬件的属性。

    请注意

    累加器内部规则倾向于更高的数值精度,但代价可能是生成的代码效率较低。要获得相同的输出精度,请将输出数据类型设置为继承:继承与累加器相同

    请注意

    当输入是小于单精度的浮点数据类型时继承:通过内部规则继承控件的设置决定了输出数据类型继承小于单精度的浮点输出类型配置参数。当编码数据类型所需的位数少于编码单精度数据类型所需的32位时,数据类型小于单精度数据类型。例如,一半int16都小于单精度。

  • 继承:保留MSB- 金宝appSimulink选择一种数据类型,保持操作的全部范围,然后将输出精度降低到适合嵌入式目标硬件的大小。

    提示

    为更有效地生成代码,请设置累加器数据类型继承:通过内部规则继承,取消选择使整数溢出饱和参数。

    此规则永远不会产生溢出。

  • 继承:保持LSB- 金宝appSimulink选择一种保持操作精度的数据类型,但如果完整类型不适合嵌入式目标硬件,则会减小范围。

    提示

    为更有效地生成代码,请设置累加器数据类型继承:通过内部规则继承,取消选择使整数溢出饱和参数。

    该规则可能会产生溢出。

    如果更改嵌入式目标设置,则这些内部规则选择的数据类型可能会更改。软件并不总是能够同时优化代码效率和数值精度。如果规则不能满足您对数值精度或性能的特定需求,请使用以下选项之一:

    • 显式指定输出数据类型。

    • 使用简单的选择继承:与第一次输入相同

    • 显式指定默认数据类型,例如fixdt(1, 32岁,16)然后使用定点工具为您的模型提出数据类型。有关更多信息,请参见fxptdlg(定点设计师)

    • 要指定您自己的继承规则,请使用继承:通过反向传播继承然后使用a数据类型传播块。如何使用此块的示例可在信号属性库中获得数据类型传播示例块。

  • 继承:通过反向传播继承—使用驱动块的数据类型。

  • 继承:与第一次输入相同—使用第一次输入信号的数据类型。

  • 继承:继承与累加器相同—使用累加器的数据类型。

编程使用

块参数OutDataTypeStr
类型:字符向量
继承:通过内部规则继承|“继承:保留MSB”|“继承:保留LSB”|“继承:通过反向传播继承”“继承:与第一次输入相同”|继承:与累加器相同|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”“int32”|“uint32”|“int64”|“uint64”|“fixdt(16)”|“fixdt(0) 1, 16日”|“fixdt(1, 16日2 ^ 0,0)”|'<数据类型表达式>'
默认的“继承:通过内部规则继承”

选择此选项以锁定此块的数据类型设置,不受定点工具和定点顾问的更改影响。有关更多信息,请参见锁定输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
价值观:'off' b| 'on'
默认值:“关闭”

指定定点操作的舍入模式。有关更多信息,请参见舍入(定点设计师)

块参数总是四舍五入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在掩码字段中输入表达式。

编程使用

块参数:RndMeth
类型:特征向量
价值观:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | ' most ' | 'Zero'
默认值:“地板”

指定溢出是饱和溢出还是自动溢出。

行动 基本原理 对溢出的影响 例子

选择此复选框().

您的模型可能存在溢出,并且您希望在生成的代码中显式地进行饱和保护。

溢出饱和到数据类型可以表示的最小值或最大值。

最大值int8(有符号,8位整数)数据类型可以表示为127。任何大于这个最大值的块操作结果都会导致8位整数溢出。选中复选框后,块输出饱和值为127。同样,块输出在最小输出值-128时达到饱和。

不要选择此复选框().

您希望优化生成代码的效率。

您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差

溢出将自动换行到可由数据类型表示的适当值。

最大值int8(有符号,8位整数)数据类型可以表示为127。任何大于这个最大值的块操作结果都会导致8位整数溢出。清除复选框后,软件将导致溢出的值解释为int8,这可能会产生意想不到的结果。例如,块结果130(二进制10000010)表示为int8等于-126。

当您选择此复选框时,饱和度适用于块上的每个内部操作,而不仅仅是输出或结果。通常,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。

编程使用

块参数:SaturateOnIntegerOverflow
类型:特征向量
价值观:'off' b| 'on'
默认值:“关闭”

块特征

数据类型

布尔||不动点|一半|整数|

直接引线

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

没有

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

PLC代码生成
生成结构化文本代码使用Simulink®PLC编码器™。金宝app

定点转换
使用定点设计器™设计和模拟定点系统。

版本历史

R2006a之前引入