发明名称 一种基于改进扩展卡尔曼滤波的车辆运行状态估计方法
摘要 一种基于改进扩展卡尔曼滤波的车辆运行状态估计方法,利用改进的扩展卡尔曼滤波算法对汽车动力学过程进行适当的建模,获得汽车在较高机动运行状况下的纵向前进速度、横摆角速度、侧向速度以及质心侧偏角等运行状态信息,这些信息可用于汽车主动安全的相关控制,本发明方法具有精度高、成本低、实时性好等特点。
申请公布号 CN102556075A 申请公布日期 2012.07.11
申请号 CN201110419651.0 申请日期 2011.12.15
申请人 东南大学 发明人 李旭;陈伟
分类号 B60W40/10(2012.01)I 主分类号 B60W40/10(2012.01)I
代理机构 南京天翼专利代理有限责任公司 32112 代理人 朱戈胜
主权项 1.一种基于改进扩展卡尔曼滤波的车辆运行状态估计方法,其特征在于:本方法是针对前轮转向四轮汽车,建立非线性整车动力学模型和轮胎纵向力模型,同时利用车载轮速和方向盘转角传感器信息来确定建立滤波系统的外部输入量和观测量,然后通过提出的改进扩展卡尔曼滤波递推算法来实现对汽车纵向前进速度、横摆角速度、侧向速度和质心侧偏角信息的估计;所述滤波系统是扩展卡尔曼滤波系统,下述系统是指扩展卡尔曼滤波系统;具体步骤包括:1)建立扩展卡尔曼滤波的状态方程和观测方程:建立三自由度的汽车非线性动力学模型,即建立扩展卡尔曼滤波的系统状态方程,离散化后的卡尔曼滤波的状态方程的矩阵形式表示为:X(k)=f(X(k-1),U(k-1),W(k-1),γ(k-1))              (1)式(1)中,k表示离散化时刻;系统状态向量为X=[x<sub>1</sub> x<sub>2</sub> x<sub>3</sub>]′且x<sub>1</sub>=v<sub>x</sub>,x<sub>2</sub>=ω<sub>z</sub>,x<sub>3</sub>=v<sub>y</sub>,即X=[v<sub>x</sub> ω<sub>z</sub> v<sub>y</sub>]′,v<sub>x</sub>、v<sub>y</sub>及ω<sub>z</sub>分别是汽车的纵向前进速度、侧向速度和横摆角速度,本发明中上角标′表示对矩阵转置;系统外输入向量为U=[u<sub>1</sub> u<sub>2</sub> u<sub>3</sub>]′且u<sub>1</sub>=δ<sub>f</sub>,u<sub>2</sub>=F<sub>tf</sub>,u<sub>3</sub>=F<sub>tr</sub>,即U=[δ<sub>f</sub> F<sub>tf</sub> F<sub>tr</sub>]′,δ<sub>f</sub>是前轮转向角,F<sub>tf</sub>是作用在单个前轮上的纵向力,F<sub>tr</sub>是作用在单个后轮上的纵向力;W(k-1)表示零均值的系统高斯白噪声向量且W=[w<sub>1</sub> w<sub>2</sub> w<sub>3</sub>]′,其中w<sub>1</sub>、w<sub>2</sub>及w<sub>3</sub>分别表示三个系统高斯白噪声分量;γ(k-1)表示系统外输入对应的零均值高斯白噪声向量且<maths num="0001"><![CDATA[<math><mrow><mi>&gamma;</mi><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>w</mi><msub><mi>&delta;</mi><mi>f</mi></msub></msub></mtd><mtd><msub><mi>w</mi><msub><mi>F</mi><mi>tf</mi></msub></msub></mtd><mtd><msub><mi>w</mi><msub><mi>F</mi><mi>tr</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>&prime;</mo></msup><mo>,</mo></mrow></math>]]></maths>其中<img file="FDA0000120459510000012.GIF" wi="171" he="48" />及<img file="FDA0000120459510000013.GIF" wi="64" he="43" />分别表示直测或估计的系统外输入δ<sub>f</sub>、F<sub>tf</sub>及F<sub>tr</sub>对应的零均值高斯白噪声,这些白噪声隐含在系统状态函数f的三个系统外输入里面;非线性的系统状态函数向量为<maths num="0002"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>U</mi><mo>,</mo><mi>W</mi><mo>,</mo><mi>&gamma;</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>f</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>f</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中,<maths num="0003"><![CDATA[<math><mrow><msub><mi>f</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mfrac><mi>T</mi><mi>m</mi></mfrac><mo>[</mo><mi>m</mi><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub><mfrac><mrow><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><msub><mi>&delta;</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><msub><mi>C</mi><mi>d</mi></msub><msub><mi>A</mi><mi>f</mi></msub><msub><mi>&rho;</mi><mi>a</mi></msub><msubsup><mi>v</mi><mi>x</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo><mo>+</mo><mfrac><mrow><mn>2</mn><mi>T</mi></mrow><mi>m</mi></mfrac><mo>[</mo><msub><mi>F</mi><mi>tf</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>F</mi><mi>tr</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo><mo>+</mo><msub><mi>w</mi><mn>1</mn></msub></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msub><mi>f</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mfrac><mi>T</mi><msub><mi>I</mi><mi>z</mi></msub></mfrac><mo>{</mo><mn>2</mn><mi>a</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>[</mo><msub><mi>&delta;</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mfrac><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mrow><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>]</mo></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><mo>-</mo><mn>2</mn><mi>b</mi><msub><mi>C</mi><mi>&alpha;r</mi></msub><mfrac><mrow><mo>[</mo><mi>b</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow><mrow><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>}</mo><mo>+</mo><mfrac><mrow><mn>2</mn><mi>aT</mi></mrow><msub><mi>I</mi><mi>z</mi></msub></mfrac><msub><mi>F</mi><mi>tf</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>&delta;</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>w</mi><mn>2</mn></msub></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>f</mi><mn>3</mn></msub><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>W</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>&gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mfrac><mi>T</mi><mi>m</mi></mfrac><mo>{</mo><mo>-</mo><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>[</mo><msub><mi>&delta;</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>]</mo><mo>+</mo><mn>2</mn><msub><mi>C</mi><mi>&alpha;r</mi></msub><mfrac><mrow><mi>b</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>}</mo><mo>+</mo><mfrac><mrow><mn>2</mn><mi>T</mi></mrow><mi>m</mi></mfrac><msub><mi>F</mi><mi>tf</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>&delta;</mi><mi>f</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>w</mi><mn>3</mn></msub></mrow></math>]]></maths>在f<sub>1</sub>、f<sub>2</sub>及f<sub>3</sub>的上述表达式中,m和I<sub>z</sub>分别是车辆的质量和绕过质心垂向轴的转动惯量,a是汽车前轮轮轴中心到质心的距离,b是汽车后轮轮轴中心到质心的距离,C<sub>αf</sub>、C<sub>αr</sub>分别表示前、后轮胎的侧偏刚度,C<sub>d</sub>表示空气阻力系数,A<sub>f</sub>表示车辆前向面积,ρ<sub>a</sub>代表空气密度,T表示离散的周期;W对应的系统噪声协方差阵Q(k-1)为:<maths num="0009"><![CDATA[<math><mrow><mi>Q</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><msub><mi>&sigma;</mi><msub><mi>w</mi><mn>1</mn></msub></msub><mn>2</mn></msup></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msup><msub><mi>&sigma;</mi><msub><mi>w</mi><mn>2</mn></msub></msub><mn>2</mn></msup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msup><msub><mi>&sigma;</mi><msub><mi>w</mi><mn>3</mn></msub></msub><mn>2</mn></msup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中<img file="FDA0000120459510000028.GIF" wi="211" he="73" />及<img file="FDA0000120459510000029.GIF" wi="80" he="63" />分别表示系统高斯白噪声w<sub>1</sub>、w<sub>2</sub>及w<sub>3</sub>对应的方差;γ(k-1)对应的系统外部输入噪声的协方差阵Γ(k-1)为<maths num="0010"><![CDATA[<math><mrow><mi>&Gamma;</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><msub><mi>&sigma;</mi><msub><mi>&delta;</mi><mi>f</mi></msub></msub><mn>2</mn></msup></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msup><msub><mi>&sigma;</mi><msub><mi>F</mi><mi>tf</mi></msub></msub><mn>2</mn></msup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msup><msub><mi>&sigma;</mi><msub><mi>F</mi><mi>tr</mi></msub></msub><mn>2</mn></msup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中<img file="FDA00001204595100000211.GIF" wi="223" he="73" />及<img file="FDA00001204595100000212.GIF" wi="84" he="63" />分别表示<img file="FDA00001204595100000213.GIF" wi="185" he="56" />及<img file="FDA00001204595100000214.GIF" wi="63" he="43" />对应的方差;卡尔曼滤波的观测方程的离散化矩阵形式为:Z(k)=H(k)·X(k)+V(k)                                (2)式(2)中,Z为观测向量,H为观测阵,V表示与W互不相关的零均值观测白噪声向量,且<maths num="0011"><![CDATA[<math><mrow><mi>Z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>v</mi><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>&omega;</mi><mrow><mi>z</mi><mo>_</mo><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>、<maths num="0012"><![CDATA[<math><mrow><mi>H</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>、<maths num="0013"><![CDATA[<math><mrow><mi>V</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>n</mi><msub><mi>v</mi><mi>x</mi></msub></msub></mtd></mtr><mtr><mtd><msub><mi>n</mi><msub><mi>&omega;</mi><mi>z</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中v<sub>x_m</sub>(k)和ω<sub>z_m</sub>(k)分别为通过轮速传感器测量获得的车辆纵向前进速度和横摆角速度;<img file="FDA00001204595100000218.GIF" wi="49" he="48" />表示通过轮速传感器测量获得的车辆纵向前进速度的观测噪声且<img file="FDA00001204595100000219.GIF" wi="48" he="48" />是均值为0、方差为<img file="FDA00001204595100000220.GIF" wi="56" he="63" />的高斯白噪声,<img file="FDA00001204595100000221.GIF" wi="55" he="48" />表示通过轮速传感器测量获得的横摆角速度的观测噪声且<img file="FDA00001204595100000222.GIF" wi="55" he="45" />是均值为0、方差为<img file="FDA00001204595100000223.GIF" wi="61" he="64" />的高斯白噪声;V对应的观测噪声方差阵R可表示为<maths num="0014"><![CDATA[<math><mrow><mi>R</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><msub><mi>&sigma;</mi><msub><mi>v</mi><mi>x</mi></msub></msub><mn>2</mn></msup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msup><msub><mi>&sigma;</mi><msub><mi>&omega;</mi><mi>z</mi></msub></msub><mn>2</mn></msup></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>2)进行改进的扩展卡尔曼滤波递推对于式(1)和式(2)所描述的状态方程和观测方程,运用扩展卡尔曼滤波理论,建立标准滤波递推过程,该递推过程包括时间更新和测量更新:时间更新:状态一步预测方程:<maths num="0015"><![CDATA[<math><mrow><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>X</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mn>0,0</mn><mo>)</mo></mrow></mrow></math>]]></maths>一步预测误差方差阵P(k,k-1):P(k,k-1)=A(k,k-1)P(k-1)A′(k,k-1)+B(k,k-1)Γ(k-1)B′(k,k-1)+Q(k-1)其中,A是系统状态函数向量f对状态向量X求偏导数的雅可比矩阵,B是系统状态函数向量f对外部输入向量U求偏导数的雅可比矩阵,即矩阵A和B的第i行第j列元素A<sub>[i,j]</sub>和B<sub>[i,j]</sub>(i=1,2,3  j=1,2,3)可分别通过下面的式子求得<maths num="0016"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mo>&PartialD;</mo><msub><mi>f</mi><mi>i</mi></msub></mrow><mrow><mo>&PartialD;</mo><msub><mi>x</mi><mi>j</mi></msub></mrow></mfrac><mrow><mo>(</mo><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mn>0,0</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2,3</mn><mi>j</mi><mo>=</mo><mn>1,2,3</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0017"><![CDATA[<math><mrow><msub><mi>B</mi><mrow><mo>[</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mo>&PartialD;</mo><msub><mi>f</mi><mi>i</mi></msub></mrow><mrow><mo>&PartialD;</mo><msub><mi>u</mi><mi>j</mi></msub></mrow></mfrac><mrow><mo>(</mo><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>U</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mn>0,0</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2,3</mn><mi>j</mi><mo>=</mo><mn>1,2,3</mn><mo>)</mo></mrow></mrow></math>]]></maths>具体而言,各矩阵元素的取值如下:<maths num="0018"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>1,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mn>1</mn><mo>+</mo><mi>T</mi><mo>[</mo><mfrac><mrow><mo>-</mo><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>m</mi><msup><msub><mi>v</mi><mi>x</mi></msub><mn>2</mn></msup></mrow></mfrac><msub><mi>&delta;</mi><mi>f</mi></msub><mo>-</mo><mfrac><mrow><msub><mi>C</mi><mi>d</mi></msub><msub><mi>A</mi><mi>f</mi></msub><msub><mi>&rho;</mi><mi>a</mi></msub><msub><mi>v</mi><mi>x</mi></msub></mrow><mi>m</mi></mfrac><mo>]</mo><msub><mi>A</mi><mrow><mo>[</mo><mn>1,2</mn><mo>]</mo></mrow></msub><mo>=</mo><mi>T</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mfrac><mrow><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub><mi>a</mi></mrow><mrow><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac><msub><mi>&delta;</mi><mi>f</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0019"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>1,3</mn><mo>]</mo></mrow></msub><mo>=</mo><mi>T</mi><mrow><mo>(</mo><msub><mi>&omega;</mi><mi>z</mi></msub><mo>+</mo><mfrac><mrow><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub></mrow><mrow><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac><msub><mi>&delta;</mi><mi>f</mi></msub><mo>)</mo></mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>2,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>T</mi><mo>[</mo><mi>a</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mo>)</mo></mrow><mo>+</mo><mi>b</mi><msub><mi>C</mi><mi>&alpha;r</mi></msub><mrow><mo>(</mo><mi>b</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mo>)</mo></mrow><mo>]</mo></mrow><mrow><msub><mi>I</mi><mi>z</mi></msub><msup><msub><mi>v</mi><mi>x</mi></msub><mn>2</mn></msup></mrow></mfrac></mrow></math>]]></maths><maths num="0020"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>2,2</mn><mo>]</mo></mrow></msub><mo>=</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mn>2</mn><mi>T</mi><mrow><mo>(</mo><msup><mi>a</mi><mn>2</mn></msup><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup><msub><mi>C</mi><mi>&alpha;r</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mi>I</mi><mi>z</mi></msub><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac><msub><mi>A</mi><mrow><mo>[</mo><mn>2,3</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>T</mi><mrow><mo>(</mo><mi>b</mi><msub><mi>C</mi><mi>&alpha;r</mi></msub><mo>-</mo><mi>a</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mi>I</mi><mi>z</mi></msub><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac></mrow></math>]]></maths><maths num="0021"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>3,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mi>T</mi><mo>[</mo><mo>-</mo><msub><mi>&omega;</mi><mi>z</mi></msub><mo>-</mo><mn>2</mn><msub><mi>C</mi><mi>&alpha;r</mi></msub><mfrac><mrow><mi>b</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub></mrow><mrow><mi>m</mi><msup><msub><mi>v</mi><mi>x</mi></msub><mn>2</mn></msup></mrow></mfrac><mo>+</mo><mn>2</mn><msub><mi>C</mi><mi>&alpha;f</mi></msub><mfrac><mrow><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub></mrow><mrow><mi>m</mi><msup><msub><mi>v</mi><mi>x</mi></msub><mn>2</mn></msup></mrow></mfrac><mo>]</mo></mrow></math>]]></maths><maths num="0022"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>3,2</mn><mo>]</mo></mrow></msub><mo>=</mo><mi>T</mi><mo>[</mo><mo>-</mo><msub><mi>v</mi><mi>x</mi></msub><mo>+</mo><mn>2</mn><mfrac><mrow><mo>(</mo><mi>b</mi><msub><mi>C</mi><mi>&alpha;r</mi></msub><mo>-</mo><mi>a</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>)</mo></mrow><mrow><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac><mo>]</mo></mrow></math>]]></maths><maths num="0023"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mo>[</mo><mn>3,3</mn><mo>]</mo></mrow></msub><mo>=</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mn>2</mn><mi>T</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>&alpha;r</mi></msub><mo>+</mo><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac></mrow></math>]]></maths><maths num="0024"><![CDATA[<math><mrow><msub><mi>B</mi><mrow><mo>[</mo><mn>1,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mn>2</mn><mi>T</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub><mfrac><mrow><mo>(</mo><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mi>a</mi><msub><mi>&omega;</mi><mi>z</mi></msub><mo>)</mo></mrow><mrow><mi>m</mi><msub><mi>v</mi><mi>x</mi></msub></mrow></mfrac><msub><mi>B</mi><mrow><mo>[</mo><mn>1,2</mn><mo>]</mo></mrow></msub><mo>=</mo><msub><mi>B</mi><mrow><mo>[</mo><mn>1,3</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>T</mi></mrow><mi>m</mi></mfrac></mrow></math>]]></maths><maths num="0025"><![CDATA[<math><mrow><msub><mi>B</mi><mrow><mo>[</mo><mn>2,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>Ta</mi></mrow><msub><mi>I</mi><mi>z</mi></msub></mfrac><msub><mi>C</mi><mi>&alpha;f</mi></msub><mo>+</mo><mfrac><mrow><mn>2</mn><mi>Ta</mi></mrow><msub><mi>I</mi><mi>z</mi></msub></mfrac><msub><mi>F</mi><mi>tf</mi></msub><msub><mi>B</mi><mrow><mo>[</mo><mn>2,2</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>Ta</mi></mrow><msub><mi>I</mi><mi>z</mi></msub></mfrac><msub><mi>&delta;</mi><mi>f</mi></msub></mrow></math>]]></maths><maths num="0026"><![CDATA[<math><mrow><msub><mi>B</mi><mrow><mo>[</mo><mn>3,1</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>T</mi><msub><mi>F</mi><mi>tf</mi></msub></mrow><mi>m</mi></mfrac><mo>+</mo><mfrac><mrow><mn>2</mn><mi>T</mi><msub><mi>C</mi><mi>&alpha;f</mi></msub></mrow><mi>m</mi></mfrac><msub><mi>B</mi><mrow><mo>[</mo><mn>3,2</mn><mo>]</mo></mrow></msub><mo>=</mo><mfrac><mrow><mn>2</mn><mi>T</mi><msub><mi>&delta;</mi><mi>f</mi></msub></mrow><mi>m</mi></mfrac></mrow></math>]]></maths>B<sub>[2,3]</sub>=B<sub>[3,3]</sub>=0测量更新:滤波增益矩阵k(k):K(k)=P(k,k-1)·H′(k)·[H(k)P(k,k-1)H′(k)+R(k)]<sup>-1</sup>状态估计:<maths num="0027"><![CDATA[<math><mrow><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mi>K</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>[</mo><mi>Z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>H</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>估计误差方差阵P(k):P(k)=[I-K(k)·H(k)]·P(k,k-1)且I为3×3单位阵在实际递推过程中,测量更新采用标量化处理方法;具体而言,时间更新过程按照上述滤波过程进行,而测量更新按以下改进的递推算法进行:令P<sub>1</sub>=P(k,k-1),<img file="FDA0000120459510000042.GIF" wi="339" he="65" />由于观测向量维数为2,故将<img file="FDA0000120459510000043.GIF" wi="328" he="62" />H(k)、Z(k)和R(k)阵分成两块,即<maths num="0028"><![CDATA[<math><mrow><mi>H</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mover><mi>X</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>h</mi><mrow><mi>r</mi><mo>_</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>r</mi><mo>_</mo><mn>2</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0029"><![CDATA[<math><mrow><mi>H</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>H</mi><mrow><mi>r</mi><mo>_</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>H</mi><mrow><mi>r</mi><mo>_</mo><mn>2</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0030"><![CDATA[<math><mrow><mi>Z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>Z</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>Z</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0031"><![CDATA[<math><mrow><mi>R</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>R</mi><mn>1</mn></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>R</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>对于i从1到2,进行2次递推计算:<maths num="0032"><![CDATA[<math><mrow><msub><mi>K</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>&CenterDot;</mo><msubsup><mi>H</mi><mrow><mi>r</mi><mo>_</mo><mi>i</mi></mrow><mo>&prime;</mo></msubsup></mrow><mrow><msub><mi>H</mi><mrow><mi>r</mi><mo>_</mo><mi>i</mi></mrow></msub><msub><mi>P</mi><mi>i</mi></msub><msubsup><mi>H</mi><mrow><mi>r</mi><mo>_</mo><mi>i</mi></mrow><mo>&prime;</mo></msubsup><mo>+</mo><msub><mi>R</mi><mi>i</mi></msub></mrow></mfrac></mrow></math>]]></maths><maths num="0033"><![CDATA[<math><mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>i</mi></msub><mo>+</mo><msub><mi>K</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>Z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>h</mi><mrow><mi>r</mi><mo>_</mo><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow></math>]]></maths>P<sub>i+1</sub>=(I-K<sub>i</sub>·H<sub>r_i</sub>)·P<sub>i</sub>最终可得P(k)=P<sub>3</sub>,<img file="FDA00001204595100000410.GIF" wi="200" he="65" />在上述滤波递推计算过程中,可确定汽车在每个时刻的汽车纵向前进速度v<sub>x</sub>(k)、横摆角速度ω<sub>z</sub>(k)和侧向速度v<sub>y</sub>(k),进而根据式(3)可确定每个时刻的质心侧偏角:β(k)=arctan[v<sub>y</sub>(k)/v<sub>x</sub>(k)]                            (3)。
地址 210096 江苏省南京市玄武区四牌楼2号