通过广播事件同步平行状态
本地事件使您能够协调并行状态通过允许一个状态触发一个过渡或一个动作在另一个国家在同一Stateflow®图表。播放一个事件从一个状态到另一个状态,使用发送
运营商名称的事件和活动状态的名称:
发送(eventName stateName)
当你播放一个事件,事件在接收状态和生效的任何层次的亚态状态。
一个家庭安全系统模型
这个示例使用本地事件作为一个家庭安全系统的设计。
安全系统包括警报和三个anti-intrusion传感器:一扇门传感器,传感器一个窗口,和运动检测器。系统检测到入侵后,你有少量的时间来禁用报警。否则,系统调用警察。
图表模型每个传感器通过使用这些平行状态之一:
平行状态
门
门传感器模型。输入信号D_mode
之间的选择活跃的
和禁用
这个传感器模式。传感器是活跃的时,输入信号Door_sens
表示可能的入侵。平行状态
赢得
模型窗口传感器。输入信号W_mode
之间的选择活跃的
和禁用
这个传感器模式。传感器是活跃的时,输入信号Win_sens
表示可能的入侵。平行状态
运动
模型运动探测器。输入信号M_mode
之间的选择活跃的
和禁用
这个传感器模式。传感器是活跃的时,输入信号Mot_sens
表示可能的入侵。
减轻零星的假阳性的影响,运动探测器包含消除抖动的设计,因此只有持续积极的触发信号产生警报。相比之下,门窗传感器解释一个积极的触发信号作为入侵和问题立即报警。
第四个叫做平行状态报警
报警系统的操作模式的模型。输入信号Alarm_active
之间的选择在
和从
报警模式。如果一个传感器检测到入侵报警子系统时,传感器广播本地事件警报
到报警
状态。在在
亚态的状态报警
事件触发的过渡闲置
亚态的等待
亚态。当等待
变得活跃,一个警告声音提醒使用者可能的入侵。如果有意外报警,住户有短时间内禁用安全系统。在这段时间内如果没有禁用期间,系统调用返回之前警察寻求帮助闲置
模式。
协调与其他仿真软件模块金宝app
Stateflow图表也可以使用事件与其他模块通信的仿真软件®模型。金宝app
输出事件
一个输出事件是一个事件发生在Stateflow图但在仿真软件模块在图表是可见的。金宝app这种类型的事件使一个图表来通知其他块模型的事件发生在图表。例如,在这个例子中,输出事件声音
和call_police
驱动外部块处理声音和调用警察的警告。这些事件在当地事件图表广播警报
触发的过渡等待
亚态的状态报警
。特别是,在等待
亚态,入口动作广播声音
事件。同样,条件作用的过渡等待
来闲置
广播call_police
事件。在每种情况下,广播的动作输出事件使用发送
运营商与事件的名称:
发送(eventName)
每个输出事件映射到输出端口上的图表。根据配置不同,相应的信号可以控制触发子系统或函数调用子系统。配置一个输出事件:
在建模选项卡,在设计数据中,选择符号面板和属性检查器。
在符号窗格中,选择输出事件。
在属性检查器,设置触发其中一个选项:
要么边缘
——输出事件广播使输出信号在0和1之间切换。函数调用
——输出事件广播引起模型函数调用事件。金宝app
在这个例子中,使用边缘触发激活输出事件的门闩子系统仿真软件模型。金宝app当每个锁输入信号检测的变化值,它短暂的输出值,然后返回一个零的输出。
输入事件
一个输入事件的事件发生在一个模型块但Stateflow图表是可见的。金宝app这种类型的事件使其他仿真软件模块,包括其他Stateflow图表、金宝app通知特定的图表以外发生的事件。例如,在这个示例中,输入事件sl_call
控制运动检测器的时机防反跳前,短延迟报警的。在每个实例中,事件发生在一个调用时序算子后
图后,触发转换接收事件的次数。
外部模型块发送通过信号连金宝app接到一个输入事件触发端口Stateflow图表。根据配置,一个输入事件结果信号的变化值或从仿真软件通过一个函数调用块。金宝app配置一个输入事件:
在建模选项卡,在设计数据中,选择符号面板和属性检查器。
在符号窗格中,选择输入事件。
在属性检查器,设置触发其中一个选项:
不断上升的
——图表激活当输入信号变化从零或负值积极的价值。下降
——图表激活当输入信号的变化从一个积极的价值为零或负值。要么
——图表激活当输入信号过零的任意方向的变化。函数
叫——图表激活函数调用模型块。金宝app
在这个例子中,模型函数调用生成器块控制金宝app安全系统的时机通过触发输入事件sl_call
通过周期函数调用。
探索的例子
在这个例子中,Stateflow图表从几个手动开关模块和输出输入一对闩子系统连接到显示模块。在仿真中,您可以:
启用报警和传感器子系统和触发入侵检测通过单击开关块。
看图表动画强调各种活跃的状态图。
视图的输出信号和模拟数据块督察范围。
例如,假设你开关报警子系统和传感器,开关传感器触发,并开始仿真。在仿真期间,您执行这些操作:
在时间秒,你触发门传感器。闹钟开始声音(
声音= 1
)所以你立即禁用报警系统。你关掉门传感器触发,把闹钟。在时间秒,你触发窗口传感器和报警开始声音(
声音= 0
)。这一次,你不关闭闹钟。在时间警方,安全系统调用(call_police = 1
)。的声音
和call_police
信号继续每80秒0和1之间切换。在时间秒内,你禁用报警。的
声音
和call_police
信号停止切换。
仿真数据检查显示的响应声音
和call_police
你的行动信号。