卡尔曼滤波结合神经网络在MEMS传感器上的应用*

2021-11-24 11:53黄一超
传感器与微系统 2021年11期
关键词:陀螺仪协方差卡尔曼滤波

禹 忠, 黄一超, 郭 畅

(西安邮电大学 通信与信息工程学院,陕西 西安 710121)

0 引 言

微机电系统(micro-electro-mechanical system,MEMS)传感器,是一种可以将多种自然信号收集并转换为电子系统能够识别的电信号的工具,凭借其体积小、重量轻,抗干扰能力强,能耗低研究者会利用或提出相关算法来实现对MEMS传感器精度的提升。

马群等人[1]建立了自回归滑动平均模型,再通过卡尔曼滤波器对MEMS的精度进行提升,并通利用Allan方差分析法,观测出其量化噪声、角度随机游走和零偏误差系数都形成了不同程度的降低。孙玉洁等人[2]曾利用神经网络进行非线性映射,通过建立传感器输出数据与实际姿态之间的误差补偿模型,预测出三种姿态角的误差补偿度数,提升了MEMS在姿态感应输出上的精度。王法亮等人[3]和郭震等人[4]在神经网络算法的基础上分别引入了自适应权重粒子群优化(particle swarm optimization,PSO)算法和萤火虫算法(firefly algorithm,FA)对神经网络算法进行优化,从而针对MEMS加速度计实现效果更加显著的温度误差补偿。

本文以陀螺仪阵列[5]为研究对象,针对其建立随机漂移误差模型,在原先卡尔曼滤波的基础上再结合人工神经网络(artificial neural network,ANN)算法有规律性地对过程噪声协方差矩阵Q和测量噪声协方差矩阵R进行训练,最后对比此结合算法与原先基础卡尔曼滤波算法的降噪能力。

1 陀螺仪阵列漂移误差模型

1.1 算法整体流程解析

实验中,选用4片型号为ADXRS620的单轴陀螺仪在一块印刷电路板(printed circuit board,PCB)上2×2进行布线排列从而实现陀螺仪的阵列排布,主控芯片采用STM32151CB,经过初步数据采集之后,经过建立的陀螺仪阵列的随意漂移误差模型,如图1。

图1 系统整体算法设计流程

每进行3 000次卡尔曼滤波迭代就利用神经网络算法对矩阵Q和矩阵R进行训练一轮,直到最后的高精度数据输出。最后,将经过卡尔曼与神经网络算法结合的滤波算法输出的数据和经过单一卡尔曼滤波算法输出的数据进行比较,突出本文所提出的算法的先进性。

1.2 Allan方差分析法

Allan方差分析法通常被用来分析五种类型的误差:零偏不稳定性、角度随机游走白噪声、速率斜坡、角速度随机游走白噪声和陀螺仪的量化噪声。本文研究的是陀螺仪阵列的前三种类型误差。本文利用Allan方差法实现两个功能:一个是对比经过不同滤波算法的陀螺仪性能;另一个则是获得相关的噪声参数(噪声参数可以用于设置Q阵或是直观的定量对比分析)。

1.3 陀螺仪阵列随机漂移建模

式中i为陀螺仪阵列中的第i个陀螺仪;bi为第i个陀螺仪的零偏不稳定性;nbi则为第i个陀螺仪的角速度随机游走白噪声;yi的含义是陀螺仪的实际输出;ω为陀螺仪的真实角速率,在实际的实验中,由于存在噪声的影响,因此ω表现为nω;nai为陀螺仪的角度随机白噪声。

2 卡尔曼滤波建模设计

2.1 随机漂移误差模型的卡尔曼形式

构造本文算法中的基于卡尔曼滤波[6~8]的系统的状态方程和量测方程。首先将式(1)中两式改写成矩阵形式

其中,各向量矩阵展开为

本文将零偏不稳定性b和真实角速率ω作为状态,系统的状态矢量X=[bTω]T,由此式在(2)的基础上建立陀螺仪阵列的状态方程和量测方程如下

式中F为系统的状态转移矩阵,为0(N+1)×(N+1);G为噪声矩阵,为I(N+1)×(N+1);此式中的H为含有噪声的量测矩阵,为[IN×N… 1N×1];W(t)和V(t)为相互独立的白噪声,其方差分别是q和r,E[W(t)WT(t)]=Qδ(t-τ),E[V(t)VT(t)]=Rδ(t-τ)。

式中Qb为角速度随机游走噪声矢量nb的协方差矩阵,Qω为真实角速率的噪声矢量nω的协方差矩阵

R=[Qa]

(5)

式中Qa为角度随机游走噪声矢量na的协方差矩阵。

2.2 卡尔曼递推迭代

本文实验是建立在25 ℃的恒温环境下的,卡尔曼滤波器的采样频率为200 Hz,采样点总共15 000个。经过Allan方差的随机漂移误差识别,令N=4,则Q阵的初值为106diag(1.1,1.2,1.1,1.3,1.0),R阵的初值是3×10-3diag(1,1,1,1),X0=[0 0 0 0 0]T,P0=diag(100,100,100,100,100)。

将式(3)离散化得

当N=4时,式(6)中的F为05×5,G为I5×5,H为[I4×4…I4×1];系统的观测方程构建如式(7)

(7)

迭代时,将训练好的Q阵和R阵代入如下的式(8)和式(9)中

Pk|k-1=FPk-1|k-1FT+GQGT

(8)

Kk=Pk|k-1HT[HPk|k-1HT+R]-1

(9)

式(9)则通过更新Kk检查卡尔曼滤波器内神经网络模型与实际测量值的权重从而起到滤波的效果;Kk更新后,再通过式(10)求出卡尔曼滤波的最佳值

(10)

最后再通过式(11)实现状态协方差矩阵的更新,准备开始下一次迭代

Pk|k=(I-KkH)Pk|k-1

(11)

式中Pk|k为估计误差协方差阵。

3 神经网络算法解析

本文选用的是Python编程语言中的TensorFlow框架来搭建人工神经网络。

采用4层训练网络[9,10],防止因输入输出数据量级过高使学习函数散射从而导致精度降低的问题出现。每进行3 000次卡尔曼迭代神经网络系统就对随机漂移误差模型中的Q值和R值分别进行训练一次,总训练次数为5次。此训练网络是一个单一输入和单一输出的的神经网络系统,输入端为Q值或R值,记为X1,四层的隐藏间层的神经元数量分别为第一层10个、第二层30个、第三层60个以及第四层20个。图2为神经元的工作模式示意图。

图2 神经元工作示意

数据进入输入层并展开成到第一层的10个神经元,每个神经元通过突触权值Wk1,Wk2,…,Wkn进行加权整理,当输入超过阈值T时,系统会激发神经元形成脉冲,通过非线性的传递函数最终输出Y1。该网络采用的优化算法是梯度下降算法中的随机梯度下降算法。其参数的更新公式如下

本实验的对象是2×2的单轴陀螺仪阵列,通过每个陀螺仪之间的相关性进行数据融合可以得到最终的滤波数据。图3为不同模型的滤波结果对比,图3可以明显看出卡尔曼滤波结合神经网络滤波算法的降噪能力要高于基础卡尔曼滤波器的降噪能力。

图3 不同模型滤波结果对比

从图4的滤波前后Allan方差双对数曲线图可以看出,图中各数据的曲线走势基本相同,因此,传感器间误差差异不大,表明实验中选用的各个陀螺仪性能基本一致,符合陀螺仪阵列设计。卡尔曼滤波结合神经网络滤波算法处理后的数据曲线在所有曲线的最下方,说明算法对陀螺仪的各个误差参数的抑制更优。并且算法曲线走势与原始数据融曲线走势基本相同,表明经过算法处理后并未对陀螺仪的误差特性进行改变。

图4 滤波前后Allan方差双对数曲线对比

表1 不同滤波算法随机漂移误差系数对比

5 结 论

本文针对4个单轴MEMS陀螺仪形成的2×2阵列构成的虚拟陀螺,提出了一种卡尔曼滤波结合ANN的滤波算法,通过将神经网络系统嵌套在卡尔曼迭代中,可以对各种噪声进行有效抑制,从而提高陀螺仪阵列的输出精度。并且通过实际测量数据进行了验证,结果证明:本文提出的结合算法将 MEMS陀螺仪阵列的零偏不稳定性、角度随机游走和速率斜坡等重要参数实现了大幅优化,同时与基础卡尔曼滤波算法相比,本文结合算法将上述三个参数分别下降了76.38 %,78.91 %和80.98 %,其优化性能具有明显优势。

猜你喜欢
陀螺仪协方差卡尔曼滤波
基于EMD的MEMS陀螺仪随机漂移分析方法
用于检验散斑协方差矩阵估计性能的白化度评价方法
我国著名陀螺仪专家——林士谔
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器
基于模糊卡尔曼滤波算法的动力电池SOC估计