簡智敏
(漳州職業技術學院,機械工程學院,福建 漳州363000)
在城市照明中,由獨立太陽能電池供電的路燈系統已經較多的使用,此系統方便、節能,但是由于太陽能電池的充電情況受到天氣變化及日照強度的影響很大,在使用過程中易出現蓄電池虧電的情況,這樣既影響路燈的照明情況又容易損壞蓄電池,對此的解決辦法可以通過增加蓄電池容量或科學的提高蓄電池的充放電效率來解決,前者會使系統投入大為增加,顯然采用后者更為合理。在系統中要合理的使用蓄電池,需實時跟蹤蓄電池的一個重要參數,即蓄電池的荷電狀態(state of charge,SOC)即剩余容量,該值決定了系統中放電功率的大小,影響著電池管理系統策略方案,因此準確檢測蓄電池的SOC尤為關鍵。
影響蓄電池SOC的因素有多個,其中主要是蓄電池溫度、蓄電池端電壓、電池內阻、充電電流、放電電流、放電率和初始剩余容量等[1],但是蓄電池的SOC是其內部特性,不能直接測量,特別是蓄電池在充放電過程中表現出來的高度非線性,使得要建立一個完全符合其特性的數學模型幾乎是不可能的,這也是得電池容量很難精確估算出來。
傳統的SOC估算法包括放電試驗法、安時法、開路電壓法、內阻法,近年來又出現了很多新型算法,包括卡爾曼濾波法、神經網絡法、模糊算法等[2-3]。放電試驗法是將蓄電池進行持續的恒流放電直到電池的截止電壓,將此放電過程所用的時間乘以放電電流的大小值,即作為電池的剩余容量,此法簡單可靠,但是費時且不適用于工作狀態的蓄電池[3]。安時法又稱電流積分法,是通過對蓄電池的電流進行測量,在一定時間內積分所得輸入或輸出電量,將其處于蓄電池的額定容量,此法簡單穩定,但是對所測量電流的精度要求高,若測量不精確則會造成累積誤差[4-6]。開路電壓法是通過測量蓄電池開路電壓,根據開路電壓與SOC的對應關系得到蓄電池剩余電量,但是不適用于工作狀態中的蓄電池,常用來作為一些算法的補充[4-6]。內阻法是根據蓄電池內阻與SOC的函數對應關系來獲得SOC,但是蓄電池的內阻很容易受到各種因素的影響,使得精度受影響[7]??柭鼮V波法是對蓄電池內部狀態做出最小方差的最優估計,該法精度高,適用于各種狀態下的蓄電池,但是需要確定準確的模型,且運算量大[5,8]。神經網絡算法和模糊算法是目前的主要智能控制法,都是不依賴于模型的自適應估算器,通過提供輸入和輸出樣本,可獲得輸入與輸出的關系。
由于電池的非線性特性,上述提到的幾種傳統估算法只對其中一種因素找映射關系,測出來的精度較為有限。神經網絡本身具有非線性、并行結構且具有很強的自適應能力和學習能力,因此采用神經網絡算法來估算蓄電池剩余容量,可以較好的解決非線性問題,獲得較為精確的結果,本系統采用基于RBF神經網絡的算法來實現對蓄電池剩余容量的估算。
RBF神經網絡是一種局部逼近的前饋型神經網絡,包括輸入層、隱層和輸出層三層,具體結構如圖1所示[9]。

圖1 RBF神經網絡模型示意圖
圖 1 中輸入層 X=(x1,x2,...,xn)T表示網絡的輸入矢量,輸入神經元個數為n,用來傳輸信號,其節點個數由系統輸入變量個數決定。隱含層實現輸入信號的映射,其神經元由徑向基函數構成,隱含層單元數目根據具體需求進行設定,ci為隱含層中心的大小,h為數據中心個數,隱含層的函數φi()表示將第i個隱含層節點被激活;Wik是連接網絡隱含層和輸出層的權值,該值與激活函數值的乘積之和即為輸出值大小。Y=(y1,y2,...,ym)T表示網絡的輸出矢量,輸出神經元個數為m,輸出層由隱含層單元通過線性加權所得。
隱含層的激活函數可以由多種徑向函數構成,其中的高斯函數由于其對稱、光滑且存在各階導數的優點而被廣泛應用。高斯函數在RBF網絡中用式(1)表示。

式中:x為輸入向量,維數為n,ci為第i個函數的數據中心,‖x-ci‖為向量x-ci的范數,即x和ci之間的距離,σi為隱層第i個神經元基函數的寬度,即中心寬度。
RBF網絡輸出層的第k個神經元輸出用式(2)表示。

式中:yk為單個神經元輸出,m為神經元總數,wik為輸出權值。
預測模型的精度決定所建立模型的準確性,通常采用均方根誤差RMSE和確定系數R2來判定所建模型的準確性[10]。均方根誤差RMSE(Root Mean Squared Error)和確定系數R2(R-square)的數學形式如式(3)、式(4)所示。

上面兩個式子中,n是樣本點的數量,yi為測量所得真實值,yˉi是真實值的平均值,y?i是模型估計值,wi是權值。RMSE代表估計值與真實值之間的誤差,其值越接近于0,說明估計值與真實值越接近,模型預估效果越好。確定系數R2表示模型擬合的好壞程度,越接近1,說明模型對數據擬合越好,估計值與真實值越接近。
在使用RBF神經網絡過程中,網絡所對應的輸入層、中間層和輸出層的各層神經元的個數根據要解決的問題的實際情況而定。一般輸入層線性函數,在對蓄電池的SOC的估算過程中訓練的網絡模型,其輸入量為電池SOC的影響因素,這里選取蓄電池的端電壓、放電電流、蓄電池內阻和溫度;中間層結構通常較為復雜,且其程度決定了電池SOC估算的精確度;輸出層是線性的,這里網絡輸出即SOC。由此可以得到函數關系為SOC=f(U,i,R,T),網絡模型如圖2所示。

圖2 RBF神經網絡模型圖
神經網絡估算方法中,神經元訓練數據的可靠度直接影響著估算精度。為了獲得可靠的動態樣本對網絡進行訓練,構建蓄電池放電結構圖,如圖3所示。

圖3 蓄電池放電結構圖
選用12V/45AH的閥控式鉛酸蓄電池,蓄電池端電壓、內阻和剩余電量采用型號為DY-3015C的內阻測試儀測得,電流通過數字萬用表測得,溫度采樣蓄電池外殼的溫度,它相對較準確反映蓄電池實際溫度,通過優利德UT320D接觸式帶探頭溫度表測得。由于項目成果最終要在室外使用,為了取得合適的樣本,在10℃~35℃之間,通過改變負載阻值實現恒流放電,測試時為了避免蓄電池過放電影響壽命,實驗過程中蓄電池端電壓不低于10.7 V,負載電阻分別設定為36 Ω、22 Ω和10 Ω,測得蓄電池放電時的在線數據,每組電阻放電時即不同放電率時各獲取200組數據,表1是其中的小部分數據。

表1 部分用于RBF訓練的數據
由于所測得的各項數據量綱不同,要將其作為樣本用于網絡的訓練,首先要對其進行歸一化處理,讓其基本度量單位統一,不僅有利于處理,同時也加快了網絡訓練的收斂速度[9],本文的歸一化采用minmax規范化方法將原始數據處理成[0,1]之間的新數據,歸一化處理公式如式(5)所示。

式中,max(Y)為樣本最大值,min(Y)為樣本最小值,Yi為歸一化之前的數據,yi為歸一化之后的數據。
訓練結束后,欲得到原先的真實數據,只需要將輸出的結果進行反歸一化,反歸一化方法用式(6)實現,即

將反歸一化后得到的數據與驗證數據中的輸出數據作對比,檢測網絡的可用性。本文選擇的待歸一化目標向量為 X=[電壓(U),電流(I),內阻(R),溫度(T)],而需要進行反歸一化的輸出向量為電池剩余電量SOC。
本文選用MATLAB作為系統仿真平臺,將以上測得的蓄電池端電壓、放電電流、內阻、環境溫度這些樣本數據輸入,采用系統自帶的函數newrb()創建RBF神經網絡,模擬仿真預測用sim()實現,函數式子如式(7)所示。

式中P、T、goal分別為輸入數據、輸出數據、均方誤差的目標,其中goal默認為0,此處設為0.001,spread為徑向基函數的分布密度,該值的大小影響網絡逼近精度,該值越大,函數的擬合就越平滑,但是過大又需要很多神經元來適應函數的緩慢變化,因此在使用時需要對其大小進行不斷嘗試,這里最終確定該值取0.05,MN為網絡神經元最大數目,DF為每次創建時所添加的神經元數目,在創建過程中,函數會根據誤差不斷向隱層添加神經元,直到誤差滿足要求為止。
網絡訓練過程其實就是確定各參數的一個過程,在訓練過程中采用了混合學習的方法,正向學習中對各隱層的數據中心值ci和隱層中心寬度σi采用k-均值聚類算法來確定,隱層中心寬度σi得出后再采用遺傳算法進行優化;反向學習中對輸出層連接權值wik采用正交最小二乘法求出;最后再對隱含層和輸出層的參數進行校正,進一步提高網絡的逼近精度,由此獲得網絡的最佳結構。
網絡模型的各參數確定之后,將之前測得的200組數據,隨機抽取其中160組和40組,其中160組的作為訓練樣本,剩余40組的作為測試樣本,網絡對蓄電池剩余電量預測的訓練過程圖如圖4所示,圖5為網絡預測結果,表2為部分實際數值與預測值的相對誤差表。

圖4 網絡訓練過程

圖5 網絡預測結果

表2 部分實際數值與預測值相對誤差表
由圖4可知,均方差值隨著迭代次數的增加而不斷減小,在函數中已經將均方差設為0.001,只有當達到這個要求,網絡才停止訓練,可知訓練樣本總共經過了84次的迭代運算達到要求。圖5的預測結果顯示,網絡預測數值與測得的原始數據曲線擬合得較好,當電壓較高時誤差較大,這是由于蓄電池在放電前期電壓變化較慢,造成SOC估算較為困難,當電壓較低時,電壓變化較慢,估算值和測量值就很接近,該RBF神經網絡預測模型精度高,其中確定系數R2為 0.9232,RMSE的值為0.000 001。由表2也可得到實際值與預測值之間的相對誤差在一個很小的區間內。由這些實際值與預測值接近程度可知利用文中采用的RBF網絡預測法獲得了很好的泛化能力。
本文利用RBF神經網絡對鉛酸蓄電池的剩余電量進行估計,實現過程表明該模型具有良好的網絡訓練能力,估計結果表明它的精度和泛化能力保持在一個比較合理及理想的水平,將此網絡模型應用在太陽能路燈系統中,可以預見性的對蓄電池的充放電情況進行合理安排,使路燈的照明情況實現更好智能控制,該預測模型對于在其他領域內對蓄電池的應用控制也有一定的實用價值。