基于BP神经网络的系统辨识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

系统辨识与自适应基于BP神经网络的系统辨识电气与自动化工程学院,控制理论与控制工程3班,王晓,学号:140820082摘要:BP神经网络是一种具有反向修正功能的神经系统,具有的非线性特性和学习能力且已被证明具有逼近任意有界函数的能力。它有能力辨识那些不能线性化的非线性系统,不需要预先知道被测系统的模型。BP神经网络结构具有较强的自适应能力,并行处理和高度鲁棒性,采用神经网络方法设计的控制系统将具有更强的实时性,更强的适应能力和更强的鲁棒性。1引言传统的系统辨识方法有着很多的不足,主要表现在:它要求研究人员给出系统模型的结构及阶次,即模型的建立要立足于函数的求解,这个过程是很难实现,因此确定模型参数的系统辨识理论的研究和应用都还局限于线性系统。人工神经网络是由大量而简单的神经元按某种方式连接形成的智能仿生动态网络,依靠计算机强大处理能力来实现对信息的处理。其具有的非线性特性和学习能力,为解决复杂的非线性、不确定系统的辨识问题,开辟了一条有效的途径。它不需要预先知道被测系统的模型就可以将系统模型辨识出来,这是神经网络辨识的优势所在。2BP神经网络BP网络是一种利用误差反向传播训练算法的神经网络,简称BP(BackPropogation)网络,结构图如图1所示,是一种有隐含层的多层前馈网络,系统地解决了多层网络中隐含单元连接权的学习问题。如果网络的输入节点数为M、输出节点数为L,则此神经网络可看成是从M维欧氏空间到L维欧氏空间的映射。这种映射是高度非线性的。图1BP神经网络结构图2.1.BP算法原理BP学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。网络学习过程是一种误差边向后传播边修正权系数的过程。这种学习的过程就是训练的过程,是神经网络各神经元连接方式、权值和阈值的调整过程,更是辨识的过程。学习的方法是使所确定的误差函数达到最小值,从而得到隐含在被测系统的输入输出数据之间的关系。BP网络的每一层连接权值都可通过学习来调节。多层网络运行BP学习算法时,实际上包含了正向和反向传播两个阶段。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使误差信号最小。BP网络的前馈计算隐含层的第i个神经元在样本p作用下的输入为:隐含层的第i个神经元的输出为:输出层第k个神经元的总输入为:输出层的第k个神经元的实际输出为:对于每一样本p的输入模式对的二次型误差函数为:BP学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。学习过程按使误差函数Jp减小最快的方向调整加权系数直到获得满意的加权系数为止。因此,权系数应按Jp函数梯度变化的反方向调整,使网络逐渐收敛。输出层的神经元权系数修改公式:隐含层的神经元权系数修改公式:BP网络学习算法的计算步骤1.初始化:置所有的加权系数为最小的随机数;2.提供训练集:给出输入向量p和期望的输出向量t。3.计算实际输出;4.计算期望值与实际输出的误差;5.调整输出层的加权系数;6.调整隐含层的加权系数;7.返回步骤(3),直到误差满足要求为止。2.系统辨识所谓辨识建模是从实验数据出发,根据辨识的目的以及对过程已有的验前知识,预先给出一个模型类(线性的、非线性的、定常的、时变的、连续的、离散的…)进行拟合。无论是基于算法的辨识还是基于神经网络的辨识方法,都应当考虑模型、输入信号、以及误差准则的选择这三个基本问题:2.1模型的选择模型是在某种意义下对于实际系统的一种近似描述,正确选择模型依赖于模型的用途和兼顾其精确性和复杂性问题。如果所建立的模型是用于系统分析的,则所需的模型必须把精确性放在首位,此时模型可能变得比较复杂。若建立的模型主要用于实时控制,可忽略次要因素,只考虑其主要因素,使模型简单些。在建立实际系统模型时,由于存在精确性和复杂性的矛盾,则要找到解决矛盾的折衷方法。反映在选择多层网络模型上,由于隐层及其节点数的确定目前还没有理论上的明确指导,折衷的方法即体现在通过多次仿真实验,找出能在给11(1,2,,)MMpppiijjiijjijjnetwowxiq()(1,2,,)ppiiognetiq1(1,2,,)qppkkiikinetwokL()(1,2,,)ppkkognetkL211()2LpppkkkJto(1)()ppkikikiwkwko(1)()pppppkkkkkooto(1)()ppijijijwkwko1(1)()Lppppiiikkikoow定准则下逼近原系统的最简单的多层网络模型。2.2输入信号的选择为了能够辨识实际系统,输入信号必须满足一定条件。第一,在辨识时间内,输入信号必须是持续激励的,即输入信号必须充分激励系统的所有模态,使系统所有的模态都在模型中得以体现。从频谱观点看,输入信号的频谱必须足以覆盖系统的频谱。第二,输入信号的最优设计问题,即设计输入信号使给定问题的辨识精度最高。反映在BP网上,训练样本的选择应能使训练好的网络对所有模式类的输出响应都比较接近于实际输出。常用的输入信号有白噪声或伪随机信号。2.3误差准则的选择误差准则是用来衡量模型接近实际系统的标准,它通常表示为一个误差的泛函,记作式中,f(.)是e(k)的函数,用得最多的是平方函数,即f[e(k)]=e2(k)3BP神经网络辨识的基本原理系统辨识的原理就是通过调整辨识模型的结构来使e达到最小。神经网络系统辨识模型如图2所示,在神经网络系统辨识中,神经网络用作辨识模型,将对象的输入输出状态u,y看作神经网络的训练样本数据,以J=1/2e2作为网络训练的目标,则通过用一定的训练算法来训练网络,使J足够小,就可以达到辨识对象模型的目的。图2神经网络系统辨识模型假设非线性对象的数学模型可以表示为:其中f是描述系统特征的未知非线性函数,m,n分别为输入输出的阶次。则可以利用多层前向BP网络来逼近非线性函数,进而估计对象的模型。BP神经网络系统辨识原理图如图3所示。输入信号u与实际输出信号y经BP神经系统辨识得到一个辨识后的信号ŷ,将输入信号与辨识信号进行比较,若两者误差大于给定的误差值,即输出层不能得到期望的输出,BP网络便转入反向传播,将误差信号沿原来的链接通道返回,通过修改各层神经元的权值,使误差信号最小,直到小于所给定的误差值。此时,所输出的辨识信号基本上与实际信号拟合,就完成了系统辨识的功能。对象辨识模型uyyˆe+-×))(,),1(),(),(),2(),1(()(mtututuntytytyftyLL图3BP神经网络系统辨识原理图4.BP神经网络辨识的MATLAB仿真MATLAB中有BP网络的工具箱,这为我们利用BP网络来辨识系统提供了便利的工具4.1MATLAB神经网络工具箱:newff()建立网络函数net=newff(Xr,[S1S2…SN1],{TF1TF2…TFN1},BTF,BLF,PF)train()学习训练函数[net,tr]=train(NET,X,T,Pi,Ai)%NET为网络函数,X为网络输入,T为目标向量,Pi为输入延迟的初始状态,Ai为层延迟的初始状态。sim()网络仿真函数[Y,Xf,Af]=sim(net,X,Xi,Ai)练后的网络的仿真结果4.2仿真实例x=[-1:0.1:1];y=[-0.9602-0.577-0.07290.37710.64050.660.46090.1336-0.2013-0.4344-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0132-0.2189-0.3201];%待拟合的数据net=newff(minmax(x),[10,1],{'tansig''purelin'},'trainlm');%newff创建一个前馈的BP神经网络,含一个隐含层,神经元个数为10个y1=sim(net,t);%训练前的网络的仿真结果net.trainParam.epochs=50;%训练次数50net.trainParam.goal=0.01;%目标误差0.01net=train(net,x,y)y2=sim(net,x);%训练后的网络的仿真结果plot(x,y,'-',x,y1,'--',x,y2,'.')%tansig隐形神经元激活函数%purelin输出神经元传递函数%trainlm误差反转训练算法图4BP神经网络的系统辨识5结论:BP神经网络是一种反向传播学习的非线性网络,以其具有自学习和自适应能力、泛化能力和优良的非线性映射能力,受到众多领域学者的关注。但是基于BP神经网络的系统辨识存在的网络初始权值的选择对辨识结果影响较大且不容易确定的缺点,改进BP算法有效地提高训练速度是我们下一步要研究的内容。-1-0.8-0.6-0.4-0.200.20.40.60.81-3-2.5-2-1.5-1-0.500.511.5训练后的仿真结果训练前的仿真结果目标数据

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功