发明名称 一种基于组合采样点卡尔曼滤波的电池剩余电量估计方法
摘要 本发明涉及一种基于组合采样点卡尔曼滤波的电池剩余电量估计方法。现有方法不能满足在线检测要求,并且精度很差。本发明方法首先通过测量电路测得在k时刻的电池端电压y<sub>k</sub>和电池供电电流i<sub>k</sub>,然后用状态方程和观测方程表示电池的各个时刻的荷电状态,再采用标准采样点卡尔曼滤波进行电池剩余电量的估计。本发明方法可以方便地进行电池SOC的快速估计,收敛速度快,估计精度高,而且适用于各种电池SOC的快速估计。
申请公布号 CN101604005A 申请公布日期 2009.12.16
申请号 CN200910100281.7 申请日期 2009.06.29
申请人 杭州电子科技大学 发明人 何志伟;高明煜;徐杰;黄继业;曾毓
分类号 G01R31/36(2006.01)I 主分类号 G01R31/36(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 杜 军
主权项 1、一种基于组合采样点卡尔曼滤波的电池剩余电量估计方法,其特征在于该方法的具体步骤是:步骤(1)通过测量电路测得在k时刻的电池端电压y<sub>k</sub>和电池供电电流i<sub>k</sub>,k=1,2,3,…;步骤(2)用状态方程和观测方程表示电池的各个时刻的荷电状态,其中状态方程:<maths num="0001"><![CDATA[<math><mrow><msub><mi>z</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>z</mi><mi>k</mi></msub><mo>,</mo><msub><mi>i</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><msub><mi>z</mi><mi>k</mi></msub><mo>-</mo><mrow><mo>(</mo><mfrac><mrow><msub><mi>&eta;</mi><mi>i</mi></msub><mi>&Delta;t</mi></mrow><msub><mi>Q</mi><mi>n</mi></msub></mfrac><mo>)</mo></mrow><msub><mi>i</mi><mi>k</mi></msub><mo>+</mo><msub><mi>u</mi><mi>k</mi></msub></mrow></math>]]></maths>观测方程:<maths num="0002"><![CDATA[<math><mrow><msub><mi>y</mi><mi>k</mi></msub><mo>=</mo><mi>g</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><msub><mi>z</mi><mi>k</mi></msub><mo>,</mo><msub><mi>i</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mi>k</mi></msub><mo>=</mo><msub><mi>K</mi><mn>0</mn></msub><mo>-</mo><msub><mi>Ri</mi><mi>k</mi></msub><mo>-</mo><mfrac><msub><mi>K</mi><mn>1</mn></msub><msub><mi>z</mi><mi>k</mi></msub></mfrac><mo>-</mo><msub><mi>K</mi><mn>2</mn></msub><msub><mi>z</mi><mi>k</mi></msub><mo>+</mo><msub><mi>K</mi><mn>3</mn></msub><msub><mrow><mi>ln</mi><mi>z</mi></mrow><mi>k</mi></msub><mo>+</mo><msub><mi>K</mi><mn>4</mn></msub><mi>ln</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>z</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mi>k</mi></msub></mrow></math>]]></maths>z为电池的荷电状态,即剩余电量,z=100%表示电池电量处于充满状态,z=0%表示电池电量处于耗尽状态;η<sub>i</sub>为电池的放电比例系数;Q<sub>n</sub>为电池在室温25℃条件下、以1/30倍额定电流的放电速率放电时所能得到的额定总电量;R为电池的内阻;K<sub>0</sub>、K<sub>1</sub>、K<sub>2</sub>、K<sub>3</sub>、K<sub>4</sub>为常数,p=[K<sub>0</sub> R K<sub>1</sub> K<sub>2</sub> K<sub>3</sub> K<sub>4</sub>]<sup>T</sup>,p为电池观测模型的参数,是一个列向量,对同类型的电池它们是不变的;Δt是测量时间间隔,u为处理噪声,v为观测噪声,下标k为测量时刻;其中放电比例系数η<sub>i</sub>的确定步骤为:(a)将完全充满电的电池以不同放电速率C<sub>i</sub>恒流放电N次,N>10,计算相应放电速率下的电池总电量Q<sub>i</sub>,1≤i≤N;(b)根据最小二乘方法拟合出Q<sub>i</sub>与C<sub>i</sub>间的二次曲线关系,即在最小均方误差准则下求出同时满足Q<sub>i</sub>=aC<sub>i</sub><sup>2</sup>+bC<sub>i</sub>+c的最优系数a,b,c;(c)在放电电流为i<sub>k</sub>时,对应的放电比例系数η<sub>i</sub>为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>&eta;</mi><mi>i</mi></msub><mo>=</mo><mfrac><msub><mi>Q</mi><mi>n</mi></msub><mrow><msubsup><mi>ai</mi><mi>k</mi><mn>2</mn></msubsup><mo>+</mo><msub><mi>bi</mi><mi>k</mi></msub><mo>+</mo><mi>c</mi></mrow></mfrac></mrow></math>]]></maths>电池模型参数p采用中心差采样点卡尔曼滤波算法确定,具体步骤为:(d)在室温25℃条件下、以1/30倍额定电流对充满电的电池进行恒定电流放电直至电量耗尽;(e)在放电过程中由测量电路以时间间隔Δt测量电池在s时刻的端电压y<sub>s</sub>,s=0,1,2,...M,其中s=0对应电池充满后的起始放电时刻,s=M对应电池电量耗尽的终止时刻;(f)计算s时刻的剩余电量z<sub>s</sub>,z<sub>s</sub>=1-s/M;(g)任选一初始参数<maths num="0004"><![CDATA[<math><mrow><mi>p</mi><mo>=</mo><msub><mover><mi>p</mi><mo>^</mo></mover><mn>0</mn></msub><mo>,</mo></mrow></math>]]></maths>设定其平方根均方差矩阵为<img file="A2009101002810003C2.GIF" wi="133" he="57" /><maths num="0005"><![CDATA[<math><mrow><msub><mi>S</mi><msub><mi>p</mi><mn>0</mn></msub></msub><mo>=</mo><msub><mi>I</mi><mn>6</mn></msub><mo>;</mo></mrow></math>]]></maths>其中I<sub>6</sub>为6×6的单位矩阵;选取比例常数h,h>1;设定变量<maths num="0006"><![CDATA[<math><mrow><msub><mi>R</mi><mi>r</mi></msub><mo>=</mo><msqrt><msup><mn>10</mn><mrow><mo>-</mo><mn>3</mn></mrow></msup></msqrt><msub><mi>I</mi><mn>6</mn></msub><mo>;</mo></mrow></math>]]></maths>设定加权系数<maths num="0007"><![CDATA[<math><mrow><msubsup><mi>W</mi><mn>0</mn><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mrow><msup><mi>h</mi><mn>2</mn></msup><mo>-</mo><mn>7</mn></mrow><msup><mi>h</mi><mn>2</mn></msup></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msubsup><mi>W</mi><mi>i</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><msup><mrow><mn>2</mn><mi>h</mi></mrow><mn>2</mn></msup></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0009"><![CDATA[<math><mrow><msubsup><mi>W</mi><mi>i</mi><mrow><mo>(</mo><mi>c</mi><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mi>h</mi></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><msubsup><mi>W</mi><mi>i</mi><mrow><mo>(</mo><mi>c</mi><mn>2</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><msqrt><msup><mi>h</mi><mn>2</mn></msup><mo>-</mo><mn>1</mn></msqrt><msup><mrow><mn>2</mn><mi>h</mi></mrow><mn>2</mn></msup></mfrac><mo>,</mo></mrow></math>]]></maths>i=1,2,…,12;对s=1,2,...,M,按如下步骤(h)~(j)进行逐次迭代:(h)计算时间域更新:计算模型参数的估计值<img file="A2009101002810003C9.GIF" wi="78" he="52" /><maths num="0011"><![CDATA[<math><mrow><msubsup><mover><mi>p</mi><mo>^</mo></mover><mi>s</mi><mo>-</mo></msubsup><mo>=</mo><msub><mover><mi>p</mi><mo>^</mo></mover><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow></math>]]></maths>计算模型参数的平方根均方差矩阵的估计值<img file="A2009101002810003C11.GIF" wi="86" he="57" /><maths num="0012"><![CDATA[<math><mrow><msubsup><mi>S</mi><msub><mi>p</mi><mi>s</mi></msub><mo>-</mo></msubsup><mo>=</mo><msub><mi>S</mi><msub><mi>p</mi><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>+</mo><msub><mi>D</mi><msub><mi>r</mi><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>,</mo></mrow></math>]]></maths>其中,<maths num="0013"><![CDATA[<math><mrow><msub><mi>D</mi><msub><mi>r</mi><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>=</mo><mo>-</mo><mi>diag</mi><mo>{</mo><msub><mi>S</mi><msub><mi>p</mi><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>}</mo><mo>+</mo><msqrt><mi>diag</mi><msup><mrow><mo>{</mo><msub><mi>S</mi><msub><mi>p</mi><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>}</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>diag</mi><mo>{</mo><msub><mi>R</mi><mi>r</mi></msub><mo>}</mo></msqrt><mo>,</mo></mrow></math>]]></maths>diag{·}为对应矩阵的对角线元素构成的列向量;(i)计算<img file="A2009101002810003C14.GIF" wi="50" he="52" />的采样点序列<img file="A2009101002810003C15.GIF" wi="124" he="56" /><img file="A2009101002810003C16.GIF" wi="731" he="78" /><img file="A2009101002810003C17.GIF" wi="51" he="52" />为6×1列向量,<img file="A2009101002810003C18.GIF" wi="55" he="58" />为6×6矩阵,故<img file="A2009101002810003C19.GIF" wi="98" he="56" />为6×13矩阵;(j)按下列各式计算测量更新:计算采样点的观测序列<img file="A2009101002810003C20.GIF" wi="121" he="56" /><img file="A2009101002810003C21.GIF" wi="454" he="57" /><img file="A2009101002810003C22.GIF" wi="95" he="57" />为6×13矩阵;计算观测序列<img file="A2009101002810003C23.GIF" wi="92" he="56" />的估计值<img file="A2009101002810003C24.GIF" wi="74" he="64" /><img file="A2009101002810003C25.GIF" wi="399" he="120" /><img file="A2009101002810003C26.GIF" wi="113" he="56" />为<img file="A2009101002810003C27.GIF" wi="93" he="56" />的第i列;计算观测序列<img file="A2009101002810003C28.GIF" wi="92" he="56" />的平方根均方差矩阵<img file="A2009101002810003C29.GIF" wi="81" he="63" /><img file="A2009101002810004C1.GIF" wi="1479" he="102" />计算协方差矩阵<img file="A2009101002810004C2.GIF" wi="106" he="57" /><img file="A2009101002810004C3.GIF" wi="752" he="81" />计算卡尔曼增益K<sub>s</sub>:<maths num="0014"><![CDATA[<math><mrow><msub><mi>K</mi><mi>s</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>P</mi><mrow><msub><mi>p</mi><mi>s</mi></msub><msub><mi>d</mi><mi>s</mi></msub></mrow></msub><mo>/</mo><msubsup><mi>S</mi><msub><mover><mi>d</mi><mo>~</mo></mover><mi>s</mi></msub><mi>T</mi></msubsup><mo>)</mo></mrow><mo>/</mo><msub><mi>S</mi><msub><mover><mi>d</mi><mo>&OverBar;</mo></mover><mi>s</mi></msub></msub><mo>;</mo></mrow></math>]]></maths>计算参数更新<img file="A2009101002810004C5.GIF" wi="69" he="52" /><maths num="0015"><![CDATA[<math><mrow><msub><mover><mi>p</mi><mo>^</mo></mover><mi>s</mi></msub><mo>=</mo><msubsup><mover><mi>p</mi><mo>^</mo></mover><mi>s</mi><mo>-</mo></msubsup><mo>+</mo><msub><mi>K</mi><mi>s</mi></msub><mrow><mo>(</mo><msub><mi>y</mi><mi>s</mi></msub><mo>-</mo><msubsup><mover><mi>d</mi><mo>^</mo></mover><mi>s</mi><mo>-</mo></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>计算临时变量U:<maths num="0016"><![CDATA[<math><mrow><mi>U</mi><mo>=</mo><msub><mi>K</mi><mi>s</mi></msub><msub><mi>S</mi><msub><mover><mi>d</mi><mo>&OverBar;</mo></mover><mi>s</mi></msub></msub><mo>;</mo></mrow></math>]]></maths>计算模型参数的平方根均方差矩阵的更新<img file="A2009101002810004C8.GIF" wi="86" he="58" /><maths num="0017"><![CDATA[<math><mrow><msub><mi>S</mi><msub><mi>p</mi><mi>s</mi></msub></msub><mo>=</mo><mi>cholupdate</mi><mo>{</mo><msubsup><mi>S</mi><msub><mi>p</mi><mi>s</mi></msub><mo>-</mo></msubsup><mo>,</mo><mi>U</mi><mo>,</mo><mo>-</mo><mn>1</mn><mo>}</mo><mo>;</mo></mrow></math>]]></maths>其中qr{·}表示求矩阵的正交三角分解,并返回得到的上三角矩阵;(·)<sup>T</sup>为矩阵的转置操作;<img file="A2009101002810004C10.GIF" wi="447" he="59" />表示求矩阵<img file="A2009101002810004C11.GIF" wi="403" he="68" />的Cholesky分解;通过上述步骤,最终迭代得到的<img file="A2009101002810004C12.GIF" wi="60" he="51" />即为所估计得到的电池模型参数;步骤(3)采用标准采样点卡尔曼滤波进行电池剩余电量的估计,具体是:①执行如下初始化过程:起始状态<img file="A2009101002810004C13.GIF" wi="37" he="50" />及其方差P<sub>0</sub>分别为:<maths num="0018"><![CDATA[<math><mrow><msub><mover><mi>z</mi><mo>^</mo></mover><mn>0</mn></msub><mo>=</mo><msub><mi>SOC</mi><mn>0</mn></msub><mo>=</mo><mn>100</mn><mo>%</mo><mo>,</mo></mrow></math>]]></maths>P<sub>0</sub>=var(z<sub>0</sub>)=10<sup>-2</sup>,处理噪声方差R<sub>w</sub>和观测噪声方差R<sub>v</sub>分别为:R<sub>w</sub>=10<sup>-5</sup>,R<sub>v</sub>=10<sup>-2</sup>扩展后的状态向量<img file="A2009101002810004C15.GIF" wi="48" he="67" />及其协方差P<sub>0</sub><sup>a</sup>为:<maths num="0019"><![CDATA[<math><mrow><msubsup><mover><mi>z</mi><mo>^</mo></mover><mn>0</mn><mi>a</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>z</mi><mn>0</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths><maths num="0020"><![CDATA[<math><mrow><msubsup><mi>P</mi><mn>0</mn><mi>a</mi></msubsup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>P</mi><mn>0</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>R</mi><mi>w</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>R</mi><mi>v</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>尺度参数γ为:<maths num="0021"><![CDATA[<math><mrow><mi>&gamma;</mi><mo>=</mo><msqrt><mn>3</mn></msqrt></mrow></math>]]></maths>均值加权系数w<sub>i</sub><sup>(m)</sup>,i=0,1,2,...,6和方差加权系数w<sub>i</sub><sup>(c)</sup>,i=0,1,2,...,6分别为:<maths num="0022"><![CDATA[<math><mrow><msubsup><mi>w</mi><mn>0</mn><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math>]]></maths><maths num="0023"><![CDATA[<math><mrow><msubsup><mi>w</mi><mn>0</mn><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mn>2</mn><mo>,</mo></mrow></math>]]></maths><maths num="0024"><![CDATA[<math><mrow><msubsup><mi>w</mi><mi>i</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>w</mi><mi>i</mi><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><mn>6</mn><mo>,</mo></mrow></math>]]></maths>1≤i≤6②采用标准采样点卡尔曼滤波算法进行循环递推:在测量时刻k=1,2,3,…,根据测量电路测得的实际工作中的电池端电压y<sub>k</sub>及电池的供电电流i<sub>k</sub>,按下列各式进行递推计算:(l)根据k-1时刻的扩展状态向量<img file="A2009101002810005C4.GIF" wi="68" he="68" />及其协方差P<sub>k-1</sub><sup>a</sup>,计算该时刻的所有的采样点序列<img file="A2009101002810005C5.GIF" wi="107" he="51" /><img file="A2009101002810005C6.GIF" wi="864" he="97" />(m)根据状态方程进行时间域更新:由采样点序列<img file="A2009101002810005C7.GIF" wi="82" he="51" />根据状态方程计算采样点更新<img file="A2009101002810005C8.GIF" wi="130" he="56" /><img file="A2009101002810005C9.GIF" wi="370" he="57" />对采样点更新<img file="A2009101002810005C10.GIF" wi="102" he="56" />进行加权,计算状态估计<img file="A2009101002810005C11.GIF" wi="68" he="51" /><img file="A2009101002810005C12.GIF" wi="364" he="120" />计算状态估计<img file="A2009101002810005C13.GIF" wi="42" he="50" />的方差<img file="A2009101002810005C14.GIF" wi="77" he="56" /><img file="A2009101002810005C15.GIF" wi="798" he="120" />(n)根据观测方程根据如下公式完成测量更新:有采样点更新<img file="A2009101002810005C16.GIF" wi="103" he="57" />根据观测方程计算测量更新<img file="A2009101002810005C17.GIF" wi="126" he="56" /><img file="A2009101002810005C18.GIF" wi="382" he="57" />对测量更新<img file="A2009101002810005C19.GIF" wi="98" he="57" />进行加权,计算测量估计<img file="A2009101002810005C20.GIF" wi="75" he="51" /><img file="A2009101002810005C21.GIF" wi="364" he="120" />计算测量估计<img file="A2009101002810005C22.GIF" wi="47" he="51" />的方差<img file="A2009101002810005C23.GIF" wi="82" he="56" /><img file="A2009101002810005C24.GIF" wi="799" he="120" />计算<img file="A2009101002810005C25.GIF" wi="101" he="57" />与<img file="A2009101002810005C26.GIF" wi="98" he="56" />的互协方差<img file="A2009101002810005C27.GIF" wi="107" he="56" /><img file="A2009101002810005C28.GIF" wi="827" he="131" />计算卡尔曼增益K<sub>k</sub>:<maths num="0025"><![CDATA[<math><mrow><msub><mi>K</mi><mi>k</mi></msub><mo>=</mo><msub><mi>P</mi><mrow><msub><mi>z</mi><mi>k</mi></msub><msub><mi>y</mi><mi>k</mi></msub></mrow></msub><msubsup><mi>P</mi><msub><mover><mi>y</mi><mo>~</mo></mover><mi>k</mi></msub><mrow><mo>-</mo><mn>1</mn></mrow></msubsup></mrow></math>]]></maths>计算状态更新<img file="A2009101002810005C30.GIF" wi="63" he="51" /><maths num="0026"><![CDATA[<math><mrow><msub><mover><mi>z</mi><mo>^</mo></mover><mi>k</mi></msub><mo>=</mo><msubsup><mi>z</mi><mi>k</mi><mo>-</mo></msubsup><mo>+</mo><msub><mi>K</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>y</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>)</mo></mrow></mrow></math>]]></maths>计算状态更新<img file="A2009101002810005C32.GIF" wi="36" he="50" />的方差<img file="A2009101002810005C33.GIF" wi="81" he="56" /><maths num="0027"><![CDATA[<math><mrow><msub><mi>P</mi><msub><mi>x</mi><mi>k</mi></msub></msub><mo>=</mo><msubsup><mi>P</mi><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo></msubsup><mo>-</mo><msub><mi>K</mi><mi>k</mi></msub><msub><mi>P</mi><msub><mover><mi>y</mi><mo>~</mo></mover><mi>k</mi></msub></msub><msubsup><mi>K</mi><mi>k</mi><mi>T</mi></msubsup></mrow></math>]]></maths>递推所得到的状态更新值<img file="A2009101002810005C35.GIF" wi="37" he="50" />即为当前时刻k所估计得到的电池剩余电量。
地址 310018浙江省杭州市江干区下沙高教园区2号大街