20180626 卡爾曼濾波算法計算SOC

      卡爾曼濾波算法包括線性卡爾曼濾波(KF),擴展卡爾曼(EKF),自適應卡爾曼(AEKF),以及無跡卡爾曼(UKF)等卡爾曼變形模式。線性卡爾曼濾波器針對線性系統,實際應用過程一般對非線性系統線性化,如對非線性離散系統的狀態方程和觀測方程進行一階泰勒公式展開,即可得到線性化的系統方程,應用EKF估算所需變量。

    對鋰離子電池建立一階RC等效電路模型(即Thevenin模型),該模型而言,狀態方程和觀測方程如下:

                                                    

對上述方程進行線性離散化:

                                                  

利用k-1時刻的輸入i(k-1)和矩陣A,B,估算出濾波算法中k時刻的先驗估計值和協方差矩陣。注意先驗計算中,不涉及k時刻的輸出值y(k)。利用先驗估計值,和k時刻的測量值及矩陣C,計算新息誤差和卡爾曼增益得到後驗估算。依據卡爾曼增益和新息修正k時刻的先驗估計值和協方差矩陣,最終獲得k時刻的估算值,以此往復迭代得到最優值。

計算步驟如下

1,初始化 x0,P0,Q0,R0

2,利用k-1時刻進行先驗估計:

3,利用k時刻測量輸出值和先驗估計值進行後驗估計,計算新息和卡爾曼增益:

4,依據新息和增益對估計值進行修正,獲得所需k時刻的估計值。

5,上述過程表示k-1時刻到k時刻卡爾曼估算系統狀態的整個過程,由k到k+1不斷更新,迭代,得到最終估計值。

AEKF算法對電池的狀態值SOC估算基本步驟由上述五個步驟組成,實際應用過程存在較多問題。

1,對於非線性系統電池系統,應用卡爾曼算法的系統矩陣A,B,C,D的確定依賴於搭建的電池模型,如果這四個參數不準確,則卡爾曼算法估算的SOC也會存在較大誤差,目前用的較多的方法是在線最小二乘遞推算法進行電池模型參數辨識獲得A,B,C,D,但是這種數據擬合的方式會存在一些問題:發散導致計算值不準確,誤差過大,A,B,C,D無實際物理意義。

2,卡爾曼算法中Q,R的確定無法明確,卡爾曼算法的理論限定是:系統噪聲爲高斯白噪聲,且觀測噪聲和測量噪聲之間不相關。這個在現實情況下較難實現。即使使用自適應方式調整修正QR,其初始值設定也會嚴重影響估算結果的準確性。對不同初始時刻的估算值SOC,Q,R的設定會影響最終結果的收斂性,設置的不合適,很難保證收斂。即,即使使用AEKF也難以保證這種算法對任意不同的SOC初始值,能保證快速的收斂到真實值,不足夠穩定。R作爲測量噪聲協方差,其設定越小,系統收斂速度越快。

3,實際應用時,此算法需要定點化寫入單片機,定點化也可能由於計算原因導致算式中各項式子的溢出。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章