添加,减去,元素的总和,总和

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

    HDL编码器/ HDL浮点运算

    HDL编码器/数学运算

描述

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

您指定块与操作符号列表参数加(+)- (-)和间隔物(|)。

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

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

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

  • 如果只有一个输入端口,就只有一个+-加上或减去在所有维上或在指定的尺寸的元素。

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

块输出的计算

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

如果算块有... 和… 输出计算公式为… 在那里……

一个输入端口

输入端口符号是+

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


e[我]是我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|布尔|不动点

参数

全部展开

主要

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

对于矩形块,第一输入端口是顶部端口。对于圆萨姆块,第一输入端口最接近12点钟的位置在周围块中的反时针方向去的端口。类似地,其他输入端口出现在块周围逆时针顺序。

编程使用

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

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

当你进入只有一个元素,该模块使求和参数。对于单个向量输入,+-加上或减去在所有维上或在指定的尺寸的元素。

提示

您可以通过插入分隔符(|)之间的标志符号列表参数。例如,“++ | -”创建第二和第三输入端口之间的额外空间。

编程使用

块参数:输入
类型:特征向量
:'+'|“- - -”|||整数
默认的:“+ +”

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

所有尺寸,所有输入元素求和。当您选择配置参数时使用为行-主数组布局优化的算法,S金宝appimulink的®启用行主算法进行模拟。若要生成行主代码,请设置配置参数阵列布局(金宝app编码器的Simulink)至除了选择使用为行-主数组布局优化的算法。主列和主行算法只在求和顺序上有所不同。在某些情况下,由于同一数据集上的操作顺序不同,您可能会在主列算法和主行算法的输出中体验到细微的数字差异。

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

依赖

中仅列出一个符号时启用符号列表参数。

编程使用

块参数: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
类型:特征向量
价值观:”从“|”“
默认值:“关”

选择累加器的数据类型。类型可以继承、直接指定或表示为数据类型对象,如金宝appSimulink.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
类型:特征向量
:'[]'|纯量
默认的:'[]'

选择输出的数据类型。类型可以继承、直接指定或表示为数据类型对象,如金宝appSimulink.NumericType

当您选择一个继承选项,该块行为如下:

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

    请注意

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

  • 继承:保持最高有效位- 金宝appSimulink选择一种数据类型来维持整个操作范围,然后将输出的精度降低到适合嵌入式目标硬件的大小。

    提示

    若要更有效地生成代码,请设置蓄电池数据类型继承:通过内部规则继承,取消选择饱和整数溢出参数。

    这个规则不会产生溢出。

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

    提示

    若要更有效地生成代码,请设置蓄电池数据类型继承:通过内部规则继承,取消选择饱和整数溢出参数。

    这个规则会产生溢出。

    如果你改变了嵌入式目标设置,通过这些内部规则选择的数据类型可能发生改变。这并不总是可能的,同时该软件来优化代码的效率和计算精度。如果规则不符合计算精度和性能,以下选项使用一个您的特定需求:

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

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

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

    • 要指定自己的继承规则,使用继承:通过反向传播继承然后使用数据类型传播块。如何使用这个块的例子可以在信号属性库中找到数据类型传播例子块。

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

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

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

编程使用

块参数:OutDataTypeStr
类型:特征向量
:“继承:通过内部规则继承|“继承:保持最高有效位”|“继承:保持LSB”|'Inherit:通过反向传播继承'“继承:同第一输入”|'Inherit:与accumulator相同'|“双”|“单一”|'INT8'|“uint8”|'INT16'|“uint16”,“int32”|'UINT32'|“int64”|“uint64”|“fixdt (16)”|“fixdt(0) 1, 16日”|'fixdt(1,16,2 ^ 0,0)'|<数据类型表达式>的
默认的:“继承:通过内部规则继承”

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

编程使用

块参数:LockScale
价值观:”从“|”“
默认值:“关”

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

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

编程使用

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

指定溢出是否饱和或换行。

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

选中此复选框()。

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

溢出将使数据类型所能表示的最小值或最大值达到饱和。

的最大值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®PLC Coder™生成结构化文本代码。金宝app

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

之前介绍过的R2006a