基于MATLAB的模糊控制系统设计.docx

上传人:b****1 文档编号:1437501 上传时间:2023-05-01 格式:DOCX 页数:16 大小:454.15KB
下载 相关 举报
基于MATLAB的模糊控制系统设计.docx_第1页
第1页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第2页
第2页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第3页
第3页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第4页
第4页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第5页
第5页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第6页
第6页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第7页
第7页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第8页
第8页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第9页
第9页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第10页
第10页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第11页
第11页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第12页
第12页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第13页
第13页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第14页
第14页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第15页
第15页 / 共16页
基于MATLAB的模糊控制系统设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB的模糊控制系统设计.docx

《基于MATLAB的模糊控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的模糊控制系统设计.docx(16页珍藏版)》请在冰点文库上搜索。

基于MATLAB的模糊控制系统设计.docx

基于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划分为三个模糊集:

cheap、average和generous,隶属度函数均为三角形函数,参数分别为[0510]、[101520]和[202530]。

(4)设置模糊规则:

打开RuleEditor窗口,通过选择添加三条模糊规则:

if(serviceispoor)or(foodisrancid)then(tipischeap)

if(serviceisgood)then(tipisaverage)

if(serviceisexcellent)or(foodisdelicious)then(tipisgenerous)

三条规则的权重均为1.

(5)模糊推理参数均使用默认值,通过曲面观察器(SurfaceViewer)查看小费模糊推理的输入输出关系曲面。

通过规则观察器(RuleViewer)查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。

(6)增加规则,查看曲面的变化、推理输出的变化。

2.飞机下降速度模糊推理系统设计

(1)打开模糊推理逻辑工具箱的图形用户界面,新建一个Sugeno模糊推理系统。

(2)将输入变量命名为height,输出变量为speed,这是一个SISO模糊推理系统。

(3)设计模糊化模块:

分别将输入变量的论域设为[0,10],输出论域不用修改。

模糊空间划分:

输入变量height分为五个模糊集:

mf1(高斯函数[0.50])、mf2(π函数[0.7542.583.324.64])、mf3(π函数[3.194.885.817.11])、mf4(π函数[6.3627.98.569.54])和mf5(S函数[8.6649.83]);

输出变量speed分为五个与输入模糊空间对应的线性函数:

mf1([0.80.2])、mf2([4.6-4.5])、mf3([10.3-26])、mf4([16-64])和mf5([20-100]).

(4)设置模糊规则:

打开RuleEditor窗口,通过选择添加五条模糊规则:

if(heightismf1)then(speedismf1)

if(heightismf2)then(speedismf2)

if(heightismf3)then(speedismf3)

if(heightismf4)then(speedismf4)

if(heightismf5)then(speedismf5)

五条的权重均为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划分为三个模糊集:

negative、none和delicious,隶属度函数均为高斯函数,参数分别为[0.03-0.1]、[0.030]和[0.030.1];

输出变量valve划分为五个模糊集:

close_fast、close_slow、no_change、open_slow和open_fast,隶属度函数均为三角形函数,参数分别为[-1-0.9-0.8]、[-0.6-0.5-0.4]、[-0.100.1]、[0.20.30.4]和[0.80.91]。

(4)设置模糊规则:

打开RuleEditor窗口,通过选择添加三条模糊规则:

①if(levelisokay)then(valveisno_change)

②if(levelislow)then(valveisopen_fast)

③if(levelishigh)then(valveisclose_fast)

④if(levelisokay)and(rateispositive)then(valveisclose_slow)

⑤if(levelisokay)and(rateisnegative)then(valveispoen_slow)

五条的权重均为1。

(5)修改部分模糊推理参数:

And采用乘(pord)、Or采用概率或(probor)、Implication采用乘(pord),其余均由默认值,通过曲面观察器(SurfaceViewer)查看水箱液位模糊推理的输入输出关系曲面。

通过规则观察器(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.epoch

perf1=tr.perf

pause;

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=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([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.');

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2