【MATLAB例程】平面上的組合導航例程,使用EKF融合IMU和GNSS數據,8維狀態量和2維觀測量,附代碼下載鏈接

在這里插入圖片描述

文章目錄

  • 程序詳解
    • 概述
    • 系統架構
    • 核心數學模型
    • 性能評估
    • 算法特點
  • 運行結果
  • MATLAB源代碼

程序詳解

概述

本代碼實現基于擴展卡爾曼濾波器(EKF)的二維組合導航系統,融合IMU(慣性測量單元)和GNSS(全球導航衛星系統)數據,實現精確的位置和速度估計。該系統采用8維誤差狀態模型,在圓形軌跡上進行仿真驗證。

系統架構

狀態向量定義

系統采用8維狀態向量:

x=[pxpyvxvyψbgbaxbay]\mathbf{x} = \begin{bmatrix} p_x \\ p_y \\ v_x \\ v_y \\ \psi \\ b_g \\ b_{ax} \\ b_{ay} \end{bmatrix}x=?px?py?vx?vy?ψbg?bax?bay???

其中:

  • px,pyp_x, p_ypx?,py?:X、Y方向位置 (m)
  • vx,vyv_x, v_yvx?,vy?:X、Y方向速度 (m/s)
  • ψ\psiψ:航向角 (rad)
  • bgb_gbg?:陀螺儀偏差 (rad/s)
  • bax,bayb_{ax}, b_{ay}bax?,bay?:X、Y方向加速度計偏差 (m/s2)

觀測向量定義

觀測向量為2維GNSS位置觀測:

z=[pxpy]\mathbf{z} = \begin{bmatrix} p_x \\ p_y \end{bmatrix}z=[px?py??]

核心數學模型

狀態轉移方程

系統的非線性狀態轉移方程為:

xk+1=f(xk,uk,wk)\mathbf{x}_{k+1} = f(\mathbf{x}_k, \mathbf{u}_k, \mathbf{w}_k)xk+1?=f(xk?,uk?,wk?)

具體形式:

px,k+1=px,k+vx,k?Δtpy,k+1=py,k+vy,k?Δtvx,k+1=vx,k+(fx,k?bax,k)cos?ψk?(fy,k?bay,k)sin?ψk?Δtvy,k+1=vy,k+(fx,k?bax,k)sin?ψk+(fy,k?bay,k)cos?ψk?Δtψk+1=ψk+(ωk?bg,k)?Δtbg,k+1=bg,kbax,k+1=bax,kbay,k+1=bay,k\begin{aligned} p_{x,k+1} &= p_{x,k} + v_{x,k} \cdot \Delta t \\ p_{y,k+1} &= p_{y,k} + v_{y,k} \cdot \Delta t \\ v_{x,k+1} &= v_{x,k} + (f_{x,k} - b_{ax,k}) \cos\psi_k - (f_{y,k} - b_{ay,k}) \sin\psi_k \cdot \Delta t \\ v_{y,k+1} &= v_{y,k} + (f_{x,k} - b_{ax,k}) \sin\psi_k + (f_{y,k} - b_{ay,k}) \cos\psi_k \cdot \Delta t \\ \psi_{k+1} &= \psi_k + (\omega_k - b_{g,k}) \cdot \Delta t \\ b_{g,k+1} &= b_{g,k} \\ b_{ax,k+1} &= b_{ax,k} \\ b_{ay,k+1} &= b_{ay,k} \end{aligned}px,k+1?py,k+1?vx,k+1?vy,k+1?ψk+1?bg,k+1?bax,k+1?bay,k+1??=px,k?+vx,k??Δt=py,k?+vy,k??Δt=vx,k?+(fx,k??bax,k?)cosψk??(fy,k??bay,k?)sinψk??Δt=vy,k?+(fx,k??bax,k?)sinψk?+(fy,k??bay,k?)cosψk??Δt=ψk?+(ωk??bg,k?)?Δt=bg,k?=bax,k?=bay,k??

其中:

  • fx,k,fy,kf_{x,k}, f_{y,k}fx,k?,fy,k?:IMU測量的比力 (m/s2)
  • ωk\omega_kωk?:IMU測量的角速度 (rad/s)
  • Δt\Delta tΔt:采樣時間間隔

狀態轉移雅可比矩陣

EKF需要計算狀態轉移函數的雅可比矩陣 F\mathbf{F}F

F=?f?x∣xk∣k?1\mathbf{F} = \frac{\partial f}{\partial \mathbf{x}} \bigg|_{\mathbf{x}_{k|k-1}}F=?x?f??xkk?1??

主要的非零元素包括:

F1,3=F2,4=ΔtF3,5=?(fx?bax)sin?ψ?(fy?bay)cos?ψ?ΔtF4,5=(fx?bax)cos?ψ?(fy?bay)sin?ψ?ΔtF3,7=F4,8=?cos?ψ?ΔtF3,8=F4,7=sin?ψ?ΔtF5,6=?Δt\begin{aligned} F_{1,3} &= F_{2,4} = \Delta t \\ F_{3,5} &= -(f_x - b_{ax})\sin\psi - (f_y - b_{ay})\cos\psi \cdot \Delta t \\ F_{4,5} &= (f_x - b_{ax})\cos\psi - (f_y - b_{ay})\sin\psi \cdot \Delta t \\ F_{3,7} &= F_{4,8} = -\cos\psi \cdot \Delta t \\ F_{3,8} &= F_{4,7} = \sin\psi \cdot \Delta t \\ F_{5,6} &= -\Delta t \end{aligned}F1,3?F3,5?F4,5?F3,7?F3,8?F5,6??=F2,4?=Δt=?(fx??bax?)sinψ?(fy??bay?)cosψ?Δt=(fx??bax?)cosψ?(fy??bay?)sinψ?Δt=F4,8?=?cosψ?Δt=F4,7?=sinψ?Δt=?Δt?

觀測方程

觀測方程為線性的:

zk=Hxk+vk\mathbf{z}_k = \mathbf{H}\mathbf{x}_k + \mathbf{v}_kzk?=Hxk?+vk?

觀測雅可比矩陣 H\mathbf{H}H 為:

H=[1000000001000000]\mathbf{H} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}H=[10?01?00?00?00?00?00?00?]

噪聲模型

過程噪聲協方差矩陣Q:

Q=diag[(σaΔt2)2I2×2(σaΔt)2I2×2(σωΔt)2(σbgΔt)2(σbaΔt)2I2×2]\mathbf{Q} = \text{diag}\begin{bmatrix} (\sigma_{a} \Delta t^2)^2 \mathbf{I}_{2×2} \\ (\sigma_{a} \Delta t)^2 \mathbf{I}_{2×2} \\ (\sigma_{\omega} \Delta t)^2 \\ (\sigma_{bg} \Delta t)^2 \\ (\sigma_{ba} \Delta t)^2 \mathbf{I}_{2×2} \end{bmatrix}Q=diag?(σa?Δt2)2I2×2?(σa?Δt)2I2×2?(σω?Δt)2(σbg?Δt)2(σba?Δt)2I2×2???

其中:

  • σa=0.01\sigma_a = 0.01σa?=0.01 m/s2:加速度計噪聲標準差
  • σω=0.1°\sigma_{\omega} = 0.1°σω?=0.1° = 0.0017 rad/s:陀螺儀噪聲標準差
  • σbg=0.01°\sigma_{bg} = 0.01°σbg?=0.01° = 0.00017 rad/s:陀螺儀偏差噪聲標準差
  • σba=0.001\sigma_{ba} = 0.001σba?=0.001 m/s2:加速度計偏差噪聲標準差

觀測噪聲協方差矩陣R:

R=σgnss2I2×2\mathbf{R} = \sigma_{gnss}^2 \mathbf{I}_{2×2}R=σgnss2?I2×2?

其中 σgnss=3\sigma_{gnss} = 3σgnss?=3 m:GNSS位置觀測噪聲標準差

性能評估

系統通過以下指標評估濾波性能:

  1. 位置均方根誤差(RMSE)
    RMSEpos=1N∑k=1N[(px,kest?px,ktrue)2+(py,kest?py,ktrue)2]\text{RMSE}_{pos} = \sqrt{\frac{1}{N}\sum_{k=1}^{N}[(p_{x,k}^{est} - p_{x,k}^{true})^2 + (p_{y,k}^{est} - p_{y,k}^{true})^2]}RMSEpos?=N1?k=1N?[(px,kest??px,ktrue?)2+(py,kest??py,ktrue?)2]?

  2. 速度均方根誤差(RMSE)
    RMSEvel=1N∑k=1N[(vx,kest?vx,ktrue)2+(vy,kest?vy,ktrue)2]\text{RMSE}_{vel} = \sqrt{\frac{1}{N}\sum_{k=1}^{N}[(v_{x,k}^{est} - v_{x,k}^{true})^2 + (v_{y,k}^{est} - v_{y,k}^{true})^2]}RMSEvel?=N1?k=1N?[(vx,kest??vx,ktrue?)2+(vy,kest??vy,ktrue?)2]?

算法特點

  1. 多傳感器融合:有效融合高頻IMU數據和低頻GNSS觀測
  2. 偏差估計:實時估計并補償陀螺儀和加速度計偏差
  3. 誤差狀態建模:采用誤差狀態方法提高線性化精度
  4. 實時性能:適合在線實時導航應用

該EKF組合導航算法在保持計算效率的同時,顯著提高了導航精度,特別是在GNSS信號中斷期間仍能保持較好的位置估計性能。

運行結果

軌跡對比:
8維狀態量和2維觀測量
各軸位移與速度曲線對比:
在這里插入圖片描述
在這里插入圖片描述

誤差對比:
在這里插入圖片描述

命令行截圖:
在這里插入圖片描述

MATLAB源代碼

部分代碼如下:

% 二維狀態量的EKF例程(有嚴格的組合導航推導)
% 基于8維誤差狀態模型:位置、速度、航向、航向角角速度偏差、加速度計偏差
% 基于2維的觀測模型:XY兩個軸的位置
% 作者:matlabfilter
% 2025-08-27/Ver1clear; clc; close all;
rng(0); % 固定隨機種子%% 系統參數設置
dt = 0.1;           % 采樣時間間隔 (s)
total_time = 100;   % 總仿真時間 (s)
N = total_time / dt; % 采樣點數%% 噪聲參數設置
% IMU噪聲參數
gyro_noise_std = 0.1 * pi/180;      % 陀螺噪聲標準差 (rad/s)
accel_noise_std = 0.01;             % 加速度計噪聲標準差 (m/s^2)
gyro_bias_std = 0.01 * pi/180;      % 陀螺偏差標準差 (rad/s)
accel_bias_std = 0.001;             % 加速度計偏差標準差 (m/s^2)% GNSS觀測噪聲
gnss_pos_noise_std = 3;             % GNSS位置噪聲標準差 (m)%% 過程噪聲協方差矩陣Q (8×8)
% 狀態順序:[位置(2), 速度(2), 航向角(1), 航向角角速度偏差(1), 加速度計偏差(2)]
Q = zeros(8, 8);
% 位置噪聲(通過速度積分產生)
Q(1:2, 1:2) = eye(2) * (accel_noise_std * dt^2)^2;
% 速度噪聲
Q(3:4, 3:4) = eye(2) * (accel_noise_std * dt)^2;
% 姿態噪聲
Q(5, 5) = eye(1) * (gyro_noise_std * dt)^2;
% 陀螺偏差噪聲
Q(6, 6) = eye(1) * (gyro_bias_std * dt)^2;
% 加速度計偏差噪聲
Q(7:8, 7:8) = eye(2) * (accel_bias_std * dt)^2;

代碼下載鏈接:
https://download.csdn.net/download/callmeup/91800451

如需幫助,或有導航、定位濾波相關的代碼定制需求,請點擊下方卡片聯系作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

react生命周期,詳細版本

React 組件的生命周期分為三個階段:掛載(Mounting)、更新(Updating) 和 卸載(Unmounting)。以下是類組件生命周期的詳細說明(基于 React 16.3+ 版本): 一、掛載階段(Mounting) 組件實例被創建并插入 DOM 時的流程: constructor(props) ○ 用途:初始化狀態(this…

騰訊最新開源HunyuanVideo-Foley本地部署教程:端到端TV2A框架,REPA策略+MMDiT架構,重新定義視頻音效新SOTA!

一、模型介紹HunyuanVideo-Foley 是騰訊混元團隊在2025年8月底開源的一款端到端視頻音效生成模型。它旨在解決AI生成視頻“有畫無聲”的痛點,通過輸入視頻和文本描述,就能自動生成電影級別的同步音效,顯著提升視頻的沉浸感。它是專為視頻內容…

計算機原理(二)

計算機原理系列 歡迎大家關注「海拉魯知識大陸」 多交流不迷路 計算機原理(一) 繼續上一篇計算機原理(一)深入了解程序執行部分,進一步說說程序在馮諾依曼模型上如何執行。如果沒有了解的童鞋可以查看我上一篇文章。…

【設計模式】 工廠方法模式

系列文章目錄 文章目錄系列文章目錄需要了解工廠制造細節嗎?簡單工廠模式實現工廠方法模式的實現簡單方法? 工廠方法?總結需要了解工廠制造細節嗎? 我們在前面的文章中為大家介紹了簡單工廠模式,我們知道 簡單工廠模式…

詳解 Java 中的 CopyOnWriteArrayList

目錄 【1】CopyOnWriteArrayList 簡介 【2】核心原理 1.底層數據結構 2.寫時復制機制 【3】CopyOnWriteArrayList常用方法及實例 1.添加元素方法 add () 2.獲取元素方法 get () 3.刪除元素方法remove() 【4】優缺點分析 【5】適用場景 【6】總結 【1】CopyOnWriteAr…

新手SEO優化快速起步教程

本教程專為SEO新手設計,幫助您快速上手優化工作。我們將一步步帶您了解基礎概念,包括高效挖掘關鍵詞的方法、內容優化的核心技巧,以及網站基礎設置的關鍵步驟。后續還會講解提升排名的實用策略、如何監控效果并進行調整,確保您能系…

Minecraft圖片搜索技巧

以下是更多專注 Minecraft 內容的高質量社區平臺,涵蓋建筑展示、模組/材質分享、實機截圖、藝術創作等方向,按類型分類整理:---一、國際知名綜合社區平臺 特點 鏈接 CurseForge 模組/材質/數據包第一倉庫,作者更新快,支…

數學建模-非線性規劃(NLP)

1-理論知識介紹應用2-基于matlab實現非線性規劃1)例1% 清除工作臺和命令行 clear;clc; x0[0 0 0]; A [-1 1 -1]; b 0; [x,value] fmincon(f1,x0,A,b,[],[],[],[],nonlfun1) function f f1(x)f x(1)^2x(2)^2x(3)^28; end function [c,ceq] nonlfun1(x)c [x(1)…

人工智能學習:什么是seq2seq模型

一、seq2seq模型 Seq2Seq(Sequence-to-Sequence)模型是一種用于處理序列轉換問題的深度學習模型,廣泛應用于機器翻譯、文本摘要、對話系統、語音識別等領域。Seq2Seq模型的核心思想是通過一個編碼器(Encoder)將輸入序列編碼為一個固定長度的上下文向量(Context Vector),…

生態 | 華院計算與深至科技達成戰略合作,攜手推動AI+醫學影像算法升級迭代

8月25日,華院計算技術(上海)股份有限公司(以下簡稱“華院計算”)與上海深至信息科技有限公司(以下簡稱“深至科技”)正式簽署戰略合作協議。雙方將秉持“優勢互補、資源共享、戰略協同、共同發展…

詳解MySQL環境變量配置及其在備份中的應用

正確配置MySQL環境變量是保障數據庫穩定運行和高效管理的基礎。這些變量涵蓋了從內存分配、連接設置到日志行為等方方面面,直接決定了數據庫的性能表現和功能特性。對于數據庫管理員而言,熟練掌握環境變量的配置,是進行性能調優和故障排查的必…

scikit-learn零基礎配置(含python、anaconda)

一、Anaconda環境搭建 1、關于Anaconda Anaconda 是一個非常 popular 的 Python 發行版,它不僅包含了 Python 語言本身,還預裝了眾多常用的科學計算庫,如 NumPy、Pandas、Matplotlib 等,能夠極大地方便用戶的開發和數據分析工作。…

RAG提示詞(日本語版)

RAG提示詞(日本語版) System Message # 知能型質問応答アシスタント(RAGシステムプロンプト)## 役割定義 あなたは「知能型質問応答アシスタント」として、提供されたコンテキスト情報に基づいてユーザーの質問に回答する専門的な…

qData 數據中臺【開源版】發布 1.0.5 版本,全面提升規則治理、非結構化數據處理與部署體驗

2025年9月3日 —— 企業級開源數據中臺 qData 開源版 正式發布 1.0.5 版本。本次更新聚焦 規則治理一體化、非結構化數據支持、以及開源版的體驗與部署優化,進一步提升規則復用能力、數據接入廣度與運維效率,幫助企業和開發者更輕松地構建高質量數據治理…

RecSys:用戶行為序列建模以及DIN、SIM模型

引言 在推薦系統中,用戶歷史行為序列是極其重要的信息源。用戶最近的點擊、點贊、收藏、轉發等行為能夠有效反映其即時興趣,無論是在召回、粗排還是精排階段,合理利用這些行為序列都能顯著提升推薦效果。本文將系統介紹用戶行為序列建模的幾…

QGIS二次開發01:環境配置-OSGeo4W鏡像

寫在前面: 本筆記根據多方資料整理而成,旨在為QGIS二次開發提供學習參考。內容僅供交流學習,歡迎共同探討。 一、關于QGIS QGIS 是一個功能強大的桌面GIS軟件本身,為用戶提供了圖形化界面(GUI)來進行地圖制…

對接旅游行業安全需求:旅游安全急救實訓室的功能構建與育人目標

隨著我國旅游行業的快速發展,游客安全需求日益凸顯,安全應急處置能力已成為旅游服務人才的核心競爭力。旅游安全急救實訓室作為旅游服務與管理專業中的重要教學場所,其功能構建與育人目標影響人才培養質量與行業安全水平。點擊獲取方案 一、行…

Typora處理markdown文件【給.md文檔加水印】

①文件→偏好設置→外觀→打開主題文件夾②在打開的文件夾中放入水印圖像③右鍵點擊github.css文件后,點擊編輯,進入編輯頁面④將代碼塊中內容粘貼到文件最后 更多效果請自行探索 #write::before {content: "CSDN果子當夜宵:bigxie.blog…

基于單片機的六足機器人控制系統設計

基于單片機的六足機器人控制系統設計摘 要本設計主要是基于單片機的六足機器人控制系統設計,綜合分析六足機器人的結構、步態和控制算法,結合云端服務器、WIFI 技術、藍牙技術、語音識別技術和手勢識別技術進行多種控制模式的設計,并提出不同…

RK3568 Trust

文章目錄1、環境介紹2、前言3、ARM TrustZone3.1、什么是ARM TrustZone3.2、cpu特權等級3.3、ARM Trusted Firmware4、Rockchip 平臺的 Trust4.1、實現機制4.2、啟動流程4.3、生命周期4.4、Trust 編譯打包流程分析5、總結1、環境介紹 硬件:飛凌ok3568-c開發板 軟件…