Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

MinMax

输出最小或最大输入值

  • MinMax block

库:
Simulink / Math Operations
HDL Coder / Math Operations

描述

MinMax 模块输出输入的最小或最大元素。您可以通过设置函数参数来选择模块是否输出最小值或最大值。

MinMax 模块将忽略类型为 NaN 的任何输入值,除非每个输入值为 NaN。当所有输入值均为 NaN 时,输出为 NaN,要么是标量,要么是每个输出向量元素的值。

示例

全部展开

此示例说明如何使用 MinMax 模块输出两个正弦波的最大值。

运行完整仿真后,您可以在示波器内查看结果。最初,最大值(橙色线)跟踪 SineWave2。当 SineWave2 值变为负值时,最大值开始跟踪 SineWave1。当 SineWave2 值再次变为正值时,最大值继续跟踪 SineWave2。

扩展示例

端口

输入

全部展开

提供输入信号,模块根据该输入信号输出最大值或最小值。

  • 如果模块只有一个输入端口,则输入必须为标量或向量。模块将输出等于输入向量的最小或最大元素的标量。

  • 如果模块有多个输入端口,则所有非标量输入都必须具有相同的维度。模块会扩展任何标量输入,使其与非标量输入具有相同的维度。模块将输出与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。

依存关系

要支持矩阵输入,您必须将输入端口数目参数设置为大于 1 的整数。所有的非标量输入信号必须具有相同的维度。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

提供输入信号,模块根据该输入信号输出最大值或最小值。

如果模块有多个输入端口,则所有非标量输入都必须具有相同的维度。模块会扩展任何标量输入,使其与非标量输入具有相同的维度。模块将输出与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。

依存关系

要提供多个输入信号,请将输入端口数目设置为大于 1 的整数。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

输出

全部展开

当模块有一个输入时,输出是标量值,该标量等于输入元素的最小值或最大值。当模块有多个输入时,输出是与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。如果模块输入具有不同的输入数据类型,则输出与输入的大小相同,但精度可能较低。例如,如果一个输入的数据类型为 int8,一个为 uint8,则输出数据类型仍为 8 位,即 sfix8_E1,但精度较低。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

常设

指定对输入应用 min 函数还是 max 函数。

编程用法

模块参数Function
类型:字符向量
值:'min' | 'max'
默认值:'min'

指定模块的输入数目。

编程用法

模块参数Inputs
类型:字符向量
值:positive integer
默认值:'1'

指定如何沿指定维度应用函数。

  • 所有维度 - 对所有维度的所有输入值应用函数。

  • 指定维度 - 对指定维度的所有输入值应用函数。

例如,在此模型中,函数设置为最大值应用于设置为所有维度。该模块返回所有维度中最大的输入值。

2D matrix with Constant block value [1 3 5;3 6 7;9 10 1] as input to MinMax block configured for all dimensions

依存关系

要启用此参数,输入端口数目必须为 1

编程用法

模块参数CollapseMode
类型:字符向量
'All dimensions' | 'Specified dimension'
默认值:'All dimensions'

将沿其应用函数的维度指定为正整数。例如,对于二维矩阵,1 将函数应用于每列,2 将函数应用于每行。

例如,在此模型中,函数设置为最大值应用于设置为指定维度维度设置为 2。该模块返回每行的最大输入值。

2D matrix with Constant block value [1 3 5;3 6 7;9 10 1] as input to MinMax block configured for dimension 2

依存关系

要启用此参数,请将应用于设置为指定的维度

编程用法

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

选择此项以启用过零检测。有关详细信息,请参阅过零检测

编程用法

模块参数ZeroCross
类型:字符向量 | 字符串
'off' | 'on'
默认值'on'

指定采样时间间隔。要继承采样时间,请将此参数设置为 -1。有关详细信息,请参阅指定采样时间

依存关系

仅当您将此参数设置为 -1 以外的值时才可见。要了解详细信息,请参阅不建议设置采样时间的模块

编程用法

模块参数:SampleTime
类型:字符串标量或字符向量
默认值:"-1"

信号属性

选中此复选框将要求所有输入具有相同的数据类型。

编程用法

模块参数InputSameDT
类型:字符向量
值:'off' | 'on'
默认值:'off'

Simulink® 检查的输出范围的下限值。

Simulink 使用最小值执行下列操作:

注意

输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。

编程用法

模块参数OutMin
类型:字符向量
'[ ]'| 标量
默认值'[ ]'

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

Simulink 使用最大值执行下列操作:

注意

输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。

编程用法

模块参数OutMax
类型:字符向量
'[ ]'| 标量
默认值'[ ]'

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

数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 the Show data type assistant button。有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

当输入是小于单精度的浮点数据类型时,继承: 从内部规则继承输出数据类型取决于 Inherit floating-point output type smaller than single precision 配置参数的设置。当对数据类型进行编码所需的位数小于对单精度数据类型编码所需的 32 位时,数据类型小于单精度。例如,halfint16 小于单精度。

编程用法

模块参数OutDataTypeStr
类型:字符向量
'Inherit: Inherit via internal rule' | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
默认值'Inherit: Inherit via internal rule'

选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

模块参数LockScale
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定定点运算的舍入模式。有关详细信息,请参阅舍入 (Fixed-Point Designer)

模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请在封装字段中使用 MATLAB® 舍入函数输入表达式。

编程用法

模块参数RndMeth
类型:字符向量
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
默认值:'Floor'

指定对溢出是进行饱和处理还是绕回处理。

操作原理说明对溢出的影响示例

选中此复选框 (on)。

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

将溢出饱和处理为数据类型能够表示的最小值或最大值。

int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。如果选中此复选框,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。

不选中此复选框 (off)。

您需要优化所生成代码的效率。

您希望避免过度地指定信号超出范围时的处理方式。有关详细信息,请参阅信号范围错误故障排除

溢出会绕回到由数据类型表示的适当值。

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

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

编程用法

模块参数SaturateOnIntegerOverflow
类型:字符向量
值:'off' | 'on'
默认值:'off'

模块特性

数据类型

Boolean | double | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

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

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出

全部展开