<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Mahony濾波器的原理和公式推導

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

1.概述

在進行代碼分析之前,了解Mahony濾波器的原理和公式推導是必要的。Mahony濾波器是一種基于四元數的姿態估計濾波器,其主要思想是通過加速度計和陀螺儀的測量值來估計姿態,并通過四元數來表示姿態。其公式推導涉及到四元數的運算和旋轉矩陣的推導,需要具備一定的數學基礎和姿態估計相關的知識。

四元數是一種數學工具,它可以用來表示三維空間的旋轉信息。在秦永元的《慣性導航》這本書第9.2章節中,介紹了姿態更新計算的四元數算法,其中詳細講解了四元數的概念、四元數與姿態陣之間的關系以及四元數微分方程。閱讀完9.2章節的推導后,我們可以更深入地理解四元數的應用和原理。

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

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

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

利用四元數與姿態陣的關系,可以推導得到如下結論:

(1) 四元數 Q (表達式如下) 描述了物體的定點轉動,即,當之關心 b 系(載體系)相對于 R 系(導航系)的角位置時,可認為 b 系是由 R系經過無中間過程的一次性等效旋轉形成的。

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

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

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

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

根據上述推導,已經得到了姿態變換矩陣和四元數表示法中的姿態角。然而,目前四元數的具體數值未知。為了得到真正的姿態角,需要找到確定四元數數值的方法。

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

通過解微分方程,可以計算四元數的參數

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

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

2.陀螺儀誤差的消除

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

核心思想是利用加速度計獲取信息來補償陀螺儀的角速度信息。具體實現步驟如下:

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

1.獲取加速度的值,并對其歸一化 (歸一化是為了確保姿態變化矩陣中的四元數是規范四元數,并且利用陀螺儀更新的四元數也需要歸一化。以確保與其他數據對應)

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

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

2.獲取陀螺儀算出的姿態矩陣中的重力分量, 重力分量記為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.獲取姿態誤差,(將第一步中 獲取的重力向量歸一化后的值與提取的姿態矩陣的重力向量叉乘)

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.消除誤差, (通過對重力分量叉乘后的誤差進行積分,可以得到角速度值。ki為積分系數,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.互補濾波(在PID控制器中加入誤差值,并將其與陀螺儀測得的角速度相加,得到修正的角速度值。使用修正的角速度值來更新四元素,以獲得更準確的姿態角信息)

// 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.四元數歸一化

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

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


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

3.算法效果演示

不足:

1)當X軸角度大于90度時,Y軸角度發生了漂移

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 濾波器
    +關注

    關注

    158

    文章

    7392

    瀏覽量

    175296
  • 導航
    +關注

    關注

    7

    文章

    502

    瀏覽量

    41678
  • 慣性傳感器
    +關注

    關注

    2

    文章

    166

    瀏覽量

    27763

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

文章出處:【微信號:SmartHWFW,微信公眾號:SmartHWFW】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于MAX274的音頻濾波器設計

    介紹了MAX274有源濾波器的特性及計算電路參數的原理和數學推導過程。說明了MAXIM公司專用濾波器設計芯片配套開發軟件的使用方法。給出了簡潔、有效的濾波器設計方法,設計了通帶范圍為3
    發表于 03-05 20:58

    二階高通濾波器計算公式

    二階高通濾波器計算公式。
    發表于 08-01 22:05

    求Sigmadsp的高階濾波器計算公式

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

    抗EMI濾波器設計與應用原理

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

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

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

    LC濾波器元件參數的計算公式及電路分析

    LC濾波器元件參數的計算公式及電路分析
    發表于 06-22 10:24 ?219次下載

    帶通濾波器到低通濾波器的轉換公式推導資料合集

    以一種易于理解的方式介紹了歸一化帶通濾波器指標轉換為低通濾波器指標的公式
    發表于 02-15 13:56 ?40次下載

    一階數字低通濾波器原理及公式推導

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

    如何理解卡爾曼濾波器?卡爾曼濾波器狀態方程及測量方程

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

    LLC變換器公式推導

    LLC變換器公式推導
    發表于 04-03 15:45 ?5次下載

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

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

    LC 濾波器公式 - LC filter

    摘要: LC 濾波器公式 無源濾波器解釋 集總元件波濾器由電阻器、電感器和電容器組成。它們允許高于或低于預定水平的頻率通過。衰減程度達到 -3dB (70.7%) 時的頻率稱為截止頻率。 在構建
    的頭像 發表于 07-04 09:09 ?3321次閱讀
    LC <b class='flag-5'>濾波器</b><b class='flag-5'>公式</b> - LC filter

    Mahony濾波算法參數自動調節方法介紹

    Mahony濾波算法參數自動調節方法是一種用于姿態估計的濾波算法。
    的頭像 發表于 12-06 09:45 ?536次閱讀

    lc濾波器的截止頻率計算公式

    LC濾波器的工作原理、計算公式推導、參數解釋等方面。 LC濾波器的工作原理 LC濾波器的工作原理是基于電感和電容元件的阻抗特性。在LC
    的頭像 發表于 12-14 14:57 ?4412次閱讀

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

    匹配濾波器、匹配濾波器的詳細理解予以介紹。如果你對匹配濾波器具有興趣,不妨和小編一起來繼續往下閱讀哦。 一、匹配濾波器 匹配濾波器是一種非常
    的頭像 發表于 01-12 08:39 ?823次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>