第22卷第1期 河 北 省 科 学’院 学 报 Vo1.22 NO.1 2005年3月 Journal of the Hebei Academy of Sciences Mar.2005 文章编号:1001—9383(2005)01—0011-04 基于BP神经网络的负载识别和C语言实现 王娟,高蒙,亢海伟 (石家庄铁道学院电气工程系,石家庄050043) 摘 要:对学生公寓用电负载的类型进行识别,识别出负载中计算机功率的值,进而判断检测到的总功率中所 含的非计算机功率,以限制大功率负载的应用,对学生公寓的用电管理有重大意义。对所采集不同负载类型 的电压、电流信号进行傅立叶变换,提取特征值,并加入总功率参数作为BP神经网络的训练样本,训练网络 对负载中计算机功率进行识别,并用c语言编程实现。对石家庄铁道学院学生公寓电器类型的识别结果表 明,神经网络方法用于识别电器类型具有可靠性和实用性。 关键词:神经网络;负载识别;C语言 中图分类号:TB183 文献标识码:A Application of Neural Network in recognizing the electrical appliances WANG Juan,GAO Meng,KANG Hai-wei (Department ofElectricalEn neering,ShOiazhuangRail ̄oayInstitute,ShijiazhuangI-Iebei 050043,China) Abstract:Recognizing the load in the apartment of student and the computer power in the sum—power have important value to the management of students’apartment.The value of sum—power and different frequency what come from the fast Fourier transforrn to the voltage and the electirc current signals of all kinds of loads as the input of the BP network and the opwer of computer as the output of the BP network were taken.The network to recognize the opwer of computer in the sum—power was trained.Then we carry out the system by C language.The results of recognizing the load of students’apartment show that the neural network used in recognizing the electrical appliances has reliability and practicability. Keywords:Neural network;Recognizing the Electrical Appliances;C language 1 BP神经网络基础 人工神经网络是在现代神经生物学基础上提出的模拟生物过程以及反映人脑某些特征的计算结构。具有分布并行 处理、非线性映射、自适应学习和鲁棒容错等特征。 BP神经网络通常是指基于误差反向传播(Error Back Proragation,简称BP) 算法的多层前馈神经网络,它是继Hopfield网络之后,由D.E.Rumelhart和J.L. MeCeUand及其研究小组在1986年研究并设计出来的。BP网络神经元采用的 输出层 传递函数通常是Sigmoid型可微函数,所以可以实现输入和输出间的任意非线性 映射,这使得它在诸如函数逼近、模式识别、数据压缩等领域有着更加广泛的应 用…。是现今网络界应用较广泛的多层前馈神经网络。 1.1 BP神经网络模型 BP神经网络通常采用基于BP神经元的多层前向神经网络结构形式,一个 输人层 典型的BP网络结构如图1所示。 典型的BP神经网络模型可分为输入层、隐层(也称中间层)和输出层,其特 点是:各层神经元仅与相邻层神经元之间有连接,连接权值可通过学习来调节, 图1 BP网络结构 收稿日期:2004—09—03 作者简介:ZE ̄1(1973一),女,河北行唐人,石家铁道学院在读研究生,主要从事计算机检测与控制的研究 维普资讯 http://www.cqvip.com
12 河北省科学院学报 2005年第22卷 各层内神经元之间无任何连接,各层神经元之间无反馈连接。 1.2 BP学习算法 BP学习算法的基本思想是:学习过程由信号的正向传播和误差的反向传播两个过程组成。给定网络的一个输入模 式时,由输入层单元传到隐层单元,再由输出层单元处理后产生一个输出模式。若输出与期望输出不符,则转入误差反 向传播阶段。误差反传是将误差信号以某种形式通过隐层向输入层逐层反传,获得各层单元的误差信号,此误差信号作 为修正各单元权值的依据。信号的正向传播与误差的反向传播是周而复始地进行【2]。权值的不断调整过程,也就是网 络的不断学习训练过程。此过程一直进行到网络误差减小到预先设定值,或进行到预先设定的训练次数。 BP学习算法的具体过程如下: 网络实际输出与期望输出不相等时,存在输出误差Ep=1/2(dp—Op) =1/2∑(d 一0肚) 将上述误差定义展开 至输入层, Et,=12/∑{d 一f2[∑伽 (∑ 。 )]} 可以看出,网络的误差是各层权值W.,W2的函数,对于输出层和隐层各定义一个误差信号,输出层误差信号为 ao一 一 × (1-。肚) 隐层误差信号为 =一 =一 ×鼍=(奎 z业 (・ 根据 学习规则,利用梯度最速下降法,使权值的调整量与误差负梯度成正比,学习率为 ,若权值的变化量记为 AW,可得BP网络学习算法的权值调整公式为 Aw2ik= =rl(dr*一。 )。 (1一。 )Yi Aw. = = (∑ 2 业) (1一 ) 2基于BP神经网络的负载识别 2.1试验背景 学生公寓人员密集、负载类型较多、用电管理复杂。一些违章大功率电器的应用极易引发火灾事故,直接威胁人身 和财产安全,并且给学校带来负面的社会影响,所以属于违章电器设备,严禁使用。而一些特殊的较大功率电器如计算 机是允许使用的。对学生公寓的负载类型进行识别,识别出其中所含有的计算机功率,对于学生公寓的用电管理有着重 要的意义。 2.2训练样本集的准备 本文采用l2位的AD1674对电器负载的电压、电流信号进行A/D采样,转换速度是10ms,采样频率为6400Hz,采样 点个数为128个。采集石家庄铁道学院学生公寓68种不同的负载类型组合,每个类型采集4组信号。对所采集各种电 器负载的电压、电流信号进行傅立叶变换,提取电流50Hz、100Hz、150Hz和电压50Hz这些频率的幅值,再计算出所采集 信号负载的总功率。将这五个量作为神经网络的输入。将这68种负载类型4组不同信号提取的特征值,按不同的顺序 交叉输入,将负载中所含有的计算机功率作为神经网络的输出,形成272种训练模式对.训练前将输入量、期望输出进行 归一化处 ̄j[3l。 2.3网络的结构设计 BP神经网络模型中的传递函数,通常采用可微的单调递增函数,输入层到隐层之间的转移函数采用双曲正切函数 1一。一2x f(z) } ,BP网络最后一层神经元的特性决定了整个神经网络的输出特性。当最后一层神经元采用Sigmoid型 函数时,整个网络的输出就被限制在一个较小的范围内;如果最后一层神经元采用purelin型函数时,则整个网络输出可 取任意值。由于本文中输出量计算机功率为任意值,隐层到输出层的转移函数采用线性purelin函数,( )=k× 。 理论证明,具有单隐层的前馈网可以映射所有的连续函数,只有当学习不连续函数时才需两个隐层。因此我们采用 单隐层的前馈网。隐层节点的作用是从样本中提取并储存其内在规律,隐层节点数太少,网络不足以从样本中获得足够 的信息,不足以概括提取样本规律,出现“欠学习”问题;隐层节点数太多,又可能记牢样本中非规律的东西,出现“过学 维普资讯 http://www.cqvip.com
第1期 王娟等:基于BP神经网络的负载识别和C语言实现 13 习”问题。根据试凑法,本网络的隐层节点数确定为11个。 本文选取3层BP网络,输入层5个神经元,隐层l1个神经元,输出层1个神经元。 3 C语言实现 用C语言实现网络的学习训练,进行负载识别,为实时控制提供 了程序基础。程序框图如图2,程序流程如下: (1)初始化(2)归一化对权值矩阵赋随机数,将样本模式计数器P和训练 将输入量和期望输出进行归一化处理。 次数计数器q置0。 (3)输入训练样本对,计算各层输出。将当前样本Xp=( 1, 2, X3, ・, s)加到输入层,计算隐层单元输出 ,t( e ) } 和输出层单元输出Ok=^(netI)=K(netI)。 (4)计算输出层误差信号 2=(d 一 ) nett)=(d 一oat)K 隐层误差信号 f =(∑ 硼 )(1一∞) ★zO (5)根据式Z2V ̄.O.2j ̄= 2∞=,l(d 一 )K  ̄[1Awt = f = 而 围2程序框围 (∑ 2硼2 )(1一 )而调整权值; ●_0 (6)重复(3),直到达到预先设定的训练步数q; (7)计算网络误差 网络对应不同的nP个样本具有不同的误差Ep=4∑(d 一 ) ,用其均方根误差 T●-0 厂■— e —一 √去 (Ep)2代表网络的总误差。 (8)检查网络的总误差是否满足要求,若满足,训练结束。若不满足,重新设定训练次数,再次训练,直到误差满足要 求。 4网络负载识别结果 BP网络的学习进程由网络的均方根误差来衡量。在训练过程中,我们采用的是梯度最速下降算法,均方根误差应 该逐渐减小【4】。学生公寓的负载识别要求误差小于0.2。本程序中选取合适的学习因子 =0.0075,动量因子a= 0.085,迭代次数为1000次,绘出误差变化曲线如图3所示。 通过误差曲线可以看出,样本集选择组织合,理误差收敛很快,训练误差结果满意,表明对给定训练集网络学习已经 满足要求了。为了对网络误差定量判断,我们采用均方误差函数,运行程序得网络的均方误差为0.118348,满足学生公 寓负载识别误差小于0.2的要求。 为了直观分析网络识别结果,对网络的输出结果和期望输出作线性回归分析,并得到两者的相关系数,从而作为网 络训练结果是否优良的判断依据。图4给出了网络输出的线性回归分析结果曲线。相关系数为0.994,可见,网络计算 机功率的检测结果相关系数几乎达到了1。非常满意。 表1给出了68种负载类型一组信号的BP网络识别结果。从表1中可以看出,除了个别不含计算机的负载组合外, 对其他负载类型中所含的计算机功率都能较准确的识别出来。 5结束语 本文在对BP神经网络理论回顾的基础上,讨论了该理论在实际中的应用,对石家庄铁道学院学生公寓电器负载类 型进行识别。检测结果相关系数达到了0.994。实际输出和期望输出的均方误差满足设计要求。神经网络方法用于电 器负载类型识别具有可靠性和实用性。 维普资讯 http://www.cqvip.com
14 河北省科学院学报 2005年第22卷 图3误差变化曲线 图4网络输出的回归分析 表1网络负载识别结果 期望值实际值 期望值实际值 期望值实际值 期望值实际值 期望值实际值 期望值100 实际值 90.63 125 124.51 70 105.6O 440 438.65 0 O 4.61 O.11 115 11O.64 115 96.26 120 108.68 240 254.24 0 —2.22 O 0 一9.13 9.91 115 114.58 260 265.18 0 O 0.81 6.32 100 115.89 390 407.91 0 12.O2 430 425.65 O O 1.78 2.11 425 406.46 0 0 17.63 0.64 O 一12.23 210 176.14 210 198.2O 21O 157.42 320 327.82 280 299.54 555 539.19 320 305.O8 280 300.07 555 566.22 320 309.91 415 408.75 555 546.28 320 344.87 415 426.67 280 284.50 280 288.65 415 407.34 280 294.11 280 299.19 555 545.38 280 279.35 280 278.15 0 60.32 100 104.54 0 —6.72 O 6.18 100 97.55 100 0 99.28 2.83 O 27.07 O 22.07 0 —5.74 250 222.36 150 148.78 250 253.54 250 280.04 250 234.62 应注意的问题是,BP学习过程是一个非线性优化过程,所以有可能会遇到局部极小点问题[ ;网络的隐层单元个数 的选取尚无理论上的指导,而是根据经验选取;BP网络并不是一个非线性动力学系统,功能上有其局限性。 参考文献 [1]许东,吴铮.基于MATLAB6.x的系统分析与设计一神经网络[M].西安:西安电子科技大学出版社,2002.20 ̄21 [2]韩力群.人工神经网络理论、设计及应用[M].北京:化学工业出版社,2002.55~56 [3]党建武.神经网络技术及应用[M].北京:中国铁道出版社,2000.25~33 [4]尚爵.基于BP网络的自学习算法和C语言实现[J].工业控制计算机.2002,15(4):13~17 [5]靳蓍.神经计算智能基础原理・方法[M].成都:西南交通大学出版社。2000.131~136
因篇幅问题不能全部显示,请点此查看更多更全内容