Main Content

Rate Transition

处理以不同速率运行的模块之间的数据传输

  • Rate Transition block

库:
Simulink / Signal Attributes
HDL Coder / Signal Attributes

描述

Rate Transition 模块可将数据从按某速率运行的模块的输出端口传输到另一个按不同速率运行的模块的输入端口。可以使用模块参数在数据完整性与确定性传输之间进行取舍,以实现更快的响应速度或者更低的内存要求。有关数据完整性和确定性数据传输的信息,请参阅数据传输问题 (Simulink Coder)

转移处理选项

转移处理选项模块参数设置
  • 数据完整性

  • 确定性数据传输

  • 最大延迟

选择:

  • 确保数据传输的数据完整性

  • 确保确定性数据传输

  • 数据完整性

  • 不确定的数据传输

  • 最小延迟

  • 更高的内存要求

选择:

  • 确保数据传输的数据完整性

清除:

  • 确保确定性数据传输

  • 可能丢失数据完整性

  • 不确定的数据传输

  • 最小延迟

  • 更低的内存要求

清除:

  • 确保数据传输的数据完整性

  • 确保确定性数据传输

依存关系

Rate Transition 模块的行为取决于:

模块标签

当您更新图时,Rate Transition 模块上将出现一个标签,以指示仿真行为。

标签模块行为
ZOH 充当零阶保持器
1/z 充当单位延迟器
Buf 在信号灯控制下将输入复制到输出
Db_buf 使用双缓冲区将输入复制到输出
3buf使用三缓冲区将输入复制到输出
Copy 在不保护的情况下将输入复制到输出
NoOp 不执行任何操作
Mixed 扩展为具有不同行为的多个模块
RT

指示使用调度编辑器时分区之间的数据传输。

有关使用调度编辑器的详细信息,请参阅Using the Schedule Editor

Memory

指示内存模式。当确保确定性数据传输(最大延迟)off 时,该模块处于内存模式。

模块行为标签显示了使用的方法,该方法用于确保在以不同速率运行的任务之间安全地传输数据。您可以使用采样时间颜色功能(请参阅查看采样时间信息)显示模块桥接的相对速率。请查看下列模型示例:

采样时间颜色和模块行为标签表明:

  • 图中上方的 Rate Transition 模块充当从快速到慢速转移中的零阶保持器。

  • 图中下方的 Rate Transition 模块充当从慢速到快速转移中的单位延迟器。

有关详细信息,请参阅处理速率转换 (Simulink Coder)

同步采样时间的效果

下表总结了当输入和输出端口(inTsoutTs)的采样时间为周期性或同步时每个标签的显示方式。

模块设置

模块标签

速率转换

Rate Transition 模块的条件

保证数据完整性与确定性

仅保证数据完整性

不保证数据完整性或确定性

inTs = outTs

(相等)

inTsOffset < outTsOffset

无(错误)

Buf

Copy 或者 NoOp(请参阅表后面的注释)

inTsOffset = outTsOffset

Copy 或者 NoOp(请参阅表后面的注释)

Copy 或者 NoOp(请参阅表后面的注释)

inTsOffset > outTsOffset

无(错误)

Db_buf

inTs < outTs

(快速到慢速)

inTs = outTs / N

inTsOffsetoutTsOffset = 0

ZOH

Buf

inTs = outTs / N

inTsOffsetoutTsOffset

无(错误)

inTs = outTs / N

inTsOffset > outTsOffset

无(错误)

Db_buf

inTsoutTs / N

无(错误)

inTs > outTs

(慢速到快速)

inTs = outTs * N

inTsOffsetoutTsOffset = 0

1/z

Db_buf

inTs = outTs * N

inTsOffsetoutTsOffset

无(错误)

inTs = outTs * N

inTsOffset > outTsOffset

无(错误)

inTsoutTs * N

无(错误)

关键注释

  • inTs, outTs:分别指输入和输出端口的采样时间

  • inTsOffset, outTsOffset:分别指输入和输出端口的采样时间偏移量

  • N:大于 1 的整数值

如果您在“配置参数”对话框上选择了模块简化参数,Copy 将简化为 NoOp。带有 NoOp 标签的 Rate Transition 模块不会执行代码生成。要在启用了模块简化处理时阻止模块简化,请在模块输出端口添加一个测试点(请参阅 Simulink 文档中的将信号配置为测试点)。

异步采样时间的效果

下表总结了当输入和输出端口(inTsoutTs)的采样时间为非周期性或异步时每个标签的显示方式。

模块设置

模块标签
保证数据完整性与确定性仅保证数据完整性不保证数据完整性或确定性

inTs = outTs

Copy

Copy

Copy

inTsoutTs

无(错误)

Db_buf

关键注释

  • inTs, outTs:分别指输入和输出端口的采样时间

设备配置的影响

如果模型配置参数设备供应商设备类型的设置指定支持原子数据加载和存储操作的硬件,则当目标硬件支持要传输的信号数据类型的原子数据加载和存储操作时,代码生成器会优化生成的速率转换代码。代码生成器通过将异步任务之间的双缓冲代码替换为执行单次内存复制的代码来利用硬件数据加载和存储能力。

端口

输入

全部展开

要转换为新采样率的输入信号,指定为标量、向量、矩阵或 N 维数组。一些模块参数让您能够在数据完整性与确定性传输之间进行取舍,以实现更快的响应速度或更低的内存要求,要了解它们,请参阅转移处理选项

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

输出

全部展开

输出信号是转换为您指定的采样率的输入信号。默认配置可确保安全且确定的数据传输。一些模块参数让您能够在数据完整性与确定性传输之间进行取舍,以实现更快的响应速度或更低的内存要求,要了解它们,请参阅转移处理选项

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

参数

全部展开

如果选中此复选框,生成的代码可以在模块传输数据时确保数据的完整性。如果选中此复选框,而传输是不确定的(请参阅确保确定性数据传输),根据输入速率和输出速率的优先级,生成的代码将使用正确的算法,使用一个或多个缓冲区来保护数据传输过程中的数据完整性。

否则,Rate Transition 模块要么会简化,要么通过使用复制操作执行数据传输来生成代码。这种不受保护的模式需要较少的内存。但复制操作也可能会中断,从而导致数据传输过程中损失数据完整性。如果您希望生成的代码能够在运行时保证最大的响应性(即,不确定性传输)和数据完整性,请选中此复选框。有关详细信息,请参阅Rate Transition 模块选项 (Simulink Coder)

编程用法

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

如果选中此复选框,生成的代码将按照速率较慢的模块的速率传输数据,即确定性传输。如果不选中此复选框,则在源模块上有新数据且接收模块能够接收数据时,会发生数据传输。这样可以避免传输延迟,确保系统以最大的响应性运行。但是,传输的发生具有不可预测性,这在某些应用中是不希望出现的。有关详细信息,请参阅Rate Transition 模块选项 (Simulink Coder)

编程用法

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

此参数仅适用于慢速到快速转移。它指定当连接到 Rate Transition 模块的输入的慢速模块未提供输入信号而导致没有输出信号时,Rate Transition 模块在转移初期的初始输出。Simulink 不允许此模块的初始输出为 InfNaN。您指定的值必须是标量,或者与输入信号具有相同的维度。

编程用法

模块参数InitialCondition
类型:字符向量
值:有限标量
默认值:'0'

指定用于设置输出端口采样时间的模式。选项包括:

  • 指定 - 允许您使用输出端口采样时间参数来指定 Rate Transition 模块将输入速率转移成的输出速率。

  • 继承 - 指定 Rate Transition 模块继承输出端口所连接到的模块的输出速率。

  • 输入端口采样时间的倍数 - 允许您使用采样时间倍数 (>0) 参数来指定 Rate Transition 模块的输出采样率是其输入速率的几倍。

如果您选择继承,而连接输出端口的所有模块也都继承采样时间,则会采用模型中最快的采样时间。

编程用法

模块参数OutPortSampleTimeOpt
类型:字符向量
值:'Specify' | 'Inherit' | 'Multiple of input port sample time'
默认值:'Specify'

请输入一个值,指定模块要将其输入速率转换成的输出速率。默认值 (-1) 指定 Rate Transition 模块继承输出端口所连接到的模块的输出速率。有关如何指定输出速率的信息,请参阅指定采样时间

依存关系

要启用此参数,请将输出端口采样时间选项设置为指定

编程用法

模块参数OutPortSampleTime
类型:字符向量
值:标量 | 向量
默认值:'-1'

请输入一个正值,将输出速率指定为输入端口采样时间的倍数。默认值 (1) 指定输出速率与输入采样率相同。值 0.5 指定输出速率是输入速率的一半。值 2 指定输出速率是输入速率的两倍。

依存关系

要启用此参数,请将输出端口采样时间选项设置为输入端口采样时间的倍数

编程用法

模块参数OutPortSampleTimeMultiple
类型:字符向量
值:标量
默认值:'1'

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

版本历史记录

在 R2006a 之前推出