MinMax
输出最小或最大输入值

库:
Simulink /
Math Operations
HDL Coder /
Math Operations
描述
MinMax 模块输出输入的最小或最大元素。您可以通过设置函数参数来选择模块是否输出最小值或最大值。
MinMax 模块将忽略类型为 NaN
的任何输入值,除非每个输入值为 NaN
。当所有输入值均为 NaN
时,输出为 NaN
,要么是标量,要么是每个输出向量元素的值。
示例
扩展示例
容错燃油控制系统建模
此示例说明如何结合使用 Stateflow® 和 Simulink® 的功能来进行混合系统建模。这种类型的建模对于具有基于离散事件的多种可能运行模式的系统特别有用。传统的信号流在 Simulink 中处理,而控制配置的更改在 Stateflow 中实现。此示例中所述的模型表示一个汽油发动机的燃油控制系统。该系统具有稳健性,因为它可以检测到单个传感器的故障,并且可以动态重新配置控制系统以实现不间断运行。
端口
输入
提供输入信号,模块根据该输入信号输出最大值或最小值。
如果模块只有一个输入端口,则输入必须为标量或向量。模块将输出等于输入向量的最小或最大元素的标量。
如果模块有多个输入端口,则所有非标量输入都必须具有相同的维度。模块会扩展任何标量输入,使其与非标量输入具有相同的维度。模块将输出与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。
依赖关系
要支持矩阵输入,您必须将输入端口数目参数设置为大于 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' |
指定如何沿指定维度应用函数。
所有维度 - 对所有维度的所有输入值应用函数。
指定维度 - 对指定维度的所有输入值应用函数。
例如,在此模型中,函数设置为最大值,应用于设置为所有维度。该模块返回所有维度中最大的输入值。
依赖关系
要启用此参数,输入端口数目必须为 1
。
编程用法
模块参数:CollapseMode |
类型:字符向量 |
值:'All dimensions' | 'Specified dimension' |
默认值:'All dimensions' |
将沿其应用函数的维度指定为正整数。例如,对于二维矩阵,1
将函数应用于每列,2
将函数应用于每行。
例如,在此模型中,函数设置为最大值,应用于设置为指定维度,维度设置为 2
。该模块返回每行的最大输入值。
依赖关系
要启用此参数,请将应用于设置为指定的维度。
编程用法
模块参数:CollapseDim |
类型:字符向量 |
值:正整数 |
默认值:'1' |
指定采样时间间隔。要继承采样时间,请将此参数设置为 -1
。有关详细信息,请参阅指定采样时间。
依赖关系
仅当您将此参数设置为 -1
以外的值时才可见。要了解详细信息,请参阅不建议设置采样时间的模块。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | SampleTime |
值: | "-1" (默认) | scalar or vector in quotes |
信号属性
选中此复选框将要求所有输入具有相同的数据类型。
编程用法
模块参数:InputSameDT |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
软件检查的输出范围的下限值。
软件使用最小值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMin |
值: | '[]' (默认) | scalar in quotes |
软件检查的输出范围的上限值。
软件使用最大值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMax |
值: | '[]' (默认) | scalar in quotes |
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType
。
数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 。有关详细信息,请参阅使用数据类型助手指定数据类型。
依赖关系
当输入是小于单精度的浮点数据类型时,继承: 从内部规则继承输出数据类型取决于 Inherit floating-point output type smaller than single precision 配置参数的设置。当对数据类型进行编码所需的位数小于对单精度数据类型编码所需的 32 位时,数据类型小于单精度。例如,half
和 int16
小于单精度。
编程用法
模块参数:OutDataTypeStr |
类型:字符向量 |
值:'Inherit: Inherit via internal rule' | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | '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)。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | LockScale |
值: | 'off' (默认) | 'on' |
指定对溢出是进行饱和处理还是绕回处理。
on
- 将溢出饱和处理为数据类型能够表示的最小值或最大值。off
- 溢出将绕回到数据类型可以表示的合适值。
例如,有符号 8 位整数 int8
可以表示的最大值是 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。
选择此参数后,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。
清除此参数后,软件会将导致溢出的值解释为
int8
,这可能产生意外结果。例如,以int8
表示的模块结果 130(二进制 1000 0010)为 -126。
提示
如果您的模型存在可能的溢出,而您希望在生成的代码中进行显式饱和保护,请考虑选中此参数。
如果您希望优化生成的代码的效率,请考虑清除此参数。清除此参数还可以帮助您避免过度地指定信号超出范围时模块的处理方式。有关详细信息,请参阅信号范围错误故障排除。
如果选中此参数,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。
一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | SaturateOnIntegerOverflow |
值: | 'off' (默认) | 'on' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
架构 | 额外的延迟周期 | 描述 |
---|---|---|
树(默认值) | 0 | 生成树状结构的比较器。 |
通用 | |
---|---|
ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线不会重新分发这些寄存器。默认值为 |
InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
原生浮点 | |
---|---|
LatencyStrategy | 指定对于浮点运算符是否将设计中的模块映射到 |
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)