使用MATLAB模糊数据工具箱和simulink实现单交叉路口交通灯实时配时算法(一)

作者的碎碎念

        博主的本职工作是一名白帽子,前段时间由于某些原因研究了一点数学建模,故将自己的一点心得整理成教程,一是自己备忘,二是方便后来者。你问我为什么研究数学建模?因为我有一颗爱折腾的心,哈哈哈

写在前面

        本文是一篇针对数学建模初学者的入门性质教程,将分节介绍使用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的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值