主要内容

添加减去元素的总和

加或减输入

  • 图书馆:
  • 金宝appSimulink / Math操作

    HDL编码器/ HDL浮点操作

    HDL编码器/数学操作

  • 添加块

描述

块在其输入上执行添加或减法。添加,减去元素和总和块和块是相同的块。该块可以添加或减去标量,向量或矩阵输入。它还可以折叠信号的元素并执行求和。

属性指定块的操作标志名单plus的参数(+), 减 (-),以及垫片(|)。

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

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

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

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

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

块输出计算

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

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

一个输入端口

输入端口标志是+

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


e [i]是I.th输入U的元素

输入端口标志是 -

Y = 0.0 - E [0] - e [1] - e [2] ... - e [m]


两个或多个输入端口

所有输入端口符号为-

Y = 0.0 - U [0] - U [1] - U [2] ... - 你[n]


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

K.th输入端口是第一个带+号的端口

Y = U [K] - U [0] - U [1] - U [2] - U [k-1](+/-)U [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|布尔|固定点

参数

全部展开

主要的

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

对于矩形块,第一个输入端口是顶部端口。对于一个整数块,第一个输入端口是最接近12点位置的端口,以逆时针方向围绕块。类似地,其他输入端口以逆时针方向排列。

程序使用

块参数iconshape.
类型:字符向量
价值'矩形的'|'圆形的'
默认'圆形的'

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

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

提示

您可以通过插入间隔块来操纵块上的输入端口的位置(|)在标志之间标志名单范围。例如, ”++|--在第二和第三输入端口之间创造了一个额外的空间。

程序使用

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

选择块执行Sum-Over操作的维度。

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

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

依赖

当您只列出一个登录时启用标志名单范围。

程序使用

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

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

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

假设您有一个2×3矩阵

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

    y = σ. 一世 = 1 2 一世 j

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

    y = σ. j = 1 3. 一世 j

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

依赖

选择时启用指定的维度求和范围。

程序使用

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

将样本时间指定为-1以外的值。有关更多信息,请参阅指定采样时间

依赖关系

除非将其明确设置为除此之外的值,否则此参数不可见。-1.要了解更多信息,请参阅不建议使用采样时间的块

程序使用

块参数:采样时间
类型:特征向量
价值观:标量或矢量
默认:'-1'

信号的属性

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

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

程序使用

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

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

程序使用

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

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

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

笔记

输出最小值不饱和或夹住实际输出信号。使用饱和块来代替。

程序使用

块参数inumin.
类型:字符向量
价值“[]”|标量
默认“[]”

Simulink检查的输出范围的上限值。金宝app

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

笔记

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

程序使用

块参数outmax.
类型:字符向量
价值“[]”|标量
默认“[]”

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

当您选择继承的选项时,块的行为如下:

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

    笔记

    累加器内部规则有利于更高的数值准确性,可能是生成效率较低的成本。为了获得相同的输出精度,将输出数据类型设置为继承:继承与累加器相同

  • 继承:保持最高有效位- 金宝app Simulink选择维护操作的全系列的数据类型,然后将输出的精度降低到适合于嵌入目标硬件的大小。

    提示

    对于更高效的生成代码,请设置累加器数据类型继承:通过内部规则继承,并取消选择整数溢出饱和范围。

    这条规则永远不会产生溢出。

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

    提示

    对于更高效的生成代码,请设置累加器数据类型继承:通过内部规则继承,并取消选择整数溢出饱和范围。

    此规则可以产生溢出。

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

    • 明确指定输出数据类型。

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

    • 明确指定默认数据类型,例如Fixdt(1,32,16)然后使用定点工具为模型提出数据类型。有关更多信息,请参阅FXPTDLG.(定点设计师)

    • 要指定自己的继承规则,请使用继承:通过反向传播继承然后用a数据类型传播块。有关如何使用此块的示例可在Signal Attributes库中找到数据类型传播示例块。

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

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

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

程序使用

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

选择以锁定此块的数据类型设置,以防止定点工具和固定点顾问的更改。有关更多信息,请参阅锁定输出数据类型设置(定点设计师)

程序使用

块参数:lockscale.
价值观:”从“|”“
默认:“关闭”

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

阻止参数始终舍入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数输入蒙版字段。

程序使用

块参数:rndmeth.
类型:特征向量
价值观:'天花板'|'收敛'|'地板'|'最近'|'圆'|'最简单'|'零'
默认:'地面'

指定是否溢出饱和或包裹。

行动 理由 对溢出的影响 例子

选中此复选框()。

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

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

的最大值INT8.(签名的8位整数)数据类型可以表示为127.任何块操作结果大于此最大值会导致8位整数的溢出。选中复选框后,块输出在127处饱和。类似地,块输出在最小输出值-128处饱和。

请勿选中此复选框(离开)。

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

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

溢出到可由数据类型表示的适当值。

的最大值INT8.(签名的8位整数)数据类型可以表示为127.任何块操作结果大于此最大值会导致8位整数的溢出。通过清除复选框,软件将溢出引起的值解释为INT8.,这可能会产生意想不到的结果。例如,块结果130(二进制1000 0010)表示为INT8.,是-126。

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

程序使用

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

块特征

数据类型

布尔||固定点|一半|整数|

直接喂养

是的

多维信号

是的

适应信号

是的

零交叉检测

扩展功能

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

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

定点转换
使用fixed-point Designer™设计和模拟定点系统。

也可以看看

||

在R2006A之前介绍