Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Hit Crossing

检测穿越点

  • 库:
  • Simulink / Discontinuities

    Simulink / Messages & Events

    HDL Coder / Discontinuities

    SimEvents

  • Hit Crossing block

说明

Hit Crossing 模块检测输入何时在由 Hit crossing direction 属性指定的方向上到达 Hit crossing offset 参数值。

您可以将该模块配置为输出 10 信号、SimEvents® 消息或函数调用事件。有关详细信息,请参阅 输出

端口

输入

全部展开

输入信号,模块会检测其何时在指定方向上达到偏移值。

数据类型: double

输出

全部展开

输出信号,用于指示输入信号是否穿越了指定的偏移值。仅当您选中 Show output port 参数复选框时,此端口才可见。

Signal Output

如果选中 Show output port 复选框并将 Output type 参数设置为 “Signal”,则模块输出将指示何时发生穿越。

  • 如果在指定方向上检测到穿越之后输入信号刚好等于偏移值,模块将继续输出值 1。

  • 如果两个相邻点的输入信号都到达了偏移值,模块将在第二个时间步输出值 1。

  • 如果没有选中 Show output port 复选框,模块会确保仿真找到穿越点,但不生成输出。

  • 如果初始信号等于偏移值,则仅当 Hit crossing direction 属性设置为 “either” 时,模块才输出 1。

  • 如果启用布尔逻辑信号,则输出为 Boolean

SimEvents 消息输出

Output type 参数设置为 “Message” 时,Hit Crossing 模块也可以输出 SimEvents 消息。

  • 如果输入信号在指定方向上穿越偏移值,则模块输出一条消息。

  • 如果输入信号在指定方向上达到偏移值并保持在此位置,则模块会在信号到达偏移值时输出一条消息,并在信号离开偏移值时输出一条消息。

  • 如果初始输入信号等于偏移值,则仅当 Hit crossing direction 设置为 “either” 时,模块才会在 Crossing Type 值为 None 时输出消息。

SimEvents 消息输出信号是具有四个字段的 struct

函数调用输出

Output type 参数设置为 “Function-Call” 时,Hit Crossing 模块也可以输出函数调用事件。

  • 每当输入信号在指定方向上穿越偏移值时,模块就输出一个函数调用事件。

  • 函数调用事件可以发送到函数调用子系统或函数调用模型的函数调用输入端口。

  • 该输出等效于 Number of iterations 参数设置为 1Function-Call Generator 模块在每个时间步的输出。

此字段显示信号穿越 Hit crossing offset 值的方向。Negative、Zero 和 Positive 相对于偏移值进行定义。数据类型是 slHitCrossingType,它是一种枚举数据类型。有关详细信息,请参阅在 Simulink 模型中使用枚举数据。例如,如果 HitCrossingOffset 设置为 2,则穿越此偏移值的上升信号将记录为 NegativeToPositive 穿越。

注意

系统会根据 Hit crossing direction 的设置来记录穿越。换句话说,如果将 Hit crossing direction 设置为检测 “falling” 穿越,则不会记录 NegativeToPositive 穿越。

注意

在 SimEvents 模块中,如果实体的 Crossing TypeNegativeToPositive 穿越,则 entity.CrossingType == slHitCrossingType.NegativeToPositive 返回逻辑值 1 (true)

如果信号到达 HitCrossingOffset 值并保持不变,则在发生穿越时会记录单个 NegativeToZeroPositiveToZero(取决于方向)穿越。

数据类型: slHitCrossingType

对于传递给 Hit Crossing 模块的 n 个信号,此字段表示哪个信号具有穿越事件。对于矩阵输入,该字段遵循 MATLAB® 线性索引。请参阅数组索引

数据类型: uint32

发生穿越事件的时间 T。

数据类型: double

Hit crossing offset, Hit crossing offsetHit crossing offsetHit crossing offset 参数指定的穿越偏移值。

数据类型: double

数据类型: double | Boolean | struct

注意

如果 SimEvents 消息输出信号穿越模型引用边界或用作 Stateflow® 图的输入,则需要为消息创建总线对象。请参阅提示

参数

全部展开

指定当输入在 Hit crossing direction 指定的方向上穿越时模块检测的值。

编程用法

模块参数HitCrossingOffset
类型:字符向量
:实数值
默认值'0'

检测穿越时输入信号接近穿越偏移值的方向。

当设置为 “either” 时,模块的作用相当于一个几乎相等模块,对于规避有限的数学和计算机精度的局限性很有用。由于这些原因,此模块可能比在模型中添加逻辑来检测这种情况更方便。

Hit crossing direction 属性设置为 “either” 且模型使用固定步长求解器时,此模块具有以下行为。如果输出信号为 1,则模块将下一个时间步的输出信号设置为 0,除非输入信号等于偏移值。

编程用法

模块参数HitCrossingDirection
类型:字符向量
'either' | 'rising' |'falling'
默认值'either'

如果选择,请在模块图标上创建输出端口。

编程用法

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

Output type 设置为 “Signal” 时,只要输入信号穿越 Hit crossing direction 中的 Hit crossing offset 值且在其他时间为零,输出信号就会设置为 1。

Output type 设置为 “Message” 时,输出信号变为 SimEvents 消息。

Output type 设置为 “Function-Call” 时,输出信号成为函数调用事件。

编程用法

模块参数HitCrossingOutputType
类型:字符向量
'Signal' | 'Message' | 'Function-Call'
默认值'Signal'

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

编程用法

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

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

提示

如果 Hit Crossing 模块配置为输出 SimEvents 消息并且输出信号为以下情形时:

  • 以穿越方式进入或离开引用模型

  • 馈送到 Stateflow 图的输入

则您需要为消息信号创建总线对象。在 MATLAB 命令行窗口中,运行 Simulink.createHitCrossMessage 以检查并根据需要在基础工作区中创建穿越消息总线对象。

将对应端口的数据类型设置为 “Bus:HitCrossMessage”。

扩展功能

在 R2006a 之前推出