Main Content

Hit Crossing

检测穿越点

  • Hit Crossing block

库:
Simulink / Discontinuities
Simulink / Messages & Events
HDL Coder / Discontinuities
SimEvents

描述

Hit Crossing 模块检测输入何时在由穿越方向属性指定的方向上到达穿越偏移量参数值。

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

端口

输入

全部展开

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

数据类型: double

输出

全部展开

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

信号输出

如果选中显示输出端口复选框并将输出类型参数设置为信号,则模块输出将指示何时发生穿越。

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

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

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

  • 如果初始信号等于偏移值,则仅当穿越方向属性设置为任一沿时,模块才输出 1。

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

消息输出

输出类型参数设置为消息时,Hit Crossing 模块也可以输出消息。

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

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

  • 如果初始输入信号等于偏移值,则仅当穿越方向设置为任一沿时,模块才会在 Crossing Type 值为 None 时输出消息。

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

注意

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

函数调用输出

输出类型参数设置为函数调用时,Hit Crossing 模块也可以输出函数调用事件。

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

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

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

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

注意

系统会根据穿越方向的设置来记录穿越。换句话说,如果将穿越方向设置为检测下降沿穿越,则不会记录 NegativeToPositive 穿越。

注意

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

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

数据类型: slHitCrossingType

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

数据类型: uint32

发生穿越事件的时间 T。

数据类型: double

穿越偏移量 参数指定的穿越偏移值。

数据类型: double

数据类型: double | Boolean | struct

参数

全部展开

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

编程用法

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

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

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

穿越方向属性设置为任一沿且模型使用定步长求解器时,此模块具有以下行为。如果输出信号为 1,则模块将下一个时间步的输出信号设置为 0,除非输入信号等于偏移值。

编程用法

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

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

编程用法

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

输出类型设置为信号时,只要输入信号穿越穿越方向中的穿越偏移量值且在其他时间为零,输出信号就会设置为 1。

输出类型设置为消息时,输出信号变为消息。

输出类型设置为函数调用时,输出信号成为函数调用事件。

编程用法

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

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

编程用法

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

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

提示

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

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

  • 馈送到 Stateflow 图的输入

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

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

扩展功能

版本历史记录

在 R2006a 之前推出