通过发送input event激活状态流图

input event 发生在Stateflow®图表之外,但仅在该图表中可见。这种类型的事件使其他Simulink®块(包括其他状态流程图)能够通知其外部发生的特定事件图表。要定义输入事件:
将事件添加到状态流程图中。
将事件的Scope属性设置为Input from Simulink。在Simulink模型中,Stateflow块的顶部出现一个触发端口。
输入事件可以通过控制信号(边缘触发器)的变化或Simulink块的函数调用来激活状态流程图。
要指定边缘触发的输入事件,请将Trigger属性设置为以下选项之一:
Rising
Falling
Either
要指定函数调用输入事件,请将Trigger属性设置为function call。

您不能在同一状态流图中混合使用边缘触发和函数调用输入事件。混合这些输入事件会导致在解析和模拟过程中出错。

使用边缘触发器激活状态流图

边缘触发的输入事件导致状态流程图在模拟的当前时间步内执行。对于这种类型的输入事件,控制信号的变化充当触发器。

边缘触发器类型描述
Rising上升边缘触发器。当控制信号从零或负值变为正值时,图表被激活。
Falling下降沿触发器。当控制信号从正值变为零值或负值时,图表被激活。
Either上升沿或下降沿触发器。当控制信号在任一方向上变化时超过零时,图表被激活。

在所有情况下,控制信号的值必须过零才能成为有效的边缘触发器。例如,从-1变为1的信号是有效的上升沿触发器。从1变为2的信号不是有效的上升沿触发器。

何时使用边缘触发事件
当你的模型需要定期或周期性执行图表时,使用边缘触发的输入事件来激活图表。

多边缘触发输入事件的行为
在任何给定的时间步,都会根据端口号按升序检查输入事件。图表为每个有效事件唤醒一次。对于边缘触发的输入事件,可以在同一时间步中出现多个边缘,在该时间步中多次唤醒图表。在这种情况下,事件会根据其端口号按升序唤醒图表。

使用函数调用激活状态流图
函数调用输入事件导致在模拟的当前时间步期间执行状态流程图。对于这种类型的输入事件,还必须为调用Stateflow图的块定义一个函数调用输出事件。

何时使用Function-Call输入事件
当你的模型需要在函数调用的同一时间步访问图表的输出数据时,使用函数调用输入事件激活图表。函数调用输入事件会激活循环调度器图表。

多种Function-Call 输入事件的行为
对于函数调用输入事件,只存在一个触发事件。事件的调用者显式调用并执行图表。在单个时间步中,只有一个函数调用有效。

输入事件与控制信号的关联
在图表中定义一个或多个输入事件时,图表块的顶部会显示一个触发端口。多个外部Simulink块可以通过连接到触发端口的信号向量触发输入事件。输入事件的port属性指定了连接到触发器端口的控制信号向量的索引。
你默认情况下,端口值按照添加输入事件的顺序显示。可以通过修改事件的Port属性来更改这些分配。更改输入事件的Port属性时,其余输入事件的端口值会自动重新编号。

输入事件允许的数据类型
对于触发端口的多个输入事件,所有信号必须具有相同的数据类型。使用不同数据类型的信号作为输入事件会导致模拟过程中出现错误。例如,你可以将两个double类型的输入信号复用,用作图表的输入事件。

在这里插入图片描述
不能复用不同数据类型的两个输入信号,如布尔值和双精度。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值