主要内容

产品

标量和非标量相乘和除,或者矩阵相乘和求逆

  • 库:
  • 金宝appSimulink /常用块

    金宝appSimulink /数学运算

    HDL编码器/常用块

    HDL编码器/ HDL浮点运算

    HDL编码器/数学运算

  • 产品块

描述

产品块输出两个输入相乘的结果:两个标量、一个标量和一个非标量,或者两个具有相同维度的非标量。指定此行为的默认参数值为:

  • 乘法:Element-wise (. *)

  • 输入数量:2

命令的输出产品块的输入例子使用默认块参数值。

输入和行为 例子

标量X标量

输出两个输入的乘积。

标量X非标量

输出与输入非标量具有相同维度的非标量。输出非标量的每个元素都是输入标量与输入非标量的相应元素的乘积。

非标量X非标量

输出与输入具有相同维度的非标量。输出的每个元素都是输入的相应元素的乘积。

而且元素乘积的变体产品块。

  • 浏览有关块,看

  • 浏览有关元素乘积块,看元素乘积

产品块(或块或元素乘积块,如果适当配置)可以:

  • 对任意数量的标量、向量或矩阵输入进行数值乘法和除法运算

  • 对任意数量的矩阵输入执行矩阵乘法和除法

产品块执行标量乘法或矩阵乘法,具体取决于乘法参数。块接受一个或多个输入,具体取决于输入数量参数。的输入数量参数还指定对每个输入执行的操作。

产品Block可以输入标量、向量和矩阵的任何组合,对于这些组合,要执行的操作具有数学定义的结果。该块对输入执行指定的操作,然后输出结果。

产品Block有两种模式:Element-wise模式,它逐元素处理非标量输入,以及矩阵模式,它将非标量输入处理为矩阵。

Element-Wise模式

当你设置乘法Element-wise (. *), Product块进入Element-wise模式,其中它对任何非标量输入的单个数字元素进行操作。MATLAB®等价的是.*操作符。在逐元素模式中,产品块可以执行各种乘法、除法和算术逆运算。

的值输入数量参数控制存在多少个输入,以及是否将每个输入相乘或除以形成输出。当产品Block是在元素模式,只有一个输入,它在功能上等价于元素乘积块。当块有多个输入时,任何非标量输入必须具有相同的尺寸,并且块输出具有这些尺寸的非标量。为了计算输出,块首先将任何标量输入展开为与非标量输入具有相同维度的非标量。

命令的输出产品块的输入例子的指定值输入数量参数。

参数值 例子

输入数量:2

输入数量:* /

输入数量:/ * * /

输入数量:**

输入数量:* / *

矩阵模式

时的值乘法参数是矩阵(*),产品Block在矩阵模式,其中它将非标量输入处理为矩阵。MATLAB中等价的是操作符。在矩阵模式下,产品Block可以对单个方阵求反,或者对任意数量的矩阵进行乘法和除法,这些矩阵具有数学上定义的结果的维度。

的值输入数量参数控制存在多少个输入,以及每个输入矩阵是否相乘或除以形成输出。的语法输入数量与按元素模式相同。模态之间的区别在于所发生的乘法和除法的类型。

模拟和代码生成之间的预期差异

对于复杂浮点输入上的元素操作,在接近溢出的情况下,模拟和代码生成结果可能不同。虽然复数被选中,并且非谓语形式的数字上未选中代码生成>接口窗格中的“配置参数”对话框,则代码生成器不会发出用于中间溢出的特殊情况代码。对于不包含极值的一般情况,这种方法提高了嵌入式操作的效率。如果输入可能包含极端值,则必须显式地管理这些情况。

所生成的代码可能不会产生相同的模式而且当这些值在数学上没有意义时,将这些值作为模拟。例如,如果模拟输出包含,从生成的代码输出也包含一个,但不一定在同一个地方。

港口

输入

全部展开

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

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

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

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

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

依赖关系

启用一个或多个X端口,指定一个或多个的字符输入数量参数,并设置乘法参数Element-wise (. *)

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

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

依赖关系

启用一个或多个÷端口,指定一个或多个/的字符输入数量参数,并设置乘法参数Element-wise (. *)

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

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

依赖关系

启用一个或多个端口,指定一个或多个的字符输入数量参数,并设置乘法参数矩阵(*)

数据类型:一半|||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' | '**' | '*/' | '*/*' |…
默认值:' 2 '

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

编程使用

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

指定要乘以的尺寸所有维度,或指定的尺寸.当你选择指定的尺寸时,可以指定作为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

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

    提示

    要获得更有效的生成代码,请取消选择饱和整数溢出参数。

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

  • 继承:匹配缩放—S金宝appimulink选择的数据类型的伸缩与输入类型的伸缩相匹配。如果该类型的全部范围不适合嵌入式目标硬件,则缩小该范围,生成适合嵌入式目标硬件的类型。该规则会产生溢出。该规则不支持复杂信号之间的乘法运算金宝app

    继承:保留MSB而且继承:匹配缩放规则不支持复杂信号或非零偏金宝app置信号之间的乘法。规则只支持乘法和除法金宝app(“* *”,“* /”,“/ *”)两个输入之间的矩阵乘法,两个输入之间的矩阵乘法,以及一个向量的两个元素的折叠积。

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

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

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

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

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

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

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

依赖关系

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

编程使用

块参数OutDataTypeStr
类型:字符向量
继承:通过内部规则继承|“继承:保留MSB”|“继承:匹配缩放”|继承:与第一次输入相同|“继承:通过反向传播继承”|“双”|“单一”|“一半”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“uint64”|“int64”|“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'
默认值:“关闭”

块特征

数据类型

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

直接引线

是的

多维信号

是的

适应信号

是的

讨论二阶导数过零检测

没有

扩展功能

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

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

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

另请参阅

||

R2006a之前介绍