智能控制导论报告BP神经网络模糊控制.docx

上传人:b****8 文档编号:27763624 上传时间:2023-07-04 格式:DOCX 页数:13 大小:376.08KB
下载 相关 举报
智能控制导论报告BP神经网络模糊控制.docx_第1页
第1页 / 共13页
智能控制导论报告BP神经网络模糊控制.docx_第2页
第2页 / 共13页
智能控制导论报告BP神经网络模糊控制.docx_第3页
第3页 / 共13页
智能控制导论报告BP神经网络模糊控制.docx_第4页
第4页 / 共13页
智能控制导论报告BP神经网络模糊控制.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

智能控制导论报告BP神经网络模糊控制.docx

《智能控制导论报告BP神经网络模糊控制.docx》由会员分享,可在线阅读,更多相关《智能控制导论报告BP神经网络模糊控制.docx(13页珍藏版)》请在冰豆网上搜索。

智能控制导论报告BP神经网络模糊控制.docx

智能控制导论报告BP神经网络模糊控制

 

智能控制导论实验报告

2012-01-09

 

 

姓名:

常青

学号:

0815321002

班级:

08自动化

指导老师:

方慧娟

实验一:

模糊控制器设计与实现

一、实验目的

1.模糊控制的特征、结构以及学习算法

2.通过实验掌握模糊自整定PID的工作原理

二、实验内容

已知系统的传递函数为:

1/(10s+1)*e(-0.5s)。

假设系统给定为阶跃值r=30,系统初始值r0=0.试分别设计

(1)常规的PID控制器;

(2)常规的模糊控制器;

(3)比较两种控制器的效果;

(4)当通过改变模糊控制器的比例因子时,系统响应有什么变化?

三、实验设备

Matlab7.0软件/SIMULINK

四、实验原理

1.模糊控制

模糊逻辑控制又称模糊控制,是以模糊集合论,模糊语言变量和模糊逻辑推理为基础的一类计算机控制策略,模糊控制是一种非线性控制。

图1-1是模糊控制系统基本结构,由图可知模糊控制器由模糊化,知识库,模糊推理和清晰化(或去模糊化)四个功能模块组成。

 

 

针对模糊控制器每个输入,输出,各自定义一个语言变量。

因为对控制输出的判断,往往不仅根据误差的变化,而且还根据误差的变化率来进行综合评判。

所以在模糊控制器的设计中,通常取系统的误差值e和误差变化率ec为模糊控制器的两个输入,则在e的论域上定义语言变量“误差E”,在ec的论域上定义语言变量“误差变化EC”;在控制量u的论域上定义语言变量“控制量U”。

通过检测获取被控制量的精确值,然后将此量与给定值比较得到误差信号e,对误差取微分得到误差变化率ec,再经过模糊化处理把分明集输入量转换为模糊集输入量,模糊输入变量根据预先设定的模糊规则,通过模糊逻辑推理获得模糊控制输出量,该模糊输出变量再经过去模糊化处理转换为分明集控制输出量。

2.PID控制

在模拟控制系统中,控制器最常用的控制规律是PID控制。

PID控制器是一种线性控制器。

它根据给定值与实际输出值之间的偏差来控制的。

其传递函数的形式是:

,PID控制原理框图如图1-2所示。

式中

——比例系数;

——积分时间常数;

——微分时间常数。

 

PID控制器各环节的作用如下:

(1)、比例环节:

成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减小偏差。

增大比例系数一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。

(2)、积分环节:

主要消除静差,提高系统的无差度。

积分作用的强弱取决于积分时间常数

越大,积分作用越弱,反之越强。

增大积分时间有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。

(3)、微分环节:

反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。

五、实验步骤

1、基于simulink的PID控制器的仿真及其调试:

调节后的Kp,Ki,Kd分别为:

10,1,0.05。

示波器观察到的波形为:

 

2、基于simulink的模糊控制器的仿真及其调试:

(1)启动matlab后,在主窗口中键入fuzzy回车,屏幕上就会显现出如下图所示的“FISEditor”界面,即模糊推理系统编辑器。

 

(2)双击输入量或输出量模框中的任何一个,都会弹出隶属函数编辑器,简称MF编辑器。

 

(3)在FISEditor界面顺序单击菜单Editor—Rules出现模糊规则编辑器。

本次设计采用双输入(偏差E和偏差变化量EC)单输出(U)模糊控制器,E的论域是[-6,6],EC的论域是[-6,6],U的论域是[-6,6]。

它们的状态分别是负大(NB)、负中(NM)、负小(NS)、零(ZO)、正小(PS)、正中(PM)、正大(PB)。

语言值的隶属函数选择三角形的隶属度函数。

推理规则选用Mamdani控制规则。

该控制器的控制规则表如图所示:

 

Simulink仿真图如下:

在调试过程中发现加入积分调节器有助于消除静差,通过试凑法得出量化因子,比例因子以及积分常数。

Ke,Kec,Ku,Ki分别是:

3,2.5,3.5,0.27

六、结果分析

通过比较PID控制器和模糊控制器,由实验得到的波形图可以看出两个系统观察到的波形并没有太大的区别。

相对而言,对于给出精确数学模型的控制对象,PID控制器显得更具有优势,原因如下:

(1)、PID控制器相对比较简单,而模糊控制器设计较为复杂,不仅要设计变量还要设计模糊规则;

(2)、PID控制器调节三个参数可以达到满意的效果,对于给出给出精确数学模型的控制对象,模糊控制器并没有展现出太大的优势,调节参数的难度并不亚于PID控制器。

在实验中增大模糊控制器的比例因子Ku会加快系统的响应速度,但Ku过大将会导致系统输出上升速率过快,从而使系统产生较大的超调量乃至发生振荡;Ku过小,系统输出上升速率变小,将导致系统稳态精度变差。

 

实验二:

神经网络字符识别

一、实验目的

1.熟悉神经网络的特征、结构以及学习算法

2.了解神经网络的结构对控制效果的影响    

3.掌握用MATLAB实现神经网络控制系统仿真的方法。

二、实验内容

编写一个利用前向传播神经网络进行字符识别的程序,设神经网络为具有一个隐含的BP网络,需识别的字符有三个A、I和O,其输入为4*4个像素的扫描输入;

 

 

目标输出分别是A=(1,-1,-1),I=(-1,1,1),O=(-1,-1,1).网络为16个输入点、3个输出点、9个隐含层节点。

利用所编程序完成训练后,在输入样本X=(1,1,1,1,1,-1,-1,1,1,1,1,1,1,1,-1,1)时,求网络输出值。

三、实验设备

Matlab7.0/SIMULINK

四、实验原理

人工神经网络ANN(ArtificialNeuralNetwork)系统由于具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。

尤其是基于误差反向传播(BackPropagation)算法的多层前馈网络(Muhiple-LayerFeedforwardNetwork),即BP网络,可以以任意精度逼近任意连续函数,所以广泛地应用于非线性建模、函数逼近和模式分类等方面。

1.BP网络算法实现

BP算法属于

算法,是一种监督式的学习算法。

其主要思想是:

对于M个输人学习样本,已知与其对应的输出样本。

学习的目的是用网络的实际输出与目标矢量之间的误差来修改其权值,使实际与期望尽可能地接近,即使网络输出层的误差平方和达到最小,他是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。

每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层。

2.BP网络的设计

在MATLAB神经网络工具箱中.有很方便的构建神经网络的函数。

对于BP网络的实现.其提供了四个基本函数:

newff,init.train和sim.它们分别对应四个基本步骤.即新建、初始化、训练和仿真

(1)初始化前向网络

初始化是对连接权值和阈值进行初始化。

initff函数在建立网络对象的同时,自动调用初始化函数,根据缺省的参数对网络的连接权值和阈值进行初始化。

格式:

[wl,bl,w2,b2]=initff(p,sl,fl,s2,f2)

其中P表示输入矢量,s表示神经元个数,f表示传递函数,W表示权值,b表示阈值。

(2)训练网络

BP网络初始化以后,就可对之进行训练了。

函数采用批处理方式进行网络连接权值和阈值的更新,要对其参数进行设置,如学习步长、误差目标等,同时在网络训练过程中,还用图形显示网络误差随学习次数的变化。

1基本梯度下降法训练网络函数trainbp格式:

[wl,bl,w2,b2,te,tr]

=trainbp(wl,bl,fl,w2,b2,f2,p,t,tp)

2带有动量项的自适应学习算法训练网络函数trainbpx格式:

[wl,bl,w2,b2,te,tr]

=trainbpx(wl,bl,fl,w2,b2,f2,p,t,tp)

其中P表示输入矢量,t表示目标矢量,te为网络的实际训练次数,tr为网络训练误差平方和的行矢量,tp表示网络训练参数(如学习率、期望误差、最大学习次数等)。

(3)网络仿真

仿真函数simff用来对网络进行仿真。

利用此函数,可以在网络训练前后分别进行输入输出的仿真,以做比较,从而对网络进行修改评价。

格式:

a=simff(p,wl,b1,fl,w2,b2,f2)

其中a表示训练好的BP网络的实际输出。

五、实验步骤

A=[1111;1-1-11;1111;1-1-11];

I=[-11-1-1;-11-1-1;-11-1-1;-11-1-1];

O=[1111;1-1-11;1-1-11;1111];

X2=[11111-1-11111111-11]';

X=[A(:

)I(:

)O(:

)];

T0=[1;-1;-1];

T1=[-1;1;1];

T2=[-1;-1;1];

T=[T0T1T2];

%建立网络,并得权值和阈值

[RN1]=size(X);

[S2N1]=size(T);

S1=10;%隐含层的个数

%minmax(X)表示输入向量,[S1S2]表示隐含层和输出层的个数

%隐含层和输出层的激活函数为'tansig','traingdx'表示反向权值学习函数

net=newff(minmax(X),[S1S2],{'tansig','tansig'},'traingdx');

w=net.LW{2,1};

b=net.b{1};

b=net.b{2};

y1=sim(net,X);

%利用不含噪声的理想输入数据训练网络,并得权值和阈值

net.performFcn='sse';%平方和偏差函数

net.trainParam.goal=0.000001;%训练目标偏差

net.trainParam.epochs=5000;%训练时间

net.trainParam.show=20;%计算步长

net.trainParam.mc=0.95;%动量参数

[net,tr]=train(net,X,T);

w=net.LW{2,1};

b=net.b{1};

b=net.b{2};

y2=sim(net,X);

%为使网络对输入有一定容错能力,再分别利用不含和含有噪声的输入数据训练网络

net.trainParam.goal=0.6;%训练目标偏差

net.trainParam.epochs=500;%训练时间

net1=net;

T1=[TTTT];

fori=1:

10

X1=[XX(X+randn(R,N1)*0.1)(X+randn(R,N1)*0.2)];

[net1,tr]=train(net1,X1,T1)

end

y3=sim(net1,X);

%为了保证网络总能够正确地对理想输入信号进行识别,再次用理想信号进行训练

[net1,tr]=train(net1,X,T);

w=net.LW{2,1};

b=net.b{1};

b=net.b{2};

y5=sim(net,X2)%样本测试

六、结果分析

结果输出

y5=

0.9923

-0.9975

-0.4281

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

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1