黄晓明, 王忠华
(南昌航空大学信息工程学院,南昌330063)
近年来有些高校实验室发生的爆炸事故造成了严重后果,其中有些爆炸事故由气体泄漏引发[1]。调查研究[2]表明,现今高校部分实验室仍存在易燃易爆气体使用的安全隐患。因此及时发现实验室内危险气体泄漏十分重要,而其中能够及时锁定气体泄漏源则能够对有效预防和处理事故起到很大的帮助。
本文设计了基于传感网络和种群保优破坏自我修复(Population conservation damage self-re,PC_DSR)遗传算法(Genetic Algorithem,GA)的泄漏源定位系统,能够实现对泄漏源的浓度检测和视频监控,并定位泄漏源。现有的泄漏源定位系统主要存在两个难点:气体浓度采集网络的及时、准确以及反算算法的性能和精度。随着传感器网络技术[3]的不断发展,国内外近几年来在环境数据采集等方面对传感网络技术的应用越来越广泛[4-5]。文献[5]中采用传感器构建低成本、近实时、远程的水生环境监控系统。例如对船厂各种气体浓度使用传感网络进行远程监控[6]。这些系统采用的传感网络仍存在准确性不高反应慢等缺陷,因此设计了基于CSMA/CD及自适应CRC校验退避的485总线通信协议,以提高485总线传感网络的可靠性。
在泄漏源定位算法的研究上,国内外学者也取得了诸多成果[7-10]。文献[11]中在源强反算中分析讨论混合遗传-模式搜索算法的应用;张建文等[12]设计了混合遗传-单纯形算法并分析其在泄漏源反算中的性能,这些算法都是针对传统GA早熟收敛的缺陷进行改进。鉴于此,本文设计了基于高斯模型和PC-DSR GA,以破坏自修复机制抑制GA的早熟收敛,以保优策略保证种群最终收敛,实现高效准确的定位泄漏源。
系统硬件电路主要包括传感网络节点电路和控制处理平台电路设计。系统主要应用于易发生气体泄漏的实验室环境,为保证传感器采集环节的安全和稳定,传感网络采用485总线结构。相关的数据处理由ARM9控制处理平台完成,系统总体结构框图如图1所示。
图1 系统结构框图
本文采用485总线网络结构来构建传感器网络,以获取室内各点气体浓度信息。各传感器节点采用STC15F2K60S2芯片(简称STC15单片机)作为节点控制器,STC15单片机采用单时钟结构设计,内部集成高精度R/C时钟,速度可达到普通单片机的6~12倍,可满足气体采集的时间要求。MQ-2型气体传感器适用实验室内多种危险气体浓度测量。使用TTL-RS485模块与485总线进行通信,波特率为115 200 bit/s。节点电路示意图如图2所示。
图2 节点控制电路
控制处理平台采用S3C2440为处理器,其主频可达到400 MHz。能够满足系统相关运算速度。
系统外围电路如图3所示,包括了DM9000网络芯片构成的100 MB以太网接口,用以同后台管理系统进行网络视频及数据传输。摄像头模块采用USB接口,使用两路PWM波控制云台舵机做垂直和水平方向转动。
图3 控制处理平台电路
系统软件部分主要包括485总线通信协议、linux内核移植和泄漏源坐标反算。通过改进的485总线协议更及时、准确地采集各标记点气体浓度,根据浓度差异为定位泄漏源坐标提供数据,数据的处理和算法运行都工作在linux操作系统上,最终以改进GA反算泄漏源。
现有的485总线通信协议[13-14]多采用一主多从定时循环轮召唤策略,对于定时循环频率有一定的限制。这种工作方式在一些突发应急处理的控制场合就存在较大的局限性,诸如不能满足数据通信的实时性要求等。本文设计基于CSMA/CD及自适应CRC校验退避的485总线通信协议,可实现多主节点通信,并提高总线通信的效率和传输的安全性。
2.1.1 CSMA/CD载波监听多路访问/冲突检测
采用CSMA/CD机制检测485总线传输冲突问题,通过如图4所示的载波监听电路在数据发送前进行信道侦听,当信道无数据传输即空闲时传送数据,一旦信道忙碌则退避并重新侦听。
图4 载波监听电路
载波监听电路连接INT0为处理器的外部中断0,配置外部中断定时器,通过INT0侦听总线上是否有数据流传输。总线上的数据流会反复触发INT0中断,即移植重装INT0中断初值。一旦发生定时器溢出,可认为总线是空闲的。
2.1.2 CRC校验自适应退避
多主机通信模式下,每个节点都可以作为主机,主动发起通信,并对信道进行抢占,冲突很难避免。本文采用两种定时器机制来处理总线发送误码和冲突退避问题。
(1)超时校验定时器机制。主机发送数据帧到总线,接收从机使用CRC校验算法对接收到的CRC码进行校验,正确发送确认报文。主机等待从机回复确认报文的这个等待时间即超时时间。一旦主机传输完数据包,系统马上开启超时定时器。在超时时间内未收到确认报文,认为发生冲突,启动退避机制。
(2)退避定时器机制。一旦发生冲突,主机释放总线,开启退避定时器,距离下次重传的时间即退避时间。退避时间采用二进制退避算法计算:
式中:T为下次重传时间;Rand()为随机数;Count_Conflict为退避次数;TwoPowerK为退避次数的二元指数;Period为单位时间。
选择LINUX操作系统结合人工智能控制方法来处理系统相关的信息融合、泄漏源定位、视频流传输等。LINUX作为一种开源操作系统内核,具有可裁剪、容易移植等特点,能够根据功能需要裁剪内核并很方便地移植到各种控制器上。本文选择在S3C2440上移植LINUX系统,包括对BootLoader、内核和根文件的移植,内核版本为linux-2.6.32.2,交叉编译工具为arm-linux-gcc-4.4.3。系统应用程序采用Linux多线程结构,如图5所示,分别包括了通信、视频采集、网络传输和调用算法等线程。
图5 LINUX多线程结构图
将2.1节传感网络观测得到的标记点浓度值结合各传感器标记点坐标(xi,yi)与扩散模型得到的浓度值进行比较并建立泄漏源反算算法模型,反算得到泄漏源坐标。
(1)以图像特征识别构建摄像头坐标系。使用云台摄像头构建室内摄像头坐标系,确定各传感器标记点的平面坐标(xi,yi)。通过对云台摄像头获取的视频流进行图像特征提取,识别图像中的节点特征[15],根据公式计算各特征点到摄像头距离,并以此构建摄像头坐标系。具体步骤如下:
步骤1 迭代法二值化图像,将图像灰度化并比较各像素值求出图像的最大灰度值Rmax和最小灰度值Rmin,由式(2)求得阈值T。根据阈值T将图像分成两组,求各组的平均灰度值μ1,μ2。按式(3)得到新阈值Tnew,使用新阈值进行二值化图像:
步骤2 将二值化后图像进行形态学膨胀,如式(4)所示,X为二值化后图像,S为膨胀结构元素
步骤3 八邻域标记,使用8连通模板进行像素标记,利用深度优先搜索消除等价对实现8连通区域标记。
步骤4 根据二值图像标记情况识别各标记区域形状,找到目标节点特征。
步骤5 坐标系构建,云台摄像头(见图6)可进行水平和垂直方向转动,其垂直转动角度α和水平转动角度β可由两个舵机转动角度通过相关公式计算得到,如图7所示。摄像头高度h通过校准摄像头参数并使用固定点坐标求得。根据上述图像特征提取,识别图像中的节点特征,转动云台摄像头分别使各节点位于摄像头图像的中心,获取此时的角度αi、βi,通过下式转换得到各节点位于摄像头坐标系下的(xi,yi):
图6 云台摄像头
图7 摄像头坐标系
(2)气体扩散模型。分析气体泄漏扩散的烟团模型包括静态模型和动态模型,因为本系统工作场所为实验室内,气体泄漏以静态扩散为主。通过对常用静态模型[16]:高斯烟团模型、BM 模型、Suttion Model以及气体湍流扩散模型进行对比分析,选择其中的高斯烟团模型来描述本系统中泄漏源气体扩散分布过程。泄漏气体在经过一定时间扩散后,泄漏点附近的气体浓度趋于稳定近似符合高斯分布,其三维空间的扩散模型为:
式中:z0为泄漏源相对高度0;(x0,y0)为泄漏源坐标;u为风速因子;C0为气体泄漏常量;(Dy,Dz)为气体扩散因数。大气稳定度取F级,即:
由式(6)、(7)可以得到各传感器节点位置处的泄漏气体浓度模型,由扩散模型得到第i个标记点位置处模型浓度值为,该点实际测量值为,计算测量浓度值与模型浓度值的误差平方和,即:
通过求解式(8)即可得到泄漏源坐标(x0,y0),这是典型的最优化问题,采用PC-DSR GA进行优化,以目标函数f作为适应度函数,以GA中种群的交叉进化得到最优值。
(3)种群保优破坏自修复遗传算法。GA通过对估计初始值的迭代优化得到全局最优解,传统GA往往容易陷入局部收敛,是由进化过程中种群多样性的缺失导致的。本文采用的PC_DSR针对种群局部收敛,引入破坏修复机制来扰动,同时为保证最终的种群收敛,采取保优策略。通过建立一个以未知泄漏源位置为参数的优化模型,使用PC_DSR GA来对定位优化模型求解参数,最终获取全局最优解即泄漏源坐标。PC_DSR GA的主要流程如下:
步骤1 设定种群大小M,随机产生初始群体Pop。根据式(6)计算初始群体每个染色体的适应度值F(i)。
步骤2 根据群体内染色体的适应度值大小,以比例选择算法从种群Pop中选择若干染色体。将被选中的所有染色体随机配对,按Pc进行交叉操作从而产生新的群体。
步骤3 经过选择交叉后产生的种群中的每个染色体按照变异概率Pm进行变异,产生下一代新群体Pnew。
步骤4 判断新产生的群体Pnew的染色体多样性δ,当其在终止代数内多样性不足时,引入破坏修复机制,即使用新染色体取代部分原有染色体,改善种群多样性。同时以种群保优策略保留每代中最优染色体。
步骤5 重复上述操作,经过终止代数N代选择、交叉、变异和破坏修复后产生最终收敛解即所需要的泄漏源反算坐标。
泄漏源坐标反算应用场景特殊,对时间有严格要求,算法的时间复杂度很重要。通过对GA进行性能分析,其时间复杂度计算如下:
式中:N 为运算代数;M 为种群大小;Tsel,Tcro,Tmu,Tdam分别为选择、交叉、变异和破坏修复阶段的时间复杂度,均为O(M)。
搭建模拟实验室测试平台,如图8所示,测试平台以丙烷发生器作为泄漏气体,通过透明导管模拟气体在不同位置的泄漏,在室内布置一定数目的MQ-2气体探测器。
图8 模拟测试平台
通过模拟测试平台模拟室内气体泄漏,测试本系统的可靠性、应急响应能力和对泄漏点的定位精度。测试内容包括485总线网络的可靠性试验、泄漏源定位精度测试。
本系统中485总线网络作为室内气体环境浓度采集媒介,其网络的可靠性对于气体泄漏的及时发现和处理至关重要。
3.1.1 传感网络可靠性评价指标
(1)网络传输丢包率(PLR)
PLR是衡量传感网络传输性能的关键指标之一,在一个总线传感网络内如果PLR<0.5%则表明此网络传输性能良好[17]。本系统使用的485总线通信协议采用传输CRC校验和误码重传机制来处理传输过程的丢包现象,即用误码重传率(ER)代替PLR。
(2)数据包传输时间花销(TTC)
式中:Tbus为数据包在总线上传输时间;Tcrc为数据包校验时间;Tre为校验错误重传时间。数据包传输时间花销(TTC)是指传感网络完成传输一定数据包所花费时间。
3.1.2 传感网络性能测试
在相同环境下分别测量系统在固定波特率不同节点数目下通信误码重传率。将485总线波特率设置为115 200,改变网络节点数目,让总线网络下各节点连续发送1 000组数据包,测得各节点数目下误码重传率,见表1。
表1 不同节点数目下的传输误码重传率
由表1的测试结果,结合总线传感网络在不同节点数目下误码重传率可知,总线传感网络随着节点数目的增加,误码重传率在上升,但即使是80个节点数目下误码重传率也并不高,只有0.19%低于0.5%的危险值。由此表明各节点数据在总线上传输能顺利到达目标节点,系统总体通信稳定。
为测试系统总线网络传输时间花销,在不同波特率下各节点传输固定大小数据包,将总线网络节点个数选择为50个,各节点分别传输1 000组数据包,测量了系统在不同波特率下传输时间花销,结果见表2。为保证传感网络对气体泄漏的响应速度,能够及时地采集足够气体浓度数据,传感网络的波特率选择115 200。
为体现改进GA在泄漏源坐标反算中的普适性,对不同泄漏位置分别采用本文设计的EP_DSR GA和传统GA进行分析。同时为体现对比性,将本文算法同已被其他学者验证可行的混合遗传-NelderMead(GA_NM)算法进行比较。固定PC_DSR GA、GA和GA_NM 3种算法的种群大小N,在如第3节搭建的模拟泄漏环境下设置泄漏点坐标(x0,y0)为(5.00 m,5.00 m),泄漏源强度C0为100 g/s,对3种算法进行独立运行10次反算泄漏点坐标。使用
表2 不同波特率下传输时间花销
计算泄漏源平均反算坐标与实际泄漏源坐标之间的标准差δi和相对误差εi,结果见表3。
表3 PC_DSR GA与GA、GA_NM泄漏源坐标反算结果对比
由表3可见,GA算法随着种群大小的增加,其泄漏点反算坐标的X、Y标准差和相对误差随之减少,即便是种群N=150下10次运行的平均反算坐标依然有较大的偏差,表明传统GA算法在泄漏源反算问题的不可靠性。对比本文设计的PC_DSR GA与GA_NM,分析可知:
(1)种群大小适应性。在不同种群大小下,PC_DSR GA泄漏源反算坐标的X、Y标准差和相对误差变化不大,分别保持在0.15和4%左右,而GA_NM随着种群大小的增加误差从13%减少到6%。表明GA_NM对于种群大小要求高,而PC_DSR GA则能较好地适应不同种群大小,具有更好的应用价值。
(2)反算精度。在种群大小N=100时,GA_NM算法的X、Y标准差和相对误差分别为0.47和13.2%,而PC_DSR GA定位精度更高为0.14和4%。PC_DSR GA能够更准确的定位泄漏源。
本文设计并实现了一种可用于实验室内危险气体泄漏源坐标定位系统,搭建485总线气体传感网络,通过重新设计的总线通信协议提高了总线通信的可靠性,及时获取了室内各点气体浓度。云台摄像头通过图像处理技术识别特征物,为摄像头坐标系和泄漏点的跟随监控提供信息。针对传统GA在迭代过程中易陷入局部收敛的不足,本文提出了PC_DSR GA并将其应用在本系统的危险气体泄漏源坐标反算中,实验表明,其泄漏源反算坐标精度满足实际要求。