孟德安,舒強(qiáng),王建平,王藝帆,馬宗鈺
(1.長安大學(xué)汽車學(xué)院,西安 710062;2.公安部道路交通安全研究中心,北京 100062)
傳感器作為電池系統(tǒng)中的數(shù)據(jù)采集單元,對電池工作狀態(tài)進(jìn)行監(jiān)控。傳感器對電池系統(tǒng)的正常運(yùn)行至關(guān)重要,電池荷電狀態(tài)(State of Charge,SOC)與健康狀態(tài)的準(zhǔn)確估計、電池的過充過放保護(hù)、做出的各項(xiàng)控制策略,以及對電池的故障診斷都離不開傳感器的精確測量。傳感器在極端環(huán)境和工況下長期使用、自身老化等原因都會導(dǎo)致傳感器測量精度下降甚至出現(xiàn)故障,影響電池系統(tǒng)安全運(yùn)行,所以應(yīng)及時對傳感器故障進(jìn)行診斷。
對電池傳感器故障診斷的研究大多基于模型方法。TRAN等通過遞歸最小二乘法實(shí)時估計等效電路模型參數(shù),根據(jù)傳感器故障時參數(shù)的響應(yīng)性對傳感器故障進(jìn)行診斷。COUTO等使用雙UKF生成的殘差判斷傳感器是否發(fā)生故障,濾波器是基于簡化的電化學(xué)模型。YU Quanqing 等提出使用UKF算法求出電池SOC,可以用一段時間間隔的電流累積量與估計的SOC 變化量的比估計出電池容量,用估計出的電池容量與參考容量之間的殘差診斷電池故障。潘鳳文等將電池模型線性化后,使用滑模觀測期對新系統(tǒng)的輸出電流進(jìn)行估計,并使用基于范數(shù)的殘差評價方法診斷電流傳感器故障。TIAN Jiaqiang 等建立了電池組的電熱模型,對模型的參數(shù)以及電壓和溫度值進(jìn)行估計,與其他算法相比驗(yàn)證了粒子濾波算法對電壓和溫度估計的優(yōu)越性,采用滑動窗口的殘差學(xué)習(xí)法消除殘差的異常值,通過對多種參數(shù)和狀態(tài)殘差CUSUM 的計算對電池系統(tǒng)多種傳感器和電池進(jìn)行故障的識別與隔離。XU Jun 等提出了一種估計電池能量狀態(tài)(State of Energy,SOE)并能檢測電流傳感器故障的方法,通過比例積分觀測器可以精確估計出電流傳感器發(fā)生故障,并且可以精確估計出電流傳感器發(fā)生故障時的電流誤差,能夠有效地獲得電流傳感器故障條件下電池的能量狀態(tài),經(jīng)過試驗(yàn)驗(yàn)證即使在誤差很嚴(yán)重時也能快速消除傳感器故障造成的對能量狀態(tài)估計的影響。之前使用這些算法的響應(yīng)時間較長,并且容易受到傳感器噪聲和積累誤差的影響。
為了去除傳感器自身問題對電池診斷的干擾,本文針對單一傳感器的故障診斷方法進(jìn)行研究,提出通過分析模型預(yù)測電壓與傳感器觀測電壓的殘差來診斷傳感器是否發(fā)生故障的方法。使用UKF 算法估計電池的端電壓,并提出使用奇異值分解代替平方根法分解,以解決協(xié)方差矩陣非正定導(dǎo)致的算法無法正常運(yùn)行的問題。提出使用CUSUM 法對殘差進(jìn)行分析,通過監(jiān)測CUSUM 的變化來判斷傳感器是否發(fā)生故障。本文提出的傳感器故障檢測方法在一些微小故障的檢測中相比于傳統(tǒng)的設(shè)定殘差閾值的方法更靈敏,能更快檢測出微小的數(shù)據(jù)偏移情況。
傳感器觀測的數(shù)據(jù)都不是絕對準(zhǔn)確的,傳感器的觀測過程會存在擾動,從而造成一定的誤差,在電動汽車實(shí)際運(yùn)行中會產(chǎn)生顛簸、溫度過高等情況,以及電池系統(tǒng)內(nèi)傳感器自身的老化、受損等原因,也會造成傳感器精度降低甚至傳感器失效。因此,傳感器的觀測誤差有兩部分,一種是監(jiān)測過程中的自由噪聲,另一種就是傳感器故障造成的觀測誤差。
下面對幾種常見的傳感器故障類型進(jìn)行簡要介紹,以下介紹中,用f表示傳感器故障產(chǎn)生的誤差,用y表示傳感器監(jiān)測的信號值,用表示真實(shí)的信號值,用表示監(jiān)測過程中的自由噪聲。
傳感器信號固定偏差故障是指測量信號與真實(shí)信號之間相差一個不變的常數(shù)值,即f= a,y=+ a +,a為常數(shù)。
傳感器信號漂移偏差故障是指測量信號與真實(shí)信號相比有一個隨時間線性變化的偏差,即f=b ×(-),y=+ b ×(-)+,其中,b 為常數(shù),為傳感器故障發(fā)生的時間。
傳感器增益故障是傳感器測量的信號值出現(xiàn)倍數(shù)變化,表現(xiàn)形式為信號的整體偏移,則y=(1 +k)+,k為常數(shù)時為恒增益故障。
圖1是傳感器發(fā)生上述3 類故障時,對正弦信號的觀測結(jié)果,在第5 s 時傳感器發(fā)生故障,其中藍(lán)色信號值表示實(shí)際信號值,紅色信號值表示出現(xiàn)故障之后傳感器測出的信號值。下文主要對這3 類傳感器故障進(jìn)行診斷。
圖1 傳感器常見故障
在實(shí)際工況中,傳感器的觀測數(shù)據(jù)和電池模型都會存在一定的誤差,并且電池模型SOC估算部分采用的安時積分法需要精確的SOC初值。本文采用基于UKF 算法對傳感器的故障進(jìn)行診斷,UKF 算法可以過濾掉系統(tǒng)噪聲和觀測噪聲造成的影響,但無法過濾傳感器故障時出現(xiàn)的較大誤差帶來的影響。傳感器測得的電壓信號與估計的電壓信號對比生成殘差,通過對殘差分析判斷傳感器是否出現(xiàn)故障。
卡爾曼濾波被廣泛應(yīng)用于線性系統(tǒng)中,然而針對電動汽車鋰離子動力電池這種非線性系統(tǒng),可以使用UKF 算法對動力電池的狀態(tài)量與端電壓進(jìn)行估計。
UKF算法仍以卡爾曼濾波算法為框架,是用無跡變換(Unscented Transformation,UT)這種統(tǒng)計線性化方法讓非線性系統(tǒng)方程適用于卡爾曼濾波算法。典型非線性離散系統(tǒng)的狀態(tài)方程和觀測方程分別如式(1)~(2)所示:
式中:X為系統(tǒng)的狀態(tài)向量;X為下一個時刻的系統(tǒng)的狀態(tài)向量;u為控制輸入量;為系統(tǒng)噪聲驅(qū)動矩陣;W為過程噪聲,表示系統(tǒng)誤差;Z為系統(tǒng)的觀測向量;V為觀測噪聲;、為非線性傳遞函數(shù)。
UKF的思想是近似概率密度的方式相比于近似非線性函數(shù)更簡單。例如,對于式(1)的狀態(tài)方程與式(2) 的觀測方程,UKF 算法并非對(X,u)與(X,u)進(jìn)行近似線性化,而是對(X,u)與(X,u)的概率分布進(jìn)行近似,UKF算法不需要對矩陣求偏導(dǎo)這樣復(fù)雜的計算過程,估計精度可以保證至少達(dá)到二階泰勒展開的精度,而且不需要大量的計算,適合本文提出的電池模型。
顯然,用概率密度的方式求出函數(shù)的均值和方差是十分復(fù)雜的,UKF 算法通過UT 變換近似表征(X,u)與(X,u)的概率分布。對于非線性函數(shù)=(),UT 變換的基本原理如下:假設(shè)是維向量,已知的均值為ˉ,方差為P,經(jīng)過UT 變換可以得到2+1 個sigma 點(diǎn)χ,并且可以求出對應(yīng)的權(quán)值w,將sigma 點(diǎn)代入函數(shù)=()之后將得到的值進(jìn)行加權(quán)求和,計算出加權(quán)均值與方差,用計算出的結(jié)果近似表征非線性變換后的概率分布,即用來近似表征的均值與方差。下面對UT 變換所需的公式進(jìn)行簡單介紹,首先對2+1 個sigma 點(diǎn)進(jìn)行構(gòu)建,如式(3)所示。
相對應(yīng)的權(quán)值為:
在UKF 算法運(yùn)行過程中,協(xié)方差矩陣一般都為正定矩陣。但是由于計算機(jī)的計算精度有限,算法更新迭代過程中的計算和求逆過程會丟失精度,還有噪聲等未知因素,都會造成協(xié)方差矩陣非正定的問題。在算法運(yùn)行中需要對協(xié)方差矩陣用平方根法進(jìn)行分解,這要求協(xié)方差矩陣P為正定矩陣,否則算法無法正常運(yùn)行。使用奇異值分解(Singular Value Decomposition,SVD)來替代平方根法分解可以有效地解決這個問題,用SVD 的矩陣不要求為方陣,而且SVD 算法有較高的精度和穩(wěn)定性。假設(shè)矩陣是一個×階的矩陣,對矩陣進(jìn)行SVD,則:
式中:為×階矩陣;為×階矩陣;為×階矩陣。
當(dāng)用SVD 替代平方根法對P進(jìn)行分解時,生成的sigma點(diǎn)也相應(yīng)做出改變,此時式(3)變?yōu)椋?/p>
首先,建立鋰離子動力電池系統(tǒng)模型,得到離散化的鋰離子電池模型的數(shù)學(xué)方程,如式(7)所示。
式中:Δ為電池數(shù)據(jù)的采樣時間間隔,s;為時間常數(shù);I為時刻的電流,A;為時刻的開路電壓,V;U為時刻的端電壓,V;為時刻的極化電壓,V;為極化內(nèi)阻,mΩ。
由式(7)可以得到鋰離子動力電池的狀態(tài)方程和觀測方程。
式中:W為過程噪聲,V;Δ為電池數(shù)據(jù)的采樣時間間隔,s;τ 為時間常數(shù);x=[SOC,]為鋰電池系統(tǒng)的狀態(tài)向量;SOC為時刻的SOC 值;為時刻的極化電壓,V;為充放電效率;表示電池容量,Ah;為電池的極化電阻,mΩ;I為電池充放電電流,A。
式中:系統(tǒng)觀測量Z為鋰電池的端電壓,V;為時刻的開路電壓值,V;為歐姆內(nèi)阻,mΩ;u系統(tǒng)的控制輸入量,V;I為傳感器觀測到的電流,A;為時刻的極化電壓,V;V為觀測噪聲,V。
式中:為開路電壓值,V;該等式是通過OCV試驗(yàn)數(shù)據(jù)擬合SOC關(guān)于的六次多項(xiàng)式得出的。
使用SVD-UKF算法流程如下。
(1)狀態(tài)向量及協(xié)方差矩陣初始化:
式中:為狀態(tài)向量;為協(xié)方差矩陣。
(2)在時刻對上一時刻濾波后的進(jìn)行一次SVD-UT變換并生成sigma點(diǎn)集:
(3)sigma點(diǎn)狀態(tài)預(yù)測:
(4)計算估計的狀態(tài)向量在當(dāng)前時刻的均值與方差:
(5)對步驟4 中的先驗(yàn)估計再進(jìn)行一次SVDUT分解,生成sigma點(diǎn)集:
(6)sigma點(diǎn)觀測值預(yù)測:
(7)計算觀測預(yù)測值的估計均值、協(xié)方差矩陣:
(8)計算無跡卡爾曼增益:
(9)系統(tǒng)當(dāng)前時刻狀態(tài)向量估計值與協(xié)方差更新:
式中:Z為時刻傳感器讀入的一個觀測值。
SVD-UKF算法的流程圖,如圖2所示。在計算過程中,通過對觀測值的預(yù)測得到?實(shí)現(xiàn)了對電池端電壓的估計,通過對狀態(tài)向量的估計與更新過程得到了SOC的估計值,解決了在無法精確得知初始SOC值的條件下,估計端電壓造成估計值誤差較大的問題。采用上述算法流程估計出電池的端電壓之后,通過與傳感器測得的端電壓生成的殘差進(jìn)行分析來診斷傳感器故障。下面對算法的結(jié)果進(jìn)行分析以及傳感器的故障診斷方法進(jìn)行介紹。
圖2 SVD-UKF算法流程
CUSUM 是一種異常檢測算法,這種算法可以將過程中十分微小的量的變化累加起來將其放大。假設(shè)系統(tǒng)觀測數(shù)值與預(yù)測值的殘差為e(),系統(tǒng)正常時殘差的概率分布為(e()),系統(tǒng)故障時殘差的概率分布為(e()),設(shè)累積和的初始值(0) = 0,令
式中:(e())為系統(tǒng)故障時殘差的概率分布;(e())為系統(tǒng)正常時殘差的概率分布;(e())為故障時和正常時殘差的概率分布的對數(shù)比。
則CUSUM:
在實(shí)際過程中,(e())和(e())可能是未知的而且計算復(fù)雜,參照文獻(xiàn)[15],為取代上述(e()),提出:
用()作為CUSUM 算法的檢測序列,其中β為一常數(shù)。在系統(tǒng)沒有發(fā)生異常情況的狀態(tài)下,式(22) 算出的結(jié)果應(yīng)為負(fù)值,所以()的均值(())應(yīng)小于0。在沒有故障的情況下,經(jīng)過對圖4f 中的殘差進(jìn)行分析計算,用SVD-UKF 算法得到的端電壓殘差均值約為0,并且經(jīng)過計算驗(yàn)證大部分殘差數(shù)據(jù)都分布在3倍方差范圍內(nèi)。
為了保證(()) < 0,設(shè)殘差為,的取值可以設(shè)置在3左右,這樣大部分的()數(shù)值都會小于0。式(23)轉(zhuǎn)變?yōu)槭剑?5)。
再根據(jù)S設(shè)置報警閾值thre,當(dāng)S> thre 時系統(tǒng)報警,傳感器處于故障狀態(tài)。
傳感器故障檢測的流程圖,如圖3所示。
圖3 傳感器故障檢測流程
首先對上述方法進(jìn)行驗(yàn)證,本文使用DST工況作為電池系統(tǒng)傳感器故障的驗(yàn)證工況,工況數(shù)據(jù)為實(shí)驗(yàn)室獲取的DST工況數(shù)據(jù),鋰離子動力電池的狀態(tài)方程和觀測方程所需數(shù)據(jù)用三星INR-18650-20R電池試驗(yàn)測得數(shù)據(jù)。在SOC 真實(shí)初值為100%的情況下,將SVD-UKF 算法SOC 初值設(shè)置為80%和100%時,SOC 和端電壓的估計值以及電壓殘差如圖4所示。
圖4為使用SVD-UKF 算法得到的估計結(jié)果,可以看出估計的SOC值較準(zhǔn)確,可以比較真實(shí)地反映SOC 的變化情況,即使在SOC 初值設(shè)定為80%,且與真實(shí)值偏差20%的情況下,也能快速收斂到真實(shí)值。由圖4e 可知,在SOC 初值錯誤的情況下,端電壓的估計值也能快速收斂到真實(shí)值,并且SOC初值設(shè)定正確時的電壓殘差和SOC初值存在偏差收斂后的電壓殘差都很小,都圍繞0 值上下波動,適合用來分析傳感器是否發(fā)生故障。本章用SOC初始值正確的情況來診斷傳感器故障。
圖4 SVD-AUKF估計結(jié)果
設(shè)電池電流放電為正,在4 000 s 后對DST 工況的電壓和電流數(shù)據(jù)分別注入-0.03 V和+0.5 A的信號偏差故障來模擬傳感器發(fā)生故障的情況,則出現(xiàn)故障的電壓電流信號圖,如圖5所示。
圖5 傳感器故障測得信號
由于在電池系統(tǒng)中,電壓傳感器和電流傳感器基本上不會出現(xiàn)同時出現(xiàn)故障的情況,所以主要研究電池系統(tǒng)中電壓傳感器或者電流傳感器單獨(dú)出現(xiàn)故障時的傳感器故障診斷。當(dāng)電壓傳感器和電流傳感器分別出現(xiàn)圖5 所示的信號偏差故障時,上述算法預(yù)測得到DST工況下的電池端電壓與傳感器測得的電壓生成的殘差,如圖6所示。
圖6 傳感器故障下的預(yù)測殘差
由圖6 可知,雖然在第4 001 s 開始對電壓和電流數(shù)據(jù)注入了故障,但是發(fā)生上述信號偏差故障時,運(yùn)用SVD-UKF 算法預(yù)測電池端電壓得到的殘差值,除了在故障開始注入的時刻增大之外,其余時刻沒有明顯變化。電流傳感器發(fā)生信號偏差故障后SVD-UKF 生成的殘差值相較于傳感器正常時SVD-UKF 生成的殘差有略微的偏移。可以對殘差設(shè)定閾值來檢測傳感器是否存在故障,但是使用殘差來進(jìn)行判斷,對于微小的故障可能會出現(xiàn)漏判的情況,傳感器噪聲、模型誤差以及各種不確定因素也可能導(dǎo)致出現(xiàn)故障誤診的現(xiàn)象。本文提出使用CUSUM 分析殘差對傳感器的故障進(jìn)行檢測的方法。
對傳感器故障進(jìn)行檢測,針對本文算法的參數(shù)設(shè)置,根據(jù)對電池進(jìn)行多次試驗(yàn),設(shè)定= 2.5。警閾值thre = 0.05。在傳感器正常情況下用DST 工況數(shù)據(jù)進(jìn)行檢測,結(jié)果如圖7所示。
圖7 正常情況下檢測結(jié)果
首先對傳感器偏差故障進(jìn)行檢測,在第4 001 s分別對電壓傳感器和電流傳感器注入-0.03 V 和+0.5 A 的信號偏差故障,生成的預(yù)測殘差如圖6 所示,檢測結(jié)果如圖8所示。
圖8 傳感器信號偏移故障檢測
由于在偏差故障發(fā)生的時刻觀測電壓突然發(fā)生變化而預(yù)測電壓需要一定的時間做出反應(yīng),所以殘差在此刻出現(xiàn)明顯的異常取值,在注入故障之后,S很快就超過了報警閾值,電壓傳感器在出現(xiàn)故障后的第4 s、電流傳感器在出現(xiàn)故障后的第6 s 分別檢測到了故障。
以電流傳感器為例,進(jìn)行傳感器信號漂移故障檢測。在第4 001 s 時,對電流傳感器注入隨時間變化的信號漂移故障= b ×(-),將電壓傳感器故障和電流傳感器故障的時間變化的偏差都設(shè)為b=-0.000 1,生成的殘差及檢測結(jié)果如圖9~10所示。
由圖10 可知,電流傳感器注入信號漂移故障后,經(jīng)過2 724 s,在第6 725 s 時發(fā)現(xiàn)故障。此后,根據(jù)不同的b 取值對比發(fā)現(xiàn), b 取值越大,該方法檢測到故障的速度越快。而用殘差閾值的方法發(fā)現(xiàn),如果對圖9 的殘差設(shè)定為-0.015 V 和+0.025 V的閾值,在第7 078 s時可以檢測出故障。
圖9 電流傳感器信號漂移故障生成的預(yù)測殘差
圖10 電流傳感器信號漂移故障檢測結(jié)果
以電流傳感器為例,進(jìn)行傳感器信號增益故障檢測。4 000 s后,用電壓傳感器觀測到的數(shù)據(jù)和電流傳感器觀測到的數(shù)據(jù)都乘以1.15來模擬傳感器增益故障,電流傳感器出現(xiàn)增益故障時生成的殘差和檢測結(jié)果,如圖11和圖12所示。
圖11 電流傳感器增益故障生成的預(yù)測殘差
圖12 電流傳感器增益故障檢測結(jié)果
在電流傳感器發(fā)生故障后,電壓殘差與電流傳感器未發(fā)生故障時相比變化不大,運(yùn)用該方法在7 505 s 檢測到傳感器故障,如果用殘差閾值進(jìn)行檢測,要在9 543 s才能檢測出傳感器發(fā)生故障。
以上分析可知,本文提出的傳感器故障檢測方法在一些微小故障的檢測中相比于傳統(tǒng)的設(shè)定殘差閾值的方法更靈敏,能更快檢測出微小的數(shù)據(jù)偏移情況。
本文主要研究車用動力電池的傳感器故障診斷方法,提出用預(yù)測的電池端電壓與傳感器觀測電壓生成的殘差來進(jìn)行傳感器故障的診斷。
本文提出使用UKF 算法對電池端電壓進(jìn)行預(yù)測,解決在鋰離子動力電池建模和傳感器觀測值中都存在一定誤差的問題。針對UKF 算法在分解協(xié)方差矩陣時,協(xié)方差矩陣非正定導(dǎo)致算法無法正常運(yùn)行的問題,提出使用SVD來代替平方根法分解。
用DST 工況作為傳感器故障診斷的檢驗(yàn)工況。提出用CUSUM 法對電壓殘差進(jìn)行分析,并針對故障時和正常工作時電壓殘差的概率分布不確定性的問題,對算法進(jìn)行改進(jìn)調(diào)整。用該算法對3 類常見的傳感器故障進(jìn)行檢測。由檢測結(jié)果可知,相比于殘差閾值法,該方法有更高的靈敏度和準(zhǔn)確性。