簡(jiǎn)智敏
(漳州職業(yè)技術(shù)學(xué)院,機(jī)械工程學(xué)院,福建 漳州363000)
在城市照明中,由獨(dú)立太陽能電池供電的路燈系統(tǒng)已經(jīng)較多的使用,此系統(tǒng)方便、節(jié)能,但是由于太陽能電池的充電情況受到天氣變化及日照強(qiáng)度的影響很大,在使用過程中易出現(xiàn)蓄電池虧電的情況,這樣既影響路燈的照明情況又容易損壞蓄電池,對(duì)此的解決辦法可以通過增加蓄電池容量或科學(xué)的提高蓄電池的充放電效率來解決,前者會(huì)使系統(tǒng)投入大為增加,顯然采用后者更為合理。在系統(tǒng)中要合理的使用蓄電池,需實(shí)時(shí)跟蹤蓄電池的一個(gè)重要參數(shù),即蓄電池的荷電狀態(tài)(state of charge,SOC)即剩余容量,該值決定了系統(tǒng)中放電功率的大小,影響著電池管理系統(tǒng)策略方案,因此準(zhǔn)確檢測(cè)蓄電池的SOC尤為關(guān)鍵。
影響蓄電池SOC的因素有多個(gè),其中主要是蓄電池溫度、蓄電池端電壓、電池內(nèi)阻、充電電流、放電電流、放電率和初始剩余容量等[1],但是蓄電池的SOC是其內(nèi)部特性,不能直接測(cè)量,特別是蓄電池在充放電過程中表現(xiàn)出來的高度非線性,使得要建立一個(gè)完全符合其特性的數(shù)學(xué)模型幾乎是不可能的,這也是得電池容量很難精確估算出來。
傳統(tǒng)的SOC估算法包括放電試驗(yàn)法、安時(shí)法、開路電壓法、內(nèi)阻法,近年來又出現(xiàn)了很多新型算法,包括卡爾曼濾波法、神經(jīng)網(wǎng)絡(luò)法、模糊算法等[2-3]。放電試驗(yàn)法是將蓄電池進(jìn)行持續(xù)的恒流放電直到電池的截止電壓,將此放電過程所用的時(shí)間乘以放電電流的大小值,即作為電池的剩余容量,此法簡(jiǎn)單可靠,但是費(fèi)時(shí)且不適用于工作狀態(tài)的蓄電池[3]。安時(shí)法又稱電流積分法,是通過對(duì)蓄電池的電流進(jìn)行測(cè)量,在一定時(shí)間內(nèi)積分所得輸入或輸出電量,將其處于蓄電池的額定容量,此法簡(jiǎn)單穩(wěn)定,但是對(duì)所測(cè)量電流的精度要求高,若測(cè)量不精確則會(huì)造成累積誤差[4-6]。開路電壓法是通過測(cè)量蓄電池開路電壓,根據(jù)開路電壓與SOC的對(duì)應(yīng)關(guān)系得到蓄電池剩余電量,但是不適用于工作狀態(tài)中的蓄電池,常用來作為一些算法的補(bǔ)充[4-6]。內(nèi)阻法是根據(jù)蓄電池內(nèi)阻與SOC的函數(shù)對(duì)應(yīng)關(guān)系來獲得SOC,但是蓄電池的內(nèi)阻很容易受到各種因素的影響,使得精度受影響[7]??柭鼮V波法是對(duì)蓄電池內(nèi)部狀態(tài)做出最小方差的最優(yōu)估計(jì),該法精度高,適用于各種狀態(tài)下的蓄電池,但是需要確定準(zhǔn)確的模型,且運(yùn)算量大[5,8]。神經(jīng)網(wǎng)絡(luò)算法和模糊算法是目前的主要智能控制法,都是不依賴于模型的自適應(yīng)估算器,通過提供輸入和輸出樣本,可獲得輸入與輸出的關(guān)系。
由于電池的非線性特性,上述提到的幾種傳統(tǒng)估算法只對(duì)其中一種因素找映射關(guān)系,測(cè)出來的精度較為有限。神經(jīng)網(wǎng)絡(luò)本身具有非線性、并行結(jié)構(gòu)且具有很強(qiáng)的自適應(yīng)能力和學(xué)習(xí)能力,因此采用神經(jīng)網(wǎng)絡(luò)算法來估算蓄電池剩余容量,可以較好的解決非線性問題,獲得較為精確的結(jié)果,本系統(tǒng)采用基于RBF神經(jīng)網(wǎng)絡(luò)的算法來實(shí)現(xiàn)對(duì)蓄電池剩余容量的估算。
RBF神經(jīng)網(wǎng)絡(luò)是一種局部逼近的前饋型神經(jīng)網(wǎng)絡(luò),包括輸入層、隱層和輸出層三層,具體結(jié)構(gòu)如圖1所示[9]。
圖1 RBF神經(jīng)網(wǎng)絡(luò)模型示意圖
圖 1 中輸入層 X=(x1,x2,...,xn)T表示網(wǎng)絡(luò)的輸入矢量,輸入神經(jīng)元個(gè)數(shù)為n,用來傳輸信號(hào),其節(jié)點(diǎn)個(gè)數(shù)由系統(tǒng)輸入變量個(gè)數(shù)決定。隱含層實(shí)現(xiàn)輸入信號(hào)的映射,其神經(jīng)元由徑向基函數(shù)構(gòu)成,隱含層單元數(shù)目根據(jù)具體需求進(jìn)行設(shè)定,ci為隱含層中心的大小,h為數(shù)據(jù)中心個(gè)數(shù),隱含層的函數(shù)φi()表示將第i個(gè)隱含層節(jié)點(diǎn)被激活;Wik是連接網(wǎng)絡(luò)隱含層和輸出層的權(quán)值,該值與激活函數(shù)值的乘積之和即為輸出值大小。Y=(y1,y2,...,ym)T表示網(wǎng)絡(luò)的輸出矢量,輸出神經(jīng)元個(gè)數(shù)為m,輸出層由隱含層單元通過線性加權(quán)所得。
隱含層的激活函數(shù)可以由多種徑向函數(shù)構(gòu)成,其中的高斯函數(shù)由于其對(duì)稱、光滑且存在各階導(dǎo)數(shù)的優(yōu)點(diǎn)而被廣泛應(yīng)用。高斯函數(shù)在RBF網(wǎng)絡(luò)中用式(1)表示。
式中:x為輸入向量,維數(shù)為n,ci為第i個(gè)函數(shù)的數(shù)據(jù)中心,‖x-ci‖為向量x-ci的范數(shù),即x和ci之間的距離,σi為隱層第i個(gè)神經(jīng)元基函數(shù)的寬度,即中心寬度。
RBF網(wǎng)絡(luò)輸出層的第k個(gè)神經(jīng)元輸出用式(2)表示。
式中:yk為單個(gè)神經(jīng)元輸出,m為神經(jīng)元總數(shù),wik為輸出權(quán)值。
預(yù)測(cè)模型的精度決定所建立模型的準(zhǔn)確性,通常采用均方根誤差RMSE和確定系數(shù)R2來判定所建模型的準(zhǔn)確性[10]。均方根誤差RMSE(Root Mean Squared Error)和確定系數(shù)R2(R-square)的數(shù)學(xué)形式如式(3)、式(4)所示。
上面兩個(gè)式子中,n是樣本點(diǎn)的數(shù)量,yi為測(cè)量所得真實(shí)值,yˉi是真實(shí)值的平均值,y?i是模型估計(jì)值,wi是權(quán)值。RMSE代表估計(jì)值與真實(shí)值之間的誤差,其值越接近于0,說明估計(jì)值與真實(shí)值越接近,模型預(yù)估效果越好。確定系數(shù)R2表示模型擬合的好壞程度,越接近1,說明模型對(duì)數(shù)據(jù)擬合越好,估計(jì)值與真實(shí)值越接近。
在使用RBF神經(jīng)網(wǎng)絡(luò)過程中,網(wǎng)絡(luò)所對(duì)應(yīng)的輸入層、中間層和輸出層的各層神經(jīng)元的個(gè)數(shù)根據(jù)要解決的問題的實(shí)際情況而定。一般輸入層線性函數(shù),在對(duì)蓄電池的SOC的估算過程中訓(xùn)練的網(wǎng)絡(luò)模型,其輸入量為電池SOC的影響因素,這里選取蓄電池的端電壓、放電電流、蓄電池內(nèi)阻和溫度;中間層結(jié)構(gòu)通常較為復(fù)雜,且其程度決定了電池SOC估算的精確度;輸出層是線性的,這里網(wǎng)絡(luò)輸出即SOC。由此可以得到函數(shù)關(guān)系為SOC=f(U,i,R,T),網(wǎng)絡(luò)模型如圖2所示。
圖2 RBF神經(jīng)網(wǎng)絡(luò)模型圖
神經(jīng)網(wǎng)絡(luò)估算方法中,神經(jīng)元訓(xùn)練數(shù)據(jù)的可靠度直接影響著估算精度。為了獲得可靠的動(dòng)態(tài)樣本對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,構(gòu)建蓄電池放電結(jié)構(gòu)圖,如圖3所示。
圖3 蓄電池放電結(jié)構(gòu)圖
選用12V/45AH的閥控式鉛酸蓄電池,蓄電池端電壓、內(nèi)阻和剩余電量采用型號(hào)為DY-3015C的內(nèi)阻測(cè)試儀測(cè)得,電流通過數(shù)字萬用表測(cè)得,溫度采樣蓄電池外殼的溫度,它相對(duì)較準(zhǔn)確反映蓄電池實(shí)際溫度,通過優(yōu)利德UT320D接觸式帶探頭溫度表測(cè)得。由于項(xiàng)目成果最終要在室外使用,為了取得合適的樣本,在10℃~35℃之間,通過改變負(fù)載阻值實(shí)現(xiàn)恒流放電,測(cè)試時(shí)為了避免蓄電池過放電影響壽命,實(shí)驗(yàn)過程中蓄電池端電壓不低于10.7 V,負(fù)載電阻分別設(shè)定為36 Ω、22 Ω和10 Ω,測(cè)得蓄電池放電時(shí)的在線數(shù)據(jù),每組電阻放電時(shí)即不同放電率時(shí)各獲取200組數(shù)據(jù),表1是其中的小部分?jǐn)?shù)據(jù)。
表1 部分用于RBF訓(xùn)練的數(shù)據(jù)
由于所測(cè)得的各項(xiàng)數(shù)據(jù)量綱不同,要將其作為樣本用于網(wǎng)絡(luò)的訓(xùn)練,首先要對(duì)其進(jìn)行歸一化處理,讓其基本度量單位統(tǒng)一,不僅有利于處理,同時(shí)也加快了網(wǎng)絡(luò)訓(xùn)練的收斂速度[9],本文的歸一化采用minmax規(guī)范化方法將原始數(shù)據(jù)處理成[0,1]之間的新數(shù)據(jù),歸一化處理公式如式(5)所示。
式中,max(Y)為樣本最大值,min(Y)為樣本最小值,Yi為歸一化之前的數(shù)據(jù),yi為歸一化之后的數(shù)據(jù)。
訓(xùn)練結(jié)束后,欲得到原先的真實(shí)數(shù)據(jù),只需要將輸出的結(jié)果進(jìn)行反歸一化,反歸一化方法用式(6)實(shí)現(xiàn),即
將反歸一化后得到的數(shù)據(jù)與驗(yàn)證數(shù)據(jù)中的輸出數(shù)據(jù)作對(duì)比,檢測(cè)網(wǎng)絡(luò)的可用性。本文選擇的待歸一化目標(biāo)向量為 X=[電壓(U),電流(I),內(nèi)阻(R),溫度(T)],而需要進(jìn)行反歸一化的輸出向量為電池剩余電量SOC。
本文選用MATLAB作為系統(tǒng)仿真平臺(tái),將以上測(cè)得的蓄電池端電壓、放電電流、內(nèi)阻、環(huán)境溫度這些樣本數(shù)據(jù)輸入,采用系統(tǒng)自帶的函數(shù)newrb()創(chuàng)建RBF神經(jīng)網(wǎng)絡(luò),模擬仿真預(yù)測(cè)用sim()實(shí)現(xiàn),函數(shù)式子如式(7)所示。
式中P、T、goal分別為輸入數(shù)據(jù)、輸出數(shù)據(jù)、均方誤差的目標(biāo),其中g(shù)oal默認(rèn)為0,此處設(shè)為0.001,spread為徑向基函數(shù)的分布密度,該值的大小影響網(wǎng)絡(luò)逼近精度,該值越大,函數(shù)的擬合就越平滑,但是過大又需要很多神經(jīng)元來適應(yīng)函數(shù)的緩慢變化,因此在使用時(shí)需要對(duì)其大小進(jìn)行不斷嘗試,這里最終確定該值取0.05,MN為網(wǎng)絡(luò)神經(jīng)元最大數(shù)目,DF為每次創(chuàng)建時(shí)所添加的神經(jīng)元數(shù)目,在創(chuàng)建過程中,函數(shù)會(huì)根據(jù)誤差不斷向隱層添加神經(jīng)元,直到誤差滿足要求為止。
網(wǎng)絡(luò)訓(xùn)練過程其實(shí)就是確定各參數(shù)的一個(gè)過程,在訓(xùn)練過程中采用了混合學(xué)習(xí)的方法,正向?qū)W習(xí)中對(duì)各隱層的數(shù)據(jù)中心值ci和隱層中心寬度σi采用k-均值聚類算法來確定,隱層中心寬度σi得出后再采用遺傳算法進(jìn)行優(yōu)化;反向?qū)W習(xí)中對(duì)輸出層連接權(quán)值wik采用正交最小二乘法求出;最后再對(duì)隱含層和輸出層的參數(shù)進(jìn)行校正,進(jìn)一步提高網(wǎng)絡(luò)的逼近精度,由此獲得網(wǎng)絡(luò)的最佳結(jié)構(gòu)。
網(wǎng)絡(luò)模型的各參數(shù)確定之后,將之前測(cè)得的200組數(shù)據(jù),隨機(jī)抽取其中160組和40組,其中160組的作為訓(xùn)練樣本,剩余40組的作為測(cè)試樣本,網(wǎng)絡(luò)對(duì)蓄電池剩余電量預(yù)測(cè)的訓(xùn)練過程圖如圖4所示,圖5為網(wǎng)絡(luò)預(yù)測(cè)結(jié)果,表2為部分實(shí)際數(shù)值與預(yù)測(cè)值的相對(duì)誤差表。
圖4 網(wǎng)絡(luò)訓(xùn)練過程
圖5 網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
表2 部分實(shí)際數(shù)值與預(yù)測(cè)值相對(duì)誤差表
由圖4可知,均方差值隨著迭代次數(shù)的增加而不斷減小,在函數(shù)中已經(jīng)將均方差設(shè)為0.001,只有當(dāng)達(dá)到這個(gè)要求,網(wǎng)絡(luò)才停止訓(xùn)練,可知訓(xùn)練樣本總共經(jīng)過了84次的迭代運(yùn)算達(dá)到要求。圖5的預(yù)測(cè)結(jié)果顯示,網(wǎng)絡(luò)預(yù)測(cè)數(shù)值與測(cè)得的原始數(shù)據(jù)曲線擬合得較好,當(dāng)電壓較高時(shí)誤差較大,這是由于蓄電池在放電前期電壓變化較慢,造成SOC估算較為困難,當(dāng)電壓較低時(shí),電壓變化較慢,估算值和測(cè)量值就很接近,該RBF神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型精度高,其中確定系數(shù)R2為 0.9232,RMSE的值為0.000 001。由表2也可得到實(shí)際值與預(yù)測(cè)值之間的相對(duì)誤差在一個(gè)很小的區(qū)間內(nèi)。由這些實(shí)際值與預(yù)測(cè)值接近程度可知利用文中采用的RBF網(wǎng)絡(luò)預(yù)測(cè)法獲得了很好的泛化能力。
本文利用RBF神經(jīng)網(wǎng)絡(luò)對(duì)鉛酸蓄電池的剩余電量進(jìn)行估計(jì),實(shí)現(xiàn)過程表明該模型具有良好的網(wǎng)絡(luò)訓(xùn)練能力,估計(jì)結(jié)果表明它的精度和泛化能力保持在一個(gè)比較合理及理想的水平,將此網(wǎng)絡(luò)模型應(yīng)用在太陽能路燈系統(tǒng)中,可以預(yù)見性的對(duì)蓄電池的充放電情況進(jìn)行合理安排,使路燈的照明情況實(shí)現(xiàn)更好智能控制,該預(yù)測(cè)模型對(duì)于在其他領(lǐng)域內(nèi)對(duì)蓄電池的應(yīng)用控制也有一定的實(shí)用價(jià)值。