基于MATLAB的BP神经网络控制器的设计及其实验仿真 下载本文

中原工学院毕业设计(论文)

应用研究可分为以下两类:

1).神经网络的软件模拟和硬件实现的研究。

2).神经网络在各个领域中应用的研究。这些领域主要包括:

模式识别、信号处理、知识工程、专家系统、优化组合、机器人控制等。 随着神经网络理论本身以及相关理论、相关技术的不断发展,神经网络的应用定将更加深入。

神经网络具有以下特点[12]:

(1)可以充分逼近任意复杂的非线性关系;

(2)所有定量或定性的信息都等势分布贮存于网络内的各神经元,故有很强的鲁棒性和容错性;

(3)采用并行分布处理方法,使得快速进行大量运算成为可能; (4)可学习和自适应不知道或不确定的系统; (5)能够同时处理定量、定性知识。

3.2 BP神经网络

基于误差反向传播( Error Back Propagation)算法的多层前馈网络(Multiple Layer Feed forward Network) (简称BP网络),可以以任意精度逼近任意的连续函数,所以广泛应用于非线性建模、函数逼近、模式分类等方面[13]。虽然BP神经网络是目前应用最广泛、研究较多的一种网络。但是关于它的开发设计目前为止还没有一套完整的理论。

拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输出层。它的特点是:各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,构成具有层次结构的前馈型神经网络系统。单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。

BP神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,

18

中原工学院毕业设计(论文)

此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。

BP网络模型处理信息的基本原理是:输入信号Xi通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号Yk,网络训练的每个样本包括输入向量X和期望输出量T,网络输出值Y与期望输出值T之间的偏差,通过调整输入节点与隐层节点的联接强度取值Wij和隐层节点与输出节点之间的联接强度Tjk以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型[14]。

19

中原工学院毕业设计(论文)

第四章 基于MATLAB的BP神经网络控制器的设计及其实验仿真

此为本次设计的核心部分,这次虚拟实验室的实验控制器采用BP神经网络控制器来控制,以不同的输入函数及不同的学习速率、惯性系数来对比控制效果,达到从实验可以得到学习的效果。

4.1 基于 BP神经网络控制器的设计

PID控制要取得较好的控制效果,就必须通过调整好比例、积分和微分三种控制作用,形成控制量中既相互配合又相互制约的关系,这种关系不一定是简单的“线性组合”,从变化无穷的非线性组合中可以找出最佳的关系。神经网络所具有的任意非线性表达能力,可以通过对系统性能的学习来实现具有最佳组合的PID控制。采用BP网络,可以建立参数Kp,Ki,Kd自学习的PID控制器[15]。

基于BP(Back propagation)网络的PID控制系统结构如图4-1所示,控制器由两部分构成:

jx1x2x3ilkpkikd

图4-1 BP网络结构

(1)经典的PID控制器,直接对被控对象进行闭环控制,并且三个参数Kp,Ki,Kd为在线调整方式;

(2)神经网络,根据系统的运行状态,调节PID控制器的参数,以期达到某种件能指标的最优化,使输出层神经元的输出状态对应于PID控制器的三个Kp,Ki,Kd通过神经网络的自学习、加权系数调整,使神经网络输出对应于某种最优控制律下的PID控制器参数。

经典增量式数字PID的控制算法如下(4.1)为:

20

中原工学院毕业设计(论文)

u(k)?u(k?1)?kp(error(k)?error(k?1))?kierror(k)?kd(error(k)?2error(k?1)?error(k?2))Oj(1)?x(j) (4.1)

式中,Kp,Ki,Kd分别为比例、积分、微分系数。网络输入层的输入为:

j=1,2,…M (4.2)

式中,输入变量的个数M取决于被控系统的复杂程度。 网络隐含层的输入、输出为:

Mneti(2)(2)(k)??wijO(1)jj?0O(2)i(2ij(k)?f(net(2)i(k)) (4.3)

(i=1,…Q)

w—隐含层加权系数;上角标(1)、(2)、(3)分别代表输入层、隐层和输出层。

隐层神经元的活化函数取正负对称的Sigmoid函数:

ex?e?xf(x)?tanh(x)?xe?e?x网络输出层的输入输出为:

Q (4.4)

netlO(3)(3)(k)??wliOi(2)(k)i?03l

(3)l(k)?g(net(k))

(l=1,2,3) (4.5)

O1(3)(k)?kp(3)O3(k)?kd (3)O2(k)?ki

输山层输出节点分别对应三个可调参数Kp,Ki,Kd。由于Kp,Ki,Kd不能为负值,所以输出层神经元的活化函数取非负的Sigmoid函数。

1exg(x)?(1?tanh(x))?x2e?e?x (4.6)

取性能指标函数为: 1E(k)?(rin(k)?yout(k))22 (4.7) 按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度力向搜索调整,并附加使搜索快速收敛全局极小的惯性项。

21