- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RBF网络的建立以及其在预测控制的应用
RBF网络的建立以及其在预测控制的应用
动103 杨一航
摘要 本次论文主要描述了RBF神经网络,与BP网络相似但又有区别,简单介绍BP网络,着重介绍了RBF神经网络原理,并进行matlab编程,建立并检测RBF网络的性能。最后描述了RBF网络在存在时滞比较大的控制系统中进行预测控制的应用。
关键字:RBF神经网络 matlab编程 预测控制
0引论
神经网络的结构类型很多,大致可以分为前向网络和反馈网络。其中最常用的两种是BP神经网络和RBF神经网络,另外还有基于这两种网络的多种改进模型[1]。RBF神经网络可以根据具体问题确定相应的网络拓扑结构,具有自学习、自组织、自适应功能,它对非线性连续函数具有一致逼近性,学习速度快,可以进行大范围的数据融合,可以并行高速地处理数据。RBF神经网络的优良特性使得其显示出比BP神经网络更强的生命力,正在越来越多的领域内替代BP神经网络。
1 BP网络介绍
BP神经网络(即Back-Propagation网络)是当前应用最广泛的一种人工神经网络。它的结构比较简单,工作状态稳定,硬件容易实现。BP网络是一种反向传递并修正误差的多层映射网络,通常由输入层,中间隐含层,输出层三层神经元组成,一般可用LMS法实现误差后向传播学习方法[2]。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
2 RBF神经网络
2.1 RBF网络原理
RBF神经网络即径向基函数神经网络(Radical Basis Function)。径向基函数神经网络是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型[3]。
径向基函数神经网络,其结构与BP网络相似,由3层组成,隐层神经元的激励函数选取高斯函数:
与BP网络不同,隐层神经元中的基函数用以实现从输入向量到Ri(R)的非线性映射,其中p为R维输入向量,为高斯函数中心,为该函数围绕中心点的宽度。为输入模式与中心向量之间的距离。
从自己理解上看,RBF只是把输入映射到另一个空间,类似于时域与频域这两者之间的映射关系一样。从而,原先的几个输入,如果目标是分类的话,可能因分布杂乱而无法达到,但映射到另一空间后,就能达到分类的目的。RBF的隐层,就是输入层映射过去的那一层,这跟BP网络的隐层是不同的。
空间1 :非线性 空间2:线性
W1
X1 输出y
X2
W2
图1 RBF原理图示
2.2一个简单RBF网络的matlab建立
假设给定一个f函数,它的表达式已知,那么对于每个输入,都有确定的输出。对于一个RBF网络,在matlab中,只需给定输入,然后用newrb即可建立该网络,然后可以进行训练,程序如下所示(参考matlab编程视频编写)
这个是一个简单RBF网络,x为输入,F为输出。直接运行即可对该RBF网络进行训练(跟BP网络的不同之处),如下图所示。这是训练结果,训练不断修改权值,直至误差小到一定程度。
图2 训练误差函数曲线
2.3检验该RBF网络的性能
在网络建好之后,编写以下程序,来进行检测这个网络的输出,与理想的输出之间的误差。
程序代码如下:
%首先产生一些数据,再转换成一维数据,合并成输入
interval=0.1;
[i, j]=meshgrid(-1.5:interval:1.5);
row=size(i);
tx1=i(:);
tx1=tx1;
tx2=j(:);
tx2=tx2;
tx=[tx1;tx2];
%将tx带入网络,进行模拟,画出输出图形
ty=sim(net,tx);
v=reshape(ty,row);
fi
文档评论(0)