林晏清 胡澍芃 刘 晶 范 爽 徐琢频 王 琦 赵莉萍, 吴跃进*
1(中国科学院技术生物与农业工程研究所 安徽 合肥 230031) 2(中国科学技术大学 安徽 合肥 230026) 3(曼彻斯特大学计算机科学学院 曼彻斯特)
一种基于Java平台的近红外光谱实时分析系统设计与开发
林晏清1,2胡澍芃3刘 晶1范 爽1,2徐琢频1王 琦1赵莉萍1,3吴跃进1*
1(中国科学院技术生物与农业工程研究所 安徽 合肥 230031)2(中国科学技术大学 安徽 合肥 230026)3(曼彻斯特大学计算机科学学院 曼彻斯特)
针对某肥料生产企业产品质量评价方式耗时、低效等问题,构建基于Java平台的近红外光谱实时分析系统。结合实际生产需求与近红外光谱技术的原理,对系统整体架构进行设计,并通过需求分析、系统设计、关键技术实现等过程,开发出近红外光谱实时分析系统,进行产品成分预测。可实现光谱数据采集、计算分析和结果实时输出功能,用户界面简洁直观。通过硅胶的吸水性实验,验证了预测分析结果的准确可靠(产品成分预测值对真实值的决定系数为95.13),满足生产要求,具备较大应用前景和商业潜力。
产品成分 实时分析 Java平台 近红外光谱 系统设计
肥料的现代工业生产对产品品质的要求日益提高。传统肥料生产中的质量评价方法主要使用土柱淋溶法、常温静水溶出率法等[1]分析方法,这些评价方法效率低下,分析速度缓慢,并且需要借助实验室环境,无法实现对生产线上产品成分的快速实时分析。
相对于传统质量评价方法,采用光谱技术对工农业产品成分的分析[2-4]更加简单、快速、精确。其中近红外光谱NURS(Near-infrared reflectance spectroscopy)技术作为一种过程分析技术,通过分析物质的近红外光谱,可在短时间内完成对物质化学成分的多组分同步定量分析,不需要样品制备过程,具有分析速度快、精确度高、不破坏样品、不产生任何化学污染等优点。NIRS技术通过提供实时测量信息,可以实现对工农业生产过程的最优化控制,在显著提高生产产品质量的同时,降低生产成本和资源消耗,对工业信息化与自动化的深度融合起着关键性的作用[5-6]。如何将近红外光谱分析技术应用于实际工业生产中,为提高工业产品的品质而服务,是很多科研工作者努力的方向。
为实现对某尿素肥料生产企业产品成分的实时分析,本文在对生产过程需求进行分析的基础上,结合NIRS分析原理,在Java平台上基于外部接口技术和模块化技术设计了一种NIRS实时分析系统。该系统可以对生产线上的尿素产品成分进行实时分析,并以数据化和图形化的形式输出分析结果,实现对产品质量的实时检测。
1.1 业务介绍
现有NIRS分析软件大多基于离线数据源进行分析研究,如Unscrambler[7]、RIPP化学计量学光谱分析软件[8]等。少有对在线光谱获取和离线光谱分析的结合,进而难以实现实时分析,在一定程度上制约了工业生产的信息化发展。对一些集合了在线数据获取和离线数据处理功能的软件,如OPUS[9-10],其界面过于专业、操作复杂、使用流程繁琐,往往只适合在实验室使用,无法让没有技术背景的用户很快掌握。为更加符合实际应用需求,本文在现有NIRS技术的基础上,增加硬件控制部分,实现了光谱获取、计算分析、结果输出的整个流程。将这一过程封装起来,用户只需在软件界面上进行简单的初始参数设置,即可得到数据化和图像化的分析结果。系统的实时分析过程如图1所示。
图1 分析过程时序图
设置参数:用户根据实际需要,在软件用户界面设置光谱仪的测量参数,如积分时间、积分次数、平滑度等。
控制运行:NIRS实时分析软件根据用户设置的参数,控制硬件运行。
提供光信号:光谱采集系统提供不同状态的光信号,以获取不同状态下的光谱。
获得光谱:光谱采集系统获得产品光谱信息。
返回光谱数据:光谱采集系统将光谱信息解析成数据形式并返回给分析软件。
输出结果:NIRS实时分析软件根据光谱数据计算分析产品成分信息,并将结果返回用户。
1.2 总体结构
NIRS实时分析系统整体包括NIRS实时分析软件和光谱采集系统,其中光谱采集系统包括光谱仪、步进电机和光纤等部件。如图2所示。
图2 NIRS实时分析系统总体设计
NIRS实时分析软件使用RXTXcomm.jar进行串口通信,控制步进电机的位置;光谱仪与计算机通过USB接口连接,软件使用OmniDriver开发包实现与光谱仪的通信。用户在使用系统时,首先通过NIRS实时分析软件对光谱采集系统下达控制指令,光谱采集系统收到指令,通过步进电机控制光纤探头移动到不同位置,通过光谱仪读取光谱信号,将光谱数据返回软件。
软件得到光谱数据后,从模型数据库选择当前适用的定量分析模型,通过与模型相对应的预处理计算和定量分析计算,得到产品成分信息。
2.1 系统功能
根据用户需求,NIRS实时分析软件主要包括界面设计、硬件控制接口、计算分析、结果显示等主要功能,可以实现的功能如下:
(1) 实现中英文界面的相互切换。
(2) 根据用户设置的参数控制硬件运行,进而进行光谱数据获取和分析工作。
(3) 完成在线计算分析,得到产品成分预测含量。
(4) 在用户界面上显示光谱曲线,并且每获得一个结果,都在相应的成分含量坐标系中描一个点。成分含量坐标系容量可调,达到容量上线后,样本点实时更新。
(5) 分类存储各阶段获得的数据。
2.2 系统技术架构
NIRS实时分析软件体系总体架构包括界面层、功能层、接口层和支撑层,如图3所示。
图3 NIRS实时分析软件系统架构图
(1) 界面层:界面层为用户界面,负责人机交互,具有参数设置、光谱显示、结果显示等功能。用户界面示意图如图4所示。
图4 NIRS实时分析系统用户界面
(2) 功能层:功能层为整个系统的主体,包括硬件控制、计算分析和结果显示模块。根据界面层获得的参数,完成一系列功能操作。
(3) 接口层:接口层是实现功能层的通道。NIRS实时分析系统选用海洋光学公司生产的USB型光谱仪。软件通过海洋光学公司提供的在Java环境下开发的OmniDriver开发包,使用OmniDriver提供的API函数,实现光谱仪信息获取、光谱仪参数设置并获取光谱和波长等功能。软件使用RXTXcomm.jar进行串口通信,连接和控制步进电机,移动光纤探头,以获取不同位置的光谱。系统通过MySQL进行主要数据存储工作。
(4) 支撑层:支撑层为软件的数据分析提供支撑,其中包括样品信息数据库、光谱数据库、多种方式计算分析后的结果数据库、定量分析模型和产品知识库。
2.3 数据库设计
本系统数据库功能使用MySQL数据库管理系统实现。作为开源关系数据库管理系统,MySQL具有功能强大、使用管理方便、响应速度快、跨平台、支持多种存储引擎、安全可靠性相对较强等优点[11]。
光谱数据库和计算分析结果数据库设计如图5所示。
图5 数据库设计
NIRS实时分析系统数据库主要包括样品信息数据表、光谱数据表、计算分析结果数据表。其中样品信息数据表存储的是所有样品的编号、扫描日期、种类等,是数据管理和查询的主要参考;光谱数据表用来存储样品的参考光谱、背景光谱和样品光谱;计算分析结果数据表对计算分析过程中每一步得到的数据进行存储。其中光谱数据表和计算分析结果数据表采用特殊的列向存储,避免无关列的读取,从而减少I/O和内存带宽的占用,提高查询效率[12]。
NIRS实时分析系统以近红外光谱技术为理论指导,使用外部接口技术、模块化技术进行功能实现。
3.1 近红外光谱技术
在NIRS实时分析软件的设计与开发过程中,以NIRS技术为依托,依次通过光谱获取、预处理和定量分析等进行计算分析。
(1) 光谱获取
吸光度光谱是近红外光谱技术分析的基础。根据光纤探头在不同位置获取的背景光谱、参考光谱和样品光谱,由反射率和吸光度的计算公式[13],计算基线校正后的吸光度光谱。
反射率和吸光度的计算公式定义为:
(1)
Al=-log10R
(2)
其中:R为反射率,Is为样品光谱,Ib为背景光谱,Ir为参考光谱;Al为吸光度。
(2) 预处理
由于物质物理性质的影响,适当的光谱预处理十分必要[14]。常用的预处理算法有平滑、导数、标准正态变量变换SNV(Standard Normal Variate)、多元散射校正MSC(Multiplicative Scatter Correction)等。本软件使用SNV和Savitzky-Golay卷积求导算法对光谱进行预处理[15]。
算法1SNV算法。
SNV算法主要用来消除固体颗粒物大小、表面散射以及光程变化对近红外漫反射光谱的影响。对需进行SNV变换的光谱按照下式进行计算[15]:
(3)
算法2Savitzky-Golay卷积求导算法。
Savitzky-Golay卷积求导算法可以有效消除光谱背景干扰,分辨重叠峰,提高光谱的分辨率和灵敏度。先对光谱进行Savitzky-Golay卷积平滑处理,再求取导数光谱。Savitzky-Golay卷积平滑又称为多项式平滑,波长k处经平滑后的平均值为[15]:
(4)
(3) 定量分析
定量分析的本质是建立光谱与化学成分浓度的数学映射关系。本软件使用偏最小二乘回归PLS(Partial Least Squares Regression)算法[16]实现定量分析。
算法3PLS算法。
PLS算法同时考虑光谱矩阵X和浓度矩阵Y,首先对二者进行线性分解[17]。
X=TP+E
(5)
Y=UQ+F
(6)
其中:T和P是X的得分矩阵和载荷矩阵;U和Q分别为Y的得分矩阵和载荷矩阵,E和F分别为X和Y的残差矩阵。
然后,对T和U进行线性回归:
U=TB
(7)
B=(TTT)-1TTY
(8)
预测时,求得未知样品的光谱矩阵X未知的得分矩阵T未知,未知浓度根据下式进行计算:
Y未知=T未知BQ
(9)
3.2 外部接口
(1) 光谱仪接口
OmniDriver开发包是海洋光学公司提供的在Java环境下开发的驱动程序,通过使用OmniDriver提供的API函数,可以实现对海洋光学公司生产的USB型光谱仪的连接和控制,实现光谱仪信息获取、光谱仪参数设置并获取光谱和波长等功能。
光谱仪信息获取代码为:
this.spectrometer_name=wrapper.getName(this.spectrometer_index);
//获取指定光谱仪的名称
this.spectrometer_id=wrapper.getSerialNumber(this.spectrometer_index);
//获取指定光谱仪的序列号
this.spectrometer_version=wrapper.getFirmwareVersion(this.spectrometer_index);
//获取指定光谱仪的固件版本
光谱仪参数设置代码为:
this.wrapper.setIntegrationTime(spectrometer_index, usec);
//设置指定光谱仪的积分时间,微秒
this.wrapper.setBoxcarWidth(spectrometer_index, smoothingDegrees);
//对指定光谱仪获得的光谱进行平滑
this.wrapper.setScansToAverage(spectrometer_index, numberOfScansToAverage);//对指定光谱仪进行numberOfScansToAverage次连续扫描后求均值
光谱和波长获取代码为:
this.lightIntensities=wrapper.getSpectrum(this.spectrometer_index);
//获取指定光谱仪的光谱
this.waveLengths=wrapper.getWavelengths(this.spectrometer_index);
//获取指定光谱仪的波长
(2) 步进电机驱动接口
软件使用RXTXcomm.jar进行串口通信,连接和控制步进电机。主要作用是移动光纤探头,以获取不同状态下的光谱,为吸光度的计算做准备。
(3) 数据库接口
系统使用JDBC(Java Database Connection)进行数据库访问。使用Connection接口、PreapredStatement接口、ResultSet接口、CallableStatement接口、DriverManager类等实现数据库的连接和存取操作。
(4) 可视化技术
为方便观测,本软件在用户界面上添加了光谱谱线显示区域和预测分析结果的图像化显示,实现对显示区域大小和显示内容的设计。其中使用了TeeChart控件来实现软件界面上图表的显示。
以光谱显示的部分代码为例,设置光谱图显示区域的参数以及谱图绘制:
tchart.setGraphics3D(null);
tchart.setBounds(new Rectangle(0,108,1280,917));
//设置光谱显示区域边界
Series realS=new Line();
tchart.removeAllSeries();
tchart.addSeries(realS);
//谱图绘制
tchart.getAspect().setView3D(false);
tchart.getChart().getTitle().setText(″光谱图″);
tchart.getChart().getTitle().getFont().setSize(20);
tchart.getChart().getTitle().getFont().setColor(Color.blue);
//设置显示区域标题
(5) Excel开发接口
为方便用户进行数据分析,软件各阶段的数据也可以使用Excel文件按照当前日期进行导出。Excel文件的处理通过POI包实现。
Excel文件存储:
SimpleDateFormat today = new SimpleDateFormat (″yyyy-MM-dd″);
//获取当前日期
String todayDate = today.format(new Date());
String excelFileName = todayDate + ″.xlsx″;
dataStoredExcel(this.absorbance, excelFileName, ″./Absorbance(excel)/″, false);
3.3 模块化技术
NIRS实时分析系统在功能上分为硬件控制模块、计算分析模块和结果显示模块。
(1) 硬件控制模块
由于光谱仪存在长时间连续工作后光谱基线发生漂移的情况,会使光谱在线分析结果产生较大偏差[13]。本系统通过硬件方式对光谱仪进行基线漂移校正,使用RXTXcomm.jar进行串口通信,连接和控制步进电机,移动光纤探头,使其相对于静止的光源,运动到不同位置。通过调用OmniDriver开发包,连接光谱仪,如图6所示。
图6 硬件控制部分
(2) 计算分析模块
计算分析模块为本系统的核心功能模块,它包括吸光度计算、预处理计算和PLS计算。计算分析模块分为三步:第一步,根据在不同位置上收集到的背景光谱、参考光谱和传送带当前位置上待测样品的样品光谱,计算吸光度光谱。第二步,根据所选预处理算法对得到的吸光度光谱进行处理。第三步,根据所选定量分析模型的参数,进行偏最小二乘回归,预测产品的成分信息。该模块的数据流程如图7所示。
图7 计算分析数据流程
(3) 结果显示模块
结果显示模块包括三个部分:吸光度光谱显示、定量分析结果的数据化显示和图形化显示。吸光度光谱显示部分和定量分析结果的图形化显示均利用TeeChart包对计算得到的结果进行绘图并显示。定量分析结果的数据化显示利用Java语言自带的Swing包对界面进行设计,并对成分信息分类显示。
为验证NIRS实时分析系统实时分析结果的准确性,使用吸水性硅胶制备含水量按梯度变化的不同样品。按硅胶吸水时间长短分为0~30 min,每分钟一个梯度,共31个样品。将吸水后的硅胶样品放在传送带上,扫描其近红外光谱并分析水分含量。同时在每组硅胶吸水前和光谱测量后分别使用赛多利斯BSA124s电子天平称量硅胶质量,通过计算质量差获得水分含量。
将NIRS实时分析系统分析得到的水分预测含量和称量、计算后得到的真实含量在MATLAB中绘制出来。31个硅胶样品的水分含量如图8所示。
图8 31个硅胶样品水分含量的真实值与预测值
图8中硅胶样品水分真实含量和预测含量变化趋势基本一致。将二者在MATLAB中使用Curve Fitting Tool进行拟合,拟合结果如图9所示。
图9 硅胶吸水性实验中分析值和测量值的相关图
实验结果表明,NIRS实时分析系统预测分析的结果对水分的决定系数为95.13,均方根误差(RMSE)为0.006 829。结果表明,NIRS实时分析系统对样品成分含量的预测分析较为准确。
现代工业生产对产品的品质的要求非常严格,需要在现有生产技术上实现对产品品质的在线质量评价。本文介绍的NIRS实时分析系统可以对工业产品进行光谱获取、预处理、定量分析等操作,其运算能力强、运算精确度高,适用于实时的在线成分分析。
目前,该系统已经在河南心连心化肥有限公司进行了在线功能测试且运行状况良好。系统的后续发展趋势是增加软件预处理和定量分析算法,并实现在线建模,使之运用到更多行业领域。
[1] 杨红竹,郑国亮,刘海林,等.缓/控释肥料类型及质量评价方法[J].热带农业科学,2016,36(5):21-27.
[2] 于欣,杨超博,彭江波,等.基于紫外可调谐激光吸收光谱技术的甲烷/空气平面预混火焰温度测量研究[J].光谱学与光谱分析,2016,36(4):1027-1032.
[3] 胡耀华,平学文,徐明珠,等.高光谱技术诊断马铃薯叶片晚疫病的研究[J].光谱学与光谱分析,2016,36(2):515-519.
[4] 高亚文,欧昌荣,汤海青,等.光谱技术在水产品鲜度评价中的应用[J].核农学报,2016,30(11):2210-2217.
[5] 张卉,宋妍,冷静,等.近红外光谱分析技术[J].光谱实验室,2007,24(3):388-395.
[6] 刘言,蔡文生,邵学广.近红外光谱分析方法研究:从传统数据到大数据[J].科学通报,2015(8):704-713.
[7] Mladenov M,Draganova T,Tsenkova R.Grain sample quality assessment using Intechn and Unscrambler platforms[J].Agricultural Science and Technology,2011,3(2):179-185.
[8] 褚小立,王艳斌,许育鹏,等.RIPP化学计量学光谱分析软件3.0的开发[J].现代科学仪器,2009(4):6-10.
[9] 白雁,宋瑞丽,陈志红,等.NIR结合OPUS软件建立山药中尿囊素定量模型[J].中国医院药学杂志,2008,28(22):1945-1948.
[10] Zornoza R,Guerrero C,Mataixsolera J,et al.Near infrared spectroscopy for determination of various physical,chemical and biochemical properties in Mediterranean soils[J].Soil Biology and Biochemistry,2008,40(7):1923-1930.
[11] 刘学芬,孙荣辛,夏鲁宁,等.面向MySQL的安全隐患检测方法研究[J].信息网络安全,2016(9):1-5.
[12] 吴齐跃.基于列存储的大规模并行数据库应用技术[J].中国管理信息化,2016,19(11):177-180.
[13] 汤晓君,王进,张蕾,等.气体光谱分析应用中傅里叶变换红外光谱基线漂移分段比校正方法[J].光谱学与光谱分析,2013,33(2):334-339.
[14] 尼珍,胡昌勤,冯芳.近红外光谱分析中光谱预处理方法的作用及其发展[J].药物分析杂志,2008,28(5):824-829.
[15] 褚小立.化学计量学方法与分子光谱分析技术[M].北京:化学工业出版社,2011:42-47.
[16] 陆洪涛.偏最小二乘回归数学模型及其算法研究[D].北京:华北电力大学,2014.
[17] 韩明.基于近红外光谱技术食品检测软件开发及其应用研究[D].成都:电子科技大学,2013.
DESIGNANDIMPLEMENTATIONOFANIRSREAL-TIMEANALYSISSYSTEMBASEDONJAVAPLATFORM
Lin Yanqing1,2Hu Shupeng3Liu Jing1Fan Shuang1,2Xu Zhuopin1Wang Qi1Zhao Liping1,3Wu Yuejin1*
1(InstituteofTechnicalBiologyandAgricultureEngineering,ChineseAcademyofSciences,Hefei230031,Anhui,China)2(UniversityofScienceandTechnologyofChina,Hefei230026,Anhui,China)3(SchoolofComputerScience,UniversityofManchester,Manchester,Britain)
In order to solve the problem of time consuming and low efficiency of product quality evaluation method in a fertilizer production enterprise, a real-time analysis system of NIRS (near-infrared reflectance spectroscopy) based on Java platform is proposed. The functions of the system were designed based on production demand and the theory of NIRS. And we designed the overall architecture of the system, and through requirements analysis, system design, implementation of key technologies, etc. We developed a real-time analysis system of NIRS, and then carried out product composition prediction. Designed to implement concentration prediction, this system was able to achieve spectrum acquisition, analysis and results output real-timely. The user interface is low-complexity and intuitive. The experimental results of water absorption of silica gel show that the analysis result is accurate and reliable (the coefficient of determination of the predicted value of the product composition to the real value is 95.13), which can meet the requirement of production and has great application prospect and commercial potential.
Product concentration Real-time analysis Java platform Near-infrared reflectance spectroscopy System design
2017-01-06。国家自然科学青年基金项目(31500300);中国科学院战略性科技先导专项(A类)(XDA0804107);合肥研究院院长基金青年“火花”项目(YZJJ201520);院企重大攻关项目(Y19HX14702)。林晏清,硕士生,主研领域:软件系统分析与设计。胡澍芃,博士生。刘晶,助理研究员。范爽,博士生。徐琢频,博士生。王琦,副研究员。赵莉萍,教授。吴跃进,研究员。
TP3
A
10.3969/j.issn.1000-386x.2017.12.002