RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Mahony濾波器的原理和公式推導(dǎo)

zhc135136 ? 來源:SmartHWFW ? 2023-06-17 11:18 ? 次閱讀

1.概述

在進(jìn)行代碼分析之前,了解Mahony濾波器的原理和公式推導(dǎo)是必要的。Mahony濾波器是一種基于四元數(shù)的姿態(tài)估計(jì)濾波器,其主要思想是通過加速度計(jì)和陀螺儀的測量值來估計(jì)姿態(tài),并通過四元數(shù)來表示姿態(tài)。其公式推導(dǎo)涉及到四元數(shù)的運(yùn)算和旋轉(zhuǎn)矩陣的推導(dǎo),需要具備一定的數(shù)學(xué)基礎(chǔ)和姿態(tài)估計(jì)相關(guān)的知識。

四元數(shù)是一種數(shù)學(xué)工具,它可以用來表示三維空間的旋轉(zhuǎn)信息。在秦永元的《慣性導(dǎo)航》這本書第9.2章節(jié)中,介紹了姿態(tài)更新計(jì)算的四元數(shù)算法,其中詳細(xì)講解了四元數(shù)的概念、四元數(shù)與姿態(tài)陣之間的關(guān)系以及四元數(shù)微分方程。閱讀完9.2章節(jié)的推導(dǎo)后,我們可以更深入地理解四元數(shù)的應(yīng)用和原理。

之前我也寫過一篇 《MEMS_慣性傳感器09 - Mahony姿態(tài)解算算法詳解》,但是還是建議閱讀秦永元的《慣性導(dǎo)航》,這樣更容易理解。

b275d3f2-0c4c-11ee-962d-dac502259ad0.png

物體的姿態(tài)變化可以等效為繞某個軸的一次旋轉(zhuǎn)。我們不需要關(guān)注物體變化的中間過程,只需要找到一種變換關(guān)系,就能夠求出物體從導(dǎo)航坐標(biāo)系到載體坐標(biāo)系或從載體坐標(biāo)系到導(dǎo)航坐標(biāo)系的坐標(biāo)。因此,我們需要推導(dǎo)出這種變化關(guān)系。

利用四元數(shù)與姿態(tài)陣的關(guān)系,可以推導(dǎo)得到如下結(jié)論:

(1) 四元數(shù) Q (表達(dá)式如下) 描述了物體的定點(diǎn)轉(zhuǎn)動,即,當(dāng)之關(guān)心 b 系(載體系)相對于 R 系(導(dǎo)航系)的角位置時,可認(rèn)為 b 系是由 R系經(jīng)過無中間過程的一次性等效旋轉(zhuǎn)形成的。

b2a23a0a-0c4c-11ee-962d-dac502259ad0.png

Q包含了這種等效旋轉(zhuǎn)的全部信息;u^R 為旋轉(zhuǎn)瞬間和旋轉(zhuǎn)方向 θ為旋轉(zhuǎn)過的角度

(2) 四元數(shù)可以確定出 b 系至 R 系的坐標(biāo)變換矩陣

b2ae83b4-0c4c-11ee-962d-dac502259ad0.png

根據(jù)上述推導(dǎo),已經(jīng)得到了姿態(tài)變換矩陣和四元數(shù)表示法中的姿態(tài)角。然而,目前四元數(shù)的具體數(shù)值未知。為了得到真正的姿態(tài)角,需要找到確定四元數(shù)數(shù)值的方法。

通過已知的陀螺儀和加速度計(jì)獲得的角速度和加速度,我們可以利用四元數(shù)微分來求解四元數(shù)的具體數(shù)值。四元數(shù)微分是指將四元數(shù)看作一個向量,然后對其進(jìn)行微分,得到一個表示四元數(shù)變化率的向量。通過對四元數(shù)微分的計(jì)算,可以得到四元數(shù)的具體數(shù)值。

通過解微分方程,可以計(jì)算四元數(shù)的參數(shù)

b2be6716-0c4c-11ee-962d-dac502259ad0.png

以上公式的推導(dǎo)過程已在書中詳細(xì)說明,故本文不再贅述。針對誤差消除,本文采用了Mahony濾波算法,該算法是本文的核心內(nèi)容。

2.陀螺儀誤差的消除

角度測量中存在偏差,由于角速度是積分得到的,陀螺儀獲得的角速度信息存在小的偏差,積分后誤差會不斷累積,導(dǎo)致角度測量結(jié)果偏差較大。雖然加速度計(jì)獲得的角度信息不會出現(xiàn)偏差,但其受噪聲影響較大,短時間內(nèi)可靠性不高。因此,我們可以利用加速度計(jì)獲得的角度信息去矯正陀螺儀獲得的姿態(tài)信息,從而消除算出來的角度誤差。

核心思想是利用加速度計(jì)獲取信息來補(bǔ)償陀螺儀的角速度信息。具體實(shí)現(xiàn)步驟如下:

b2d11208-0c4c-11ee-962d-dac502259ad0.png

1.獲取加速度的值,并對其歸一化 (歸一化是為了確保姿態(tài)變化矩陣中的四元數(shù)是規(guī)范四元數(shù),并且利用陀螺儀更新的四元數(shù)也需要?dú)w一化。以確保與其他數(shù)據(jù)對應(yīng))

b2fb8d9e-0c4c-11ee-962d-dac502259ad0.png

//Normaliseaccelerometermeasurement
recipNorm = invSqrt(ax * ax + ay * ay + az * az);
ax *= recipNorm;
ay *= recipNorm;
az *= recipNorm;

2.獲取陀螺儀算出的姿態(tài)矩陣中的重力分量, 重力分量記為Vx、Vy、Vz

b3296d54-0c4c-11ee-962d-dac502259ad0.png

// Estimated direction of gravity and vector perpendicular to magnetic flux
halfvx = q1 * q3 - q0 * q2;
halfvy = q0 * q1 + q2 * q3;
halfvz = q0 * q0 - 0.5f + q3 * q3;

3.獲取姿態(tài)誤差,(將第一步中 獲取的重力向量歸一化后的值與提取的姿態(tài)矩陣的重力向量叉乘)

b3453598-0c4c-11ee-962d-dac502259ad0.png

// Error is sum of cross product between estimated and measured direction of gravity
halfex = (ay * halfvz - az * halfvy);
halfey = (az * halfvx - ax * halfvz);
halfez = (ax * halfvy - ay * halfvx);

4.消除誤差, (通過對重力分量叉乘后的誤差進(jìn)行積分,可以得到角速度值。ki為積分系數(shù),dt為積分周期)

integralFBx += twoKi * halfex * (1.0f / sampleFreq);  // integral error scaled by Ki
integralFBy += twoKi * halfey * (1.0f / sampleFreq);
integralFBz += twoKi * halfez * (1.0f / sampleFreq);
gx += integralFBx;  // apply integral feedback
gy += integralFBy;
gz += integralFBz;

5.互補(bǔ)濾波(在PID控制器中加入誤差值,并將其與陀螺儀測得的角速度相加,得到修正的角速度值。使用修正的角速度值來更新四元素,以獲得更準(zhǔn)確的姿態(tài)角信息)

// Apply proportional feedback
gx += twoKp * halfex;
gy += twoKp * halfey;
gz += twoKp * halfez;




//Integrate rate of change of quaternion
gx *= (0.5f * (1.0f / sampleFreq));    // pre-multiply common factors
gy *= (0.5f * (1.0f / sampleFreq));
gz *= (0.5f * (1.0f / sampleFreq));

6.求解微分方程

qa = q0;
qb = q1;
qc = q2;
q0 += (-qb * gx - qc * gy - q3 * gz);
q1 += (qa * gx + qc * gz - q3 * gy);
q2 += (qa * gy - qb * gz + q3 * gx);
q3 += (qa * gz + qb * gy - qc * gx);

7.四元數(shù)歸一化

// Normalise quaternion
recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3);
q0 *= recipNorm;
q1 *= recipNorm;
q2 *= recipNorm;
q3 *= recipNorm;

8.四元數(shù)求解歐拉角 (在求解角度時要清楚的知道導(dǎo)航坐標(biāo)系是:東北天; 北東地)


roll = asinf(2 * q0 * q2 - 2 * q1 * q3) * (180 / M_PI);   // 繞X軸旋轉(zhuǎn)
pitch = atan2f(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 + 1) * (180 / M_PI); // 繞Y軸旋轉(zhuǎn)
yaw = atan2f(2 * q1 * q2 + 2 * q0 * q3, -2 * q2 * q2 - 2 * q3 * q3 + 1) * (180 / M_PI);   // 繞Z軸旋轉(zhuǎn)

3.算法效果演示

不足:

1)當(dāng)X軸角度大于90度時,Y軸角度發(fā)生了漂移

2)在從旋轉(zhuǎn)到靜止的過程之后,Z軸角度沒有趨近于0度。
責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    161

    文章

    7795

    瀏覽量

    177992
  • 導(dǎo)航
    +關(guān)注

    關(guān)注

    7

    文章

    528

    瀏覽量

    42405
  • 慣性傳感器
    +關(guān)注

    關(guān)注

    2

    文章

    169

    瀏覽量

    27943

原文標(biāo)題:MEMS_慣性傳感器14 - Mahony 濾波算法的代碼分析

文章出處:【微信號:SmartHWFW,微信公眾號:SmartHWFW】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    求Sigmadsp的高階濾波器計(jì)算公式

    各位論壇的資深工程師和ADI的技術(shù)工程師,能不能給一份濾波器的計(jì)算公式!在使用過程中發(fā)現(xiàn)HELP文檔里按有的公式計(jì)算出來是錯的和sigmadsp計(jì)算的完全不一樣,使用high order 計(jì)算出
    發(fā)表于 01-23 08:13

    抗EMI濾波器設(shè)計(jì)與應(yīng)用原理

    摘要:鐵氧體軟磁材料用于電磁兼容性設(shè)計(jì)具有優(yōu)良的電磁性能和價格優(yōu)勢。本文從噪聲濾波器原型出發(fā)著重討論了噪聲濾波器設(shè)計(jì)和應(yīng)用原理,簡化和推導(dǎo)了扼流圈電感計(jì)算公式,提
    發(fā)表于 06-03 10:08 ?111次下載

    Sallen_Key濾波器

    Sallen_Key權(quán)威公式計(jì)算,高通濾波器,低通濾波器
    發(fā)表于 11-23 11:28 ?16次下載

    LC低通濾波器的截止頻率是怎么推導(dǎo)出來的?公式是什么?

    LC低通濾波器的截止頻率是怎么推導(dǎo)出來的?公式是什么?lc電路截止頻率公式是:Q=wL\R=2πfL\R(因?yàn)閣=2πf)=1/wCR=1/2π 阻抗:Zc=1/jwc ;Zl=jwl
    發(fā)表于 11-29 17:33 ?32.3w次閱讀
    LC低通<b class='flag-5'>濾波器</b>的截止頻率是怎么<b class='flag-5'>推導(dǎo)</b>出來的?<b class='flag-5'>公式</b>是什么?

    帶通濾波器到低通濾波器的轉(zhuǎn)換公式推導(dǎo)資料合集

    以一種易于理解的方式介紹了歸一化帶通濾波器指標(biāo)轉(zhuǎn)換為低通濾波器指標(biāo)的公式
    發(fā)表于 02-15 13:56 ?46次下載

    一階數(shù)字低通濾波器原理及公式推導(dǎo)

    吧。查閱了很多無感FOC控制的相關(guān)資料,把基本原理和流程漸漸的了解了一下(以后有時間再詳細(xì)介紹了),發(fā)現(xiàn)很多環(huán)節(jié)都會用到”一階低通數(shù)字濾波器“(相電流濾波,反電勢濾波,角度、轉(zhuǎn)速濾波,
    的頭像 發(fā)表于 08-26 14:22 ?3.4w次閱讀

    如何理解卡爾曼濾波器?卡爾曼濾波器狀態(tài)方程及測量方程

    卡爾曼濾波的最終輸出是,真實(shí)的狀態(tài)為,令 對誤差的平方求最小值,同樣可以推導(dǎo)公式(1-5)到公式(1-7)。因此卡爾曼濾波器也是系統(tǒng)狀
    發(fā)表于 12-15 10:45 ?2860次閱讀

    低通濾波器截止頻率計(jì)算公式_作用和用途

    低通濾波器的截止頻率可以通過以下公式計(jì)算:fc=1/(2πRC),其中R是濾波器的電阻,C是濾波器的電容,fc是濾波器的截止頻率。
    發(fā)表于 02-16 18:13 ?3w次閱讀

    LLC變換公式推導(dǎo)

    LLC變換公式推導(dǎo)
    發(fā)表于 04-03 15:45 ?7次下載

    模擬無源濾波器設(shè)計(jì)(九)-Gaussian濾波器設(shè)計(jì)詳解

    文章詳細(xì)對高斯濾波器的綜合設(shè)計(jì)進(jìn)行講解,解釋如何從時域無過沖推導(dǎo)出高斯濾波器的。并且深入探討了高斯濾波器的零極點(diǎn)分布。最后介紹基于Matlab的濾波
    的頭像 發(fā)表于 05-28 11:31 ?7234次閱讀

    在連續(xù)時間域中比較Papoulis濾波器和Chebyshev濾波器

    本文詳細(xì)對比了切比雪夫濾波器和Papoulis濾波器特性,并且得出結(jié)論切比雪夫濾波器要優(yōu)于Papoulis濾波器。這里的Papoulis濾波器
    的頭像 發(fā)表于 06-10 09:11 ?1464次閱讀
    在連續(xù)時間域中比較Papoulis<b class='flag-5'>濾波器</b>和Chebyshev<b class='flag-5'>濾波器</b>

    LC 濾波器公式 - LC filter

    摘要: LC 濾波器公式 無源濾波器解釋 集總元件波濾器由電阻、電感和電容器組成。它們允許高于或低于預(yù)定水平的頻率通過。衰減程度達(dá)到 -
    的頭像 發(fā)表于 07-04 09:09 ?4011次閱讀
    LC <b class='flag-5'>濾波器</b><b class='flag-5'>公式</b> - LC filter

    Mahony濾波算法參數(shù)自動調(diào)節(jié)方法介紹

    Mahony濾波算法參數(shù)自動調(diào)節(jié)方法是一種用于姿態(tài)估計(jì)的濾波算法。
    的頭像 發(fā)表于 12-06 09:45 ?1128次閱讀

    lc濾波器的截止頻率計(jì)算公式

    LC濾波器的工作原理、計(jì)算公式推導(dǎo)、參數(shù)解釋等方面。 LC濾波器的工作原理 LC濾波器的工作原理是基于電感和電容元件的阻抗特性。在LC
    的頭像 發(fā)表于 12-14 14:57 ?1.1w次閱讀

    什么是匹配濾波器?如何理解匹配濾波器?

    匹配濾波器、匹配濾波器的詳細(xì)理解予以介紹。如果你對匹配濾波器具有興趣,不妨和小編一起來繼續(xù)往下閱讀哦。 一、匹配濾波器 匹配濾波器是一種非常
    的頭像 發(fā)表于 01-12 08:39 ?1654次閱讀
    RM新时代网站-首页