实验一模糊控制系统Matlab仿真一实验目的能够正确运用《模糊控制技术》与《Matlab仿真》课程的基本理论和知识,了解使用Matlab中关于模糊控制仿真的工具和方法。,自行建立一个模糊控制仿真系统进行仿真。二实验内容和要求1.打开Matlab模糊逻辑工具箱,熟悉工具箱提供的模糊逻辑工具2.打开Matlab模糊逻辑工具箱中提供的例子并运行,对模糊控制系统仿真有直观认识。3.任选控制对象,一阶或二阶均可,使用Matlab模糊逻辑工具箱建立模糊控制器FIS4.在Simulink环境或Matlab环境下建立仿真系统,并运行得到仿真结果三实验步骤第一部分1.打开Matlab仿真环境2.新建M文件,执行以下程序a=newfis('tipper');a=addvar(a,'input','service',[010]);a=addmf(a,'input',1,'poor','gaussmf',[1.50]);a=addmf(a,'input',1,'excellent','gaussmf',[1.510]);a=addvar(a,'input','food',[010]);a=addmf(a,'input',2,'rancid','trapmf',[-2013]);a=addmf(a,'input',2,'delicious','trapmf',[791012]);a=addvar(a,'output','tip',[030]);a=addmf(a,'output',1,'cheap','trimf',[0510]);a=addmf(a,'output',1,'generous','trimf',[202530]);ruleList=[11112;22212];a=addrule(a,ruleList);plotfis(a)3.查看下列命令,并使用帮助文件理解其的意义。“newfis”、“readfis”、“getfis”、“writefis”、“showfis”、“setfis”、“plotfis”。在实验报告中进行说明。打开Help文档,在Seach中寻找各个命令“newfis”创建并返回一个新的模糊推理系统“readfis”从磁盘中读出并返回模糊推理系统结构变量“getfis”取得模糊推理系统的部分或全部属性“writefis”将以矩阵形式保存在内存中的模糊推理系统的数据写入磁盘文件中“showfis”以分行的形式显示模糊推理系统矩阵的所有属性“setfis”设置、改变模糊推理系统的属性“plotfis”绘制模糊推理系统的推理过程结构框图4.使用readfis函数在Matlab工作空间读取刚才建立的模糊控制器,利用“getfis”函数读取某一输入/输出变量的第2个隶属函数的信息;并使用“plotfis”绘图命令画出该模糊控制器的图形,包括输入-输出特性和隶属度函数。在实验报告中记录相关结果。a=readfis('tipper');getfis(a,'input',1,'excellent',1)Name=poorType=gaussmfParams=[1.50]plotfis(a)执行程序后的模糊推理系统的推理过程结构框图如图所示:第二部分:1.打开Matlab模糊逻辑工具箱。在Matlab工作区间输入“fuzzy”回车,出现模糊推理系统编辑器(FISEditor)2.点击“Edit/AddVariable…”,选择“Input”添加一个输入量,选择误差e和误差变化率ec作为输入。分别给两个输入编辑隶属度函数.论域选择:e:[-6,+6];ec:[-6,+6];U:[-6,+6].3.打开RuleEditor,根据自己的模糊逻辑控制规则表添加控制规则,控制规则如下表:4.打开隶属度曲面浏览器(SurfaceViewer),观察控制规则曲面是否合理5.在Simulink中建立仿真系统,控制对象:ss251332,并运行得到仿真结果6.根据ss251332仿真结果可知,规则不合理,重新修订规则,在Simulink中建立仿真系统,控制对象:420122ss,并重新仿真得到新的仿真结果7.完成后分别使用模糊推理过程浏览器(Ruleview)、系统输入输出特性曲面测览(Surfview)观察模糊控制器的控制曲面和控制规则。实验总结:通过本次实验,熟练掌握了maplab软件的基本操作,学会使用maplab软件进行智能控制实验的仿真模拟,加深了对模糊控制系统的理解,学会了通过修改控制规则,来时模糊推理达到预期效果。实验二神经网络仿真一实验目的能够正确运用神经网络与《Matlab仿真》课程的基本理论和知识,了解使用Matlab神经网络工具箱的用法。二实验内容和要求1.打开Matlab神经网络工具箱,对模糊控制系统仿真有直观认识。2.利用神经网络工具箱建立一个数据预测模型,并运行得到仿真结果三实验步骤第一部分:熟悉神经网络工具箱输入矢量为p=[-1-231-115-3]目标矢量为t=[-1-111]。测试数据为C=[2;3].simulink环境1.在命令窗口下输入nntool,打开神经网络工具箱界面。2.点击IMPORT按要求导入输入、输出数据;点击new新建一个3层BP神经网络;点击VIEW查看建立的神经网络模型结构。3.再点击TRAIN训练神经网络。4.点击IMPORT输入测试数据,在simulate中选中测试数据,点击simulatenetwork进行测试。5.在主界面的OUTPUT框中查看测试结果。.M函数环境参考程序closeallclearechoonclc%NEWFF——生成一个新的前向神经网络%TRAIN——对BP神经网络进行训练%SIM——对BP神经网络进行仿真pause%敲任意键开始clc%定义训练样本%P为输入矢量P=[-1,-2,3,1;-1,1,5,-3];%T为目标矢量T=[-1,-1,1,1];C=[2;3]];pause;clc%创建一个新的前向神经网络net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')%当前输入层权值和阈值inputWeights=net.IW{1,1}inputbias=net.b{1}%当前网络层权值和阈值layerWeights=net.LW{2,1}layerbias=net.b{2}pauseclc%设置训练参数net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;net.trainParam.epochs=1000;net.trainParam.goal=1e-3;pauseclc%调用TRAINGDM算法训练BP网络[net,tr]=train(net,P,T);pauseclc%对BP网络进行仿真A=sim(net,C)%计算仿真误差E=T-AMSE=mse(E)pauseclcechooff第二部分:神经网络应用现有以下数据,请建立输入x与输出y之间的非线性关系模型,并用测试数据检验模型的合理性。x100.511.522.53x20123456x30.81.62.43.244.85.6y7.1712.2511.757.674.436.2914.69x13.544.555.566.5x278910111213x36.47.288.89.610.411.2y27.4239.9448.1450.8550.5151.7258.46x177.588.599.510x214151617181920x31212.813.614.415.21616.8y71.6388.57104.59115.91121.86125.37131.12测试数据x11717.51818.51919.520x234353637383940x32828.829.630.431.23232.8y359.7091371.2321386.2989407.7503434.8575463.7643489.8262测试数据图形1234567350400450500在M.FILE文档中输入以下程序并运行closeallclearechoonclc%NEWFF——生成一个新的前向神经网络%TRAIN——对BP神经网络进行训练%SIM——对BP神经网络进行仿真pause%敲任意键开始clc%定义训练样本%P为输入矢量P=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10;0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20;sin(0.8),sin(1.6),sin(2.4),sin(3.2),sin(4),sin(4.8),sin(5.6),sin(6.4),sin(7.2),sin(8),sin(8.8),sin(9.6),sin(10.4),sin(11.2),sin(12),sin(12.8),sin(13.6),sin(14.4),sin(15.2),sin(16),sin(16.8)];%T为目标矢量T=[7.17,12.25,11.75,7.67,4.43,6.29,14.69,27.42,39.94,48.14,50.85,50.51,51.72,58.46,71.63,88.57,104.59,115.91,121.86,125.37,131.12;];C=[0.5,4,7.5,17.5;1,8,15,35;sin(1.6),sin(7.2),sin(12.8),sin(28.8);];T1=[12.25,39.94,88.57,371.2321;];pause;clc%创建一个新的前向神经网络net=newff(minmax(P),[3,1],{'tansig','purelin'})%当前输入层权值和阈值inputWeights=net.IW{1,1}inputbias=net.b{1}%当前网络层权值和阈值layerWeights=net.LW{2,1}layerbias=net.b{2}pauseclc%设置训练参数net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;net.trainParam.epochs=1000;net.trainParam.goal=1e-3;pauseclc%调用TRAINGDM算法训练BP网络[net,tr]=train(net,P,T);pauseclc%对BP网络进行仿真A=sim(net,C)%计算仿真误差E=T1-AMSE=mse(E)pauseclcechooff不断训练找到误差最小的BP神经网络绘制A(即仿真)的数据图形实验总结:通过本次实验,熟练掌握了maplab软件的基本操作,学会使用maplab软件进行智能控制实验的仿真模拟,加深了对神经网络的理解,了解了通过不断训练,可以减小神经网络的误差。