主要内容

元素乘积

复制或反转一个标量输入,或折叠一个非标量输入

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

    HDL编码器/ HDL浮点运算

    HDL编码器/数学运算

  • 元素块产品

描述

元素乘积块输入一个标量、向量或矩阵。你可以使用该块:

  • 原样复制标量输入

  • 求标量输入的倒数(1除以它)

  • 将一个向量或矩阵折叠成一个标量,方法是将所有元素相乘或取元素的连续倒数

  • 使用以下选项之一将矩阵折叠为向量:

    • 将每一行或每列的元素相乘

    • 取每一行或每列元素的连续倒数

元素乘积Block在功能上是产品具有两个预设参数值的块:

  • 乘法Element-wise (. *)

  • 输入数量

为这些参数中的任何一个设置非默认值都可以更改元素乘积块在功能上等价于产品块或块。

港口

输入

全部展开

乘法或除法的第一个输入,以标量、向量、矩阵或N-D数组的形式提供。

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

用于乘或除的第n个输入,以标量、向量、矩阵或N-D数组的形式提供。

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

输入信号与其他输入相乘。

依赖关系

启用一个或多个X端口,指定一个或多个的字符输入数量参数。

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

除法或反运算的输入信号。

依赖关系

启用一个或多个÷端口,指定一个或多个/的字符输入数量参数。

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

输出

全部展开

通过乘、除或反输入计算的输出。

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

参数

全部展开

主要

控制block的两个属性:

  • 块上输入端口的数目

  • 每个输入是否被乘以或除为输出

当你指定:

  • 1/

    块有一个输入端口。类中所描述的按元素模式,块处理输入元素乘积块。在矩阵模式下,如果参数值为1时,块输出输入值。如果值为/,输入必须是方阵(包括标量作为简并情况),块输出矩阵逆。看到Element-Wise模式而且矩阵模式获取更多信息。

  • 整数值>

    该块具有由整数值给出的输入数量。元素指定的按元素模式或矩阵模式将输入相乘乘法参数。看到Element-Wise模式而且矩阵模式获取更多信息。

  • 两个或多个不加引号的字符串而且/字符

    该块的输入数量由字符向量的长度给出。每个输入对应于a字符乘入输出。每个输入对应于a/字符被划分为输出。类指定的按元素模式或矩阵模式下进行操作乘法参数。看到Element-Wise模式而且矩阵模式获取更多信息。

编程使用

块参数:输入
类型:特征向量
价值观:'2' | '*' | '**' | '*/' | '*/*' |…
默认值:‘*’

指定块是否执行Element-wise (. *)矩阵(*)乘法。

编程使用

块参数:乘法
类型:特征向量
价值观:'按元素(.*)' | '矩阵(*)'
默认值:“Element-wise(. *)”

指定要乘以的尺寸所有维度,或指定的尺寸

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

当你选择指定的尺寸时,可以指定作为12

依赖关系

若要启用该参数,请设置输入数量而且乘法Element-wise (. *)

编程使用

块参数:CollapseMode
类型:特征向量
价值观:“所有尺寸”|“指定尺寸”
默认值:“所有维度”

指定要乘以的维数为小于或等于输入信号的维数的整数。

依赖关系

要启用该参数,请设置:

  • 输入数量

  • 乘法Element-wise (. *)

  • 用在指定的尺寸

编程使用

块参数:CollapseDim
类型:特征向量
价值观:'1' | '2' |…
默认值:' 1 '

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

依赖关系

此参数不可见,除非显式地设置为其他值-1.要了解更多信息,请参见不建议采样时间的块

编程使用

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

信号的属性

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

编程使用

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

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

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

请注意

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

编程使用

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

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

金宝appSimulink使用最大值执行:

请注意

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

编程使用

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

选择输出的数据类型。类型可以被继承、直接指定或表示为数据类型对象,例如金宝app仿真软件。NumericType.有关更多信息,请参见控制信号的数据类型

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

  • 继承:通过内部规则继承Si金宝appmulink选择一种数据类型来平衡数值精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。如果更改嵌入式目标设置,则内部规则选择的数据类型可能会更改。例如,如果块乘以类型的输入int8通过增加int16而且ASIC / FPGA指定为目标硬件类型时,输出数据类型为sfix24.如果未指定(假设32位通用),换句话说,一个通用的32位微处理器,被指定为目标硬件,输出数据类型为int32.如果目标微处理器提供的字长都不能满足输出范围,Simulink软件将在诊断查看器中显示错误。金宝app

    软件并不总是能够同时优化代码效率和数值精度。如果内部规则不能满足您对数值精度或性能的特定需求,请使用以下选项之一:

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

    • 使用简单的选择Inherit:与input相同

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

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

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

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

依赖关系

当输入是小于单个精度的浮点数据类型时,继承:通过内部规则继承输出数据类型取决于继承小于单个精度的浮点输出类型配置参数。当编码数据类型所需的位数小于编码单精度数据类型所需的32位时,数据类型小于单精度数据类型。例如,一半而且int16均小于单精度。

编程使用

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

选择此参数可防止定点工具覆盖输出您在块上指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

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

为定点操作选择舍入模式。您可以选择:

天花板

将正数和负数四舍五入到正无穷。等价于MATLAB®装天花板函数。

收敛

将数字舍入到最接近的可表示值。如果出现平局,则舍入到最接近的偶数。相当于定点设计器™收敛函数。

地板上

正负数四舍五入到负无穷。等价于MATLAB地板上函数。

最近的

将数字舍入到最接近的可表示值。如果出现平局,则四舍五入为正无穷。相当于定点设计器最近的函数。

将数字舍入到最接近的可表示值。如果出现平局,则将正数四舍五入到正无穷,将负数四舍五入到负无穷。相当于定点设计器函数。

简单的

在向下限舍入和向零舍入之间进行选择,以生成尽可能高效的舍入代码。

把数字舍入到零。等价于MATLAB修复函数。

有关更多信息,请参见舍入(定点设计师)

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

编程使用

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

指定溢出是饱和还是包裹。

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

选中此复选框().

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

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

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

不要选中此复选框().

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

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

溢出包装为由数据类型表示的适当值。

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

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

编程使用

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

块特征

数据类型

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

直接引线

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

没有

算法

元素乘积Block使用这些算法对浮点、内置整数和定点类型的输入执行逐元素的操作。

输入 Element-Wise操作 算法

真正的标量,u

乘法 Y = u
部门 Y = 1/u

实向量或带元素的矩阵U1 u2 u3…,联合国

乘法 y = u1*u2*u3*…*uN
部门 y = ((((1/u1)/u2)/u3)…/uN)

复杂的标量,u

乘法 Y = u
部门 Y = 1/u

有元素的复数向量或矩阵U1 u2 u3…,联合国

乘法 y = u1*u2*u3*…*uN
部门 y = ((((1/u1)/u2)/u3)…/uN)

如果按元素乘或除的指定维数是矩阵的行或列,则算法应用于该行或列。考虑一下这个模型

顶部元素乘积Block通过取四个元素的连续倒数将矩阵输入折叠为一个标量:

  • Y = ((((1/2+i)/3)/4-i)/5)

底部元素乘积Block将矩阵输入折叠为一个向量,方法是沿着第二次维度取连续的逆:

  • Y (1) = ((1/2+i)/3)

  • Y (2) = ((1/4-i)/5)

扩展功能

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

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

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

版本历史

R2006a之前介绍

另请参阅

||