智能控制实验报告智能控制课内实验报告(3次)学院:自动化学院班级:智能姓名:学号:智能控制课内实验(1)模糊控制器的设计学院:自动化学院姓名:班级:学号:日期: 2017-9-30实验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.三、写出实验的心得体会总结建立模糊控制器的方法。
实验1.2神经网络工具箱的应用二.神经网络工具箱函数最新版的MATLAB 神经网络工具箱为Version4.0.3, 它几乎涵盖了所有的神经网络的基本常用类型,对各种网络模型又提供了各种学习算法,我们可以根据自己的需要调用工具箱中的有关设计与训练函数,很方便地进行神经网络的设计和仿真。
目前神经网络工具箱提供的神经网络模型主要用于:1. 数逼近和模型拟合;2. 信息处理和预测;3. 神经网络控制;4. 故障诊断。
神经网络工具箱提供了丰富的工具函数,其中有针对某一种网络的,也有通用的,下面列表中给出了一些比较重要的工具箱函数。
三.仿真实例BP 网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。
BP 网络模型结构见图1。
网络同层节点没有任何连接,隐层节点可以由一个或多个。
网络的学习过程由正向和反向传播两部分组成。
在正向传播中,输入信号从输入层节点经隐层节点逐层传向输出层节点。
每一层神经元的状态只影响到下一层神经元网络,如输出层不能得到期望的输出,那么转入误差反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,在经正向传播过程,这两个过程反复运用,使得误差信号最小或达到人们所期望的要求时,学习过程结束。
利用神经网络工具箱进行设计和仿真的具体步骤:1.确定信息表达方式:将实际问题抽象成神经网络求解所能接受的数据形式;2. 确定网络模型:选择网络的类型、结构等;3. 选择网络参数:如神经元数,隐含层数等;4. 确定训练模式:选择训练算法,确定训练步数,指定训练目标误差等;5. 网络测试:选择合适的训练样本进行网络测试。
下面给出一个利用BP 神经网络进行函数逼近的例子。
第一步问题的提出设计一个简单的BP 网络,实现对非线性函数的逼近,通过改变BP 网络的隐层神经元的数目,采用不同的训练方法来观察训练时间和训练误差的变化情况。
假设将要将要逼近的函数为正弦函数,其频率参数N=1,绘制此函数见图2 所示。
N=1;p= [- 1:0.05:1] ;t=sin (N*pi*p) ;%假设N=1,绘制此函数曲线plot (p,t,'r*');title ('要逼近的非线性函数')xlabel ('时间')要逼近的非线性函数第二步网络建立应用newff () 建立两层的BP 网络,隐层神经元数目可以改变,此时S=8 ,输出层一个神经元,隐层和输出层的传递函数分别为tansig 和purelin ,学习算法采用Levenberg - Marquadt ( trainlm) 。
用sim() 观察初始化网络输出如图3 所示。
S=8;net=newff (minmax (p) , [S,1] , {'tansig','purelin'} ,'trainlm');y1=sim (net,p);figure;plot (p,t, 'r* ',p,y1,'b- ')title ('未训练网络的输出结果')xlabel ('时间')ylabel ('仿真输出- 原函数*')legend ('要逼近的非线性函数','未训练网络的输出结果')未训练时网络的输出结果结果接第三步网络训练将训练时间设为10,精度为0.001,用train ()进行训练,误差曲线见图4 所示。
net.trainParam.epochs=10;net.trainParam.goal=0.001;net1 = train (net,p,t);训练过程第四步网络测试用sim()观察训练后的网络输出如图5 所示。
y2 = sim (net1,p);figure;plot (p,t,'r* ',p,y1,'b- ',p,y2,'ko')title ('训练后网络的输出结果')xlabel ('时间')ylabel ('仿真输出')legend ('要逼近的非线性函数','未训练网络的输出结果','训练后网络的输出结果')图5训练后网路的输出结果从图5 可以看出经过很短时间的训练后BP 网络很好的逼近了非线性函数。
讨论:1. 改变非线性函数的频率,即改变N 的值时发现,网络的训练时间会长些,逼近效果要差些。
2. 改变隐层的神经元数目对网络的逼近效果也有影响,一般来说,隐层的神经元数目越多,则BP 网络逼近非线性函数能力越强,但也并非隐层的神经元数目越多,网络性能就越好,而同时训练时间有所增长。
四.结论智能控制课内实验(2)基于 MATLAB的神经网络设计学院:自动化学院姓名:班级:学号:日期: 2017-10-25实验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; %训练每步误差% pause;plotpv(p,t); %显示训练样本plotpc(net.iw{1},net.b{1}); figure; %显示分类面% pause;t2=sim(net,ptest); %对测试样本进行仿真plotpv(ptest,t2); %显示测试样本plotpc(iw1,b1); %再显示分类面2设计前馈网络逼近平方函数设计前馈网络在[0,10]x ∈ 区间上逼近平方函数2y x = 。
新建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 ’ ‘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,’.’) ; %显示输出曲线figure;y3=sim(net,Testp) ; %显示测试样本plot(Testp,y3,’k.’) ; %再显示测试样本输出曲线3图形工具设计神经网络在图形界面下设计前馈型网络,在区间[-4,4]上逼近函数221.1(12)exp(/2)y x x x =-+- 。
在命令行键入输入变量 :>> indata=-4:0.1:4;得到函数目标输出:targetdata=1.1*(1-indata+2*indata.*indata).*exp(-indata.*indata/2) ;在命令窗口输入: nntool出现如下图形界面图1 图形界面点击import按钮,添加输入变量和目标输出变量;按import按钮,导入输入变量按import按钮,导入目标输出变量。
在图1按 new按钮,新建网络按create按钮创建网络。
双击上图的network1,得到下图:点击按钮 Train Network ,训练网络得到下图:点击上图的performance按钮得到下图的网络的训练误差性能:三、总结总结m文件和图形界面方法设计前馈型网络的设计仿真方法。
智能控制课内实验(3)应用遗传算法求解优化问题学院:自动化学院姓名:班级:学号:日期: 2017-11-25实验3 应用遗传算法求解优化问题一、实验目的掌握matlab 遗传算法工具箱的函数命令实现函数优化问题的方法和图形用户界面下求解优化问题的方法。