郑海明,尹嘉炜
(华北电力大学能源动力与机械工程学院,河北 保定 071003)
SO2和NO两者的排放是形成酸雨的主要原因,会导致土壤酸化、农作物减产等危害。火电厂、石化厂等固定污染源烟气排放的SO2和NO等气体成为监测和控制的重中之重。有效治理烟气中SO2和NO的前提是对于两者的体积分数和质量浓度的准确监测。SO2和NO的检测手段主要包括电化学法、气相色谱法、傅里叶转换红外光谱法等技术,然而这些技术都有一定程度的缺陷,比如电化学法需要经常更换传感器,气相色谱法不能实时检测,傅里叶转换红外光谱法仪器较为昂贵等。
紫外差分光学吸收光谱学 (Differential Optical Absorption Spectroscopy,DOAS)技术凭借其非接触式、设备简单、价格低廉、能同时测量多种气体的优点,被广泛应用于烟气检测领域。该技术于20世纪80年代由德国海德堡大学大气环境物理研究所PLATT U和PERNER D教授提出。DOAS的主要应用波段在紫外波段和可见波段,能够对烟气内的主要污染气体SO2,O3,NOX等[1]进行测量。截至目前,多种DOAS技术方向和改进类型均有相关研究,例如NASSE等[2]在长光程DOAS(Long-Path DOAS),洪茜茜[3]在多轴 DOAS (MAX-DOAS)、WANG S S等[4]在车载DOAS等方面进行研究,均广泛应用于工业检测、大气污染物检测等环境保护方向。
根据国家环保排放的在线监测要求,本文基于DOAS技术,使用Visual Studio 2010,开发了SO2和NO气体监测系统软件DoasMonitorSystem。
软件具体的需求和功能分为如下4个方面。
1)与光谱仪进行通信,能够自行判断是否连接上光谱仪,并且显示在软件界面上。可以对光谱仪的各种参数进行设定。显示光谱仪本身自带硬件的信息,包括电荷耦合器件 (Charge Coupled Device,CCD)的型号、串口号以及像素数量等。
2)实现数据的实时传输、显示、运算和处理。首先接收光谱信号,直接显示在软件界面上;其次运算得到需求的光谱曲线;最后根据不同选择模式,得到处理后的数据结果,并能够储存数据。
3)对离线数据进行处理。包括读取历史数据、运算和显示光谱曲线,存储运算结果。历史数据包括暗电流数据、参考光谱数据、光谱数据、吸收截面数据等。能够对各种运算参数直接进行调整。
4)操作简单。软件菜单、软件界面以及各个参数的输入和使用方式都简单明确,对于常见错误都会有对应提示。
在测量精度方面,依据HJ 76—2017固定污染源烟气 (SO2、NOX、颗粒物)排放连续监测系统技术要求及检测方法[5],DOAS系统技术要求如下:被测气体体积分数>250×10-6时,分析仪与参比方法的测量结果误差≤15%;被测气体体积分数≥50×10-6且<250×10-6时,分析仪与参比方法的测量结果误差绝对值<20×10-6。
DoasMonitorSystem是基于Windows平台进行编写的软件。微软基础类库 (Microsoft Foundation Classes,MFC)本质上是一个庞大的C++类库,其中封装着大量的应用程序接口 (Application Programming Interface,API)函数。MFC通过封装Win32 API来为应用程序的制作和设计提供巨大的便利。本文设计软件采用的Visual Studio 2010是一款较为完善的软件开发程序,包含开发所需要的各种功能和要求。软件通过通用串行总线 (Universal Serial Bus,USB)与光谱仪及脉冲氙灯进行通信。接收到由光谱仪传输的光谱数据后,软件便会对光谱数据进行处理与计算。一是进行差分运算,将接收到的光强信息或吸光度信息进行曲线拟合,计算得到差分后的数据。二是进行光谱曲线绘制,将计算得到的原始数据、拟合数据与差分数据同时绘制在软件界面上。三是在计算模式下,将得到的差分数据经过算法处理后的差分吸收截面数据进行反演,得出检测气体的体积分数和质量浓度。
2.2.1 主界面布局
1)在主界面左上角,Start按钮用于开始测量,Stop按钮则用于停止测量。
2)Start按钮和Stop按钮右边的4个下拉菜单控 件 分 别 为 模 式 (Mode)、 气 体 分 子 种 类(Molecule)、实时模式 (Realtime)、算法种类 (Algorithm),用于测量模式的选择。其中,Mode的选项分为Scope Mode和Absorbance Mode,这两种模式的区别在于谱线的显示方式;Realtime选择Yes时,软件在进行测量的同时,除了绘制光谱,还会计算体积分数和质量浓度,相应程序会读取计算机文件之前记录的吸收截面等数据以进行计算,并且实时显示当前测量气体的体积分数 (单位为×10-6)和质量浓度 (单位为mg/m3)。
3)在4个下拉菜单控件右边的各项参数中,Int.time以及Number of avg分别为积分时间与平均次数,两者共同决定了光谱仪将采集到的数据传输至计算机的周期;PloyN则为曲线拟合次数。
4)在主界面右下角,Reset按钮放在了进度条上面,其作用是重置吸收截面信息。
5)在Reset按钮上方,分别显示体积分数和质量浓度,更方便读取,节省换算时间。
2.2.2 光谱曲线绘制
该软件采用TeeChart控件来进行光谱曲线的绘制工作,使用版本为8.0。该控件必须预先在系统中进行注册后才可以正常使用[6]。TeeChart控件绘制的SO2吸收光谱曲线见图1。
图1 TeeChart控件绘制的SO2吸收光谱曲线
该软件的光谱曲线绘制均是通过调用CDoas-MoSysDlg类中的两个函数DrawLine(double*pX,double*pY,long nNum,int nIndex)和ClearAllSeries(void)来进行控制。一是DrawLine函数,它的double*pX和double*pY两个变量代表所绘制图形的X轴和Y轴,long nNum变量代表数组长度,int nIndex变量代表TeeChart中的序列标号,用于区别所绘制曲线。软件中通常采用3条曲线进行绘制,分别为原谱线 (Counts)、拟合谱线 (Ploy)以及差分谱线 (Differential)。二是ClearAllSeries函数,它可以清空当前绘制区域,为下一次光谱曲线绘制工作做好准备。
该软件可在测量过程中绘制光谱曲线,也可在离线条件下采用读取硬盘数据的方式绘制离线光谱曲线。可绘制的光谱种类包括暗电流光谱、参考光谱(光源光谱)、吸收截面谱、实验数据光谱等,包含离线和实时检测两种模式,供使用者选择。
数据处理是软件最核心的功能之一。该软件采用Microsoft Excel进行数据保存和读取工作,兼容的最低版本为Microsoft Excel 2003。文件的表头和格式以及后面的数据都由软件程序自动完成,一共有9行,从上到下依次为文件名 (Filename)、积分时间 (Int.time)、平均次数 (Number of Averages)、平滑系数 (Smoothing)、温度、压力、气室长度、备注信息和数据类别 (波长、光强、吸光度)。
该软件在计算体积分数和质量浓度时有确定的流程:一是导入暗光谱与吸收光谱数据;二是读取事先保存好的吸收截面文件;三是读取实验光谱数据;四是通过对实验光谱数据进行计算,获得吸光度;五是利用多项式拟合来对光谱曲线进行模拟,同时计算差分吸光度;六是根据已有的差分吸收截面与差分吸光度数据进行运算,采用最小二乘法求解方程组,得到待测气体体积分数和质量浓度。
在数据处理方面,该软件提供了最小二乘法、傅里叶变换滤波、SAVITZKY-GOLAY(简称SG)平滑滤波等3种算法以达到最好的反演效果。最小二乘法是一种寻找最小误差和数据最佳匹配的数学优化技术,又被称为最小平方法。最小二乘法在生产生活中的常见应用是通过一组或者多组数据来进行某些特定值的计算或估计。
该软件主要通过动态链接库 (Dynamic Link Library,DLL)与光谱仪通信。DLL是微软公司在微软Windows操作系统中共享函数库的一种实现方式。AS5216.dll是由Avantes公司提供的用于对光谱仪进行控制的DLL,DoasMonitorSystem的开发过程中利用了该DLL,版本为2.2.0.0。
计算机和DLL的接口是基于函数接口的,接口允许应用程序配置一个光谱仪、从光谱仪接收数据、发送数据到光谱仪。DLL是通过内部函数实现功能的,例如打开函数AVS_Init()和关闭函数AVS_Done()这一对函数。其中,打开函数AVS_Init()的作用为打开COM通信端口,并且返回光谱仪连接的配置,该函数的返回值会同步更新到程序底部的第一个窗格内;与之相对应,关闭函数AVS_Done()的作用为关闭已连接通信端口,同时释放相关的数据存储。
DoasMonitorSystem是一款使用Visual Studio 2010平台开发的基于DOAS技术的在线气体监测软件,能够用于SO2和NOX等气体的检测,并且内嵌3种算法,可以安装于计算机平台。其功能丰富,具有Microsoft Excel数据交互、光谱仪和单片机通信、实时检测气体体积分数和质量浓度并绘制光谱曲线、离线计算数据等功能。软件内部使用了DLL技术,易于后续开发。