韓 劍,莫德清,汪 楠
(1.桂林電子科技大學(xué)信息科技學(xué)院, 廣西 桂林 541004; 2.桂林電子科技大學(xué) 生命與環(huán)境科學(xué)學(xué)院, 廣西 桂林 541004)
目前,氨氮傳感器主要是利用電化學(xué)原理,通過測量電勢,建立電勢與氨氮濃度之間的關(guān)系式獲得氨氮濃度。對于溶液中pH值和溫度的影響,一般采用電化學(xué)中的能斯特方程進(jìn)行計算[1]。 但是受氨氮傳感器自身因素以及測量環(huán)境等影響, 傳感器數(shù)據(jù)輸出呈現(xiàn)非線性特點(diǎn)。 因此, 直接得到的測量數(shù)據(jù)并不可靠, 有必要對氨氮傳感器測量的數(shù)據(jù)進(jìn)行校正。
鑒于此,本文將改進(jìn)的粒子群參數(shù)尋優(yōu)算法(MPSO-SVM)引入到氨氮傳感器模型中[2],以降低氨氮傳感器的測量誤差,建立適應(yīng)性良好的補(bǔ)償模型。通過取不同梯度濃度值, 分別測量約270組數(shù)據(jù),建立支持向量回歸校正模型[3],進(jìn)行數(shù)據(jù)校正,本質(zhì)上解決非線性回歸問題。
在氨氮傳感器測量過程中考慮實(shí)際測量環(huán)境復(fù)雜多樣,測量結(jié)果受多種因素的影響,因此將氨氮的測量校正過程看作是求解一個多元非線性回歸問題。
首先將氨氮傳感器測量輸入輸出之間的關(guān)系抽象成模型
y=f(t,P,x1,x2,…,xi),
(1)
式中:x為傳感器輸入非目標(biāo)參量;t和P分別表示溫度值和pH值;y為傳感器輸出量;f為輸入與輸出之間的映射關(guān)系。
實(shí)際應(yīng)用中,氨氮傳感器得到一個實(shí)際測量值,通過數(shù)據(jù)校正過程利用其反函數(shù)來建立關(guān)系式
(t,P)=f-1(x1,x2,…,xi),
(2)
再利用支持向量機(jī)來逼近式(2)描述的非線性函數(shù)問題,以此來消除氨氮測量過程中對目標(biāo)參量的影響[4]。 最終,將輸入的測試數(shù)據(jù)通過回歸模型進(jìn)行預(yù)測獲得更準(zhǔn)確的結(jié)果。
為了解決本質(zhì)上非線性回歸問題,按圖1所示模型(X表示傳感器采集的原始數(shù)據(jù),一般是多個參數(shù);Y是基于核方法的支持向量機(jī)模型補(bǔ)償后的輸出數(shù)據(jù),對于此模型而言,Y表示最終的氨氮傳感器測量值),利用SVM核函數(shù),將氨氮傳感器的影響因素(包括溶液溫度、pH值以及數(shù)據(jù)采集電路自身的影響)作為輸入數(shù)據(jù), 建立回歸校正模型。 引入非線性映射φ,把樣本空間η映射到一個高維(甚至是無窮維)的特征空間H(Hilbert空間),在高維空間中進(jìn)行線性回歸運(yùn)算,從而獲得原輸入樣本空間的非線性回歸效果,以達(dá)到氨氮傳感器非線性補(bǔ)償效果[5]。
圖1 支持向量回歸機(jī)數(shù)據(jù)補(bǔ)償模型框圖Fig.1 Support vector regression data compensation model block diagram
由于傳感器實(shí)際測量的數(shù)值具有非線性的特性,因此核函數(shù)采用同樣為非線性的Gauss函數(shù)核(也稱作徑向基核,radial basis function, RBF)[6]:
K(X,Y)=exp(-g‖xi-xj‖2)
(3)
其中,g為核函數(shù)的參數(shù),g>0, 默認(rèn)為1/k(定義k為輸入數(shù)據(jù)的屬性的數(shù)目), 調(diào)整g可改善支持向量機(jī)的預(yù)測準(zhǔn)確度[7]。
利用改進(jìn)粒子群(MPSO)對支持向量機(jī)(SVM)的參數(shù)進(jìn)行搜索尋優(yōu), 在求解支持向量機(jī)模型的過程中,懲罰因子C和RBF的核參數(shù)g取值恰當(dāng)與否直接決定了模型的性能:C太大或g太小易造成過度學(xué)習(xí), 導(dǎo)致模型泛化,性能變差;C太小或g太大則易產(chǎn)生欠學(xué)習(xí)現(xiàn)象,即確定參數(shù)C和g本質(zhì)上是一個動態(tài)尋優(yōu)的過程[8]。
利用libsvm工具箱,通過對MPSO-SVM訓(xùn)練, 3個待優(yōu)化的MPSO-SVM參數(shù):懲罰系數(shù)C、徑向基核函數(shù)參數(shù)g、不敏感損失函數(shù)系數(shù)ε[9](分別用d、g、p表示),得到最佳參數(shù)為dbest、gbest、pbest。將MPSO-SVM的3個參數(shù)(d,g,p)作為MPSO中粒子的位置xi,可以把支持向量機(jī)的參數(shù)尋優(yōu)問題轉(zhuǎn)化為利用MPSO求三維空間中的最優(yōu)解問題。另外需定義一個性能指標(biāo)作為目標(biāo)函數(shù),也即MPSO中用于評價群體中各粒子的適應(yīng)度。表1列出了粒子群算法的基本參數(shù)范圍設(shè)定情況。
表1 改進(jìn)粒子群算法的參數(shù)范圍設(shè)置Table 1 Parameter range setting of improved particleswarm optimization
首先對根據(jù)標(biāo)準(zhǔn)溶液測量得到的數(shù)據(jù)進(jìn)行歸一化,再將處理后的數(shù)據(jù)作為支持向量機(jī)回歸模型的輸入,進(jìn)行目標(biāo)參數(shù)的計算,將最終滿足適應(yīng)度條件的計算結(jié)果反歸一化即可得到目標(biāo)參數(shù)的值,若達(dá)不到相應(yīng)精度則繼續(xù)利用MPSO尋優(yōu)重新訓(xùn)練模型[10]。圖2為改進(jìn)粒子群算法進(jìn)行SVM參數(shù)優(yōu)化計算的詳細(xì)流程圖。
圖2 MPSO-SVM參數(shù)優(yōu)化計算流程Fig.2 Parameters optimization calculation process based on MPSO-SVM
氨氮檢測系統(tǒng)主要由電化學(xué)氨氮傳感器和數(shù)據(jù)采集模塊組成,傳感器直接檢測的信號比較微弱,數(shù)據(jù)采集模塊主要是對電化學(xué)氨氮傳感器信號進(jìn)行放大、濾波、采樣等一系列操作, 實(shí)現(xiàn)由微處理器進(jìn)行初步數(shù)據(jù)處理,以及與上位機(jī)進(jìn)行交互等功能,圖3為氨氮檢測系統(tǒng)的主要構(gòu)成部分的示意框圖。
圖3氨氮檢測系統(tǒng)主要結(jié)構(gòu)框圖Fig.3 Main structure block diagram of ammonia detection system
首先對幾種不同標(biāo)準(zhǔn)溶液分別利用氨氮檢測系統(tǒng)進(jìn)行測量,然后分別采用遞推平均濾波、IIR數(shù)字濾波和卡爾曼濾波3種濾波方式在微處理器里進(jìn)行數(shù)字濾波操作,測量數(shù)據(jù)包括:當(dāng)前溶液溫度(℃)、利用氨氮傳感器采集對應(yīng)濃度待測溶液的輸出電壓采樣值 (16位AD轉(zhuǎn)換器的實(shí)際數(shù)據(jù))、經(jīng)過濾波器后的電壓(V)、溶液的pH值,經(jīng)過3種濾波方法的濾波值,每次分別得到約270組測量數(shù)據(jù)。部分?jǐn)?shù)據(jù)見表2。
表2 數(shù)據(jù)采集模塊采集的部分?jǐn)?shù)據(jù)Table 2 Partial data collected by data collection module
采集模塊分別采集了3種不同濃度溶液的測量數(shù)據(jù),并對3種濾波方法進(jìn)行了比較(圖4)??芍?經(jīng)過數(shù)據(jù)采集模塊進(jìn)行電壓放大后測得的電壓在±20 mV波動,IIR濾波器和卡爾曼濾波都有一定的時延,遞推平均濾波方法對應(yīng)的數(shù)據(jù)波動更大,其中卡爾曼濾波效果最好。
圖4 3種不同濾波方法電壓比較Fig.4 Voltage comparison of three different filtering methods
為降低氨氮傳感器的測量誤差,建立適應(yīng)性較好的補(bǔ)償模型,將適用于非線性模型回歸分析的MPSO-SVM算法引入到氨氮傳感器模型中[9], 以《水質(zhì) 氨氮的測定 納氏試劑分光光度法》(HJ 535—2009)監(jiān)測的實(shí)際值為參照標(biāo)準(zhǔn),具體如下:在各溫度下分別采集不同濃度的多組離散數(shù)據(jù)作為訓(xùn)練樣本,把溫度t、pH值P和氨氮檢測系統(tǒng)采集的電壓U0作為MPSO-SVM算法的輸入量,樣本集D為
D={(x1,y1),(x2,y2),…,(xi,yi)},
i=1,2,…,n。
(5)
分別采用Grid-SVM、MPSO-SVM和GA-SVM 3種方法對氨氮傳感器模型參數(shù)尋優(yōu)過程進(jìn)行了比較,MPSO-SVM和GA-SVM分別對種群迭代100次,默認(rèn)采用3-折交叉驗(yàn)證方法檢驗(yàn)準(zhǔn)確度。按照圖2所述的步驟利用MPSO-SVM求解出SVM的最優(yōu)參數(shù),并且記錄尋優(yōu)過程中的最佳適應(yīng)度值和平均適應(yīng)度值,再利用另外兩種方法計算出SVM的最優(yōu)參數(shù),比較3種方法的尋優(yōu)效果以及數(shù)據(jù)補(bǔ)償效果。圖5a、b分別顯示了MPSO-SVM、GA-SVM在尋優(yōu)迭代過程中最佳適應(yīng)度值和平均適應(yīng)度值與迭代次數(shù)的關(guān)系;圖5c顯示了Grid-SVM在尋優(yōu)過程中適應(yīng)度值與網(wǎng)格搜索次數(shù)的關(guān)系(由于網(wǎng)格搜索算法的特點(diǎn), 隨著網(wǎng)格劃分的增加, 算法計算復(fù)雜度呈指數(shù)式增長, 這里顯示的只是前600次搜索產(chǎn)生的結(jié)果)。
圖5 MPSO-SVM、GA-SVM、Grid-SVM方法對參數(shù)尋優(yōu)Fig.5 Parameter optimization of MPSO-SVM,GA-SVMand Grid-SVM
觀察3種模型訓(xùn)練過程趨勢圖(圖5),對3種方法回歸效果進(jìn)行比較(表3),可以看出,利用MPSO-SVM算法可以很快地收斂,并且回歸效果也是最佳的;GA-SVM能夠得到較好的回歸效果,但是遺傳算法本身需要大量的樣本訓(xùn)練,因此,迭代100次之后算法還未能很好收斂,而且也有一定的計算復(fù)雜度;Grid-SVM算法取決于目標(biāo)參量的個數(shù)以及網(wǎng)格劃分規(guī)模,在本文中計算量很大,而且回歸效果不如前兩種方法。
表3 MPSO-SVM、GA-SVM和Grid-SVM方法回歸效果比較Table 3 Regression effects of MPSO-SVM,GA-SVM and Grid-SVM
比較不同非線性回歸方法對氨氮測量數(shù)據(jù)的誤差補(bǔ)償效果。 圖6顯示了采用四階多項(xiàng)式回歸擬合與MPSO-SVM算法對比回歸曲線。可以發(fā)現(xiàn),MPSO-SVM算法補(bǔ)償?shù)玫降臄?shù)據(jù)更加接近原始數(shù)據(jù),而多項(xiàng)式回歸方法部分?jǐn)?shù)據(jù)偏離原始數(shù)據(jù)較大,表明MPSO-SVM算法回歸效果最佳。
圖6 不同非線性回歸方法對氨氮測量數(shù)據(jù)誤差補(bǔ)償效果對比Fig.6 Comparison of different non-linear regression methods on error compensation effects of ammonia nitrogen monitoring data
以納氏試劑-分光光度計國標(biāo)法監(jiān)測的實(shí)際值為參照標(biāo)準(zhǔn),測量6組不同濃度的數(shù)據(jù)作為對比,重復(fù)兩次測量,表4顯示了采用MPSO-SVM算法模型對測量數(shù)據(jù)的進(jìn)行補(bǔ)償以及誤差分析的結(jié)果。在傳感器的有效測量范圍內(nèi),最大相對誤差在±3%左右,表現(xiàn)出良好的補(bǔ)償效果,并且由于支持向量機(jī)小樣本訓(xùn)練的特點(diǎn),因此該數(shù)據(jù)補(bǔ)償算法具有一定的泛化能力。
表4 氨氮濃度監(jiān)測值、MPSO-SVM算法數(shù)據(jù)補(bǔ)償結(jié)果以及誤差分析Table 4 Monitoring value of ammonia nitrogen concentration,MPSO-SVM algorithm data compensation results and error analysis
通過分析氨氮傳感器在測量過程中受多種因素的影響, 采用了改進(jìn)粒子群支持向量機(jī)的數(shù)據(jù)補(bǔ)償方法, 利用改進(jìn)的粒子群算法支持向量機(jī)建立數(shù)據(jù)補(bǔ)償模型, 與基于網(wǎng)格搜索支持向量機(jī)和基于遺傳算法支持向量機(jī)[11]相比, 改進(jìn)粒子群支持向量機(jī)的數(shù)據(jù)補(bǔ)償方法效果更佳,算法更容易收斂, 也滿足一定的測量精度, 氨氣敏電極傳感器測量值與真實(shí)的相對誤差在±3%內(nèi), 系統(tǒng)測試體現(xiàn)出較好的穩(wěn)定性,表現(xiàn)出良好的補(bǔ)償效果, 且由于支持向量機(jī)小樣本訓(xùn)練的特點(diǎn), 該數(shù)據(jù)補(bǔ)償算法具有一定的泛化能力, 整個嵌入式開發(fā)系統(tǒng)還可以擴(kuò)展多參數(shù)測量系統(tǒng), 以本地主機(jī)作為監(jiān)測服務(wù)器, 提供檢測數(shù)據(jù)對外發(fā)布接口, 方便進(jìn)行數(shù)據(jù)對外公開。本研究有望用于市政污水處理的過程監(jiān)控。