logo资料库

智能控制实验报告.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
1.1 模糊控制器的设计 一、实验目的 在 matlab 环境下,完成一个对水位控制的模糊控制器的设计。 二、实验内容 (1)确定控制器的输入、输出的隶属度函数 偏差 e(t) :e(t)=r(t)-c(t)负反馈 三个模糊子集“负大”(水位高)、“零”和“正大”(水位低)。 偏差变化率: de, 三个模糊子集“负大”(高趋势)、“零”和“正大”(低趋势)。 控制量 u:“负大”、“负中”、“零”、“正中”、“正大”。 Matlab 操作方法: 打开 matlab 在命令行输入:fuzzy 出现下图界面: 在上图选择“edit”出现下图:选择“Add Variable-- Input”再添加输入
这样就建立了两个输入,一个输出的模糊控制器。 再修改输入、输出的各参数: input1 改为 e;input2 改为 de; output1 改为 u ;如下图: 双击“e” ,修改模糊子集: 如下图修改 e 的负大:注意各参数的设置 修改好的 e 的模糊子集如下图:
用同样的方法修改 de 如下图: 修改 u 的方法如下图:需要 5 个模糊子集 添加模糊子集的方法:在“edit”菜单下选择“Add Custom MF” 下图是对”O”这个模糊子集的设置:
设置好的 u 的模糊子集如下图: (2)添加规则的方法: 添加规则的界面如下: 这样一个模糊推理控制器就建立完毕了。
(3)利用模糊控制器可以得到规则曲面以及根据输入得到输出 如上图操作可以得到规则曲面: 如下图可以得到规则的推理结果:
改变上图 e 和 de 的值,可以看到 u 的不同的输出。 然后可以把该系统存为 tank.fis. 三.写出实验的心得体会
实验 2 基于 MATLAB 的神经网络设计 一实验目的: 1 掌握 matlab 工具箱设计前馈型神经网络的方法 2 掌握图形用户界面的神经网络工具的设计方法 二实验内容: 1 感知器线形分类器设计 已知:样本点 (0,0),(1,1),(1,3),(3,1),(3,3),(5,5)。 对应目标:t=[0 0 0 1 1 1] 编程设计感知器,实现样本点的分类。 用测试样本进行分类测试。 新建 m 文件,参考程序: 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 tr]=train(net,p,t); iw1=net.iw{1}; b1=net.b{1}; epoch1=tr.epoch; perf1=tr.perf; %六个输入样本 %样本的目标值 %四个测试样本 %创建感知器网络 %训练网络 %得到感知器的权值 %得到阈值 %得到训练的次数 %训练每步误差 plotpv(p,t); plotpc(net.iw{1},net.b{1}); figure; %显示训练样本 %显示分类面 % pause; % pause; t2=sim(net,ptest); plotpv(ptest,t2); plotpc(iw1,b1); 2 设计前馈网络逼近平方函数 %对测试样本进行仿真 %显示测试样本 %再显示分类面 y x 2 。 x  区间上逼近平方函数 设计前馈网络在 [0,10] 新建 m 文件,产生 100 个样本,建立网络进行仿真。 参考程序: 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’ net.trainParam.epochs=50 ; net.trainParam.goal=0.0001 ; %设置随机函数种子 %样本随机输入 %训练样本的目标值 %测试样本 ‘purelin’},’trainlm’) ; %建立前馈网络 %设置最大训练次数 %设置误差目标
net.trainParam.show=1 ; net=train.(net,p,t) ; y2=sim(net,p) ; plot(p,t,’r+’,p,y2,’.’) ; figure; y3=sim(net,Testp) ; plot(Testp,y3,’k.’) ; 3 图形工具设计神经网络 %多少步显示误差 %训练神经网络 %仿真输出 %显示输出曲线 %显示测试样本 %再显示测试样本输出曲线 y  2 2  x   x / 2) 2 )exp( x 在 图 形 界 面 下 设 计 前 馈 型 网 络 , 在 区 间 [-4,4] 上 逼 近 函 数 1.1(1 在命令行键入输入变量 :>> indata=-4:0.1:4; 得到函数目标输出:targetdata=1.1*(1-indata+2*indata.*indata).*exp(-indata.*indata/2) ; 在命令窗口输入: nntool 出现如下图形界面 。 图 1 图形界面 点击 import 按钮,添加输入变量和目标输出变量;
分享到:
收藏