学习内容:
1、 搭建 stateflow状态转移仿真
2、 掌握 stateflow参数设置
3、 了解 stateflow状态转移基本原理
状态动作
entry:当状态被激活时执行相应的动作
exit:当状态退出活动状态时执行相应的动作
during:当状态保持其活动状态时执行相应的动作
触发事件[迁移条件关系式]{条件动作}/迁移动作
触发事件表示只要迁移关系式是真,该触发事件可以引起状态的迁移
迁移条件关系式一般是布尔表达式,写在[]中
条件动作是指当条件关系式一旦成立就执行的动作,写在{}中
迁移动作是当迁移终点已经确定有效才执行的动作,写在’/’之后
建立仿真模型:
按照思路搭建好状态转移图
1、 仿真开始时系统默认进入stop状态(缺省状态转移)
2、 触发事件motor控制汽车的move和stop状态的转移
3、 触发事件Low、Mid、High控制汽车速度的变化
4、 触发事件switch_go、switch_back控制汽车前进或者后退
提示:状态动作和条件动作设置一个就行。例如在low状态中设置了entry状态动作(效果为当low状态被激活时执行speed=1),而high到low状态转移条件动作也设置了speed=1,两个只需有一个就行,当然两个都有也行。
参数设置:
打开Model Explorer对端口触发方式进行设置,或者在搭建完仿真后直接运行就会弹出参数类型设置界面。
为了后面设计GUI方便,将所有变量触发方式设置either,上升沿和下降沿均可触发。
按照设置的端口安放simulink仿真器件,由示波器输出仿真结果,speed为速度大小,y为行驶方向。
确认设置无误后即可开始仿真。
仿真结果
为了更好得展示仿真结果,最好设计一个GUI来控制状态转移,这部分有需要再写。