王丹丹,谭开拓,赵建周
(安阳工学院 电子信息与电气工程学院,河南安阳454000)
进入20世纪以来,科学技术发展迅速,人们的生活进入了微型化时代[1]。微机电系统(Micro-Elector-Mechanical System,MEMS)[2]受到了越来越多的关注。加速度计是一种用来感测外部力量的一种器件[3]。当外力作用于传感器上时,传感器内部的耐震物质会发生一定的位移从而压电元件会产生感应,通过测量传感器的电荷数,可以得到载体的加速度。其内部结构如图1所示。
图1 加速度计结构图
陀螺仪又称为角速度传感器,是一种用来测量载体的转动角速度和转动角度的测量工具[4],利用自身的惯性特性去测量和感知载体的运动状态[5]。它不受外界的干扰,比如磁场或者信号等外界因素,所以得到了广泛的应用。利用测量载体旋转量的陀螺仪和测量载体线性运动的加速度计,组合成一个测量载体惯性的单元IMU[6],可以获取到载体空间中姿态的各种信息,从而在生活中得到更加广范的应用。比如一些微型的飞机、计步器等。本文设计一个惯性导航小系统,先由陀螺仪测量载体的角速度得到获得载体的运动姿态[7],之后结合上述测量值并利用加速度计获得的测量值,准确地获得载体的运动姿态的信息。修正由重力所带来的误差,通过一个二次的积分得到载体的位置。
记k-1时刻的载体倾角为φk-1,角速度为ϕk-1,则k时刻的估计值为
式中,ϕ为角速度的偏差,用来弥补输出的角速度(wk-ϕk-1);Δt为输出时间差值。
k时刻下,系统的状态模型表示为:
式中,A是状态转移矩阵,B为输入模型。uk表示k时刻系统输出量。wk为k时刻的噪声。假定在k时刻载体输出值为zk,测量噪声vk。
卡尔曼滤波器中的输入向量表示
式中wk为陀螺仪输出的角速度,θk为加速度计计算得到的角度。
卡尔曼滤波器的工作过程主要分为预测过程和更新过程。此外我们还需要输入一个初始化的值,在初始化之后k时刻系统的状态的协方差矩阵为xk|k-1,得到这个矩阵用来评估与理想值之间的差距,pk|k-1值越大代表其误差越大。
Qk是噪声wk在k时刻的协方差矩阵,即输出值和陀螺仪状态估计值的协方差矩阵,因两者无关联,两者的协方差等于两者值的方差,因Qk不受时间影响,该矩阵可定义为:
卡尔曼参数Kk用于测量估计值的权值,在每个时刻根据误差的协方差进行更新。HPk|k-1HT+R是为了预测先验误差的协方差矩阵Pk|k-1和测量值的协方差R,测量噪声越大,该值就越大。
接着计算:xk|k的协方差,然后计算误差协方差矩阵后,重新循环。
主要步骤为:
1)设置x和p初始值为0。
2)将陀螺仪输出的角速度w及公式(4)带入(5)得
4)将式 (6)代入 (8)可得
6)进一步
对倾角去噪处理并仿真,基于卡尔曼滤波的倾角估计如图2所示。
图2 基于卡尔曼滤波的倾角仿真
图2中可以看出去噪前的原始数据曲线比较平滑,对角度变化的动态响应有延时,敏感性低,且角度的偏差较大;经卡尔曼滤波器后的倾角估计有了明显的改善,且响应速度加快。
该模块内置有电源管理寄存器,该地址为0X6B,具体描述见表1。
表1 电源管理寄存器描述
表中DEVICE-RESET是复位地址,当设为1时为复位,复位结束后MPU数据清零该位,具体各位解释见表2。
MPU6050模块的电气原理图如图3所示。
打开上位机软件,选用Mini Mu软件。将MPU6050模块连接到TTL串口,链接到电脑,点击串口选择COM3,选取9600B波特率或者115200B波特率,将模块由水平状态,然后慢慢倾斜可观察到屏幕上加速度图像,角速度值和角度值,记录不同的模块加速度如图4所示。
表2 CLKSEL选择列表
图3 主模块电气图
图4 模块加速度
对加速度,角速度,角度及温度进行Matlab仿真,如图5所示。
图5 MATLAB仿真图
通过TTL串口加入一个USB与手机接口的转换器,把MPU6050模块与手机相连接,可将模块的输出信息显示出来,本实验证明基于智能小车的陀螺仪及加速度计的设计,达到了自主导航的高性能要求,且响应迅速。