基于MATLAB的模糊控制系统设计.docx
- 文档编号:27544693
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:18
- 大小:1.40MB
基于MATLAB的模糊控制系统设计.docx
《基于MATLAB的模糊控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的模糊控制系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于MATLAB的模糊控制系统设计
实验一基于MATLAB的模糊控制系统设计
1.1实验内容
(1)基于MATLAB图形模糊推理系统设计,小费模糊推理系统;
(2)飞机下降速度模糊推理系统设计;
(3)水箱液位模糊控制系统设计及仿真运行。
1.2实验步骤
1小费模糊推理系统设计
(1)在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。
(2)增加一个输入变量,将输入变量命名为service、food,输出变量为tip,这样建立了一个两输入单输出模糊推理系统框架。
(3)设计模糊化模块:
双击变量图标打开MembershipFgunctionEditor窗
口,分别将两个输入变量的论域均设为[0,10],输出论域为[0,30]。
通过增加隶属度函数来进行模糊空间划分。
输入变量service划分为三个模糊集:
poor、good和excellent,隶属度函数均为高斯函数,参数分别为[1.50]、[1,55]和[1.510];
输入变量food划分为两个模糊集:
rancid和delicious,隶属度函数均为梯形函数,参数分别为[0013]和[791010];
输出变量tip划分为三个模糊集:
cheapaverage和generous隶属度函数均为三角形函数,参数分别为[0510]、[101520]和[202530]。
(4)设置模糊规则:
打开RuleEditor窗口,通过选择添加三条模糊规则:
1if(serviceispoor)or(foodisrancid)then(tipischeap)
2if(serviceisgood)then(tipisaverage)
3if(serviceisexcellent)or(foodisdelicious)then(tipisgenerous)
三条规则的权重均为1.
(5)模糊推理参数均使用默认值,通过曲面观察器(SurfaceViewer)查看
小费模糊推理的输入输出关系曲面。
通过规则观察器(RuleViewer)查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数
(6)增加规则,查看曲面的变化、推理输出的变化
2■飞机下降速度模糊推理系统设计
(1)打开模糊推理逻辑工具箱的图形用户界面,新建一个Sugeno模糊推理系统。
(2)将输入变量命名为height,输出变量为speed这是一个SISO模糊推理系统。
(3)设计模糊化模块:
分别将输入变量的论域设为[0,10],输出论域不用修改。
模糊空间划分:
输入变量height分为五个模糊集:
mf((高斯函数[0.50])、mf2(n函数[0.7542.583.324.64])、mf3(n函数[3.(94.885.8(7.((])、mf4(n函数[6.362
7.98.569.54])和mf5(S函数[8.6649.83]);
输出变量speed分为五个与输入模糊空间对应的线性函数:
mf(([0.80.2])、
mf2([4.6-4.5])、mf3([(0.3-26])、mf4([(6-64])和mf5([20-(00]).
(4)
设置模糊规则:
打开RuleEditor窗口,通过选择添加五条模糊规则:
五条的权重均为1.
模糊推理参数均使用默认值,通过曲面观察器(SurfaceViewer)查看飞机降落速度模糊推理的输入输出关系曲面。
通过规则观察器(RuleViewer)查看对具体输入的模糊
推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。
(6)修改规则、隶属度函数参数,查看曲线的变化,修改参数使输入输出关系曲线拟合二次曲线更好。
3水箱液位模糊控制系统设计及仿真运行
(1)打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。
(2)增加一个输入变量,将输入变量命名为level、rate,输出变量为valve,这样建立了一个两输入单输出模糊推理系统,保存为tank().fis。
(3)设计模糊化模块:
将输入变量rate的论域设为卜0.1,0.1],另外两个变量采用论域[-1,1]。
通过增加隶属度函数来进行模糊空间划分。
输入变量level划分为三个模糊集:
high、okay和low,隶属度函数均为高斯函数,参数分别为[0.3-1]、[0.30]和[0.31];
输入变量rate划分为三个模糊集:
negativenone和delicious,隶属度函数均为高斯函数,参数分别为[0.03-0.1]、[0.030]和[0.030.1];
(4)设置模糊规则:
打开RuleEditor窗口,通过选择添加三条模糊规则:
1if(levelisokay)then(valveisno_change)
2if(levelislow)then(valveisopen_fast)
3if(levelishigh)then(valveisclose_fast)
4if(levelisokay)and(rateispositive)then(valveisclose_slow)
5if(levelisokay)and(rateisnegative)then(valveispoen_slow)五条的权重均为1。
(5)修改部分模糊推理参数:
And采用乘(pord)、Or采用概率或(probor)、Implication采用乘(pord),其余均由默认值,通过曲面观察器(SurfaceViewe)查看水箱液位模糊推理的输入输出关系曲面。
通过规则观察器(RuleViewer)
查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。
实验三基于MATLAB的神经网络设计
3.1实验内容
(1)利用MATLAB的神经网络工具箱设计感知器实现线性两分类;
(2)利用MATLAB的神经网络工具箱编程设计前馈神经网络逼近平方函数。
3.2实验步骤
1.感知器实现线性分类设计
(1)问题描述:
已知二维平面上的六个样本点
(0,0)、(1,1)、(1,3)、(3,1)、(3,3)、(5,5)。
它们的标签(目标值)为:
t=[000111]编程设计感知器,实现样本点的分类。
(2)在MATLAB中新建M文件编程:
建立变量保存六个样本的二维输入值、目标值变量保存样本的目标值。
(3)利用newp建立一个两输入单输出的感知器。
(4)利用六个训练样本训练感知器。
(5)显示建立的感知器分类面,用测试样本进行分类测试。
参考程序如下:
p=[011335;013135];
t=[000111];
ptest=[0134;3221];net=newp(minmax(p),1);[netrt]=train(net,p,t);
iw1=net.IW{1}
b1=net.b{1}
epoch1=tr.epochperf1=tr.perfpause;
plotpv(p,t);
plotpc(net.iw{1},net.b{1});
pause;
t2=sim(net,ptest);lotpv(ptest,t2);plotpc(iw1,b1);
2设计前馈神经网络逼近平方函数
(1)问题描述:
设计前馈神经网络在x€[0,10]区间上逼近函数y=x2
(2)在MATLAB中新建M文件编程:
产生100个随机训练样本及函数值。
(3)利用newff建立一个两输入单输出两层前馈网络,隐藏五个神经元。
(4)设计训练参数,训练神经网络。
(5)对神经网络进行仿真测试,显示输出曲线。
(6)观察过拟合现象:
如果采用50个隐层神经元,测试性能如何?
参考程序如下:
rand('state',sum(100*clock));
p=10*rand(1,100);
t=p.A2;
Testp=0:
0.1:
10;
net=newf([010],[51],{'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.');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 模糊 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)