《智能控制》实验指导书.doc

上传人:laozhun 文档编号:2390375 上传时间:2023-02-17 格式:DOC 页数:21 大小:759.50KB
返回 下载 相关 举报
《智能控制》实验指导书.doc_第1页
第1页 / 共21页
《智能控制》实验指导书.doc_第2页
第2页 / 共21页
《智能控制》实验指导书.doc_第3页
第3页 / 共21页
《智能控制》实验指导书.doc_第4页
第4页 / 共21页
《智能控制》实验指导书.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《智能控制》实验指导书.doc》由会员分享,可在线阅读,更多相关《《智能控制》实验指导书.doc(21页珍藏版)》请在三一办公上搜索。

1、智能控制实验指导书河北工业大学控制科学与工程学院2013.09实验一 基于MATLAB的模糊推理系统设计一、 实验目的要求在掌握模糊控制器基本工作原理和设计方法的基础上,熟悉MALAB的模糊控制工具箱,能针对实际问题设计模糊控制器,建立模糊控制系统,训练学生综合运用计算机来解决一些实际问题的能力。二、 实验要求1. 熟练掌握基于MATLAB的模糊推理系统设计;2. 设计小费模糊推理系统;3. 设计水箱液位模糊控制系统。三、 实验内容(一)模糊逻辑工具箱的介绍模糊逻辑工具箱提供的图形用户界面(GUI)工具有五个:模糊推理系统(FIS)编辑器;隶属函数编辑器;模糊规则编辑器;模糊规则观察器;输出曲

2、面观察器。1. FIS编辑器:Matlab的FIS界面如图1所示。FIS处理系统有多少个输入变量,输出变量,名称是什么,模糊算子“与”(min,prod乘积,custom自定义),“或”(max大,probor 概率统计方法,custom),推理方法(min,prod,custom),聚类方法(max,probor,sum,custom),解模糊的方法(centroid质心法,bisector中位线法,middle of maximum,largest of maximum,smallest of maximum)。推理的类型有mamdani和sugeno 推理。图1 模糊推理系统(FIS)界

3、面Mamdani推理:一种在模糊控制中普遍使用的方法,它本质上仍然是一种合成推理方法,只不过对模糊蕴涵关系取不同的形式而已。Mamdani型推理从每个规则的结果中得到的模糊集通过聚类运算后得到结果模糊集,被反模糊化后得到系统输出。Sugeon型推理:其中每个规则的结果是输入的线性组合,而输出是结果的加权线性组合。2. 隶属函数编辑器确定各个变量的论域和显示范围(左下角编辑区内),如图2所示。定义每个变量的模糊集的名称和个数(Edit菜单中Add MFs),以及每个模糊变量的隶属函数类型和参数(点击变量的隶属函数曲线后在右下角编辑区内修改)。隶属函数的类型有:trimf,trapmf,gbell

4、mf, gaussmf,gauss2mf,sigmf,dsigmf,psigmf,pimf,smf,zmf。图2 隶属函数编辑器3. 模糊规则编辑器完成了对变量的命名,隶属函数也有了适当的形状和名字,就可以编辑模糊规则。选择连接关系(and 或者or),权重,在编辑器左边选择一个输入变量,并选择它的语言值,然后在编辑器右边的输出变量中选择一个输出变量,并选中它的语言值,然后将这种联系添加到模糊规则中。 Options/Format 下可以选择模糊规则不同的格式,默认的是verbose(模糊规则的详细格式),还有symbolic(符号格式),indexed(高度压缩格式)4. 模糊规则观察器模糊

5、规则观察器的功能是可以令用户观察模糊推理图,并观察模糊推理系统的行为是否与预期的一样。可以观察到输入变量(默认色是黄色)和输出变量(默认色是蓝色)如何应用在模糊规则中;反模糊化的数值是多少。5. 输出曲面观测器模糊规则观察器非常详细的显示了在某一个时刻的计算。如果看到模糊推理系统的全部输出曲面,即与整个输入区间相对应的输出区间,就要打开输出曲面观测器。View/view surface(二)小费模糊推理系统设计1. 在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。2. 增加一个输入变量,在弹出的窗口中选择EditAdd V

6、ariableinput;在name中更改input1为“service”,input2为“food”,output为“tip”,建立了一个两输入单输出模糊推理系统框架。 3. 双击变量图标进行模糊化模块设计:(1)打开Membership Function Editor窗口,在Range和Display Range中设置隶属函数图的取值范围,将两个输入变量的论域均设为0,10,输出论域为0,30。(2)选择EditAdd MFsnumbers of MFs 中选择模糊集个数通过增加隶属度函数来进行模糊空间划分。输入变量service划分为三个模糊集:更改mf1mf3的参数,分别命名为poor

7、、good和excellent,隶属度函数均为高斯函数( gaussmf),参数分别为1.5 0、1.5 5和1.5 10。输入变量food划分为两个模糊集:rancid和delicious,隶属度函数均为梯形函数(trapmf ),参数分别为0 0 1 3和7 9 10 10。输出变量tip划分为三个模糊集:cheap、average和generous,隶属度函数均为三角形函数(trimf),参数分别为0 5 10、10 15 20和20 25 30。4. 设置模糊规则:打开Rule Editor窗口,通过选择添加三条模糊规则: if (service is poor) or (food i

8、s 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. 模糊推理参数均使用默认值,通过曲面观察器(ViewSurface)查看小费模糊推理的输入输出关系曲面。通过规则观察器(ViewRules)查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。6. 增加规则,查看曲面的变化、推理输出的变化。 (三)水箱液

9、位模糊控制系统设计1. 打开模糊工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。2. 增加一个输入变量,将输入变量命名为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和positive,隶属

10、度函数均为高斯函数,参数分别为0.03 -0.1、0.03 0和0.03 0.1;输出变量valve划分为五个模糊集: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 (va

11、lve is open_fast)if (level is high) then (valve is close_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. 通过曲面观察器(Surface Viewer)查看水箱液位模糊推理的输入输出关系曲面。通过规则观察器(Rule Viewer)查看对具体输入的模糊推理及输出情况。 实验二 模糊控制系

12、统设计一、 实验目的利用Matlab软件实现模糊控制系统仿真实验,了解模糊控制的基本原理及实现过程,比较模糊控制和传统PID控制的性能差异。二、 实验要求1. 设计一个二维模糊控制器控制一个二阶被控对象,传递函数为 其中各参数分别为。2. 采用模糊控制算法,设计出能跟踪给定输入的模糊控制器,对被控系统进行仿真,绘制出系统的阶跃响应曲线。3. 改变模糊控制器中模糊变量的隶属度函数,分析隶属度函数和模糊控制规则对模糊控制效果的影响,比较那种情况下的控制效果较好。4. 改变系统的参数,了解模糊控制在系统参数发生变化时的控制效果,并与PID控制器作用下系统参数发生变化时的控制效果进行比较,思考模糊控制

13、相对于传统控制的优点。三、 实验内容(一)模糊控制器设计1. 模糊集合及论域的定义选定误差E和误差变化EC作为模糊控制器的输入(二维模糊控制器),控制量U作为模糊控制器的输出。E、EC及U的模糊集定义如下:E、EC和U的模糊集均为NB, NM, NS, O, PS, PM, PBE和EC的论域为-6、-5、-4、-3、-2、-1、0、1、2、3、4、5、6U的论域为-7、-6、-5、-4、-3、-2、-1、0、1、2、3、4、5、6、7上述3个模糊集合都选取了7个元素,主要目的是着眼于提高稳态精度。E、EC和U的隶属度函数图形如图所示:图1 E的隶属度函数图2 C的隶属度函数图3 U的隶属度函

14、数2. 模糊控制规则设计表1 模糊控制规则U EECNBNMNS0PSPMPBNBPSPSPSPSPMPBPBNMNSPSPSPSPMPMPBNSNMNS00PSPMPM0NBNMNS0PSPMPMPSNBNMNS00PSPMPMNBNBNMNSNSPSPSPBNBNBNMNSNSNSPS进行模糊控制仿真时,首先要将FIS发送到Matlab工作空间(workspace)中,用FIS窗口下File/Export/to workspace实现,用户建立一个工作空间变量名(例如fuzzy control),这个变量将FIS系统作为Matlab的一个结构进行工作。仿真时,打开fuzzy logic c

15、ontroller,输入FIS变量名,就可以进行仿真了。3. 建立仿真模型在MATLAB的simulink仿真环境中建立模糊控制系统的方框图,如图4所示。系统所选用的参数Saturation、Saturation1、Saturation2的范围分别为-6 6、-6 6、-7 7,Transport Delay=2s。通过调试得到PID模糊控制的参数:Gain1=0.6,Gain=2.1,Gain2=0.11。图4 模糊控制仿真模型4. 仿真结果系统的阶跃响应曲线如图5所示,其中上方的曲线代表系统的阶跃响应,下方的曲线是系统的模糊控制量的变化。图5 阶跃输入的响应曲线图(二)分析模糊控制隶属度函

16、数对控制效果的影响如下图所示改变模糊控制器中的隶属度函数为梯形隶属函数。图6 E的隶属度函数图7 EC的隶属度函数图8 U的隶属度函数记录此时系统的阶跃响应曲线,分析梯形隶属度函数和三角形隶属度函数对控制效果的影响,撰写实验报告。(三)系统参数对控制效果的影响改变系统参数进行仿真,记录系统的阶跃响应曲线,依次分析以下三种情况对控制效果的影响,撰写实验报告。1. 当系统开环增益K分别取K=25,K=30和K=35时系统的阶跃响应。2.当系统纯延时分别取=1.5s、=2s和=2.5s时系统的阶跃响应。3.当系统惯性时间常数T f 2分别取T f 2=1,T f 2=2,T f 2=3时系统的阶跃响

17、应。实验三 神经网络控制系统设计一、 实验目的本实验要求在学生掌握神经网络基本工作原理和设计方法基础上,熟悉MALAB中的神经网络工具箱,能针对实际问题建立神经网络模型,训练学生综合运用计算机来解决一些实际问题的能力。二、 实验要求1. 熟悉MALAB的神经网络工具箱;2. 用人工神经网络BP算法训练一个网络系统,使之能得到 ysin(x),x(0,2)的逼近曲线,并与期望曲线画在同一坐标纸上。三、 实验内容(一) BP神经网络工具箱函数1. newff:BP神经网络参数设置函数函数功能:构建一个BP神经网络;函数形式:net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF

18、,DDF)P:输入数据矩阵;T:输出数据矩阵;S:隐含层节点数;TF:节点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数purelin,正切S型传递函数tansig,对数S型传递函数logsig;BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg_Marquardt的BP算法训练函数trainlm;BLF:网络学习函数,包括BP学习规则le

19、arngd,带动量项的BP学习规则learngdm;PF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse;IPF:输入处理函数;OPF:输出处理函数;DDF:验证数据划分函数。一般在使用中设置前面6个参数,后面4个参数采用系统默认参数。2. train:BP神经网络训练函数函数功能:用训练数据训练BP神经网络;函数形式:net,tr=train(NET,X,T,Pi,Ai);NET:待训练网络;X:输入数据矩阵;T:输出数据矩阵;Pi:初始化输入层条件;Ai:初始化输出层条件;net:训练好的网络;tr:训练过程记录。一般使用过程中设置前面3个参数,后面2个参数采用

20、系统默认参数。3. sim:BP神经网络预测函数函数功能:用训练好的BP神经网络预测函数输出;函数形式:y=sim(net,x);x:输入数据;y:网络预测数据。4. 示例:采用BP算法,构建一个两层的感知机网络,激活函数均选为logsig(对数S形函数),编制如下程序进行仿真。tica1=randn(1,90);a2=100*rand(1,90);y10=2*a2+3;y20=a2.2+sin(a2);y1=y10+a1;y2=y20+a1;p=y1;y2;pr=minmax(p);goal=ones(1,90);zeros(1,90);plot(a2,y1,h,a2,y2,o)net=ne

21、wff(pr,3,2,tansig,tansig);net.trainParam.show = 10;net.trainParam.lr = 0.05;net.trainParam.goal = 1e-10;net.trainParam.epochs = 50000;net = train(net,p,goal);y0=sim(net,p);err0=mae(y0,goal);toc上述程序,采用前述方法生成90个实验数据,将这些数据用于神经网络的训练,并记录程序运行时间,并对神经网络性能作出评价。下面的程序可以生成10个新的实验数据,用来测试前面产生的神经网络性能。b1=randn(1,10

22、);b2=100*rand(1,10);y10=2*b2+3;y20=b2.2+sin(b2);h1=y10+b1;h2=y20+b1;c=h1;h2;r=sim(net,c);t=ones(1,10);zeros(1,10);err=mae(r,t)如下为仿真过程中得到的图像,包括每一次运算的误差,训练状态等。用测试数据分析,实现了准确的分类。 要求:1. 观察程序执行时间和误差(err);2. 将激活函数取为tansig(正切S形函数)后,观察仿真结果。(二) RBF神经网络工具箱函数1. newrb:RBF神经网络参数设置函数函数功能:构建一个RBF神经网络;函数形式:net=newrb

23、(P,T,goal,sptead,MN,DF);P:输入样本向量;T:输出样本向量;Goal:网络的目标误差;Sptead:一扩展的常数;MN:神经元个数的最大值;DF:训练过程的显示频率。该函数利用迭代方法设计径向基函数网络,每迭代一次就增加一个神经元,直到误差平方和下降到目标误差以下或神经元个数达到最大值时迭代停止。2. sim:RBF神经网络预测函数函数功能:用训练好的RBF神经网络预测函数输出;函数形式:y=sim(net,x);net:训练好的网络;x:输入数据;y:网络预测数据。(三) 仿真程序1、BP神经网络仿真程序cleark=1;p=-1:0.05:1;t=sin(k*pi*

24、p);plot(p,t,-)n=10;%隐层神经元个数net=newff(minmax(p),n,1,tansig,purelin,trainlm);%BP神经网络的构建y1=sim(net,p); %BP神经网络预测输出, figure;plot(p,t,-,p,y1,-);% t为原正弦函数图形,y1为没有经过调整权值的图形net.trainParam.epochs=50; %网络的迭代次数net.trainParam.goal=0.01; %网络的误差net=train(net,p,t);y2=sim(net,p);figure;plot(p,t,-,p,y1,-,p,y2,-); %

25、t为原正弦函数图形,y1为没有经过调整权值的图形,y2为经过调整权值的图形2、RBF神经网络仿真程序cleark=1;p=-1:0.05:1;t=sin(k*pi*p);plot(p,t,-);eg=0.01;%目标误差sc=1;%径向基函数的宽度net=newrb(p,t,eg,sc); %RBF神经网络的构建,y1=sim(net,p);figure;plot(p,t,-,p,y1,-);% t为原正弦函数图形,y1为经过调整权值的图形 四、 实验报告应用BP网络逼近非线性函数t=sin(x),x=0,2*pi,学习步长l为0.1,样本集取n=20点,采用单层网络结构,隐含层中取6个单元,

26、总学习次数取5000次,学习误差要求小于0.01,输入输出层神经元激励函数均取f(x)=x,隐含层神经元激励函数取Sigmoid函数,f(x)=1/(1+e(-x) ,在matlab中可以用函数logsig来表示。 参考程序:%初始化l=0.1;%学习步长为0.5n=20;%输入样本数ncells=6;%取6个神经元times=5000;%学习总次数x=(linspace(0,2*pi,n);%输入初始值t=sin(x);%BP网络需要学习的函数tw1=rand(cells,1);%第一层连接权系数w2=rand(1,cells);%第二层连接权系数yw1=rand(cells,1);%第一层

27、阈值yw2=rand;%第二层阈值y=rand(1,n); %输出初始值 counts=1; %学习次数%开始学习for i=1:times ei=0; %网络逼近初始误差平方和 for a=1:n %对n个样本开始学习net1=w1*x(a)-yw1;%net1为cells*1矩阵 out=logsig(net1);%out为cells*1矩阵 net2=w2*out-yw2; y(a)=net2;%第a个样本输出即为net2 det2=t(a)-y(a);%输出与期望间的广义误差det2 det1=(det2*(w2).*out).*(1-out);%广义误差det1 w1=w1+det1

28、*x(a)*l; w2=w2+(det2*out)*l;%连接权更新 yw1=-det1*l+yw1; yw2=-det2*l+yw2; %两层阈值更新 ei=ei+det22/2;%误差平方和 e(i)=ei; end if ei0.01%学习要求误差小于0.01 break; end counts=counts+1;%学习次数自加end%逼近曲线for a=1:n net1=w1*x(a)-yw1; out=logsig(net1); net2=w2*out-yw2; y(a)=net2; end%利用上述学习方法输出逼近值subplot(2,1,1); plot(x,t,x,y);%绘制期望曲线与实际曲线在同一坐标纸上grid on;xlabel(x);ylabel(y=sin(x);title(逼近曲线);%误差曲线if(countstimes) count=1:counts; sum=counts;else count=1:times; sum=times;endsubplot(2,1,2);%分割子图形2plot(count,e(1:sum);grid on;title(误差曲线);xlabel(迭代次数);ylabel(均方误差);

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号