概述
综述:
stateflow是simulink中的一个工具箱,stateflow类似编程语言中的if else语句、switch case语句,能够实现逻辑切换,但是state状态切换起来非常直观,本文将使用stateflow搭建一个简单的自动变速逻辑。
一、自动挡简介
简单的自动挡有P挡、R挡、N挡、D挡四个挡位,这四个挡位可以通过手动控制,当汽车处在D挡的时候,也就是前进挡,车辆可以根据当前的速度来自动切换当前车辆的挡位。
二、stateflow逻辑搭建
在simulink模块库里面找到stateflow,然后把chart拖出来。之后所有的逻辑实现都在chart块中实现。
双击chart进去,会出现如下页面,之后的逻辑搭建将在这块画布中进行
之后主要用下面的状态块来代表一个一个的状态,并设立相应的条件进行状态的切换。
下图为最终搭建好的模型,分为4个大状态,对应PRND四个挡位,其中D挡状态里面又嵌套了四个状态,代表自动挡的4个挡位,1挡、2挡、3挡、4挡。
当换挡的输入分别等于PP RR NN DD 时切换挡位,当到D挡的时候,4个挡位的切换根据速度大小判断。
三、参数设置
参数的设置部分在model explorer中设置,包括端口、变量等等。
其中在变量区对PP RR NN DD 进行了设置对应的值
在下面添加了这变量以及输入输出的端口,和一个事件。
可以看下最终的效果:
四、附加说明
有几点需要说明:
1、chart里面搭建的逻辑转换需要有初始状态,在状态块上有个点加箭头的代表默认进入的初始的状态。
2、在状态块里可以加状态,或者逻辑语句,或者通过事件调用函数。en 表示进入状态的操作,du:表示处在这个状态中的操作;ex:表示退出这个状态的操作。
五、模型链接
AT_9_18_model.slx-讲义文档类资源-CSDN下载
最后
以上就是清新画笔为你收集整理的StateFlow-自动变速逻辑搭建的全部内容,希望文章能够帮你解决StateFlow-自动变速逻辑搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复