资源描述
用模糊控制法实现无人驾驶汽车的速度控制问题描述假设无人驾驶汽车行驶在一跳直线道路上,用模糊控制方法得出无人驾驶汽车的最佳行驶速度。方法基本思想主要考虑两个方面的因素:道路状况和车流量,根据汽车所行路段的道路状况和车流量得出汽车最佳行驶速度。具体实施过程Step1确定模糊控制器结构设计一个两输入单输出的模糊控制器,控制器的输入为道路状况和车流量,输出结果是汽车行驶速度。Step2定义输入输出模糊集将路况分为三个模糊集合:RH(好)RC(差)和RZ(中);将车流量分为三个模糊集合:CD(多)CZ(中)和CS(少);将汽车速度分为五个模糊集合:VF(很快)、F(快)M(中)、S(慢)和VS(很慢)。Step3定义隶属度函数选用高斯隶属度函数实现路况的模糊化处理roadx822*202=eRH=e4%172*20RC1#选用高斯隶属度函数实现车流量的模糊化处理:#car#选用高斯隶属度函数实现车速的模糊化处理:#speed#得到路况的模糊化结果:#得到车流量的模糊化结果:得到速度模糊化结果:Step4建立模糊控制规则:根据人的习惯来说,路况越差,车流量越大,车速越慢;路况越好,车流量越小,车路越快。Step5建立模糊规则控制表如下:车速V车流量CCS(少)CZ(中)CD(多)路况RRC(差)MSVSRZ(中)FMSRH(好)VFFM例如第一条规则为:路况差而且车流量少,则车速中速。其他类似。编写程序以R=28,C=45为例得出V=253#如上可知,基本实现了模糊控制车速。#智能控制程序如下:clearall;closeall;a=newfis(Fuzz_speed);a=addvar(a,input,R,0,100);a=addmf(a,input,1,RC,gaussmf,20,17);a=addmf(a,input,1,RZ,gaussmf,20,50);a=addmf(a,input,1,RH,gaussmf,20,82);a=addvar(a,input,C,0,100);a=addmf(a,input,2,CS,gaussmf,20,17);a=addmf(a,input,2,CZ,gaussmf,20,50);a=addmf(a,input,2,CD,gaussmf,20,82);a=addvar(a,output,V,0,100);a=addmf(a,output,1,VS,gaussmf,20,0);a=addmf(a,output,1,S,gaussmf,20,25);a=addmf(a,output,1,M,gaussmf,20,50);a=addmf(a,output,1,F,gaussmf,20,75);a=addmf(a,output,1,VF,gaussmf,20,100);rulelist=11311;12211;13111;21411;22311;23411;31511;32411;33311;a=addrule(a,rulelist);showrule(a)a1=setfis(a,DefuzzMethod,mom);writefis(a1,speed);a2=readfis(speed);figure(1);plotfis(a2);figure(2);plotmf(a,input,1);figure(3);plotmf(a,input,2);figure(4);plotmf(a,output,1);ruleview(speed);R=28;C=45;V=evalfis(R,C,a2)5
展开阅读全文