基于扩展卡尔曼滤波的惯性里程计组合导航实现过程及对应公式
时间: 2023-06-13 17:05:58 浏览: 130
扩展卡尔曼滤波(Extended Kalman Filter,EKF)是一种用于非线性系统状态估计的经典算法,常用于惯性导航领域中的姿态解算和惯性里程计(Inertial Navigation System,INS)组合导航。下面是基于扩展卡尔曼滤波的惯性里程计组合导航实现过程及对应公式:
1. 状态方程
对于一个惯性导航系统,其状态可以表示为一个六维向量:[x, y, z, vx, vy, vz],其中[x, y, z]为位置,[vx, vy, vz]为速度。假设INS采用欧拉角(roll、pitch、yaw)描述姿态,则状态向量可以表示为[x, y, z, vx, vy, vz, roll, pitch, yaw]。
INS的状态方程可以用牛顿第二定律表示:
$\begin{bmatrix} \ddot{x} \\ \ddot{y} \\ \ddot{z} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ -g \end{bmatrix} + R_b^a \begin{bmatrix} 0 \\ 0 \\ u_z \end{bmatrix}$
$\begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{z} \end{bmatrix} = \begin{bmatrix} \dot{x}_{0} \\ \dot{y}_{0} \\ \dot{z}_{0} \end{bmatrix} + R_b^a \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix}$
其中,$\ddot{x}$、$\ddot{y}$、$\ddot{z}$为物体在惯性系中的加速度,$g$为重力加速度,$R_b^a$为从机体系到惯性系的旋转矩阵,$\dot{x}$、$\dot{y}$、$\dot{z}$为物体在惯性系中的速度,$\dot{x}_{0}$、$\dot{y}_{0}$、$\dot{z}_{0}$为初始速度,$u_x$、$u_y$、$u_z$为机体系下的加速度。
姿态方程可以表示为:
$\begin{bmatrix} \dot{p} \\ \dot{q} \\ \dot{r} \end{bmatrix} = \begin{bmatrix} 1 & sin\phi tan\theta & cos\phi tan\theta \\ 0 & cos\phi & -sin\phi \\ 0 & \frac{sin\phi}{cos\theta} & \frac{cos\phi}{cos\theta} \end{bmatrix} \begin{bmatrix} p \\ q \\ r \end{bmatrix} + \begin{bmatrix} 0 \\ sin\phi sec\theta \\ cos\phi sec\theta \end{bmatrix} \begin{bmatrix} \omega_x \\ \omega_y \\ \omega_z \end{bmatrix}$
其中,$\dot{p}$、$\dot{q}$、$\dot{r}$为欧拉角的变化率,$\phi$、$\theta$、$\psi$为欧拉角,$p$、$q$、$r$为角速度,$\omega_x$、$\omega_y$、$\omega_z$为机体系下的角速度。
2. 观测方程
INS的观测方程可以表示为:
$\begin{bmatrix} \delta x \\ \delta y \\ \delta z \end{bmatrix} = \begin{bmatrix} x_{gps} - x_{ins} \\ y_{gps} - y_{ins} \\ z_{gps} - z_{ins} \end{bmatrix}$
其中,$\delta x$、$\delta y$、$\delta z$为GPS与INS之间的残差,$x_{gps}$、$y_{gps}$、$z_{gps}$为GPS测量的位置,$x_{ins}$、$y_{ins}$、$z_{ins}$为INS估计的位置。
3. 扩展卡尔曼滤波算法
(1)初始化
首先,需要对状态向量和协方差矩阵进行初始化。状态向量的初始值可以从GPS获取,协方差矩阵的初始值可以设置为对角矩阵。
(2)预测
根据状态方程,可以通过上一时刻的状态向量和控制量(加速度和角速度)预测当前时刻的状态向量,并根据姿态方程预测当前时刻的姿态。同时,根据协方差矩阵计算预测误差协方差矩阵。
(3)更新
根据观测方程,可以将GPS测量值转化为残差,并计算残差协方差矩阵。然后,根据预测误差协方差矩阵和残差协方差矩阵计算卡尔曼增益矩阵。最后,根据卡尔曼增益矩阵和残差更新状态向量和协方差矩阵。
(4)循环
重复执行预测和更新步骤,实现惯性里程计组合导航。
4. 总结
扩展卡尔曼滤波是一种广泛应用于惯性导航领域的滤波算法。通过将非线性系统状态方程线性化,实现对状态向量的高精度估计。在实际应用中需要注意模型误差和观测误差的影响,以及卡尔曼滤波算法的计算量和实时性。
阅读全文