发明名称 一种基于卡尔曼滤波的车辆侧倾角与俯仰角估计方法
摘要 本发明公开了一种基于卡尔曼滤波的车辆侧倾角与俯仰角估计方法。本方法针对陆地四轮车辆,建立符合其行驶特征的运动学模型,进一步通过卡尔曼滤波算法实现对车辆侧倾角与俯仰角的实时、准确估计。本发明方法对于较大角度的侧倾角与俯仰角估计依然适用,满足复杂工况下的应用需求,且仅需低成本车载传感器。所估计的侧倾角与俯仰角信息是车辆组合导航与定位的关键参数。
申请公布号 CN104061899B 申请公布日期 2016.03.30
申请号 CN201410281621.1 申请日期 2014.06.20
申请人 东南大学 发明人 李旭;徐启敏;宋翔
分类号 G01C1/00(2006.01)I;G01C9/00(2006.01)I 主分类号 G01C1/00(2006.01)I
代理机构 江苏永衡昭辉律师事务所 32250 代理人 王斌
主权项 一种基于卡尔曼滤波的车辆侧倾角与俯仰角估计方法,其特征在于:针对陆地行驶四轮车辆,建立符合其行驶特征的系统运动模型,进一步通过卡尔曼滤波递推算法实现对车辆侧倾角与俯仰角的实时、准确估计,可以用于在复杂道路环境下估计较大角度的俯仰角和侧倾角,且仅需低成本车载传感器,具体步骤包括:1)建立汽车行驶过程的系统运动模型:忽略地球旋转速度,假设车辆的俯仰角速度、侧倾角速度与垂向速度均为零,则可建立车辆行驶过程的动力学方程:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mi>x</mi></msub><mo>=</mo><msub><mi>a</mi><mi>x</mi></msub><mo>+</mo><msub><mi>&omega;</mi><mi>z</mi></msub><msub><mi>v</mi><mi>y</mi></msub><mo>+</mo><mi>g</mi><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mi>y</mi></msub><mo>=</mo><msub><mi>a</mi><mi>y</mi></msub><mo>-</mo><msub><mi>&omega;</mi><mi>z</mi></msub><msub><mi>v</mi><mi>x</mi></msub><mo>-</mo><mi>g</mi><mi>sin</mi><mi>&phi;</mi><mi>cos</mi><mi>&theta;</mi></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000855553140000011.GIF" wi="1205" he="150" /></maths>式(1)中,v<sub>x</sub>,v<sub>y</sub>分别表示车辆的纵向速度和横向速度,a<sub>x</sub>,a<sub>y</sub>分别表示车辆的纵向加速度和横向加速度,ω<sub>z</sub>表示车辆的横摆角速度,上述变量的定义都是在车体坐标系中定义的,g表示重力加速度,φ,θ分别表示车辆的侧倾角与俯仰角,上标志“·”表示微分,由(1)式可得<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>&theta;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mi>x</mi></msub><mo>-</mo><msub><mi>a</mi><mi>x</mi></msub><mo>-</mo><msub><mi>&omega;</mi><mi>z</mi></msub><msub><mi>v</mi><mi>y</mi></msub></mrow><mi>g</mi></mfrac><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>&phi;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mi>a</mi><mi>y</mi></msub><mo>-</mo><msub><mi>&omega;</mi><mi>z</mi></msub><msub><mi>v</mi><mi>x</mi></msub><mo>-</mo><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mi>y</mi></msub></mrow><mrow><mi>g</mi><mi> </mi><mi>cos</mi><mi>&theta;</mi></mrow></mfrac><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000855553140000012.GIF" wi="1215" he="277" /></maths>式(2)中,纵向车速的微分可通过纵向车速对时间求导获取,考虑到车辆正常行驶过程中,v<sub>y</sub>与<img file="FDA0000855553140000013.GIF" wi="53" he="78" />的数值都较小,因而可以忽略,则式(2)可简化为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>&theta;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mi>x</mi></msub><mo>-</mo><msub><mi>a</mi><mi>x</mi></msub></mrow><mi>g</mi></mfrac><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>&phi;</mi><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mi>a</mi><mi>y</mi></msub><mo>-</mo><msub><mi>&omega;</mi><mi>z</mi></msub><msub><mi>v</mi><mi>x</mi></msub></mrow><mrow><mi>g</mi><mi> </mi><mi>cos</mi><mi>&theta;</mi></mrow></mfrac><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000855553140000014.GIF" wi="1214" he="269" /></maths>2)建立卡尔曼滤波的状态方程和观测方程:离散化后的卡尔曼滤波状态方程的矩阵形式为:<img file="FDA0000855553140000015.GIF" wi="1221" he="70" />式(4)中,k表示离散化时刻;系统状态向量为X=[x<sub>1</sub> x<sub>2</sub>]′且x<sub>1</sub>=θ,x<sub>2</sub>=φ,即X=[θ φ]′,上角标'表示对矩阵转置;W(k‑1)表示零均值的系统高斯白噪声向量且W=[w<sub>1</sub> w<sub>2</sub>]′,其中w<sub>1</sub>、w<sub>2</sub>分别表示两个系统高斯白噪声分量,W(k‑1)对应的系统噪声协方差阵Q(k‑1)为:<maths num="0004" id="cmaths0004"><math><![CDATA[<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><msubsup><mi>&sigma;</mi><msub><mi>w</mi><mn>1</mn></msub><mn>2</mn></msubsup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>&sigma;</mi><msub><mi>w</mi><mn>2</mn></msub><mn>2</mn></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000855553140000021.GIF" wi="477" he="174" /></maths>其中<img file="FDA0000855553140000022.GIF" wi="243" he="94" />分别表示系统高斯白噪声w<sub>1</sub>、w<sub>2</sub>对应的方差;状态转移矩阵<img file="FDA0000855553140000023.GIF" wi="422" he="150" />这是由于车辆行驶过程中,侧倾角与俯仰角都是连续缓慢变化的,可以认为当前采样时刻的侧倾角与俯仰角等于下一采样时刻的侧倾角与俯仰角,卡尔曼滤波观测方程离散化的矩阵形式为:Z(k)=H(k)·X(k)+V(k)        (5)式(5)中,Z为观测向量,H为观测阵,V表示与W互不相关的零均值观测白噪声向量,由于观测向量与状态向量都是指侧倾角与俯仰角,所以<maths num="0005" id="cmaths0005"><math><![CDATA[<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></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000855553140000024.GIF" wi="335" he="150" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>Z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>&theta;</mi><mi>m</mi></msub><mo>(</mo><mi>k</mi><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>&phi;</mi><mi>m</mi></msub><mo>(</mo><mi>k</mi><mo>)</mo></mtd></mtr></mtable></mfenced><mo>,</mo><mi>V</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>n</mi><msub><mi>&theta;</mi><mi>m</mi></msub></msub></mtd></mtr><mtr><mtd><msub><mi>n</mi><msub><mi>&phi;</mi><mi>m</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000855553140000025.GIF" wi="636" he="173" /></maths>其中θ<sub>m</sub>(k)和φ<sub>m</sub>(k)分别为通过传感器测量值直接计算得出的俯仰角与侧倾角值,根据式(3),有:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><msub><mi>&theta;</mi><mi>m</mi></msub><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub><mo>-</mo><msub><mi>a</mi><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub></mrow><mi>g</mi></mfrac><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&phi;</mi><mi>m</mi></msub><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mfrac><mrow><msub><mi>a</mi><mrow><mi>y</mi><mo>_</mo><mi>m</mi></mrow></msub><mo>-</mo><msub><mi>&omega;</mi><mrow><mi>z</mi><mo>_</mo><mi>m</mi></mrow></msub><msub><mi>v</mi><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub></mrow><mrow><mi>g</mi><mi> </mi><msub><mi>cos&theta;</mi><mi>m</mi></msub></mrow></mfrac><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000855553140000026.GIF" wi="1206" he="278" /></maths>式(6)中,a<sub>x_m</sub>、a<sub>y_m</sub>与ω<sub>z_m</sub>分别表示利用低成本MEMS传感器所测得的纵向加速度、横向加速度与横摆角速度,v<sub>x_m</sub>表示通过车速传感器所获取的车辆纵向速度,<img file="FDA0000855553140000027.GIF" wi="97" he="70" />表示v<sub>x_m</sub>的微分,由车速传感器所测得的纵向速度信号对时间求导来获取,即在每一离散时刻k,有:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mover><mi>v</mi><mo>&CenterDot;</mo></mover><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>v</mi><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mrow><mi>x</mi><mo>_</mo><mi>m</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000855553140000028.GIF" wi="1205" he="126" /></maths>式(7)中,dt表示采样时间间隔,dt=0.01(秒);<img file="FDA0000855553140000029.GIF" wi="70" he="70" />表示由式(6)计算获得的车辆俯仰角的观测噪声且<img file="FDA00008555531400000210.GIF" wi="70" he="61" />是均值为0、方差为<img file="FDA00008555531400000211.GIF" wi="78" he="86" />的高斯白噪声,<img file="FDA00008555531400000212.GIF" wi="68" he="63" />表示通过式(6)计算获得的车辆侧倾角的观测噪声且<img file="FDA00008555531400000213.GIF" wi="63" he="63" />是均值为0、方差为<img file="FDA00008555531400000214.GIF" wi="79" he="79" />的高斯白噪声;V对应的观测噪声方差阵R可表示为<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msup><msub><mi>&sigma;</mi><msub><mi>&theta;</mi><mi>m</mi></msub></msub><mn>2</mn></msup></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><msup><msub><mi>&sigma;</mi><msub><mi>&phi;</mi><mi>m</mi></msub></msub><mn>2</mn></msup></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA00008555531400000215.GIF" wi="383" he="174" /></maths>3)所需车载传感器安装:由式(6)可知,只需测得车辆的纵向速度、纵向加速度、横向加速度与横摆角速度,即可获取卡尔曼滤波观测方程所需的观测量,从而利用卡尔曼滤波递推算法来估计车辆的俯仰角和侧倾角;因此,仅需要两个低成本MEMS加速度传感器,一个低成本MEMS陀螺仪以及车速传感器即可满足测量要求;其中两个低成本MEMS加速度传感器安装于车辆质心位置附近,一个沿车体坐标系纵轴,用以测量纵向加速度,一个沿车体坐标系横轴,用以测量横向加速度,低成本MEMS陀螺仪也安装于车辆质心位置附近,沿车体坐标系垂向轴安装,用以测量横摆角速度,车速传感器用于测量纵向车速,要求车速测量精度误差小于0.05米/秒,在测得纵向车速信号后,按照式(7)求得其微分,用于计算观测量;4)卡尔曼滤波递推:对于式(4)和式(5)所描述的系统状态方程和测量方程,运用卡尔曼滤波理论,建立下面的标准滤波递推过程,该递推过程包括时间更新和测量更新,下面递推过程的前两步为时间更新,剩余的三步为测量更新:时间更新:状态一步预测方程<img file="FDA0000855553140000031.GIF" wi="629" he="79" />一步预测误差方差阵<img file="FDA0000855553140000032.GIF" wi="1028" he="71" />测量更新:滤波增益矩阵K(k)=P(k,k‑1)·H<sup>T</sup>(k)·[H(k)P(k,k‑1)H′(k)+R(k)]<sup>‑1</sup>状态估计<maths num="0010" id="cmaths0010"><math><![CDATA[<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>&lsqb;</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><mo>&CenterDot;</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>&rsqb;</mo><mo>&rsqb;</mo></mrow>]]></math><img file="FDA0000855553140000033.GIF" wi="1087" he="94" /></maths>估计误差方差阵P(k)=[I‑K(k)·H(k)]·P(k,k‑1)经过上述递推计算后,即可实时估计出车辆在每个离散时刻k的侧倾角与俯仰角。
地址 210096 江苏省南京市四牌楼2号