山东盛隆安全技术有限公司

主要完成传感器MPU6050的温度漂移补偿工作

基于卡尔曼滤波和神经网络的倾角传感器温漂补偿

摘要

在嵌入式系统中,精密MEMS倾角仪在运行过程中常因环境变化而产生温漂。本文引入卡尔曼滤波作为预处理步骤,并将其与基于神经网络的温度补偿方法相结合。实验验证表明,在0-50摄氏度范围内,信号质量保留率为97.2%,信噪比达到21.68 dB,温漂现象减少了85.96%,确保了该方法的有效性和可行性。

关键词:MEMS倾角仪;温漂;卡尔曼滤波;神经网络;温度补偿。

1. 引言

MEMS倾角仪由MEMS器件、驱动组件和微电子控制系统组成。MEMS倾角仪易受温度变化影响,导致温漂。为抑制此现象并提高精度,通常建立温漂模型。通过模型分析和预测温漂量,进行补偿以最终减轻温漂[1-3]。

在广泛应用倾角仪时,尤其是低成本传感器,温漂往往是一个严重问题[4]。与高性能传感器相比,这类传感器更易受温度变化影响,导致测量误差增大。因此,对于低成本倾角仪,实施温度补偿措施至关重要。

传统上,温漂通过卡尔曼滤波、均值滤波或神经网络滤波等单一方法解决[5-7]。尽管这些方法能有效处理当前的温漂,但它们缺乏预测建模能力,表明仍有改进空间。针对此,本文首先测试了倾角仪在不同温度下的输出变化。使用卡尔曼滤波去除低频噪声,然后神经网络从这些净化后的数据中学习,建立预测温漂的模型。该模型预测不同温度下的未来温漂,并补偿输出参数。最后,实验证明了该方法的可行性,展示了其在大批量低成本倾角仪筛选场景中的适用性。

2. 倾角传感器温漂实验与卡尔曼滤波

2.1 设备选择

本研究采用MPU6050系列传感器作为数据采集设备,STM32系列作为处理芯片。系统配置如图1所示。由于倾角传感器存在温漂,输出数据会发生变化,因此需要使用神经网络建立识别和补偿模型。

图1.原理图

2.2 实验步骤

为确保实验的严谨性,倾角仪测试必须在温控箱内进行。首先,使用高精度水平仪确保底座处于0度斜面。然后将倾角仪固定在此底座上,保持静止状态,使其z轴垂直于水平面。此时,理论角度应为x轴0度,y轴0度,z轴-90度。

实验步骤:

将温控箱初始温度设为0摄氏度,温度变化率为0.43。当温度升至50摄氏度时,获得第一组数据,用于神经网络建模。然后采集第二组数据,例如以0.2°C/min的变化率将温度从30升至50摄氏度。实验总持续时间为4小时,目标是使用第一组数据建立的模型预测第二组数据。

实验过程中,倾角传感器的采样频率为5Hz。图2展示了初始测试中倾角传感器输出随温度变化的曲线图。

图2.不同温度下的倾角传感器输出

图2中,颜色代表温度的逐渐升高。每个子图分别显示x、y、z轴的倾角变化程度。温漂现象严重。通过计算,倾角传感器在不同温度下的平均输出值如表1所示。

表1.监测结果

实验数据表明,在不同温度阶段,倾角传感器的平均输出有所不同。温度变化导致倾角传感器出现显著的温漂现象。

2.3 卡尔曼滤波

倾角仪通常对低频噪声更为敏感。这种低频噪声的存在增加了建模复杂度和算法资源消耗,导致最终模型拟合精度降低。卡尔曼滤波具有计算复杂度低、高效、最优和强适应性等特点。考虑到其多功能性,本文最终选择卡尔曼滤波处理低频信号。处理步骤如下:

初始化参数:定义数据集’angle’、初始状态估计’X’、状态预测方差’P’、系统噪声方差’Q’和测量噪声方差’R’。这些参数将用于控制滤波器行为。

预测步骤:使用上一时间步的状态估计’x’和状态预测方差’p’,预测当前状态估计’X_pred’和预测方差’P_pred’,如公式(1)和公式(2)所示。

更新步骤:计算卡尔曼增益’K’。根据当前预测状态估计与测量值之间的差异,更新状态估计’X’和预测方差’P’,如公式(3、4、5)所示。

保存结果:将更新后的状态估计’X’存储在矩阵中。

X−pred=X(1)P−pred=P+Q(2)K=P−pred/(P−pred+R)(3)X=X−pred+K∗(angle(i)−X−pred)(4)P=(1−K)∗P−pred(5)\begin{equation}\begin{aligned}X_{-}pred=X&\mathrm{(1)}\\P_{-}pred=P+Q&\mathrm{(2)}\\K=P_{-}pred/(P_{-}pred+R)&\mathrm{(3)}\\X=X_{-}pred+K^{*}(angle(i)-X_{-}pred)&\mathrm{(4)}\\P=(1-K)^{*}P_{-}pred&\mathrm{(5)}\end{aligned}\end{equation}

应用卡尔曼滤波模型后得到的滤波效果如图3所示。

图3. 卡尔曼滤波

从图中可以看出,滤波后的波形仍紧密跟随原始数据。但具体拟合程度需要进一步计算。卡尔曼模型滤波后,倾角传感器在不同温度下的平均值如表2所示。

表2. 滤波后输出结果

经计算,x轴倾角的信号保留率为99.58%,y轴倾角为99.91%,z轴倾角为92.18%,平均保留率为97.2%。x轴倾角的信噪比(SNR)达到23.74dB,y轴达到30.58dB,z轴为10.73dB,平均为21.68dB。SNR大于20dB被认为良好,适用于大多数情况。

r=∑(ai−a)(bi−b)∑(ai−a)2∑(bi−b)2(6)r=\frac{\sum(a_{i}-\overline{a})(b_{i}-\overline{b})}{\sqrt{\sum(a_{i}-\overline{a})^{2}\sum(b_{i}-\overline{b})^{2}}}\mathrm{(6)}
T=r2∗100%(7)T=\\\\\\\\\\r^{2}*100\%\mathrm\\\\\\\\\\\\{(7)}

ai和bi分别是降噪前后的数据。a和b是两组数据的均值。r代表相关系数,表示两组数据之间的相关程度。此处可用于计算保留率,即信号质量的度量。在本例中,保留率T使用公式(7)计算。

降噪后,不同温度下的输出均值与原始数据几乎相同,平均信号保留率为97.2%,信噪比超过20db。使用卡尔曼滤波可以有效抑制信号中的低频噪声,并滤除数据中的异常突变。然而,从温度均值可以看出,由温度引起的漂移并未显著降低。

3. 神经网络建模与补偿

3.1 前馈神经网络

前馈神经网络用于神经网络建模中的分类和回归,具有前向传播结构,数据从输入层流向输出层,无反馈回路。它们通过在训练过程中调整权重来学习输入-输出映射[8]。

3.2 处理步骤

初始化权重:训练开始前,权重矩阵[W]^l随机初始化。’l’代表层数,’’代表初始权重值。由于开始时每个权重的正确值未知,随机初始化允许神经网络从随机点开始学习。

前向传播:训练过程中,输入数据x经过一系列与权重矩阵的数学运算,并由激活函数g处理,生成神经元输出,如公式9所示。

计算损失:计算预测输出与实际输出之间的误差。选择均方误差(MSE)损失函数来衡量,其中x_i代表实际倾角值,x̂_i代表模型预测值,如公式10所示。

更新权重:一旦计算出梯度(损失对权重的导数),就可以更新权重矩阵,朝减少损失的方向微调。

迭代:多次重复上述步骤。每次迭代根据新梯度更新权重,直到损失收敛或达到预定义的迭代次数。

W[l]=[ω11lω12l⋯ω1n[l−1]lω11lω11l⋯ω2n[l−2]l⋮⋮⋱⋮ωn[l]1lωn[l]1l⋯ωn[l]n[l−1]l](8)g=ex−e−xex+e−x(9)MSE=∑i=1n(xi−xi^)2n(10)\begin{equation}\begin{aligned}W^{[l]}=&\begin{bmatrix}\omega_{11}^{l}&\omega_{12}^{l}&\cdots&\omega_{1n^{[l-1]}}^{l}\\\omega_{11}^{l}&\omega_{11}^{l}&\cdots&\omega_{2n^{[l-2]}}^{l}\\\vdots&\vdots&\ddots&\vdots\\\omega_{n^{[l]}1}^{l}&\omega_{n^{[l]}1}^{l}&\cdots&\omega_{n^{[l]}n^{[l-1]}}^{l}\end{bmatrix}&\mathrm{(8)}\\g=&\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}&\mathrm{(9)}\\MSE=&\frac{\sum_{i=1}^{n}\left(x_{i}-\hat{x_{i}}\right)^{2}}{n}&\mathrm{(10)}\end{aligned}\end{equation}

本文中,前馈神经网络通过Matlab编程实现。相关函数定义为公式(8、9、10),基本参数设置如下:隐藏层节点数为10,学习率为0.05,迭代次数设为1000,学习的目标最小误差为0.001。前馈神经网络模型如图4所示。

图4. 前馈神经网络模型

训练后获得的最优拟合曲线与MEMS倾角传感器的原始数据对比如图5所示。

图5. 神经网络拟合

从图5可以看出,拟合效果相当好。即使在波动较严重的区域,输出也基本一致。将MEMS传感器的第二组数据输入训练好的模型,对这个全新数据集进行补偿。测试后该数据集的补偿结果如图6所示。

图6. 补偿效果图

通过前馈神经网络拟合MEMS陀螺仪漂移,得到温漂模型。该模型用于预测温漂并补偿输出参数。补偿后的结果显著更接近理论值。经计算,补偿后不同温度下的均值如表3所示。

表3. 补偿前后对比

上表显示,前馈神经网络模型对MEMS倾角传感器具有显著的补偿效果。补偿后,MEMS传感器在温度变化下的输出值减小。经前馈神经网络补偿后,xyz三轴倾角的温漂现象分别减少了82.2%、82.8%和92.9%,表明减少效果显著。

4. 结论

经过卡尔曼模型滤波后,信息保留率达到97.2%,信噪比为21.68DB,均符合市场标准。在不改变原始数据温漂的情况下,有效降低了MEMS倾角传感器输出信号中的低频噪声和异常数据。

补偿前,MEMS倾角传感器XYZ轴的平均输出值约为0.7°、0.74°和-90.37°。经过前馈神经网络系统补偿后,MEMS倾角传感器整个过程的平均输出值为-0.13°、0.13°和-90.03°。XYZ三轴倾角的温漂现象分别减少了82.2%、82.8%和92.9%,平均减少85.96%。与优化前状态相比,温漂显著降低。实验结果表明,对于性能较低、易发生温漂的低成本传感器,该方法有效改善了温漂,具有重要的应用价值。

参考文献

[1] H.Yang, B. Zhou, L. Wang, H. Xing, and R. Zhang, “A novel tri-axial MEMS gyroscope calibration method over a full temperature range,” IEEE Trans. Instrum. Meas., vol. 70, Sep. 2018.
[2] Xu, H. Z. Wang, H. Weng, and X. Zhao, “Self-calibration of tri-axis rotational inertial based on virtual platform,” IEEE Trans. Instrum. Meas., vol. 70, pp. 1–10, 2021. navigation system
[3] R. C. McKown, “Mounting angle calibration for an in-vehicle accelerometer device,” Mar. 21 2017, US Patent 9,599,633.
[4] R. Wei et al., “A research on calibration of low-precision MEMS inertial sensor’s noise,” Proc. 25th Chin. Control Devices Conf. (CCDC), Guiyang, China, May 2013, pp. 3243–3247.
[5] S. Zhou, G. Li, Q. Wang, J. Xu, Q. Ye, and S, “Gao. Rotor Attitude Estimation for Spherical Motors Using Multiobject Kalman KCF Algorithm in Monocular Vision”. IEEE Transactions on Industrial Electronics, Volume 70, Issue 1, Pages 265-275, January 1, 2023.
[6] J. Luo et al., “Vehicle platform attitude estimation method based on adaptive Kalman filter and sliding window least squares,” Meas. Sci. Technol., vol. 32, no. 3, Mar. 2021, Art. no. 035007.
[7] J. Fang, H. Sun, J. Cao, X. Zhang, and T. Ye, (2011).”A novel calibration method of magnetic compass based on ellipsoid fitting”, IEEE Transactions on Instrumentation and Measurement, Volume 60, Issue 6, Pages 2053-2061, June 2011.
[8] S. Herath, H. Yan, and Y. Furukawa, “Ronin: Robust neural inertial navigation in the wild: Benchmark, evaluations, & new methods”, in 2020 IEEE International Conference on Robotics and Automation (ICRA), 2020, pp. 3146–3152.

xusir
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇