基于MPSO-SVM非线性氨氮传感器的数据补偿

2021-06-05 01:21莫德清
桂林理工大学学报 2021年1期
关键词:氨氮向量补偿

韩 剑,莫德清,汪 楠

(1.桂林电子科技大学信息科技学院, 广西 桂林 541004; 2.桂林电子科技大学 生命与环境科学学院, 广西 桂林 541004)

目前,氨氮传感器主要是利用电化学原理,通过测量电势,建立电势与氨氮浓度之间的关系式获得氨氮浓度。对于溶液中pH值和温度的影响,一般采用电化学中的能斯特方程进行计算[1]。 但是受氨氮传感器自身因素以及测量环境等影响, 传感器数据输出呈现非线性特点。 因此, 直接得到的测量数据并不可靠, 有必要对氨氮传感器测量的数据进行校正。

鉴于此,本文将改进的粒子群参数寻优算法(MPSO-SVM)引入到氨氮传感器模型中[2],以降低氨氮传感器的测量误差,建立适应性良好的补偿模型。通过取不同梯度浓度值, 分别测量约270组数据,建立支持向量回归校正模型[3],进行数据校正,本质上解决非线性回归问题。

1 支持向量机回归模型

在氨氮传感器测量过程中考虑实际测量环境复杂多样,测量结果受多种因素的影响,因此将氨氮的测量校正过程看作是求解一个多元非线性回归问题。

首先将氨氮传感器测量输入输出之间的关系抽象成模型

y=f(t,P,x1,x2,…,xi),

(1)

式中:x为传感器输入非目标参量;t和P分别表示温度值和pH值;y为传感器输出量;f为输入与输出之间的映射关系。

实际应用中,氨氮传感器得到一个实际测量值,通过数据校正过程利用其反函数来建立关系式

(t,P)=f-1(x1,x2,…,xi),

(2)

再利用支持向量机来逼近式(2)描述的非线性函数问题,以此来消除氨氮测量过程中对目标参量的影响[4]。 最终,将输入的测试数据通过回归模型进行预测获得更准确的结果。

为了解决本质上非线性回归问题,按图1所示模型(X表示传感器采集的原始数据,一般是多个参数;Y是基于核方法的支持向量机模型补偿后的输出数据,对于此模型而言,Y表示最终的氨氮传感器测量值),利用SVM核函数,将氨氮传感器的影响因素(包括溶液温度、pH值以及数据采集电路自身的影响)作为输入数据, 建立回归校正模型。 引入非线性映射φ,把样本空间η映射到一个高维(甚至是无穷维)的特征空间H(Hilbert空间),在高维空间中进行线性回归运算,从而获得原输入样本空间的非线性回归效果,以达到氨氮传感器非线性补偿效果[5]。

图1 支持向量回归机数据补偿模型框图Fig.1 Support vector regression data compensation model block diagram

2 基于改进粒子群的支持向量机参数优化过程

由于传感器实际测量的数值具有非线性的特性,因此核函数采用同样为非线性的Gauss函数核(也称作径向基核,radial basis function, RBF)[6]:

K(X,Y)=exp(-g‖xi-xj‖2)

(3)

其中,g为核函数的参数,g>0, 默认为1/k(定义k为输入数据的属性的数目), 调整g可改善支持向量机的预测准确度[7]。

2.1 MPSO-SVM优化参数设置

利用改进粒子群(MPSO)对支持向量机(SVM)的参数进行搜索寻优, 在求解支持向量机模型的过程中,惩罚因子C和RBF的核参数g取值恰当与否直接决定了模型的性能:C太大或g太小易造成过度学习, 导致模型泛化,性能变差;C太小或g太大则易产生欠学习现象,即确定参数C和g本质上是一个动态寻优的过程[8]。

利用libsvm工具箱,通过对MPSO-SVM训练, 3个待优化的MPSO-SVM参数:惩罚系数C、径向基核函数参数g、不敏感损失函数系数ε[9](分别用d、g、p表示),得到最佳参数为dbest、gbest、pbest。将MPSO-SVM的3个参数(d,g,p)作为MPSO中粒子的位置xi,可以把支持向量机的参数寻优问题转化为利用MPSO求三维空间中的最优解问题。另外需定义一个性能指标作为目标函数,也即MPSO中用于评价群体中各粒子的适应度。表1列出了粒子群算法的基本参数范围设定情况。

表1 改进粒子群算法的参数范围设置Table 1 Parameter range setting of improved particleswarm optimization

2.2基于MPSO-SVM的计算流程

首先对根据标准溶液测量得到的数据进行归一化,再将处理后的数据作为支持向量机回归模型的输入,进行目标参数的计算,将最终满足适应度条件的计算结果反归一化即可得到目标参数的值,若达不到相应精度则继续利用MPSO寻优重新训练模型[10]。图2为改进粒子群算法进行SVM参数优化计算的详细流程图。

图2 MPSO-SVM参数优化计算流程Fig.2 Parameters optimization calculation process based on MPSO-SVM

3 数据采集与分析

3.1 氨氮检测系统

氨氮检测系统主要由电化学氨氮传感器和数据采集模块组成,传感器直接检测的信号比较微弱,数据采集模块主要是对电化学氨氮传感器信号进行放大、滤波、采样等一系列操作, 实现由微处理器进行初步数据处理,以及与上位机进行交互等功能,图3为氨氮检测系统的主要构成部分的示意框图。

图3氨氮检测系统主要结构框图Fig.3 Main structure block diagram of ammonia detection system

3.2 数据采集及预处理

首先对几种不同标准溶液分别利用氨氮检测系统进行测量,然后分别采用递推平均滤波、IIR数字滤波和卡尔曼滤波3种滤波方式在微处理器里进行数字滤波操作,测量数据包括:当前溶液温度(℃)、利用氨氮传感器采集对应浓度待测溶液的输出电压采样值 (16位AD转换器的实际数据)、经过滤波器后的电压(V)、溶液的pH值,经过3种滤波方法的滤波值,每次分别得到约270组测量数据。部分数据见表2。

表2 数据采集模块采集的部分数据Table 2 Partial data collected by data collection module

采集模块分别采集了3种不同浓度溶液的测量数据,并对3种滤波方法进行了比较(图4)。可知,经过数据采集模块进行电压放大后测得的电压在±20 mV波动,IIR滤波器和卡尔曼滤波都有一定的时延,递推平均滤波方法对应的数据波动更大,其中卡尔曼滤波效果最好。

图4 3种不同滤波方法电压比较Fig.4 Voltage comparison of three different filtering methods

3.3 氨氮传感器的MPSO-SVM函数模型及补偿方法

为降低氨氮传感器的测量误差,建立适应性较好的补偿模型,将适用于非线性模型回归分析的MPSO-SVM算法引入到氨氮传感器模型中[9], 以《水质 氨氮的测定 纳氏试剂分光光度法》(HJ 535—2009)监测的实际值为参照标准,具体如下:在各温度下分别采集不同浓度的多组离散数据作为训练样本,把温度t、pH值P和氨氮检测系统采集的电压U0作为MPSO-SVM算法的输入量,样本集D为

D={(x1,y1),(x2,y2),…,(xi,yi)},

i=1,2,…,n。

(5)

分别采用Grid-SVM、MPSO-SVM和GA-SVM 3种方法对氨氮传感器模型参数寻优过程进行了比较,MPSO-SVM和GA-SVM分别对种群迭代100次,默认采用3-折交叉验证方法检验准确度。按照图2所述的步骤利用MPSO-SVM求解出SVM的最优参数,并且记录寻优过程中的最佳适应度值和平均适应度值,再利用另外两种方法计算出SVM的最优参数,比较3种方法的寻优效果以及数据补偿效果。图5a、b分别显示了MPSO-SVM、GA-SVM在寻优迭代过程中最佳适应度值和平均适应度值与迭代次数的关系;图5c显示了Grid-SVM在寻优过程中适应度值与网格搜索次数的关系(由于网格搜索算法的特点, 随着网格划分的增加, 算法计算复杂度呈指数式增长, 这里显示的只是前600次搜索产生的结果)。

图5 MPSO-SVM、GA-SVM、Grid-SVM方法对参数寻优Fig.5 Parameter optimization of MPSO-SVM,GA-SVMand Grid-SVM

观察3种模型训练过程趋势图(图5),对3种方法回归效果进行比较(表3),可以看出,利用MPSO-SVM算法可以很快地收敛,并且回归效果也是最佳的;GA-SVM能够得到较好的回归效果,但是遗传算法本身需要大量的样本训练,因此,迭代100次之后算法还未能很好收敛,而且也有一定的计算复杂度;Grid-SVM算法取决于目标参量的个数以及网格划分规模,在本文中计算量很大,而且回归效果不如前两种方法。

表3 MPSO-SVM、GA-SVM和Grid-SVM方法回归效果比较Table 3 Regression effects of MPSO-SVM,GA-SVM and Grid-SVM

比较不同非线性回归方法对氨氮测量数据的误差补偿效果。 图6显示了采用四阶多项式回归拟合与MPSO-SVM算法对比回归曲线。可以发现,MPSO-SVM算法补偿得到的数据更加接近原始数据,而多项式回归方法部分数据偏离原始数据较大,表明MPSO-SVM算法回归效果最佳。

图6 不同非线性回归方法对氨氮测量数据误差补偿效果对比Fig.6 Comparison of different non-linear regression methods on error compensation effects of ammonia nitrogen monitoring data

3.4 测量氨氮浓度误差分析

以纳氏试剂-分光光度计国标法监测的实际值为参照标准,测量6组不同浓度的数据作为对比,重复两次测量,表4显示了采用MPSO-SVM算法模型对测量数据的进行补偿以及误差分析的结果。在传感器的有效测量范围内,最大相对误差在±3%左右,表现出良好的补偿效果,并且由于支持向量机小样本训练的特点,因此该数据补偿算法具有一定的泛化能力。

表4 氨氮浓度监测值、MPSO-SVM算法数据补偿结果以及误差分析Table 4 Monitoring value of ammonia nitrogen concentration,MPSO-SVM algorithm data compensation results and error analysis

4 结 论

通过分析氨氮传感器在测量过程中受多种因素的影响, 采用了改进粒子群支持向量机的数据补偿方法, 利用改进的粒子群算法支持向量机建立数据补偿模型, 与基于网格搜索支持向量机和基于遗传算法支持向量机[11]相比, 改进粒子群支持向量机的数据补偿方法效果更佳,算法更容易收敛, 也满足一定的测量精度, 氨气敏电极传感器测量值与真实的相对误差在±3%内, 系统测试体现出较好的稳定性,表现出良好的补偿效果, 且由于支持向量机小样本训练的特点, 该数据补偿算法具有一定的泛化能力, 整个嵌入式开发系统还可以扩展多参数测量系统, 以本地主机作为监测服务器, 提供检测数据对外发布接口, 方便进行数据对外公开。本研究有望用于市政污水处理的过程监控。

猜你喜欢
氨氮向量补偿
悬浮物对水质氨氮测定的影响
向量的分解
聚焦“向量与三角”创新题
无功补偿电容器的应用
解读补偿心理
氧化絮凝技术处理高盐高氨氮废水的实验研究
微生物燃料电池阳极氨氮去除的影响因素
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
间位芳纶生产废水氨氮的强化处理及工程实践