Main Content

Saturation Dynamic

将输入信号限制在动态饱和上限和下限值之间

  • Saturation Dynamic block

库:
Simulink / Discontinuities
HDL Coder / Discontinuities

描述

Saturation Dynamic 模块产生输出信号,该信号是以来自输入端口 uplo 的饱和值为界的输入信号的值。

输入输出
lo ≤ 输入值 ≤ up输入值
输入值 < lo下限
输入值 > up上限

端口

输入

全部展开

要应用饱和算法的输入信号。

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

提供饱和上限的动态值。当输入大于 up 时,输出值以 up 为界。

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

提供饱和下限的动态值。当输入小于 lo 时,输出值以 lo 为界。

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

输出

全部展开

输出信号,它可以是输入信号值,也可以是饱和上限或下限值。

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

参数

全部展开

要编辑 Saturation Dynamic 模块的参数,请双击模块图标。

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

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

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

注意

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

编程用法

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

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

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

注意

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

编程用法

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

为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType。有关详细信息,请参阅控制信号的数据类型

编程用法

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

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

编程用法

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

选择下列舍入模式之一。

向上

将正值和负值朝正无穷方向舍入。等同于 MATLAB® ceil 函数。

收敛

将数值舍入到最邻近的可表示值。如果出现结值,则舍入到最邻近的偶数整数。等同于 Fixed-Point Designer™ convergent 函数。

向下

将正值和负值朝负无穷方向舍入。等同于 MATLAB floor 函数。

最邻近值

将数值舍入到最邻近的可表示值。如果出现结值,则朝正无穷方向舍入。等同于 Fixed-Point Designer nearest 函数。

舍入

将数值舍入到最邻近的可表示值。如果出现结值,则将正数朝正无穷方向舍入,将负数朝负无穷方向舍入。等同于 Fixed-Point Designer round 函数。

最简

自动选择是向负无穷大方向舍入还是向零舍入,以生成尽可能有效的舍入代码。

将数值向零舍入。等同于 MATLAB fix 函数。

编程用法

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

另请参阅

有关详细信息,请参阅舍入 (Fixed-Point Designer)

操作执行此操作的原因溢出时会发生的情况示例

选中此复选框。

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

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

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

不选中此复选框。

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

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

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

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

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

编程用法

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

模块特性

数据类型

Booleana | double | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

a 建议不要将此模块用于布尔信号。

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出

另请参阅