概述
作者的碎碎念
博主的本职工作是一名白帽子,前段时间由于某些原因研究了一点数学建模,故将自己的一点心得整理成教程,一是自己备忘,二是方便后来者。你问我为什么研究数学建模?因为我有一颗爱折腾的心,哈哈哈。
写在前面
本文是一篇针对数学建模初学者的入门性质教程,将分节介绍使用MATLAB模糊数据工具箱和simulink实现单交叉路口交通灯实时配时算法,但是由于本人水平有限,难免有错漏之处,欢迎各位大佬批评指正。
软件版本:MATLAB 2015a
理论知识请参考:https://wenku.baidu.com/view/8c814b04844769eae009ed5e.html
需要用到的数据:
正文
首先启动MATLAB 2015a,在Command Window里输入fuzzy以打开MATLAB模糊数据工具箱
默认只提供一个输入,在本示例中需要2个输入,故选择Edit-Add Variable-Input来添加一个输入(注意:为了方便区别这两个输入,我们应修改这两个输入Current Variable中的Name,这里命名为L和G,对于output,我们也应重新命名,这里命名为R)
双击任意一个输入或输出,弹出Membership Function Editor窗口,
可以看到已经默认提供了三个子函数,但本例中需要七个子函数,为了设置方便,建议先将自带的子函数删除,故点击Edit-Remove All MFs 后再点击Edit-Add MFs,设置Number of MFs为7
可以看到,我们的子函数已经添加好了,接下来将设置子函数名称、论域、参数,L的设置参照表1,G的设置参照表2,R的设置参照表3(子函数名称按照表中语言值来设置,论域分别按表1中排队长度、表2中排队长度差、表3中绿灯延时的取值范围来设置),那么参数该如何设置呢?设子函数取值为Y,设排队长度、排队长度差或者绿灯延时为X
仔细观察表我们会发现,每个语言值(或子函数)取非零值时都对应一个X的范围,而且可以猜测,函数图像关于Y取1时对应的X对称,举个例子:表1中语言值M对应的值如下,params则应设置为[8 12 18],其中的12为M取1时所对应的排队长度
对L、G、R分别设置好后如下图所示
点击close,回到Fuzzy Logic Designer窗口,双击规则编辑器(输入和输出之间的白色方框),打开Rule Editor界面,根据表4来编辑规则
分别选择表4中L的各语言值和G的各语言值所对应的R的语言值,点击Add rule,即可添加规则,本例全部添加完后共有49条(注意,Connection 项应保持为and),设置完成后点击Close
至此模糊数据已经全部设置完毕,点击File-Export-To File导出为文件备用
欲知后事如何,请听下回分解,在下一篇博文中我将介绍如何在simulink中建立用于System Test的Model及System Test的配置
最后
以上就是包容凉面为你收集整理的使用MATLAB模糊数据工具箱和simulink实现单交叉路口交通灯实时配时算法(一)的全部内容,希望文章能够帮你解决使用MATLAB模糊数据工具箱和simulink实现单交叉路口交通灯实时配时算法(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复