《基于MATLAB的模糊控制系统设计(共12页).doc》由会员分享,可在线阅读,更多相关《基于MATLAB的模糊控制系统设计(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验一 基于MATLAB的模糊控制系统设计1.1实验内容(1)基于MATLAB图形模糊推理系统设计,小费模糊推理系统;(2)飞机下降速度模糊推理系统设计;(3)水箱液位模糊控制系统设计及仿真运行。1.2实验步骤1小费模糊推理系统设计(1)在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。(2)增加一个输入变量,将输入变量命名为service、food,输出变量为tip,这样建立了一个两输入单输出模糊推理系统框架。(3)设计模糊化模块:双击变量图标打开Membership Fgunction Edit
2、or窗口,分别将两个输入变量的论域均设为0,10,输出论域为0,30。通过增加隶属度函数来进行模糊空间划分。输入变量service划分为三个模糊集:poor、good和excellent,隶属度函数均为高斯函数,参数分别为1.5 0、1,5 5和1.5 10;输入变量food划分为两个模糊集:rancid和delicious,隶属度函数均为梯形函数,参数分别为0 0 1 3和7 9 10 10;输出变量tip划分为三个模糊集:cheap、average和generous,隶属度函数均为三角形函数,参数分别为0 5 10、10 15 20和20 25 30。(4)设置模糊规则:打开Rule Ed
3、itor窗口,通过选择添加三条模糊规则:if (service is poor) or (food is rancid) then (tip is cheap)if (service is good) then (tip is average)if (service is excellent) or (food is delicious) then (tip is generous)三条规则的权重均为1. (5)模糊推理参数均使用默认值,通过曲面观察器(Surface Viewer)查看小费模糊推理的输入输出关系曲面。通过规则观察器(Rule Viewer)查看对具体输入的模糊推理及输出情况,
4、输入各种不同的数据,查看模糊推理情况及输出数据。(6)增加规则,查看曲面的变化、推理输出的变化。2.飞机下降速度模糊推理系统设计(1)打开模糊推理逻辑工具箱的图形用户界面,新建一个Sugeno模糊推理系统。(2)将输入变量命名为height,输出变量为speed,这是一个SISO模糊推理系统。(3)设计模糊化模块:分别将输入变量的论域设为0,10,输出论域不用修改。模糊空间划分:输入变量height分为五个模糊集:mf1(高斯函数0.5 0)、mf2(函数0.754 2.58 3.32 4.64)、mf3(函数3.19 4.88 5.81 7.11)、mf4(函数6.362 7.9 8.56
5、9.54)和mf5(S函数8.664 9.83 );输出变量speed分为五个与输入模糊空间对应的线性函数:mf1(0.8 0.2)、 mf2(4.6 -4.5) 、mf3(10.3 -26)、 mf4 (16 -64)和mf5(20 -100). (4)设置模糊规则:打开Rule Editor窗口,通过选择添加五条模糊规则: if(height is mf1) then (speed is mf1) if(height is mf2) then (speed is mf2) if(height is mf3) then (speed is mf3) if(height is mf4) the
6、n (speed is mf4) if(height is mf5) then (speed is mf5)五条的权重均为1.模糊推理参数均使用默认值,通过曲面观察器(Surface Viewer)查看飞机降落速度模糊推理的输入输出关系曲面。通过规则观察器(Rule Viewer)查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。(6)修改规则、隶属度函数参数,查看曲线的变化,修改参数使输入输出关系曲线拟合二次曲线更好。3水箱液位模糊控制系统设计及仿真运行(1)打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。(2)增加一个输入变量,
7、将输入变量命名为level、rate,输出变量为valve,这样建立了一个两输入单输出模糊推理系统,保存为tank().fis。(3)设计模糊化模块:将输入变量rate的论域设为-0.1,0.1,另外两个变量采用论域-1,1。通过增加隶属度函数来进行模糊空间划分。输入变量level划分为三个模糊集:high、okay和low,隶属度函数均为高斯函数,参数分别为0.3 -1、0.3 0和0.3 1;输入变量rate划分为三个模糊集:negative、none和delicious,隶属度函数均为高斯函数,参数分别为0.03 -0.1、0.03 0和0.03 0.1;输出变量valve划分为五个模糊
8、集:close_fast、close_slow、no_change、open_slow和open_fast,隶属度函数均为三角形函数,参数分别为-1 -0.9 -0.8、-0.6 -0.5 -0.4、 -0.1 0 0.1、0.2 0.3 0.4和0.8 0.9 1。(4)设置模糊规则:打开Rule Editor窗口,通过选择添加三条模糊规则:if (level is okay) then (valve is no_change)if (level is low) then (valve is open_fast)if (level is high) then (valve is close_
9、fast)if (level is okay) and (rate is positive) then (valve is close_slow)if (level is okay) and (rate is negative) then (valve is poen_slow)五条的权重均为1。(5)修改部分模糊推理参数:And采用乘(pord)、Or采用概率或(probor)、Implication采用乘(pord),其余均由默认值,通过曲面观察器(Surface Viewer)查看水箱液位模糊推理的输入输出关系曲面。通过规则观察器(Rule Viewer)查看对具体输入的模糊推理及输出情
10、况,输入各种不同的数据,查看模糊推理情况及输出数据。实验三 基于MATLAB的神经网络设计3.1实验内容(1)利用MATLAB的神经网络工具箱设计感知器实现线性两分类;(2)利用MATLAB的神经网络工具箱编程设计前馈神经网络逼近平方函数。3.2实验步骤1感知器实现线性分类设计(1)问题描述:已知二维平面上的六个样本点 (0,0)、(1,1)、(1,3)、(3,1)、(3,3)、(5,5)。它们的标签(目标值)为:t= 0 0 0 1 1 1 编程设计感知器,实现样本点的分类。(2)在MATLAB中新建M文件编程:建立变量保存六个样本的二维输入值、目标值变量保存样本的目标值。(3)利用newp
11、建立一个两输入单输出的感知器。(4)利用六个训练样本训练感知器。(5)显示建立的感知器分类面,用测试样本进行分类测试。参考程序如下:p=0 1 1 3 3 5; 0 1 3 1 3 5;t=0 0 0 1 1 1 ;ptest=0 1 3 4;3 2 2 1;net=newp(minmax(p),1);net rt=train(net,p,t);iw1=net.IW1b1=net.b1epoch1=tr.epochperf1=tr.perfpause;plotpv(p,t);plotpc(net.iw1,net.b1);pause;t2=sim(net,ptest);lotpv(ptest,t
12、2);plotpc(iw1,b1);2设计前馈神经网络逼近平方函数(1)问题描述:设计前馈神经网络在x0,10区间上逼近函数y=x(2)在MATLAB中新建M文件编程:产生100个随机训练样本及函数值。(3)利用newff建立一个两输入单输出两层前馈网络,隐藏五个神经元。(4)设计训练参数,训练神经网络。(5)对神经网络进行仿真测试,显示输出曲线。(6)观察过拟合现象:如果采用50个隐层神经元,测试性能如何?参考程序如下:rand(state,sum(100*clock);p=10*rand(1,100);t=p.2;Testp=0:0.1:10;net=newff(0 10,5 1,tansig purelin,trainlm);net.trainParam.epochs=50;net.trainParam.goal=0.0001;net.trainParam.show=1;net=train(net,p,t);y2=sim(net,p);plot(p,t,r+,p,y2,.);pause;y3=sim(net,Testp);plot(TTestp,y3,k.);专心-专注-专业