加速度計透過重力感測測量線性加速度和傾斜,而陀螺儀則追蹤角速度 - - 但兩者單獨運作時都無法維持超過幾秒鐘。加速度計在積分到位置時會漂移,陀螺儀則因偏置偏移而累積角度誤差。以下我將介紹這些感測器在真實系統中的實際行為、它們的規格重要性,以及融合演算法如何讓它們保持實用性。
重點摘要:
- 加速度計能即時提供重力參考的傾斜角度,但將加速度與速度整合後,每一步噪音與偏誤都會加倍。
- 陀螺儀在短期內能乾淨測量旋轉,但即使偏置0.1°/s,若不修正,也會累積成每分鐘6°的漂移。
- 三軸對齊是在晶片內部定義的,而非封裝標記 - - 誤讀資料表軸線圖會使整個座標系旋轉。
- 靜止時校準零偏壓是不可協商的;溫度漂移可使該零點在操作範圍中移動10-50 mg(加速度計)或0.5-2°/s(陀螺儀)。
- 感測器融合並非可選的修飾 - - 這是這些裝置能在實驗室示範後仍能運作的唯一原因,因為它讓加速度計修正陀螺儀漂移,陀螺儀在運動中排除加速度計的噪音。
加速度計如何測量運動與重力
加速度計報告比力,包括實際加速度以及地球重力持續的1 g拉力。這表示固定加速度計在表格上的垂直軸讀數是+1 g,而非零 - - 這個細節每次第一次積分都會出錯。
你可以直接從重力向量中提取傾斜,無需積分,這也是為什麼加速度計可以作為長期的方向參考。但如果你試著把加速度和速度整合,然後在每個時間步都加位置、測量噪音和偏壓。以我的經驗,即使是低雜訊的MEMS單元(+/- 0.1 mg雜訊密度),如果不與其他參考元件融合,積分10秒後仍會產生數公尺的幻影位移。
教科書上的數學看起來很清楚:速度積分一次,位置積分兩次。實際上,直流偏壓和1/f噪音會在幾秒內破壞這條鏈路。

微機電系統加速度計建造
現今大多數加速度計使用由矽彈簧懸浮的微觀證明質量。當感測器加速時,質量因慣性而落後,改變差動電容對的間隙。電容移會透過電荷放大器轉換成電壓。
這種電容感測是MEMS加速度計對機械應力和封裝應變敏感的原因 - - 基板的任何彎曲都會移動基線電容,導致誤加速度。我看過加速度計報告光是因為密封PCB上的安裝螺絲過度扭力,就會偏移+50 mg。
整個結構僅容納於一平方毫米內,因此三軸加速度計與三軸陀螺儀現今並存於單一3×3毫米封裝中,並共享類比前端與數位介面邏輯。
陀螺儀旋轉感測
陀螺儀輸出角速度以每秒度(或弧度每秒)為單位,而非角度。要恢復方向,你必須將這個速率隨時間積分,這意味著偏誤會線性累積成角度漂移。
例如,一個恆定偏壓為+0.1°/s的陀螺儀,會在一分鐘內漂移6°,一小時內漂移360° - - 即使靜止不動。這就是為什麼陀螺儀需要頻繁從絕對參考點修正,比如加速度計的重力向量或磁力計的北方航向。
陀螺儀的優點在於它能即時對旋轉做出反應,不會被線性加速度、振動或傾斜所迷惑 - - 這些問題在運動中會破壞加速度計僅能預測的方向。陀螺儀能提供乾淨的短期動態;加速度計能帶來長期穩定性。兩者都無法單獨運作。

微機電系統陀螺儀中的科氏效應
MEMS 陀螺儀依賴科氏力:證明質量沿一軸(驅動軸)產生共振振動。當感測器旋轉時,科氏力會使振動質量沿垂直感官軸偏轉。這種偏轉的幅度與角速度成正比。
這種設計意味著MEMS陀螺儀實際上是動態裝置 - - 它們需要持續驅動振盪才能運作。任何機械衝擊或溫度變化會改變驅動共振,靈敏度都會降低,直到驅動迴路重新鎖定。我曾除錯過一些系統,溫度波動 20°C 會讓陀螺儀輸出減少 15%,因為驅動頻率沒有經過溫度補償。
科氏信號極小(通常為飛法拉級電容變化),因此陀螺儀的噪聲底比加速度計高,且更容易受到電磁干擾和電源漣波的影響。
感測器軸定義與安裝
每份加速度計與陀螺儀資料表均包含軸向圖,通常顯示相對於腳位1或封裝邊緣的X、Y、Z箭頭。那張圖是真的 - - 忽略包裝輪廓對稱性。
我看過生產韌體會把所有動作資料旋轉90°,因為PCB設計師假設加速度計軸線與晶片的方形輪廓相符,但實際上內部的MEMS晶片是旋轉的。結果是「俯仰」變成「滾轉」,反之亦然,通過基本的開機檢查,但一旦裝置傾斜即失敗。
三軸感測器沿著正交軸測量,但這些軸線是由矽蝕刻定義,而非晶片安裝方式。若機械組件出現軸向錯位(例如將6軸IMU傾斜5°以節省板空間安裝),必須在軟體中套用旋轉矩陣,否則接受5°的橫軸誤差。
資料介面與訊號路徑
大多數現代加速度計和陀螺儀會透過 I²C 或 SPI 輸出數位資料。I²C 速度較慢(通常最大 400 kHz,實務上取樣率約在 200-400 Hz 內),但僅使用兩條線,並支援多點。SPI 運行速度更快(10+ MHz,支援 1+ kHz 取樣率),但需要專用晶片選擇及四條線路。
許多 IMU(整合加速度計 + 陀螺儀)內建 FIFO 緩衝區 - - 通常為 512 到 1024 個樣本 - - 因此主機處理器能以突發方式讀取資料,而非以完整取樣率輪詢。這樣可以切斷電力和中斷負載,但你必須監控 FIFO 浮水印,否則在緩衝區溢位時會失去取樣。
部分IMU還提供可程式中斷腳位,當動作超過閾值、FIFO達到某個水準,或感測器偵測到自由落體或抽頭事件時,會自動斷言。這些功能對低功耗的動作喚醒設計很有用,但閾值邏輯通常過於粗糙,無法進行精密動作捕捉。
關鍵規格及其實務意義
測量距離設定感測器在削波前可報告的最大加速度或旋轉速率。加速度計常見的範圍為±2 g、±4 g、±8 g、±16 g。陀螺儀則±250°/s、±500°/s、±1000°/s、±2000°/s。較寬的範圍會降低解析度,但能防止衝擊或快速旋轉時的飽和。
在手持裝置中,±4 g 加速度計和±500°/s的陀螺儀通常就足夠了。在無人機或高震動環境下,啟動引擎或劇烈操作時會以±4g為比重,所以±8g或±16g會比較安全。
雜訊密度以 μg/√Hz(加速度計)或 °/s/√Hz(陀螺儀)表示。乘以訊號頻寬的平方根,得到有效值雜訊。例如,一個在50 Hz頻寬上測量的陀螺儀,雜訊密度為0.01°/s/√Hz,則產生0.01 × √50≈0.07°/s 的有效值雜訊。
較低的噪音對於慢動作和細角度解析度很重要。高噪聲在積分後會被沖刷成漂移,因此雜訊多的陀螺儀比同樣偏壓的安靜陀螺儀更快失去角度精度。
偏置(亦稱零速率偏移或零重力偏移)是感測器在無運動時的輸出。對於加速度計,偏壓以 mg 表示;陀螺儀則以 °/s 為單位。偏壓並非恆定 - - 它會隨溫度、電源電壓、機械應力和時間而變化。
我會在開機時測量偏壓,方法是在感測器靜止時平均取樣 100-200 個樣本,然後從未來所有讀數中扣除這個偏移量。但若裝置在運作時加熱30°C,偏壓會再漂移10-50 mg(加速度計)或0.5-2°/s(陀螺儀),視零件等級而定。這也是為什麼高階IMU會內建溫度感測器,並儲存工廠校正表來校正偏壓與溫度。
溫度漂移是每攝氏度偏移的變化。對於標示為0.03°/s/°C的陀螺儀,溫度上升30°C會增加0.9°/s的漂移 - - 是良好零校正初始偏差的九倍。加速度計的損失較小(通常為0.3-1 mg/°C),但在精密傾斜應用中仍具重要性。
在一個汽車專案中,IMU安裝在一個每隔幾分鐘循環40°C的功率電晶體附近。我們必須使用卡爾曼濾波器態進行持續偏壓重估,因為陀螺儀零速率漂移速度比車輛實際旋轉速度還快。
校準程序
至少,使用前必須對加速度計和陀螺儀進行零偏置校正。將裝置放置在穩定表面,每軸收集200+樣本,計算平均值,並從未來讀數中減去該偏移量。
對於加速度計,請記得其中一個軸會因重力顯示 +1 g(或 -1 g) - - 不要將該軸歸零。取而代之的是,將測量值減去預期重力分量。如果 Z 軸在裝置平坦時讀數為 +1.02 g,你的偏壓是 +0.02 g,而不是 +1.02 g。
陀螺儀在靜止時所有軸向應讀數接近零。任何非零的平均值都是偏誤。
更進階的校正包括:
- 比例因子校正:實際靈敏度可能與標稱值相差1-3%。將感測器旋轉至已知角度(陀螺儀),或旋轉至 +1 g 與 -1 g(加速度計)以測量增益誤差。
- 軸向錯位修正:三個軸線並非完全正交。完整的9參數校正矩陣可以校正此問題,但需要實驗室設備或精密唱盤。
- 溫度補償:將偏壓與溫度儲存在查找表中,並在執行時插值。
除非應用要求低於度數的精度,否則我很少在生產設計中進行完整的9深度校正,因為增加的複雜度和測試時間通常不值得。零偏壓與比例因子校正可涵蓋90%的真實世界誤差。
感測器融合:為什麼你需要兩者
加速度計提供以重力為參考的垂直方向,但它們噪音大且容易被震動或線性加速度干擾(除了重力以外的加速度看起來像傾斜)。陀螺儀提供乾淨且快速的旋轉追蹤,但它們會隨時間漂移。
感測器融合結合兩者:利用陀螺儀以高速(100 Hz 至 1 kHz)傳播方向,然後定期利用加速度計的重力向量校正方向估計。最常見的演算法是互補過濾器:
角度 = 0.98 ×(角度 + 陀螺儀 × dt)+ 0.02 × accel_angle
這表示 98% 的更新來自陀螺儀整合,2% 來自加速度計的傾斜測量。結果是一個對運動反應迅速的方向估計(像陀螺儀一樣),但不會隨時間漂移(像加速度計參考)。
更複雜的系統使用卡爾曼濾波器或擴展卡爾曼濾波器(EKF),根據估計的感測器噪聲與信心動態調整權重。在高速加速度或高振動時,濾波器會降低對加速度計的信任度;在穩態運動時,它會增加修正增益以抑制陀螺儀漂移。
沒有融合,你會得到兩全其極:加速度計的噪音傾斜,或陀螺儀的無界漂移。我出貨的每一款動態追蹤產品 - - 從遊戲控制器到IMU模組 - - 都需要融合才能使用。
常見問題與除錯
如果你在感測器靜止時讀取恆定的非零加速度或旋轉,那你就沒有校正零偏壓。收集一個平穩的資料集,然後減去平均值。
如果你的方向估計持續偏向某個方向,表示陀螺儀偏差校正沒有效果。要嘛偏壓值錯了,要嘛取樣率錯了(所以dt錯了),要嘛是溫度自校正以來偏移了。
如果傾斜角跳躍或翻轉了90°,那你很可能是把軸映射錯了。回去查看資料表的軸圖,確認你的符號慣例。
如果資料看起來雜訊或有週期性尖峰,檢查電源解耦(在感測器附近加一顆0.1 μF的陶瓷和10 μF的鉭),確認SPI時脈邊值與資料表時序相符,並確保你的取樣率不會高於感測器內部輸出資料率(讀取速度比ODR快,只會重複上一個取樣或回傳過時的FIFO資料)。
如果感測器停止回應或全是零,請檢查 I²C 上拉(4.7 kΩ 為常見),確認晶片的 I²C 位址是否符合你的程式碼(許多 IMU 有兩個可能的位址由腳位選擇),並確認 VDDIO 是否符合你的 MCU 邏輯電平(1.8 V、3.3 V 或 5 V)。我已經除錯過三個不同的設計,有人以為 3.3 V 的 I/O 一直都相容,但感測器需要 1.8 V VDDIO,而 3.3 V MCU 卻把輸入過載了。
真正限制準確度的是什麼
在大多數系統中,限制因素不是感測器的雜訊規格,而是偏壓不穩定性和溫度漂移。一個以0.5°/s漂移的陀螺儀,在一分鐘內會累積30°的誤差,遠大於0.07°/s RMS噪聲底。
機械安裝也很重要。我測試過一個設計,加速度計靠近 PCB 彎曲點,每次壓機殼時,電路板都會彎曲,增加 +20 mg 的假 Y 軸加速度。我們把感應器移到板子較硬的區域,幻影訊號消失了。
即使感測器被評為高震,振動仍會耦合到加速度計。在共振時(通常在 PCB 上的 MEMS 晶片中約為 1-5 kHz),即使是低振幅的振動也會在訊號帶內交疊,看起來像是真實的加速度。我在汽車和工業應用中見過這種情況,附近的馬達或幫浦產生2 kHz的振動,並折疊進100 Hz測量頻段,並增加了50+毫克的噪音。
解決方法是機械隔離(橡膠阻尼器或泡棉墊片)或更好的低通濾波,但你必須先辨識振動頻率 - - 對原始加速度計數據的頻譜分析通常能找出問題所在。
當加速度計和陀螺儀不夠時
加速度計+陀螺儀融合器對於短期(數秒到幾分鐘)的定向效果良好,但無法校正繞垂直軸的航向漂移。如果裝置在偏航中緩慢旋轉(例如靜止轉彎),陀螺儀會漂移,加速度計不會看到變化,因為重力仍垂直。
這就是為什麼九軸IMU會加入一個磁力計來感測地球磁場並提供絕對航向參考。但磁力計容易受到附近的鐵質物質、直流電流以及馬達或電池磁場干擾 - - 因此引入了一套新的校準與錯誤修正問題。
對於需要長期位置或絕對方向的應用,最終會需要外部參考:GPS 定位、視覺里程計相對移動,或固定信標作為航向。加速度計和陀螺儀給你的是高速的局部運動,而非全局真實數據。
選擇裝置等級
MEMS 加速度計與陀螺儀有消費級、工業級及戰術級。消費性零件(用於手機和健身追蹤器)在陀螺儀(陀螺儀)和1-10 mg(加速)之間有偏差不穩定,溫度漂移可達0.05°/s/°C。
工業級IMU將偏壓提升至0.01-0.05°/s(陀螺)及0.1-1 mg(加速),通常具備內部溫度補償及更佳的長期穩定性。這些設備價格多出3至10×,但對於機器人、無人機或精密平台穩定來說是值得的。
戰術級與導航級感測器(用於航空航太與國防)偏壓可達0.001°/s或更低,使用光纖或環形雷射陀螺儀而非微機機系統(MEMS)。它們每個軸價數千美元,且需要細心的熱與振動控制 - - 這對於慣性導航系統以外的用途來說是過度小材小用。
對於大多數嵌入式專案,中階工業 MEMS IMU 能在成本、效能與整合努力間取得適當平衡。