使用MATLAB模糊数据工具箱和simulink实现单交叉路口交通灯实时配时算法(二)
写在前面
在上一节中我们配置好了模糊数据,接上一节,本节中将着重介绍如何使用simulink建立一个Model并配合模糊数据进行System Test以及关于System Test的配置。
正文
首先在MATLAB Command Window里输入simulink,以打开Simulink Library Browser,新建一个Model
在Simulink Library Browser里分别找到In1,Mux, Fuzzy Logic Controller with Ruleviewer, Out1,将它们分别拖入新建的Model中(注意:本例需要添加两个In1,第二个In1添加后会自动重命名为In2),全部设置好后,如下图所示:
将这个Model存盘备用
接下来在MATLAB Command Window中输入systemtest,弹出Systemtest窗口,点击File-New Test来新建一个Test,
选中Main Test,点击 Insert-Test Element-Simulink来插入一个测试项目,完成后如图:
在Simulink model中设置之前保存的Model文件路径,切换到Test Vectors选项,点击New新增两个Vectors
分别设置两个Vector的名称和论域,Expression按照对应的论域设置,Expression中间的参数为步长,本例应设置为2
接下来在Test Variables新增一个测试变量,这里命名为Output
回到Main Test下的Simulink选项卡,按如图所示设置把两个Test Vector映射到Fuzzy Logic Controller的两个输入,把Test Variable映射到Fuzzy Logic Controller的输出(注意:设置Assign Model Outpus To SystemTest Data时需要先点击New Maping-Output Signal)
最后切换到Main Test下的Save Results,点击New Maping,添加Test Variable和Result的映射关系
回到MATLAB Command Window,输入命令fuzzy = readfis('Untitled2')将之前保存的模糊数据控制器加载到WorkSpace(这里不一定要用fuzzy作为名称,可以自行设置,Untitled2为之前保存的扩展名为.fis模糊数据控制器名称,大家要根据自己的命名来,不用带扩展名,如果出错请检查Path设置)
回到SystemTest,选择切换到Main Test下的Simulink,点击绿色的刷新图标
在新弹出的窗口中双击Fuzzy Logic Controller with Ruleviewer
在新弹出的窗口中设置FIS matrix为之前将模糊变量控制器存入WorkSpace所用名称,之前我用的fuzzy,所以这里填入fuzzy
之后在SystemTest中点击Run或者按快捷键F5即可运行测试(如果报错,再运行一次即可),经过一段说长不长说短不短的等待,121次迭代完成
回到MATLAB,可以看到我们的WorkSpace里增加了几项
打开stresults
ResultsDataSet即为运行结果,可以看出和我们的表5:绿灯延时模糊控制规则表是比较接近的
本节教程就到这里,下一节我将简单介绍如何将结果输出为更规范更直观的二维表格