文档库 最新最全的文档下载
当前位置:文档库 › 基于BP神经网络的中心提升管内循环流化床颗粒循环流率预测_陈鸿伟

基于BP神经网络的中心提升管内循环流化床颗粒循环流率预测_陈鸿伟

基于BP神经网络的中心提升管内循环流化床颗粒循环流率预测_陈鸿伟
基于BP神经网络的中心提升管内循环流化床颗粒循环流率预测_陈鸿伟

第33卷第10期

2012年10月太阳能学报

ACTA ENERGIAE SOLARIS SINICA

Vol.33,No.10

Oct.,2012

文章编号:0254-

0096(2012)10-1738-05基于BP 神经网络的中心提升管内循环流化床

颗粒循环流率预测

收稿日期:2010-07-12基金项目:国家自然科学基金(50876030);高校博士点基金(20090036110008)

通讯作者:陈鸿伟(1965—),男,教授、博士生导师,主要从事高效、清洁燃烧及环境污染控制方面的研究。ncepuyang1986@126.com

陈鸿伟,史洋,尹萍,危日光,高建强

(电站设备状态监测与控制教育部重点实验室(华北电力大学),保定071003)

摘要:基于BP 人工神经网络原理,利用MATLAB 神经网络工具箱,以试验得到的243组数据作为样本,建立一

个以提升管风速、鼓泡床风速、鼓泡床物料静床高、床料平均粒径为输入变量,以颗粒循环流率为输出变量,用于预测中心提升管内循环流化床颗粒循环流率的BP 神经网络模型。对模型的隐含层层数和隐含层节点数对预测结果的影响进行分析,发现在隐含层层数为1,隐含层节点数为15时,模型预测结果误诊率最小,预测相对误差在?8%以内,总体平均偏离度为3.09%,网络性能最优,从而为中心提升管内循环流化床装置的设计和运行提供指导。关键词:提升管;内循环流化床;颗粒循环流率;BP 神经网络中图分类号:TK229

文献标识码:A

0引言

内循环流化床气化炉根据其结构形式大致可分为中心提升管内循环流化床、隔板式内循环流化床、倾斜隔墙内循环流化床。内循环流化床可将燃烧和气化过程分开,在延长颗粒炉内停留时间、减少飞灰

损失、提高气化效率等方面取得了较大进展[1]。本文

主要介绍中心提升管内循环流化床(DT-

ICFB ),这种气化炉相比于其他内循环流化床,结构更加紧凑、简

单,可节约制造成本[2]

。此外,燃烧室散出的热量完全被气化室吸收,所以热损失更小。DT-ICFB 生物质气化装置稳定运行的关键技术之一是合理控制颗粒循环流率,它直接影响物料在床中的停留时间和床空

隙率,是设计内循环流化床的一个重要参数[3]。

目前在DT-

ICFB 运行过程中很难实现对颗粒循环流率的在线监测,建立颗粒循环流率的预测模型便成为了解床内运行情况并控制系统稳定运行的重

要依据,同时对DT-ICFB 的设计也具有重要意义。文献[4,5]根据DT-ICFB 的工作原理及气固两相动力学特性建立了颗粒循环流率预测模型,然而由于实际床层中颗粒之间有相互干扰,加上操作气速的

变化导致流化状态的不稳定,此类模型一般会对流体动力学特性做很大程度的简化,

因此利用该模型得到的模拟结果与实验结果差别较大。

BP 人工神经网络作为一种非线性建模和预测方法,具有良好的非线性品质和极高的拟合精度,该模型完全不用考虑气化炉工作原理与流体动力学特性,利用人工神经网络对给定的输入直接给出预测输出,由于该模型建立在大量实验数据的基础上,因此具有

很高的可靠性。赵艳艳等[6]

在水平管道中,利用BP 神经网络对不同气量下的固体质量流率进行了预测,

预测结果和实验结果吻合较好。吴树志等[7]

利用BP 网络对传热法测量两相流中固相流量进行了预测,并对预测结果进行了检验,为稀相气力输送中固相流量测量提供了一种简单、可靠的新方法。为此本文设计并搭建DT-ICFB 冷态试验台,在试验研究的基础上,基于MATLAB 神经网络工具箱,初步建立颗粒循环流率BP 神经网络预测模型,并给出该模型预测结果和试验值的比较。

1工作原理

中心提升管(在提升管底部开有进料孔)将内

循环流化床分为环形鼓泡床和提升管快速床,两个

流化床分别鼓风,

采用不同风速鼓风从而造成提升管进料孔两侧产生压差[8]

,使颗粒通过进料孔从鼓

泡床进入提升管,颗粒在提升管迅速向上运动,在锥

10期陈鸿伟等:基于BP神经网络的中心提升管内循环流化床颗粒循环流率预测1739

形分料器的作用下落回鼓泡床,从而形成物料在炉内的内循环流动。在生物质气化方案中,鼓泡床为气化室,用蒸汽鼓风;提升管为燃烧室,用空气鼓风,生物质在气化室中与通入的高温蒸汽混合发生气化反应,产生中热值燃气和半焦。半焦经进料孔进入燃烧室与空气混合燃烧,产生的热量用于加热循环物料以提供气化室气化吸热。在上述方案中,两床间有足够稳定的物料循环量以保证有足够连续的热量供气化吸热是本方案设计的关键。

2试验系统

2.1试验设备

试验装置如图1所示,试验台包括提升管、鼓泡床、锥形分料器、环形L阀、布风板等。提升管内径90mm,高1.2m,鼓泡床内径290mm,高2m,提升管底部开有4个直径为32mm的进料孔。在生物质气化方案中,环形L阀的作用是防止气化室产生的可燃气体和燃烧室生成的废气串气。为了便于观察物料的运动情况并测量颗粒循环流率,试验台主体部分由有机玻璃制成。提升管和鼓泡床的流化风由鼓风机提供,风量由蝶阀控制并由空气转子流量计测量其流量。

图1试验装置图

Fig.1Schematic diagram of the experimental apparatus 2.2试验方法及物料

颗粒循环量的测量方法是容积测量法,即在环形L阀下方设一个测量容器,观察一定时间内物料的堆积高度,根据物料的堆积密度进而计算出颗粒

的循环流率。

试验采用的物料为普通河沙,粒径范围0.145 0.348mm,球形度为0.58,颗粒堆积密度ρ

s

1480kg/m3。采用的颗粒平均粒径d

p

分别为0.293、0.241、0.189mm;静床高H分别为0.08、0.10、0.12m。

3BP神经网络模型及结果分析

3.1BP神经网络简介

BP(Back Propagation)神经网络是目前应用最广泛的一种人工神经网络,它是一种基于误差反向传播算法的多层前馈神经网络,结构较简单、可学习和自适应未知信息、能以任意精度逼近任何非线性映射且具有分布式信息存储与处理结构、具有一定的容错性,适合处理复杂问题[9,10]。图2为BP神经网络拓扑结构示意图,这种网络除具有输入和输出节点以外,还有一层或者多层隐含节点,同层间的节点没有任何耦合,输入信号从输入层节点依次经过各隐层节点,最后传到输出节点。根据Kolmogorov 定理[11],任意非线性函数都可用BP神经网络加以实现。因此,用BP网络建立颗粒循环流率预测模型是合理的

图2BP神经网络拓扑结构示意图

Fig.2Structure of BP neural net

3.2BP神经网络模型建立

3.2.1输入和输出变量的选择

在床体结构尺寸确定的情况下,本文从工程应用角度出发,初步把提升管风速、鼓泡床风速、鼓泡床物料静床高、床料平均粒径4个影响颗粒循环流率的主要因素作为输入变量,把颗粒循环流率作为输出变量。

3.2.2

隐含层和隐含层节点数量的选择

1740太阳能学报33卷

目前人工神经网络隐含层层数的选取还没有完

整的理论指导,隐含层层数过多会导致学习时间过

长,增加网络在训练中陷入局部最小点而无法摆脱

的概率,导致网络的权重难以调整到全局最小误差

处,根据前人经验,本文取隐含层层数为1和2。

隐含层节点数量对网络性能有较大影响,节点

数量的选取通常采用试凑法。首先将样本集分成两

部分:一部分作为学习样本用于网络的训练,另一部

分用作测试样本检验网络的预报误差。从较少节点

数量开始,训练并检验网络训练误差和预测误差;不

断增加隐含层节点数量,重复训练和检验,直到训练

和预测误差都小于预定值,本文选取隐含层节点数

量分别为5、10、15、20和25。

3.2.3训练样本和测试样本的选择

本文利用MATLAB神经网络工具箱,从试验得

到的243组试验数据中,随机选取215组作为训练

样本,对神经网络模型进行训练。选择其余未训练

的28组数据作为测试样本以考察网络的泛化能力。

3.2.4数据归一化处理及参数设置

所谓归一化就是将具有不同尺度、属于不同区

间的样本矢量的各分量化到相同区间,从而使样本

的各分量具有相同尺度。归一化在神经网络的训练

中有重要作用,对输入样本、目标样本必须进行归一

化处理。可以利用MATLAB实现向量的归一化过

程,这里将样本数据都归一化到区间[0,1]之间。归

一化公式为:

X'

ij =

X

ij

-X

i,min

X

i,max

-X

i,min

(1)

式中,X

ij

———第i个节点输入的第j个样本值;

X'

ij

———第i个节点输入的第j个样本值经过归一化

处理后值;X

i,max

———第i个节点所有输入样本中最

大值;X

i,min

———第i个节点所有输入样本中最小值。

用MATLAB软件建立的网络模型主要参数如下:输入层节点数为4、输出层节点数为1、输入层到隐含层传递函数设置为“tansig”、隐含层到输出层传递函数设置为“logsig”、最大训练次数为1000,其他参数取默认值。

3.3结果及分析

将颗粒循环流率的试验值和BP神经网络的预测结果相对比,若预测值相对误差超过8%,则认为该预测值为误诊值,表1给出了不同神经网络的误诊数量。

表1不同神经网络的误诊数量

Table1The number of misdiagnosis of the BP neural

network with different parameters

隐含层层数隐含层节点数误诊数量/测试样本数1

2

54/28

101/28

150/28

202/28

252/28

51/28

108/28

1516/28

2013/28

2512/28

隐含层和节点的数量对网络性能有较大影响,在一个隐含层,节点数量较少时,网络的误诊率较大,当节点数量为15时神经网络性能最优,节点数量继续增多,网络性能变差。在两个隐含层并且两个隐含层节点数均为5时,网络性能较优,其余网络的误诊率均比只有一个隐含层时大,所以本文建立的人工神经网络的结构为一个隐含层,隐含层节点数量为15个。

图4为所选神经网络训练误差随训练次数变化的趋势。可以看出,开始训练之后,误差迅速下降,训练到1000次,误差达到10-4,达到训练目标,训练结束。此神经网络的训练误差很小,说明该人工神经网络可很好地反映两床风速、静床高、物料平均粒径和颗粒循环流率的非线性对应关系,用该神经网络来预测颗粒循环流率是有效的。

图3BP神经网络训练误差随着训练次数变化的趋势

Fig.3The variation of the training error of BP neural

net with training epochs

10期陈鸿伟等:基于BP 神经网络的中心提升管内循环流化床颗粒循环流率预测1741

本文定义了相对误差平均偏离度σ来评价模型

预测值相对于试验值的平均偏离情况,

定义如下:σ=

∑N

i =1

G yc -G sy

G sy

N

?100%

(1)

式中,

G yc ———预测值;G sy ———试验值;N ———测试样本数。

BP 神经网络预测结果如图4和图5。从图中可看出,以试验得到的243组试验数据中随机抽取的215组数据作为训练样本,人工神经网络模型在经过训练后,预测值与试验值吻合良好,相对误差保持在?8%以内,根据式(1)计算得到的预测值相对误差平均偏离程度仅为3.09%,表明总体偏离程度很小,这是其他模型很难做到的。该模型预测结果相对误差在工业运行和工程设计允许范围内,从而可以为中心提升管内循环流化床装置的设计和运行提供指导

4结论

基于BP 人工神经网络模型,利用MATLAB 神经网络工具箱,以试验得到的243组数据作为样本,建立了一个以提升管风速、鼓泡床风速、鼓泡床静床高和床料平均粒径为输入变量,以颗粒循环流率为输出变量时,用于中心提升管内循环流化床颗粒循环流率预测的模型。

对模型的隐含层层数和节点数对预测结果的影响进行分析,在隐含层层数为1,节点数量为15时,其误诊率最小,预测相对误差在?8%以内,总体平均偏离程度为3.09%,网络性能最优,可很好地预测颗粒循环流率。

[参考文献]

[1]原晓华,马德龙,陈

平,等.生物质在隔板式内循

环流化床中的气化[J ]

.太阳能学报,2005,26(6):743—746.

[1]Yuan Xiaohua ,Ma Delong ,Chen Ping ,et al.An experi-mental research on biomass gasification in a clapboard-type inner circulation gasifier [J ].Acta Energiae Solaris Sinica ,2005,26(6):743—746.

[2]Song Byung Ho ,Kim Young Tak ,Kim Sang Done ,et al.

Circulation of solids and gas bypassing in an internally cir-culating fluidized bed with a draft tube [J ].Chemical En-gineering ,1997,68(2):115—122.

[3]Ahn Hong-Sik ,Lee Woon-Jae ,Kim Sang-Done.Solid

circulation and gas bypassing in an internally circulating fluidized bed with an orifice-type draft tube [J ].Korean Journal of Chemical Engineering ,1999,16(5):618—623.

[4]Jeon Jin-Hee ,Kim Sang-Done ,Kim Seung-Jae.Solid cir-culation and gas bypassing characteristics in a square in-ternally circulating fluidized bed with draft tube [J ].Chemical Engineering and Processing ,2008,47(12):2351—2360.

[5]Kim Sang-Done ,Kim Yo-Han ,Roh Seon-Ah.Soild cir-culation characteristics in an internally circulating fluid-ized bed with orifice-type draft tube [J ].Korean Journal of Chemical Engineering ,2002,19(5):911—916.[6]赵艳艳,杨

巍,陈

峰,等.密相气力输送参数的

人工神经网络预测[

J ].华东理工大学学报,2002,28(1):5—7.

1742太阳能学报33卷

[6]Zhao Yanyan,Yang Wei,Chen Feng,et al.Artificial neural network forecasting of dense phase pneumatic con-

veying parameters[J].Journal of East China University of

Science and Technology,2002,28(1):5—7.

[7]吴树志,韩跃进,濮卫兴,等.采用BP神经网络对气力输送中固体流量测量的预测研究[J].电站系统工

程,2003,19(5):56—58.

[7]Wu Shuzhi,Han Yuejin,Pu Weixing,et al.Investigation on prediction of solid flow-rate in gas-solid two phase by

BP neural networks[J].Power System Engineering,

2003,19(5):56—58.[8]Kuramoto M,Kunii D,Furusawa T.Flow of dense fluid-ized particles through an opening in a circulation system

[J].Powder Technology,1986,47(2):141—149.[9]飞思科技产品研发中心.神经网络理论与MATLAB7实现应用[M].北京:电子工业出版社,2005,99—

104.

[10]楼顺天,施阳.基于MATLAB的系统分析与设计—神经网络[M].西安:西安电子科技大学出版社,

1999,9—14.

[11]飞思科技产品研发中心.MATLAB6.5辅助神经网络分析与设计[M].北京:电子工业出版社,2003,64—69.

PREDICTION OF SOLID CIRCULATION RATE IN INTERNALLY

CIRCULATING FLUIDIZED BED WITH DRAFT TUBE BASED ON

BP NEURAL NETWORK

Chen Hongwei,Shi Yang,Yin Ping,Wei Riguang,Gao Jianqiang,

(Key Lab of Condition Monitoring and Control for Power Plant Equipment(North China Electric Power University),

Ministry of Education,Baoding071003,China)

Abstract:A BP Neural Network model was built to predict the solids circulation rate of internally circulating fluid-ized bed with draft tube based on MATLAB neural network toolbox.Four input variables,i.e.gas velocities to the draft tube or annulus section,static bed height,particle size and one output variable were selected.243experimen-tal data were taken as training and checking samples,the effects of number and nodes of hidden layer on predicted results were studied.It is found that the misdiagnosis rate will reach the minimum value with a relative error within ?8%,the overall mean diversion extent being no more than3.09%,the property of network achieving optimum condition when the number of hidden layers is one and nodes of hidden layer are15.The model will guide the de-sign and operation of the internally circulating fluidized bed with draft tube.

Keywords:draft tube;internally circulating fluidized bed;solids circulation rate;BP Neural Network

BP神经网络预测的matlab代码

BP神经网络预测的matlab代码附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516

0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');

基于BP神经网络预测模型指南

基于BP神经网络的国际黄金价格预测模型 公文易文秘资源网顾孟钧张志和陈友2009-1-2 13:35:26我要投稿添加到百度搜藏 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型。 [关键词] MATLAB BP神经网络预测模型数据归一化 一、引言 自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20 世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。 二、影响因素 刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。 三、模型构建

BP神经网络实验 Matlab

计算智能实验报告 实验名称:BP神经网络算法实验 班级名称: 2010级软工三班 专业:软件工程 姓名:李XX 学号: XXXXXX2010090

一、实验目的 1)编程实现BP神经网络算法; 2)探究BP算法中学习因子算法收敛趋势、收敛速度之间的关系; 3)修改训练后BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。 二、实验要求 按照下面的要求操作,然后分析不同操作后网络输出结果。 1)可修改学习因子 2)可任意指定隐单元层数 3)可任意指定输入层、隐含层、输出层的单元数 4)可指定最大允许误差ε 5)可输入学习样本(增加样本) 6)可存储训练后的网络各神经元之间的连接权值矩阵; 7)修改训练后的BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。 三、实验原理 1 明确BP神经网络算法的基本思想如下: 在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架 反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小 BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果 2 明确BP神经网络算法步骤和流程如下: 1初始化网络权值 2由给定的输入输出模式对计算隐层、输出层各单元输出 3计算新的连接权及阀值, 4选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

用matlab编BP神经网络预测程序加一个优秀程序

求用matlab编BP神经网络预测程序 求一用matlab编的程序 P=[。。。];输入T=[。。。];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用TRAINGDM 算法训练BP 网络 [net_1,tr]=train(net_1,P,T); % 对BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[。。。]';%测试 sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 不可能啊我2009 28对初学神经网络者的小提示

第二步:掌握如下算法: 2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。 3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。 4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法. 4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mitchell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。 BP神经网络Matlab实例(1) 分类:Matlab实例 采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。 % 例1 采用动量梯度下降算法训练BP 网络。 % 训练样本定义如下: % 输入矢量为 % p =[-1 -2 3 1 % -1 1 5 -3] % 目标矢量为t = [-1 -1 1 1] close all clear clc % --------------------------------------------------------------- % NEWFF——生成一个新的前向神经网络,函数格式: % net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes, % PR -- R x 2 matrix of min and max values for R input elements % (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的

BP神经网络matlab源程序代码

close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 % 定义训练样本 % P为输入矢量 P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ... 0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ... 0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ... 0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ... 0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ... 0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ... 0.6301 0.5803 0.6668 0.6896 0.7497]; % T为目标矢量 T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ... 0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094]; % Ptest为测试输入矢量 Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ... 0.6896 0.7497 0.8094 0.8722 0.9096]; % Ttest为测试目标矢量 Ttest=[0.8722 0.9096 1.0000]; % 创建一个新的前向神经网络 net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm'); % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 5000; net.trainParam.goal = 0.001; % 调用TRAINGDM算法训练 BP 网络 [net,tr]=train(net,P',T); % 对BP网络进行仿真 A=sim(net,P'); figure; plot((1993:2007),T,'-*',(1993:2007),A,'-o'); title('网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份'); ylabel('客运量'); % 对BP网络进行测试 A1=sim(net,Ptest');

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

BP神经网络matlab实例

神经网络Matlab p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2

S S SNl:各层的神经元个数。 [1 2...] TF TF TFNl:各层的神经元传递函数。 { 1 2...} BTF:训练用函数的名称。 (2)网络训练 = [,,,,,] (,,,,,,) net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp' BP网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应lr梯度下降法traingda 自适应lr动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere共轭梯度法traincgp Powell-Beale共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-Marquardt trainlm

BP神经网络的预测理论的及程序 学习

12、智能算法 12.1 人工神经网络 1、人工神经网络的原理假如我们只知道一些输入和相应的输出,但是不清楚这些输入和输出之间的具体关系是什么,我们可以把输入和输出之间的未知过程看成是一个“网络”,通过不断的网络输入和相应的输出进行“训练”(学习),网络根据输入和对应输出不断调整连接网络的权值,直到满足我们的目标要求,这样就训练好了一个神经网络,当我们给定一个输入, 网络就会计算出一个相应的输出。 2、网络结构神经网络一般有一个输入层,多个隐层,和一个输出层。隐层并非越多越好。如下图所示: 神经网络工具箱几乎 MATLAB 12.2 Matlab 神经网络工具箱 BP 网络和涵盖了所有的神经网络的基本常用模型,如感知器、nntool nftool,nctool,nprtool,nntraintool 和等。它由RBFNN 函数逼近和数据拟合、信息处理和预测、神经网组成。主要应用于

在实际应用中,针对具体的问题,首先络控制和故障诊断等领域。.需要分析利用神经网络来解决问题的性质,然后依据问题的特点,提取训练和测试数据样本,确定网络模型,最后通过对网络进行训练、仿真等检验网络的性能是否满足要求。具体过程如下: (1)确定信息表达的方式,主要包括数据样本已知;数据样本之间相互关系不明确;输入/输出模式为连续的或离散的;数据样本的预处理;将数据样本分成训练样本和测试样本。 (2)网络模型的确定。确定选择何种神经网络以及网络层数。 (3)网络参数的选择,如输入输出神经元个数的确定,隐层神经元的个数等。 (4)训练模式的确定,包括选择合理的训练算法、确定合适的训练步数、指定适当的训练目标误差等 (5)网络测试,选择合理的样本对网络进行测试。 简单来讲就是三个步骤:建立网络(newXX)—训练网络(trainXX)—仿真网络(sim) 12.3 BP 神经网络的 Matlab 相关函数 BP 算法的基本思想:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号作为修正各单元权

求用matlab编BP神经网络预测程序

求用编神经网络预测程序 求一用编的程序[。。。];输入[。。。];输出 创建一个新的前向神经网络((),[],{'',''},'') 当前输入层权值和阈值{} {} 当前网络层权值和阈值{} {} 设置训练参数 ; ; ; ; ; 调用算法训练网络[](); 对网络进行仿真 (); 计算仿真误差 ; () [。。。]'测试 () 不可能啊我 对初学神经网络者的小提示

第二步:掌握如下算法: .最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第章的第十节:“最小二乘法”。 .在第步的基础上看学习算法、和近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社, . 等著,中英文都有)、《神经网络设计》(机械工业出版社, . 等著,中英文都有)。 (自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第和章。若看理论分析较费劲可直接编程实现一下节的算法小节中的算法. 算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社, . 著,中英文都有)的第章和《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第章。 神经网络实例() 分类:实例 采用工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考帮助文档。 例采用动量梯度下降算法训练网络。 训练样本定义如下: 输入矢量为 [ ] 目标矢量为[ ] ——生成一个新的前向神经网络,函数格式: (,[ ],{ }) , (对于维输入,是一个的矩阵,每一行是相应输入的边界值) 第层的维数 第层的传递函数, '' 反向传播网络的训练函数, '' 反向传播网络的权值阈值学习函数, ''

BP神经网络matlab源程序代码

BP神经网络matlab源程序代码) %******************************% 学习程序 %******************************% %======原始数据输入======== p=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;]'; %===========期望输出======= t=[4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 3556 2659 ... 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3172 4568 4015 ... 3666]; ptest=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;4568 4015 3666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化 NodeNum1 =4; % 隐层第一层节点数 NodeNum2=7; % 隐层第二层节点数 TypeNum = 5; % 输出维数 TF1 = 'tansig';

BP神经网络预测代码

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR神经网络预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图

BP神经网络matlab程序入门实例

认真品味,定会有收获。 BP神经网络matlab源程序代码) %原始数据输入 p=[284528334488;283344884554;448845542928;455429283497;29283497 2261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;]'; %期望输出 t=[4554292834972261692113913580445126363471385435562659... 4335288240841999288921752510340937293489317245684015... 3666]; ptest=[284528334488;283344884554;448845542928;455429283497;2928 34972261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;456840153666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%将数据归一化 NodeNum1=20;%隐层第一层节点数 NodeNum2=40;%隐层第二层节点数 TypeNum=1;%输出维数 TF1='tansig'; TF2='tansig'; TF3='tansig'; net=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum], {TF1TF2TF3},'traingdx'); %网络创建traingdm net.trainParam.show=50; net.trainParam.epochs=50000;%训练次数设置 net.trainParam.goal=1e-5;%训练所要达到的精度

bp神经网络MATLAB程序

%清空环境变量 clc clear %读取数据 a=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\one-input.csv'); b=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\output.csv'); c=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\c.csv'); save data1.mat b save data2.mat a load data1 load data2 %节点个数 inputnum=42; hiddennum=8; outputnum=1; %训练数据和预测数据 input_train=a(:,1:90); input_test=a(:,91:137); output_train=b(:,1:90); output_test=b(:,91:137); %将训练样本输入输出数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %构建BP神经网络 net=newff(inputn,outputn,[20,12],{'tansig','purelin'},'traingdx'); net.trainParam.epochs=1000; net.trainParam.lr=0.01; net.trainParam.goal=0.00000001; %BP神经网络训练 net=train(net,inputn,outputn); %测试样本归一化 inputn_test=mapminmax('apply',input_test,inputps); %BP神经网络预测 an=sim(net,inputn_test); %%网络得到数据反归一化 BPoutput=mapminmax('reverse',an,outputps); d=BPoutput>c figure(1) %plot(d,':og'); scatter(1:(137-90),d,'rx'); hold on; %plot(output_test,'-*'); scatter(1:(137-90),output_test,'o'); legend('预测输出','期望输出','fontsize',12); title('BP网络预测输出','fontsize',12); xlabel('样本','fontsize',12);

bp神经网络及matlab实现解析

bp神经网络及matlab实现 分类:算法学习2012-06-20 20:56 66399人阅读评论(28) 收藏举报网络matlab算法functionnetworkinput 本文主要内容包括:(1) 介绍神经网络基本原理,(2) https://www.wendangku.net/doc/1310133537.html,实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法。 第0节、引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在https://www.wendangku.net/doc/1310133537.html,/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集: 有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。 一种解决方法是用已有的数据训练一个神经网络用作分类器。 如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。 第一节、神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为: 图中yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为: 若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ]

BP神经网络预测实例

%% 清空环境变量 clc clear %% 训练数据预测数据 data=importdata('test.txt'); %从1到768间随机排序 k=rand(1,768); [m,n]=sort(k); %输入输出数据 input=data(:,1:8); output =data(:,9); %随机提取500个样本为训练样本,268个样本为预测样本input_train=input(n(1:500),:)'; output_train=output(n(1:500),:)'; input_test=input(n(501:768),:)'; output_test=output(n(501:768),:)'; %输入数据归一化 [inputn,inputps]=mapminmax(input_train); %% BP网络训练 % %初始化网络结构 net=newff(inputn,output_train,10);

net.trainParam.epochs=1000; net.trainParam.lr=0.1; net.trainParam.goal=0.0000004; %% 网络训练 net=train(net,inputn,output_train); %% BP网络预测 %预测数据归一化 inputn_test=mapminmax('apply',input_test,inputps); %网络预测输出 BPoutput=sim(net,inputn_test); %% 结果分析 %根据网络输出找出数据属于哪类 BPoutput(find(BPoutput<0.5))=0; BPoutput(find(BPoutput>=0.5))=1; %% 结果分析 %画出预测种类和实际种类的分类图 figure(1) plot(BPoutput,'og') hold on plot(output_test,'r*'); legend('预测类别','输出类别') title('BP网络预测分类与实际类别比对','fontsize',12)

BP神经网络程序

x1=rand(1,2000); x2=rand(1,2000); y1=x1.^2+x2.^2; input=[x1',x2']; output=[y1']; k=rand(1,2000); [m,n]=sort(k); input_train=input(n(1:1900),:)'; output_train=output(n(1:1900),:)'; input_test=input(n(1901:2000),:)'; output_test=output(n(1901:2000),:)'; %训练数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %BP神经网络的构建 net=newff(inputn,outputn,5); %网络参数配置 net.trainParam.epochs=100; net.trainParam.goal=0.00004; net.trainParam.lr=0.1; %BP神经网络训练 net=train(net,inputn,outputn); inputn_test=mapminmax('apply',input_test,inputps); %BP神经网络预测输出 An=sim(net,inputn_test); %输出结果反归一化 BPoutput=mapminmax('reverse',An,outputps); %网络预测结果图形 figure(1) plot(BPoutput,':or') hold on plot(output_test,'-*'); legend('预测输出','期望输出'); title('BP网络预测输出','fontsize',12); ylabel('函数输出','fontsize',12); xlabel('样本','fontsize',12); %网络预测误差图形 figure(2) error=[output_test]'-[BPoutput]'; plot(error,'-*')

BP神经网络预测代码

B P神经网络预测代码 Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507 109300 111026

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图 %figure, plotperform(tr) %误差下降线

BP神经网络预测代码

B P神经网络预测代码 Revised as of 23 November 2020

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507 109300 111026

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图 %figure, plotperform(tr) %误差下降线

相关文档
相关文档 最新文档