作者简介:陈鹏飞(1986-),男,博士研究生.研究方向:分析仪器.E-mail:ch_pf1233@163.com
为了方便使用实验室组装的激光诱导击穿光谱(LIBS)仪器,设计并实现了一套LIBS软件。该软件包括控制软件和光谱分析软件两部分,具有系统自检、数据采集、光谱预处理和元素识别等功能。采用MVC(Model-View-Controller)对软件的系统架构进行设计,描述了各Model的设计流程,并用C#语言完成了软件的开发。实验表明该软件可方便地操作仪器实现光谱采集和定性分析。
In order to the convenient use of laboratory self-assembled Laser-Induced Breakdown Spectroscopy (LIBS), a software is designed and implemented. The system includes two parts: the control software and spectrum analysis software, and it possesses the functions of self-inspection, data acquisition, preprocessing and recognition. Model-View-Controller (MVC) is employed to design the system architecture, the design process of each model is described, and C# language is used to develop the software. Experiments show that the software can feasibly operate the LIBS to achieve spectral acquisition and qualitative analysis.
激光诱导击穿光谱[1](Laser induced breakdown spectroscopy, LIBS)是一种利用等离子体发射来获取化学元素成分的光谱技术。LIBS无需强制性制样, 分析样品量少, 对样品几乎无破坏性, 可对气体、液体和固体样品进行检测, 且能同时对多种元素进行测量。目前已广泛应用于冶金工业、生物医学分析、土壤分析、艺术品分析及环境监测等领域[2, 3, 4, 5]。
目前实验室常用的LIBS仪器是通过购买光谱仪、激光器和样品台等部件组装而成, 实验人员需要操作多个软件来控制仪器获取光谱及后续的分析处理, 既耗时耗力, 还增加了出错的概率。因此, 为了提高LIBS实验效率、降低人为误差, 需要一个包含控制功能与分析功能的系统软件。有些厂家已经开发出包含控制与分析功能的软件, 如Applied Spectra公司的Axiom和TruLIBS, TSI公司推出的ChemLytics和ChemLytics Plus, LTB公司的Sophi等, 然而这些软件的开发过程并未披露, 只能参考其软件的功能和界面布局等。文献[6-8]中有关LIBS软件的研究注重于算法及功能上的实现, 软件设计方面尚未提及。MVC[9, 10]最早在Smalltalk-80程序语言的设计中被提出, 它将软件从功能上分离, 解决了高耦合的问题, 使程序结构层次清晰, 为软件功能的后续扩展提供便利, 实现一种动态的程序设计。本文应用MVC架构自主设计并开发LIBS系统软件。
MVC架构如图1所示。
View层提供界面显示, 负责与用户交互, 具有有效性验证能力。界面操作产生的行为都由Controller层调度, 调度后的结果由Model层以事件的方式通知View, View层获取数据后刷新界面呈现给用户。
Model层是对数据的逻辑抽象, 用于封装业务逻辑相关的数据以及数据的处理方法, 能直接访问数据, 而不关心数据如何显示, 但提供通道告诉View层数据发生变动。
Controller层起到不同层面间的连接作用, 用于控制应用程序的流程。它接收View层中的用户请求, 负责解析, 然后将解析的结果分发给相应的Model, 让其进行数据处理, 处理后的结果再返回View层显示。
实验室LIBS仪器主要包括光谱仪、激光器、样品台以及光学附件等, 硬件结构如图2所示。光谱仪选用的是AvaSpec-ULSi2048型, 通过USB接口接入计算机, 并提供动态链接库进行二次开发; 激光器选用的是Litron Nano SG 120-20型, 波长为1064 nm, 通过串口控制; 样品台为Zolix公司一维可控电动位移台, 连接SC300-A1型控制箱, 通过OCX控件编程控制。光谱仪与激光器之间用延时器来实现时间同步, 可降低干扰, 提高精度。
仪器控制软件与仪器的硬件系统相配套, 协调光谱仪、激光器、样品台的操作需求, 获取高质量的谱图信息。
光谱分析软件将化学计量学方法[11]及数据库技术等应用到谱图中, 解析特征谱线, 从而进一步鉴别物质或确定它的化学组成。本文研究的软件具备以下几个方面的功能:①硬件设备管理; ②实验任务管理; ③光谱数据管理; ④光谱分析处理; ⑤软硬件异常处理。
软件在Visual Studio 2010的开发环境下, 采用基于NET Framework 4.0的Windows窗体应用程序来开发, 可以支持软件在Microsoft Windows XP/Vista/Windows 7等多种平台上运行。软件结构如图3所示。
软件的界面主要由View层构建, 包括实验控制面板、状态显示面板、参数设置面板和谱图面板等。对界面的响应组成了Controller层, 该层负责View与Model间的交互, 并控制了整个软件的流程, 是软件的控制中心; Model层由各个数据源组成, 是软件功能的实际执行者。
2.3.1 硬件接口
对硬件提供的二次开发包进行封装, 也是对底层硬件的再次抽象, 为上层提供与硬件无关的接口。此外, 精简了用户需要输入的变量, 以便加快开发速度。
(1)激光器开发流程如图4所示, 在软件启动时自动连接激光器, 将其设置为外触发模式, 激光能量为输入参数, 最大为120 mJ。
(2)光谱仪自带的软件开发包提供了驱动程序和动态链接库, 要求计算机事先装好驱动, 软件在启动时自动连接光谱仪, 积分时间、平均次数和延迟时间3个参数可供用户设置。工作流程如图5所示。
(3)样品台工作在同步模式, 通过OCX控件编程控制, 样品台移动到指定位置后才执行其他操作, 保证时序的准确性。可设置参数为相对位移量。开发流程如图6所示。
2.3.2 核心Model设计
(1)仪器状态。指示当前仪器的运行状态, 包括激光器是否正常、光谱仪是否正常、样品台是否正常以及是否处于实验中。当发生异常时能通过硬件自检及时提示错误原因。
(2)实验任务。从用户做实验的角度出发, 将3个主要部件的操作进一步封装, 将涉及到用户操作的数据都存在该Model中。单次光谱采集视为一个任务, 一次实验包含一个或多个任务, 实验的操作包括开始和停止。每次实验的参数作为实验方法, 可供用户存储与读取。
(3)光谱数据。当每次实验正常结束时都会产生一条光谱数据, 该Model通知View显示光谱数据。用户可选择显示或隐藏谱线, 并对谱线进行存储及读取。
(4)光谱分析。针对用户选择的谱线, 可采用五点三次平滑滤波、基于连续小波变化法的自动寻峰等操作, 结合光谱数据库实现元素识别。
将开发的软件应用于实验室组装的仪器中, 设置激光器激光能量为120 mJ, 光谱仪积分时间为30 ms, 平均次数为5次, 延迟时间为1.8 μ s, 对铝片进行实验, 结果如图7所示。
经过光谱分析工具处理, 可识别出铝元素, 其谱峰位置为396.079、394.360和358.674 nm, 如图8所示。
本文提出一种基于MVC架构的LIBS仪器软件设计思路和实现方法, 并将开发的软件应用于实验室组装的系统中。实验证明该软件可以控制仪器实现光谱采集和定性分析。采用MVC架构可使得软件层次清晰, 便于快速开发和后续维护升级, 对其他系统的软件开发具有借鉴意义。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|