基于Elman神经网络的非线性动态系统辨识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2007,43(31)神经网络辨识器

被辨识系统

y(k)e

(k)y

!(k)u

(k)-

+图1系统辨识原理框图

1引言

动态系统的控制通常需要在无需预先知道精确的对象和

环境知识时便能实现,因此寻求适当的方法以解决不确定性的、高度复杂的动态系统辨识是控制理论研究的一个重要分支。神经网络是由大量处理单元广泛互连而成的网络,具有大规模并行模拟处理能力和很强的自适应、自组织、自学习能力,因而近年来在系统建模、辨识与控制中受到普遍重视。在自动控制领域,基于线性系统理论对被控系统进行辩识并修正参数的方法能较好地应用于线性系统,但很难推广到复杂的非线性系统。神经网络所具有的非线性变换特性和高度并行运算能力为系统辨识,尤其是非线性系统的辨识提供了有效的方法。

目前,系统辩识中应用最多的是多层前向网络,多层前向网络具有逼近任意连续非线性函数的能力,但这种网络结构一般是静态的,而人们更关心控制系统的动态特性,这恰恰是BP神经网络等前馈网络所缺乏的。与静态前馈型神经网络不同,动态递归网络通过存储内部状态,使其具备映射动态特征的功能,从而使系统具有适应时变特性的能力,更适合于非线性动态系统的辩识。动态递归神经网络是控制系统建模和辨识中极具发展潜力的网络,本文利用改进的动态递归Elman神经网络实现对非线性动态系统的辨识。

2神经网络非线性系统辨识原理

假定拟辨识对象为非线性离散时间系统,或者可以离散化

为这样的系统,用NARMA模型来描述:

y(k)=f(y(k-1),…,y(k-n),u(k-1),…,u(k-m))(1)

式中,n、m分别为模型输出y(t)和输入u(t)的阶次,f(・

)是非线性函数。

如果f(・

)未知时,不确定系统的辨识问题可以描述为寻求一数学模型,使得模型的输出y!(・)和被辨识系统的输出y(・)

尽量接近。神经网络具有通过恰当选择网络层次和隐层单元数,能够以任意精度逼近任意连续非线性函数的特性,因此可作为辨识模型,用来对非线性系统进行辨识。

由图1所示的系统辨识原理可以看出,辨识模型和被辨识

系统具有相同的输入,定义误差e(k)=y!(k)-y(k),用于对神经

网络进行学习和修正。

基于Elman神经网络的非线性动态系统辨识

高钦和1,2,王孙安1

GAOQin-he1,2,WANGSun-an1

1.西安交通大学机械工程学院,西安7100282.第二炮兵工程学院,西安710025

1.SchoolofMechanicalEngineering,Xi’anJiaotongUniversity,Xi’an710028,China2.SecondArtilleryEngineeringCollege,Xi’an710025,ChinaE-mail:gao202@yahoo.com.cn

GAOQin-he,WANGSun-an.IdentificationofnonlineardynamicsystembasedonElmanneuralnetwork.Computer

EngineeringandApplications,2007,43

(31):87-89.Abstract:Thetheoryandmethodofdynamicsystemidentificationbydynamicrecurrentneuralnetworkarestudied.Animproved

Elmanneuralnetworkissuccessfullyusedtoidentifythenonlineardynamicsystemeventhoughwithoutanypriorinformationofidentifiedsystem.SimulationresultsshowthattheElmanneuralnetworkhashigherlearningspeedandbettergeneralizationabilitythanthefeedforwardneuralnetwork,andthatitissuitableforthenonlineardynamicsystemidentification.

Keywords:nonlinearsystemidentification;dynamicsystem;dynamicrecurrentneuralnetwork;Elmanneuralnetwork

要:研究了应用动态递归神经网络实现动态系统辨识的原理和方法,在没有被辨识对象的先验知识情况下,通过改进的El-

man网络实现了非线性动态系统的辨识。

仿真结果表明,与前馈网络相比,Elman网络具有学习速度快、泛化能力强的特点,可用较小的网络结构实现高阶系统的辨识,适用于具有本质非线性动态系统的辨识。关键词:非线性系统辨识;动态系统;动态递归神经网络;Elman网络文章编号:1002-8331(2007)31-0087-03

文献标识码:A

中图分类号:TP183

作者简介:高钦和(1968-),男,西安交通大学博士后,第二炮兵工程学院副教授,主要研究方向为发射系统仿真与自动检测;王孙安(1957-),男,

教授,博士,主要研究方向为机电系统与工业过程的计算机智能监控。

ComputerEngineeringandApplications计算机工程与应用87

2007,43(31)ComputerEngineeringandApplications计算机工程与应用

-1

-1

I1

I2

I3

(k)u

(k-1)输入层

承接层

隐藏层

输出层

!

!图2Elman网络结构示意图

根据式(1),可以将神经网络的输入输出关系简单表示为:y

(t)=NN[W,X1(t),X2(t)](2)

式中,NN表示神经网络表达的非线性关系;W是由网络连接权值和有关节点参数共同组成的网络学习参数;X1(t)是网络t时刻的输入(不包括反馈部分);X2(t)是t时刻前反馈回来的有用信息,也作为t时刻的输入,如果是普通的前向网络,则不存在这一项。

基于神经网络的系统辨识问题可归结为:确定网络的拓扑

结构,并找出一组网络学习参数W*,使得y#(t)=NN[W*

,X1(t),X2(t)]。网络学习参数W*

可以通过一组关于对象输入输出关

系的学习数据集合{X1(t),y(t)},采用一定的学习算法对网络训练获得。神经网络对系统进行辨识是通过直接学习系统的输入/输出数据,学习的目的是使得所要求的误差函数达到最小,从而归纳出隐含在系统输入/输出数据中的关系。

由于BP网络等前馈网络是一种静态网络,网络的输出仅仅是当前输入的非线性映射,不能直接应用于动力学系统建模,即使利用多层前馈神经网络对动态系统进行辨识,实际上也是将动态时间建模问题变为一个静态空间建模问题。这就需要先验假定系统的NARMA模型类,需要对结构模型进行定阶,特别是随着系统阶次的增加,或阶次未知时,迅速膨胀的网络结构将使学习收敛速度更加缓慢,较多的输入节点也将使相应的辨识系统对外部噪声特别敏感。

递归神经网络将前馈网络的隐层结点或输出结点上的值反馈到前一层结点上或者在本层结点上进行自反馈,从而可以克服一般多层前馈网络在动态系统辨识中存在的问题。在动态递归网络中,Elman网络结构简单,运算量小,非常适合于实时非线性动态系统辨识。

3Elman网络与动态系统辨识

Elman型回归神经网络是动态递归神经网络的一种,一般

可分为4层:输入层、隐层、承接层、输出层,其输入层、隐层、输

出层的连接类似于前馈网络,而增加的承接层则用来记忆隐层单元前一时刻的输出值,可以认为是一个一步迟延的延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,能直接反映动态过程的特性。

当Elman网络用于辩识单输入、

单输出对象时,只需要一个输入单元和一个输出单元,其网络结构如图2所示。若考虑有n个承接层单元,隐层单元的输入仅为n+1个;如果用BP网络实现同样功能,则需要2n个隐层单元的输入。可见,采用

Elman网络可以大大地减少结点数,从而减少了计算量,提高

了算法的实时性,当n较大时,这个优点尤为显著。

设Elman网络的输入层为r个结点,隐层和承接层单元为

n个结点,输出层为m个结点,则网络输入U为r维向量,隐层输出X及结构单元输出XC为n维向量,网络输出Y为m维向

量,隐层单元与承接层单元之间的连接权WI1

为n×n维矩阵,隐层单元与输入单元之间的连接权WI2

为n×r维矩阵,隐层单元与输出单元之间的连接权WI3

为m×n维矩阵。则网络可以描述为:

(k)=f(WI1XC(k)+WI2

U(k-1))XC

(k)=X(k-1)+!XC(k-1)Y

(k)=WI3

X(k!

####"####$

)(3)

式中,f(x)为隐层单元的激发函数,常取为Sigmoid函数,即f(x)=1/(1+e-x

);输出层单元的激发函数取为线性函数。0≤α<

1,为自连接反馈增益因子,当α固定为0时,此网络为标准的Elman网络;α不为0时,为改进的Elman网络。

由于隐层存在反馈连接,在任意给定时刻,网络的输出受到网络过去输入/输出的影响,其影响程度由结点间的连接矩阵决定。设第k步系统的实际输出为Yd(k),定义误差函数为:

(k)=(Yd(k)-Y(k))T

(Yd(k)-Y(k))

(4)

将E对连接权WI3

、WI2

、WI1

分别求偏导数,由梯度下降法可得

Elman网络的学习算法:

!wijI3

="3#i0

xj(k

)!wjqI2="2$jh

uq(k-1)

!wjlI1

="1m

i=1

&

($i0

wijI3

)’xj(k

)’wjl

I1

(5)

式中,"1、"2、"3分别为连接权WI1、WI2、WI3

的学习速率;i=1,2,…,m;j=1,2,…,n;q=1,2,…,r;l=1,2,…,n;$i0

=yd,i(k)-yi(k),$jh

=m

i=1&($jh

wijI3

)f′j

(・),而:’xj(k

)’wjl

I1

=f′j(・)xl(k-1)+%

’xj(k-1

)’wjl

I1

(6)

可知,对于连接矩阵WI1

的调整,式(5)构成了梯度’xj(k

)’wjl

I1

的动

态递推关系,因而可以辨识高阶系统。

4仿真实验

取仿真对象为非线性模型:

y(k)=y(k-1)1+y2

(k-2)

+u3(k-1)+u(k-2)(7)

在Matlab7.0下编程实现Elman神经网络辨识器。在仿真实验中,采用单输入的一阶Elman网络辨识模型,虽然要比多

层BP前馈网络好,但学习效率还不够高。为了进一步提高网络性能,采用二阶Elman模型,将系统实际输出值的变化趋势,

即在t-1时刻系统的一阶导数输入到网络的输入层。

取系统输入u(k)、系统输出变化dy(k-1)=y(k-1)-y(k-2)为网络输入,隐层单元数为20,神经网络结构为2-20-1。产生100个训练数据点{u

(k),y(k),dy(k-1)},定义输入信号为u(k)=asin

(4"k/26),k=1,2,…,100,其中当k≤30时取系数a=0.8,30<88

相关文档
最新文档