基于MATLAB/GUI的水质参数光谱分析可视化界面设计*

2021-12-11 10:43李丽娜
科技与创新 2021年23期
关键词:参考值预处理光谱

陈 希,李丽娜

(华侨大学机电及自动化学院,福建 厦门361021)

随着社会经济的高速发展、工业化进程的不断加快,全球水资源问题日益严重。中国水资源占有总量排在世界前列,但由于人口众多,中国人均水资源占有量仅有世界人均占有量的1/4。保护水资源、防止水污染至关重要[1]。

水质参数(包括物理性指标、化学性指标和生物性指标)检测是保障人类安全用水的前提,通过水质检测可确定水污染分布状况、预测污染物的变化趋势,为水污染防治工作提供技术支持[2]。

水质参数检测方法包括常规化学分析检测方法、紫外/可见光谱法、荧光光谱法、原子吸收光谱法、气相色谱法和可见/近红外(visible near infrared,VIS-NIR)光谱法等[3-4]。可见/近红外光谱分析法具有检测速度快、无污染、绿色环保、操作简单等优点,是近年来水质参数检测的研究热点之一。

基于可见/近红外光谱技术的水质参数检测方法,在最终实现应用前,通常需通过标定实验来确定测量模型[5-7]。测量模型的训练通常在MATLAB软件上进行,通过反复多次计算和分析,从而选择适当的预处理方法、确定最佳的多元回归模型参数,模型训练的计算和分析过程较为复杂耗时。

为方便研究人员开展水质光谱分析实验数据的分析,提高测量模型的建模效率,本设计研究开发了一套基于MATLAB的水质参数光谱分析的GUI界面,通过导入数据、预处理、多元校正、数据输出4个模块,提供常见的预处理方法和经典的多元回归方法。并通过蒸馏水pH值光谱分析基础实验数据,对该可视化软件效果进行了验证。

1 水质参数光谱分析界面框架设计

图形用户界面,是用户与计算机程序之间建立联系,并进行数据交流的一种方式。它包含窗口、图标、菜单、文本、工具栏等图形对象。用户借助操作或更改的方式,选择或激活图形对象,建立属于各自研究问题领域的可视化交互界面。通过图形用户界面,用户只要知道如何使用界面的每个组件,就可以与计算机建立联系,进行数据交流,操作简单、直观[8]。

本设计主要面向水质参数光谱分析领域,基于MATLAB/GUI编辑调整的可视化分析界面如图1所示。

图1 水质参数光谱分析的可视化界面

主要包括导入数据模块、预处理模块、多元校正模块、数据输出模块。导入数据模块的功能是,导入校正集、验证集数据,并可显示原始数据的光谱图;预处理模块的功能是,提供常见的光谱预处理方法,包括最大最小归一化、零均值化、一阶导数、二阶导数、多元散射校正(multiple scatter correction,MSC)和标准正态变量变换(standard normal variate transformation,SNV),并可显示预处理后的光谱图;多元校正模块的功能是,提供经典的偏最小二乘(partial least squares,PLS)回归模型,通过输入主成分个数,计算该参数条件下的预测均方根误差(root mean square error of prediction,RMSEP),并可显示预测值与参考值的比较图,为工程应用人员进行模型训练提供参考。

2 基于MATLAB/GUI的界面开发方法

MATLAB是美国MathWorks公司开发的一套高性能数字计算软件,MATLAB既能进行科学计算,又能根据用户需求,开发出便于计算和分析的用户图形界面(GUI)。用户通过选择、激活这些图形对象,可实现计算、绘图,提高工程应用人员研究效率[9-10]。本研究设计的水质参数光谱分析可视化界面,主要开发步骤和方法如下。

首先,在MATLAB主界面的Command Window中输入guide,得到用户图形界面模板选择窗口,选择默认空白(BLANK GUI)选项,如图2所示,然后可进入编辑界面,如图3所示。

图2 GUI模板选择窗口

图3 GUI编辑界面

接着,在GUI编辑界面上建立需要的控件,编辑控件的基本属性,将界面各个控件摆放整齐、美观、方便。

然后,根据各控件需要完成的功能,编辑回调函数。

最后,进行可视化界面的结构优化设计和程序调试。

对于导入数据模块,由八个静态文本框、六个按钮组成。设置静态文本框的属性作为提醒使用者的提示,导入数据按钮按下后运行对应的回调函数,打开文件夹并且从文件夹中选择需要的文件加载到程序中。

MATLAB函数global可用于定义全局变量。

MATLAB函数[filename,filepath]=uigetfile('*.*','请选择文件')可实现从文件夹中选择数据。

MATLAB函数set(handles.text6,'String',[filename])可实现将文件名显示在界面上。

MATLAB函数importdata(strcat([filepath,filename]))可实现文件的导入。

MATLAB函数axes(handles.axes1)、plot,可实现在axes1坐标上绘图,点击“生成光谱图”按钮,就会在界面绘图区显示光谱图。

类似的,对于预处理模块、多元校正模块、数据输出模块,基于MATLAB编辑好对应的预处理函数、多元回归函数及其回调函数,可实现预处理方法的选择、PLS模型参数“主成分个数”设置、PLS模型的运行、RMSEP的计算以及预测值与参考值比较的图形绘制。

MATLAB函数k=str2num(get(handles.edit1,'String'))可实现从可输入编辑框中获得参数k。

MATLAB函数guidata(hObject,handles)可实现从可输入编辑框中获得输入的主成分个数。

3 蒸馏水pH值光谱分析实验数据处理

采用可见/近红外分光光度计V-1800PC(上海美谱达仪器公司)测量样品光谱,光谱波长间隔2 nm。1 cm的石英池用于装载水样。pH值的参考值采用精度为±0.1个单位的酸度计(上海力辰仪器公司)测量。为了获得不同酸碱度的水样,在蒸馏水中随机加入0.1 mmol/L的HCL或0.1 mmol/L的NaOH,用酸度计测量获得pH参考值。采用透射式测量获取每个样品的光谱数据。采集的光谱波长范围是400~1 100 nm,共351个波长。

实验中共获得34个样本,其中24个样本作为校正集、11个样本作为验证集,用于PLS模型训练,来测试本设计开发GUI界面的性能。图4为应用本设计开发的可视化界面绘制的图像,图4(a)为原始光谱图,图4(b)为经标准正态变量变换预处理后的光谱图。通过设置不同的主成分个数,然后运行PLS,可以得到不同的模型精度参数值RMSEP,根据RMSEP来确定最优的主成分个数,应用本研究设计开发的可视化界面,可以方便的调整参数,确定最佳的PLS模型,提高建模效率。例如,经标准正态变量变换预处理后,设置主成分个数为10,PLS模型的预测参数RMSEP显示为0.335 221。PLS模型的预测值与参考值的对比图如图5所示。

图4 GUI输出光谱图界面

图5 GUI输出PLS模型的预测值与参考值的对比图页面

4 结语

水质检测用于确保用水安全,对居民生活、工业生产和环境保护都非常重要。可见/近红外光谱分析技术具有简便、快速、经济、无污染等优点,是目前极具发展前景的水质参数检测方法之一。为方便研究人员进行光谱分析,本研究设计开发了一套基于MATLAB/GUI的水质参数光谱分析的可视化界面。应用该水质参数光谱分析界面,可快速切换预处理方法和主成分个数,根据PLS模型精度参数、以及预测值和参考值的图像分析,达到快速确定最佳预处理方法和多元校正模型,提高建模效率的目的。基于MATLAB/GUI的可视化图形界面,设计界面简洁清晰,可极大方便研究人员开展水质参数光谱分析工作,提高研究效率。

猜你喜欢
参考值预处理光谱
基于三维Saab变换的高光谱图像压缩方法
KR预处理工艺参数对脱硫剂分散行为的影响
预处理对医用外科口罩用熔喷布颗粒过滤性能的影响
煤炭矿区耕地土壤有机质无人机高光谱遥感估测
手术器械预处理在手术室的应用
基于3D-CNN的高光谱遥感图像分类算法
污泥预处理及其在硅酸盐制品中的运用
关于我院妊娠中、晚期血清甲状腺功能参考值的研究
妊娠中晚期血脂变化及参考区间的建立
大蒜洋葱治好高血脂