Hit Crossing
R2026b检测穿越点
Hit Crossing block
To add a block to a model, double-click the canvas and start typing the block name. Then, select the block from the list.
库:
Simulink /
Discontinuities
Simulink /
Messages & Events
HDL Coder /
Discontinuities
SimEvents
描述
Hit Crossing 模块检测输入何时在由穿越方向属性指定的方向上到达穿越偏移量参数值。
您可以将该模块配置为输出 1 或 0 信号、消息或函数调用事件。有关详细信息,请参阅输出。
示例
端口
输入
输入信号,模块会检测其何时在指定方向上达到偏移值。
数据类型: double
输出
输出信号,用于指示输入信号是否穿越了指定的偏移值。仅当您选中显示输出端口参数复选框时,此端口才可见。
信号输出
如果选中显示输出端口复选框并将输出类型参数设置为信号,则模块输出将指示何时发生穿越。
如果在指定方向上检测到穿越之后输入信号刚好等于偏移值,模块将继续输出值 1。
如果两个相邻点的输入信号都到达了偏移值,模块将在第二个时间步输出值 1。
如果没有选中显示输出端口复选框,模块会确保仿真找到穿越点,但不生成输出。
如果初始信号等于偏移值,则仅当穿越方向属性设置为任一沿时,模块才输出 1。
如果启用布尔逻辑信号,则输出为
Boolean。
消息输出
当输出类型参数设置为消息时,Hit Crossing 模块也可以输出消息。
如果输入信号在指定方向上穿越偏移值,则模块输出一条消息。
如果输入信号在指定方向上达到偏移值并保持在此位置,则模块会在信号到达偏移值时输出一条消息,并在信号离开偏移值时输出一条消息。
如果初始输入信号等于偏移值,则仅当穿越方向设置为任一沿时,模块才会在
Crossing Type值为None时输出消息。
消息输出信号是具有四个字段的 struct。
注意
如果消息输出信号穿越模型引用边界或用作 Stateflow® 图的输入,则需要为消息创建总线对象。请参阅提示。
函数调用输出
当输出类型参数设置为函数调用时,Hit Crossing 模块也可以输出函数调用事件。
每当输入信号在指定方向上穿越偏移值时,模块就输出一个函数调用事件。
函数调用事件可以发送到函数调用子系统或函数调用模型的函数调用输入端口。
该输出等效于迭代次数参数设置为
1的 Function-Call Generator 模块在每个时间步的输出。
此字段显示信号穿越穿越偏移量值的方向。Negative、Zero 和 Positive 相对于偏移值进行定义。数据类型是 slHitCrossingType,它是一种枚举数据类型。有关详细信息,请参阅在 Simulink 模型中使用枚举数据。例如,如果 HitCrossingOffset 设置为 2,则穿越此偏移值的上升信号将记录为 NegativeToPositive 穿越。
注意
系统会根据穿越方向的设置来记录穿越。换句话说,如果将穿越方向设置为检测下降沿穿越,则不会记录 NegativeToPositive 穿越。
注意
在 SimEvents® 模块中,如果实体的 Crossing Type 是 NegativeToPositive 穿越,则 entity.CrossingType == slHitCrossingType.NegativeToPositive 返回逻辑值 1 (true)。
如果信号到达 HitCrossingOffset 值并保持不变,则在发生穿越时会记录单个 NegativeToZero 或 PositiveToZero(取决于方向)穿越。
数据类型: 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' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
提示
如果 Hit Crossing 模块配置为输出消息并且输出信号为以下情形时:
以穿越方式进入或离开引用模型
馈送到 Stateflow 图的输入
则您需要为消息信号创建总线对象。在 MATLAB 命令行窗口中,运行 Simulink.createHitCrossMessage 以检查并根据需要在基础工作区中创建穿越消息总线对象。
将对应端口的数据类型设置为 Bus:HitCrossMessage。
扩展功能
不建议用于生产代码生成。
对于 ERT 目标,仅支持浮点数据类型。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
此模块具有一个默认 HDL 架构。
当您设置以下模块参数时,可以为 Hit Crossing 模块生成 HDL 代码:
显示输出端口设置为 on。
输出类型模块参数设置为信号。
穿越方向模块参数设置为上升沿或下降沿。
通用
| 属性名称 | 描述 |
|---|---|
| ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线不会重新分发这些寄存器。默认值为 |
| InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| SynthesisAttributes | 指定模型中模块和模块输出信号的综合属性。生成的 HDL 代码包含这些属性。有关详细信息,请参阅SynthesisAttributes (HDL Coder)。 |
原生浮点
| 属性名称 | 描述 |
|---|---|
| LatencyStrategy | 指定对于浮点运算符是否将设计中的模块映射到 |
| NFPCustomLatency | 要指定值,请将 LatencyStrategy 设置为 |
该模块支持使用以下数据类型进行 HDL 代码生成:
| 输入端口 | 维度 | 定点 | 浮点 | 内置整数 | 总线 | 布尔 | 复信号 |
|---|---|---|---|---|---|---|---|
| Port_1 | 标量 向量 矩阵(最高二维) | 否 | 双精度 | 否 | 是 | 否 | 否 |
当输出类型参数为消息或函数调用时,不支持 HDL 代码生成。
版本历史记录
在 R2006a 之前推出使用 SynthesisAttributes HDL 模块属性指定模块及其输出信号的综合属性。HDL Coder 在生成的 HDL 代码中包含这些属性。
现在,您可以通过使用 double 输入数据类型,为 Hit Crossing 模块在原生浮点模式下生成 HDL 代码。您可以通过使用 LatencyStrategy HDL 模块属性来指定该模块的延迟策略。
另请参阅
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)

