一種基於粒子群優化的電池狀態估計方法與流程
2023-05-14 12:51:36 1

本發明屬於電池狀態估計領域,涉及一種基於粒子群優化的電池狀態估計方法。
背景技術:
在二次電池的應用中,需要對soc等電池狀態進行估計。現有的技術包括安時積分法、電壓法、狀態濾波法。在這些方法中,狀態濾波法的長期精確度最佳。狀態濾波法中較為常用的一種方法是卡爾曼濾波。
通過卡爾曼濾波進行電池狀態估計時,需要獲得準確的電池模型,然而目前的技術常使用固定的電池模型參數,難以適應電池使用時電池模型參數的變化。也有方法通過卡爾曼濾波同時對電池狀態和電池參數進行估計,這種方法的缺陷在於,卡爾曼濾波的理論基礎是線性模型,而電池系統呈現很強的非線性特性,因此卡爾曼濾波在對電池系統進行估計時精度下降。同時,如果電池模型存在多個局部最優點,卡爾曼濾波容易陷入局部最優點,因此對全局最優點的搜索能力不強。
為了對非線性的電池系統進行估計,可以採用非線性估計方法對電池參數進行估計。對於參數為連續量的電池系統,可以採用粒子群優化對電池參數進行估計。粒子群優化是模擬現實世界中鳥群覓食的一種算法,該算法對於非線性系統的估計能力較強,且有一定的全局最優點搜索能力。
技術實現要素:
針對上述存在問題或不足,本發明提供了一種基於粒子群優化的電池狀態估計方法,克服現有技術的局限性。以使得在對電池狀態進行在線估計時,能夠適應電池模型參數的變化,從而獲得更精確的電池模型參數估計,使得電池狀態的估計更加精確。
一種基於粒子群優化的電池狀態估計方法,其具體步驟如下:
步驟s1、初始化粒子群,初始化狀態估計器;
首先,根據模型複雜度和估計精度要求,確定粒子數量,並根據電池參數的取值範圍,初始化粒子群;
然後,根據電池特性和電池初始狀態,對粒子群中的每個粒子初始化一個狀態估計器,每個狀態估計器對應粒子群中的一個粒子;
步驟s2、對於粒子群中的每個粒子,獲得狀態後驗估計,並比較狀態後驗估計的精度獲得狀態估計,再通過狀態後驗估計得到下一採樣點的狀態先驗估計;
首先,對於粒子群中的每個粒子,根據粒子坐標獲得電池參數,並根據狀態先驗估計,通過對應的狀態估計器獲得狀態後驗估計;
然後,計算粒子適應度,比較粒子適應度獲得狀態估計;
最後,根據狀態後驗估計,通過電池模型獲得下一採樣點的狀態先驗估計;
步驟s3、根據狀態後驗估計的精度,對粒子群進行演化,獲得新的粒子群;
首先,根據步驟s2所得粒子適應度,更新粒子群中粒子的歷史最優值;
然後,根據電池參數估計全局性的要求,選取粒子群中領袖數量,並根據粒子適應度選取粒子作為領袖;
最後,通過更新公式得到新的子種群後,合併所有子種群得到新的粒子群。
進一步的,所述步驟s3中,更新公式包括速度更新公式和坐標更新公式;
速度更新公式
坐標更新公式
其中,pi,k是粒子坐標,vi,k是粒子速度,δtk是採樣點時間間隔,ppbest,i是粒子的歷史最優值,plbest是領袖的歷史最優值。γv是慣性係數,α、β是加速常數,這三個係數用於控制粒子群的搜索特性,其中γv在0至1之間,γv越大,全局搜索能力越強,γv越小,局部搜索能力越強,α、β越大,則粒子對應地更多地向粒子歷史最優值或領袖歷史最優值搜索。這三個係數根據實際需求適當取值。u1、u2是服從n(0,1)的正態分布的隨機值,u3是服從u(0,1)的均勻分布的隨機值,其作用是加大坐標更新的時間間隔,減弱粒子坐標變化對粒子適應度計算的影響。是粒子適應度衰減常數,在0至1之間取值。
進一步的,所述步驟s2中,粒子適應度的計算公式為
其中是粒子適應度,是粒子適應度衰減常數,在0至1之間取值。δtk是採樣點時間間隔,yk是電壓測量值,是電壓預測值。
進一步的,還包括一個步驟s4:重複步驟s2、s3,以持續對電池狀態作出估計。
本發明在對電池進行狀態估計時,通過粒子群優化,得到電池參數的估計,且當電池模型有多個局部最優點時,相比於局部優化方法更容易得到電池模型的全局最優估計,從而使得狀態濾波得到的電池狀態估計更加精確。
綜上所述,本發明在對電池狀態進行在線估計時,能夠適應電池模型參數的變化,從而獲得更精確的電池模型參數估計,使得電池狀態的估計更加精確。
附圖說明
圖1為本發明的整體流程圖;
圖2為本發明步驟s1的細節流程圖;
圖3為本發明步驟s2的細節流程圖;
圖4為本發明步驟s3的細節流程圖;
圖5為實施例獲得的狀態估計曲線,其中,soc估計95%置信上限、soc估計95%置信下限根據狀態誤差協方差矩陣估計計算獲得;
圖6為實施例獲得的電壓預測值曲線與電池電壓曲線。
具體實施方式
下面結合附圖及實施例,對本發明進行進一步詳細說明。
參閱圖1,一種基於粒子群優化的電池狀態估計方法可分為以下步驟:
步驟s1:初始化粒子群,根據模型複雜度和估計精度要求,確定粒子數量,並對於粒子群中每個粒子初始化一個狀態估計器,每個狀態估計器對應一個粒子群中的粒子。
參閱圖2,步驟s1具體包括步驟s11~s12。
步驟s11:根據模型複雜度和估計精度要求,確定粒子數量,並根據電池參數的取值範圍,初始化粒子群。
本發明方法可用於不同電池模型的估計。實際應用時,粒子群的粒子數量應根據模型複雜性及所需的估計精度進行確定。粒子數量越高,估計精度越好,但計算量也越高。本實施例中,使用一階滯變rc模型,一共初始化100個粒子構成粒子群。電池參數包括放電內阻r+、充電內阻r-、滯變常數γ、濾波器常數α1、α2、g1、g2。其中,γ大於0,α1、α2在0到1之間。根據經驗或歷史數據,獲得關於電池參數的取值範圍的估計,根據電池參數的取值範圍初始化粒子群。單個粒子的初始坐標為
其中,k為採樣點編號,下標min、max表示各參數的取值範圍的最小值和最大值,γ0是與γ相關的值,|γ0|=γ,用於限制粒子群中γ為非負值,ζ1,min、ζ1,max、ζ2,min、ζ2,max是與α1、α2的最小、最大值相關的值,|ζi,minormax|=-logai,maxormin,i=1,2,用於限制粒子群中α1、α2值的範圍至(0,1],u是與粒子坐標維數相同的隨機向量,其各元素服從相互獨立的u(0,1)的均勻分布。符號代表元素相乘。
單個粒子的初始速度通過隨機分布進行初始化,
其中r是與粒子坐標維數相同的隨機向量,各元素期望為0。單個粒子初始速度也可以設為0。本發明實施例中,單個粒子的初始速度vi,k設為0。
步驟s12:根據電池特性和電池初始狀態,對粒子群中的每個粒子初始化一個狀態估計器,每個狀態估計器對應一個粒子群中的粒子。
本實施例中,採用卡爾曼濾波器作為狀態濾波器。對於任意一個卡爾曼濾波器,初始化其狀態先驗估計狀態誤差協方差矩陣先驗估計
其中,k是採樣點編號,是soc先驗估計,通過測量電池初始靜置電壓,根據開路電壓函數得到初始估計,是滯變先驗估計,這裡初始估計為0,為濾波器狀態先驗估計,這裡初始估計為0。是對應的狀態誤差協方差先驗估計,其取值大於0。
步驟s2:對於粒子群中的每個粒子,根據粒子坐標獲得電池參數,並通過對應的狀態估計器獲得狀態後驗估計,計算粒子適應度,比較粒子適應度獲得狀態估計,最後通過狀態後驗估計得到下一採樣點的狀態先驗估計。
參閱圖3,步驟s2具體包括步驟s21~s23。
步驟s21:對於粒子群中的每個粒子,根據粒子坐標獲得電池參數,並根據狀態先驗估計,通過對應的狀態估計器獲得狀態後驗估計。
本實施例中,對於粒子pi,k,有
pi,k=[r+r-γ0ζ1ζ2g1g2]
根據粒子pi,k得到電池參數,即放電內阻r+、充電內阻r-、滯變常數γ=|γ0|、濾波器常數α1=exp(-|ζ1|)、α2=exp(-|ζ2|)、g1、g2。
由電池參數得到卡爾曼濾波的狀態方程
輸出方程
狀態矩陣
輸出矩陣
ck=[ocv′(zk)1g1g2]
其中,ik是電池電流,通過測量獲得,δtk是採樣周期,可通過測量獲得,或取為固定值,cn是電池容量,通常通過標稱或放電測試獲得,m(z)是電池最大滯變函數,即電池充分充電至一定soc後的開路電壓與電池充分放電至該soc後的開路電壓的差值關於soc的函數,通常通過充放電測試獲得,m′(z)是m(z)關於z的導數,sgn(·)是符號函數,yk是電池電壓,通過測量獲得,ocv(z)是電池開路電壓函數,即排除滯變影響後電池開路電壓關於soc的函數,通常通過充放電測試獲得,ocv′(z)是ocv(z)關於z的導數。
得到卡爾曼增益
其中,ev為輸出噪聲協方差,根據測量儀器的精確度、輸出方程的精確度以及輸出噪聲的大小綜合確定。
根據輸出方程得到電壓預測值
從而得到狀態後驗估計
以及狀態誤差協方差矩陣後驗估計
步驟s22:計算粒子適應度,比較粒子適應度獲得狀態估計。
本實施例中,對於任一粒子,其粒子適應度為
其中是粒子適應度,是粒子適應度衰減常數,在0至1之間取值。表徵了粒子對應狀態濾波器在一定時間內電池電壓估計的精度,可以表徵狀態後驗估計的精度。越小,說明狀態後驗估計的精度越高。以最小的粒子對應的狀態後驗估計、狀態誤差協方差矩陣後驗估計作為狀態估計、狀態誤差協方差矩陣估計。由上述估計可以獲得電池soc的估計以及對電池soc估計的精度的估計。
步驟s23:根據狀態後驗估計,通過電池模型獲得下一採樣點的狀態先驗估計。
本實施例中,根據狀態方程得到下一採樣點的狀態先驗估計為
其中
分別是的各分量。
又根據狀態矩陣得到下一採樣點的狀態誤差協方差矩陣先驗估計為
其中,ew為狀態噪聲協方差矩陣,其各分量值根據狀態方程的精確度及誤差相關性綜合確定。
步驟s3:根據步驟s2所得粒子適應度,對粒子群進行演化,獲得新的粒子群。
參閱圖4,步驟s3具體包括步驟s31~s33。
步驟s31:根據粒子適應度,更新粒子群中粒子的歷史最優值。
本實施例中,根據狀態後驗估計的精度,即粒子適應度將粒子群中各粒子排序,將各粒子的名次與歷史名次比較,若名次上升,則將當前粒子坐標作為粒子歷史最優值。然後,將各粒子的名次作為新的歷史名次。
步驟s32:根據電池參數估計全局性的要求,選取粒子群中領袖數量,並根據粒子適應度選取粒子作為領袖。
領袖粒子數量的選取根據系統的局部最優點數量確定,局部最優點越多,對全局搜索性能要求越大,則領袖粒子數量越大。
本實施例中,將100個粒子分為10個子種群,其方法為,選取粒子適應度最高的10個粒子作為子種群的領袖,依次選取剩餘粒子中粒子適應度最低的9個粒子與粒子適應度最高的一個領袖一同構成一個子種群。
步驟s33:通過更新公式得到新的粒子群。
本發明實施例中,對於每個子種群,各粒子為pi,k,各粒子速度為vi,k,各粒子歷史最優值為ppbest,i領袖歷史最優值為plbest,則更新公式包括速度更新公式
以及坐標更新公式
其中,γv是慣性係數,α、β是加速常數,這三個係數用於控制粒子群的搜索特性,其中γv在0至1之間,γv越大,全局搜索能力越強,γv越小,局部搜索能力越強,α、β越大,則粒子對應地更多地向粒子歷史最優值或領袖歷史最優值搜索。這三個係數根據實際需求適當取值。u1、u2是服從n(0,1)的正態分布的隨機值,u3是服從u(0,1)的均勻分布的隨機值,其作用是加大坐標更新的時間間隔,減弱粒子坐標變化對粒子適應度計算的影響。
通過更新公式得到新的子種群後,合併所有子種群得到新的粒子群。
完成上述步驟後,重複步驟s2、s3,以獲得電池狀態的實時估計。
圖5為實施例獲得的狀態估計曲線,其中,soc估計95%置信上限、soc估計95%置信下限根據狀態誤差協方差矩陣估計計算獲得;圖6為實施例獲得的電壓預測值曲線與電池電壓曲線。
通過圖5、圖6可以看出本發明所述方法能較好地對電池狀態進行估計。