导言
跟着禽畜业的开展,为了有用地操控畜舍废气的排放,需求对场内几种首要的污染气体的浓度进行检测。在气体丈量进程中,因为传感器或许呈现毛病,使得检测的数据呈现一些差错和过错。本文针对传感器因毛病导致数据失效的问题,规划了一个神经网络数据康复器,完结毛病传感器实在数据的康复,然后采纳相应的办法操控废气的发生。
1. 依据神经网络的数据康复原理
数据康复根本原理是运用核算机对若干数据进行核算,然后将失掉的部分数据预算出来的办法。本文结合神经网络对传感器的前史采样数据进行练习,树立合理的神经网络数据模型,将传感器的失效数据预算出来。在畜舍的气体浓度检测进程中,依据经历设置采样数据的上下限,当某一传感器采样得到的数据超越这个规划时,那么该传感器必定呈现了毛病。此刻将该传感器在上一采样时间的氨气浓度、相邻传感器在该时间的氨气浓度、相邻传感器在上一时间的氨气浓度、环境温度、相对湿度,风速等数据作为输入数据,运用BP神经网络预算出该时间此传感器的氨气浓度代替本来采样所得数据,然后到达数据康复的意图。
本文运用了6输入1输出的BP神经网络结构,其隐含层挑选了8个神经元。当传感器呈现毛病时,体系就依据传感器的所在位置和失效数据发生的时间,将该时间前一段时间的24组相应的输入输出数据对神经网络进行练习,调整神经网络的权值,逐渐树立合理的BP神经网络模型。练习完毕后,用该神经网络预算出该时间传感器的实在值代替采样值,完结数据康复。早年馈阶段开端,其算法的核算公式别离为:
2. 神经网络康复器的规划
2.1 体系全体结构
在本文中,咱们运用了线性阵列结构构架硬件神经网络,完结失效数据的猜测。当发生数据失效时,直接读取该硬件输出数据代替原有传感器的数据,然后完结数据康复的功用。在规划进程中,咱们运用了串级结构完结神经网络功用,其体系结构如图1所示。其长处是仅经过增减处理单元数目来到达改动整个神经网络结构的意图,不需求更改同步时序操控电路,一起将体系对数据带宽的要求最小化。
整个体系由隐含层和输出层组成,神经网络输入层的功用在隐含层内完结。该隐含层由8个处理单元PE组成(PE1至PE8),一切的处理单元串联在一起,每个PE的两边供给三个数据总线(chan1,chan2,chan3)以及三个数据有用标志信号(valid1, valid2, valid3)。隐含层中每个PE具有相似于神经网络中隐含层神经元的作用,履行相同的功用(正向传达和反传差错及权值的调整)。输出层由PE9 组成,根本结构与隐含层PE相似,完结输出层功用。
体系运转进程分为三个阶段,装备阶段,前馈阶段和反传更新阶段。在装备阶段首要是初始化查找表和每个PE中暂时寄存数据的寄存器,一起将初始的权值读入各自的权值存储器中。当装备完毕后,进入前馈阶段。
在前馈阶段,体系将隐含层的PE1左边valid1置1,PE1从左边顺次接纳一组数据中的每一个输入数据。PE1在承受数据后即开端进行内部运算,并顺次将接纳的输入数据从chan1总线输出。当PE1的chan1有数据输出时,体系将PE1右侧的valid1置1,并把该值传递到PE2左边的valid1。当PE2左边valid1为1时,PE2开端接纳PE1 的数据。与此相似,体系顺次发动PE3至PE8 ,将输入数据传输到整个隐含层里。当一组输入数据输入完毕时,PE1将开端接纳下一组输入数据,并将此刻的运算成果由chan2输出到下一个PE,此成果便是该组数据对一个隐含层神经元的激活成果。Chan2数据的传输进程与chan1相同。当PE8开端输出运算成果时,本规划将该成果由 chan2输出,并经过三态门连接到chan1总线,然后输入到输出层的PE9里(如图1)。PE9接纳到数据后,完结输出层前馈阶段的一切功用。当输出层PE9输出完榜首组数据时,将PE9右侧valid3置1,体系进入反传更新阶段。
当进入反传更新阶段时,体系期望值tj即该时间氨气浓度由chan3总线反向输入到输出层的PE9。输出层的PE9接纳数据后,经过核算得出本身的权值差错,进行权值更新,一起经过chan3输出公式(4)的核算成果δj。隐含层PE8接纳到PE9的输出数据后进行权值差错核算,更新本身的权值,一起经过chan3数据总线顺次将接纳的δj顺次反向传达,直至PE1接纳到该数据。当PE1完结一组权值更新时,对应的该组数据的神经网络练习进程完毕。
2.2 根本处理单元的规划
在本规划中,一切的运算都是经过根本处理单元PE完结,处在不同层的PE具有相似的结构,履行不同的功用。每个PE由根本运算单元PEA,查找表LUT,权值寄存器WT及暂时寄存器REG组成。现以结构较杂乱的隐含层PE的规划为例,其全体结构如图2所示,由前馈部分(FORWARD部分)和反传更新(BACKWARD部分)两个部分组成。其间PEA1和PEA2为核算单元,LUT1和LUT2为函数激活单元,MUX为数据挑选单元,SHIFT为数据移位单元。
在本规划中,PEA1,PEA2单元首要完结输入数据与权值的乘积累加功用,由乘法器,累加器组成。计数器的数值为一组输入数据的个数。为了保证输入数据与对应的权值相乘,从寄存器里的读取缓存的输入数据和权值的进程均由计数器操控。累加器在每次进行累加后,将计数器的数值加1。当计数器复位时,累加器会将累加成果输出,然后对内部寄存器复位并重新开端累加。因为该单元中输入数及权值均为8位数,因而咱们运用了8*8的布斯编码乘法器以及16位超前进位加法器和数据累加器。
本规划中的LUT单元为查找表单元,由ROM,移位寄存器,计数器及减法器组成,其间LUT1首要完结激活函数ƒ(Si),LUT2首要完结激活函数ƒˊ(Si)。查找表的数据经过C言语编程发生数据文件,其数据的宽度为8位数,该数据文件在装备阶段被预存入对应的ROM里查找。本规划为了减小规划,仅选取了S函数曲线榜首象限上的16个点的数值作为查找表数据。依据S函数的曲线特色,咱们将16个点的坐标别离取X=2i-1,i=1,2,3…16。此16个点的查找表中对应数值为公式ƒ(s)=255/(1+е-s/8)的整数部分。在运用查找表时,先依据输入数据的符号位判别数据的正负性。若为正,该数值即对应榜首象限的点,经过移位计数,求出该输入对应的i的值,即数据在查找表ROM中的地址值,找到相应的数据;若为负,则为第二象限的点,必须先经过查找表找出该点在榜首象限对称点的数值,然后依据S函数的对称性公式ƒ(s)=255-ƒ(–s)。由8位的减法器核算出该点的实在数值。MUX模块为一个多位数据挑选器,它与暂时寄存器一起完结数据的挑选。暂时寄存器由一个RAM组成,用来存储不能及时处理的数据。在运用MUX挑选数据时,需先将一切输出的数据存入暂时寄存器中,然后依据设定好的挑选准则挑选输出。SHIFT模块由移位寄存器构成,经过右移一位能够到达乘以一个λ的作用,然后完结神经网络学习率的操控。
本规划运用了Altera公司的QUARTUSII集成开发软件规划一切的硬件,挑选了CYCLONE系列的EP1C6Q240C8芯片的开发板进行测验仿真,仿真成果如图3所示。需求阐明的是,在规划中将输入数据扩大了100倍,因而不需求进行浮点操作。Chan1为输入数据,chan2为隐层输出数据,chan3为反传数据,valid为总线有用信号。
3. 试验测验与定论
本文针对禽畜养殖场废气浓度检测中传感器的数据失效问题,在FPGA开发板上规划了一个依据BP神经网络的数据康复器。该康复器的最大作业频率为171.7MHZ,在调试阶段,运用了开发板的最高时钟频率40MHZ为其作业频率。为了评价康复器的功用,咱们以氨气(NH3)浓度检测进程中某一传感器的数据处理为例,收集了某畜舍三天的NH3的浓度数据及环境温度、相对湿度,风速等数据,经过三天收集的72组数据,对第三天的24组采样数据别离进行预算。试验成果表明,24组数据丈量值与预算值的最大相对差错为7.83%,最小相对差错为0.09%,均匀相对差错为3.13%(如图4所示,曲线为丈量值,星号为预算值),证明了该规划根本满意实践使用的要求。
本文的立异点首要在三个方面:一是在对毛病传感器进行数据猜测时,引进了神经网络,并运用了FPGA硬件对该康复器进行了完结。二是在规划神经网络康复器时,运用了特别的串级结构,减少了体系对带宽的要求,增加了该规划的可维护性。三是在完结查找表功用时,运用了函数对称性,减少了查找表的数据规划。运用了移位寄存器和计数器直接将输入数据转化为查找表地址,避免了占Cyclone芯片很多资源的根本数学运算。
责任编辑:gt