基于EKF的四旋翼无人机姿态估计matlab仿真

这篇具有很好参考价值的文章主要介绍了基于EKF的四旋翼无人机姿态估计matlab仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。这种滤波方法以它的发明者鲁道夫·E·卡尔曼(Rudolf E. Kalman)命名。卡尔曼最初提出的滤波理论只适用于线性系统。Bucy,Sunahara等人提出并研究了扩展卡尔曼滤波(EKF),将卡尔曼滤波理论进一步应用到非线性领域。

       扩展卡尔曼滤波(Extended Kalman Filter,EKF)是标准卡尔曼滤波在非线性情形下的一种扩展形式,EKF算法是将非线性函数进行泰勒展开,省略高阶项,保留展开项的一阶项,以此来实现非线性函数线性化,最后通过卡尔曼滤波算法近似计算系统的状态估计值和方差估计值,对信号进行滤波。
       扩展卡尔曼滤波EKF的状态转移方程和观测方程为:   
基于EKF的四旋翼无人机姿态估计matlab仿真

 EKF和KF的区别如下:

基于EKF的四旋翼无人机姿态估计matlab仿真

    姿态解算就是通过融合传感器数据解算出姿态角。姿态角是俯仰角(pitch)、滚转角(roll)和偏航角(yaw)的合称,此文分别使用 α , β , γ \alpha, \beta, \gammaα,β,γ 表示。

俯仰角
       俯仰角是无人机机体系 x 轴与水平面夹角,也即机体系与航向系 x 轴的夹角,机头上仰为正,范围 α ∈ [ − π / 2 , π / 2 ] \alpha \in [-\pi/2, \pi/2]α∈[−π/2,π/2]。

滚转角
      滚转角是无人机机体系 y 轴与水平面夹角,也即机体系与航向系 y 轴的夹角,机身左升右降为正,范围 β ∈ [ − π , π ] \beta \in [-\pi, \pi]β∈[−π,π]。

偏航角
       偏航角是无人机机体系 x 轴在水平面投影与地球系 x 轴(正北方)的夹角,也即航向系 x 轴与地球系 x 轴夹角。俯视机身,顺时针方向(往东)角度递增,逆时针方向角度递减,范围 γ ∈ [ − π , π ] \gamma \in [-\pi, \pi]γ∈[−π,π]。

      可见,引入航向系之后可以更加方便地定义姿态角。注意与下面的欧拉角作对比,欧拉角和姿态角不是同样概念,这也是这里使用 α , β , γ \alpha, \beta, \gammaα,β,γ 而不是更常见的 θ , ϕ , ψ \theta, \phi, \psiθ,ϕ,ψ 的原因,后者用于表示欧拉角。

2.仿真效果预览

matlab2022a仿真结果如下:

基于EKF的四旋翼无人机姿态估计matlab仿真

 基于EKF的四旋翼无人机姿态估计matlab仿真

 基于EKF的四旋翼无人机姿态估计matlab仿真

 基于EKF的四旋翼无人机姿态估计matlab仿真

 基于EKF的四旋翼无人机姿态估计matlab仿真

3.MATLAB核心程序

 
 
%常系数
L= 0.3875;  %单位(m)
Ix = 0.05887;  %单位(kg·m^2)
Iy = 0.05887;
Iz = 0.13151;
g = 9.81; %单位(N/kg)
 
%动力学方程的常系数
a1 = -(Iy - Iz)/Ix;
a2 = -(Iz - Ix)/Iy;
a3 = -(Ix - Iy)/Iz;  
b1 = L/Ix;
b2 = L/Iy;
b3 = 1/Iz;
 
Ts = 0.1;                    %采样时间
t = 5;                       %仿真时间
len = fix(t/Ts);            %仿真步数
n = 6;                        %状态维度
w = 0.1;                     %过程标准差
v = 0.5;                      %测量标准差
Q = w^2*eye(n);        %过程方差
R = v^2;                    %测量值的方差
 
h=@(x)[x(2);x(4);x(6)];                  %测量方程
s=[1;2;3;3;2;1];                            %初始状态
x=s+w*randn(6,1);                      %初始化状态
P = eye(6);                                 %初始化协方差矩阵
xV = zeros(6,len);                       %EKF估计值
sV = zeros(6,len);                       %真实值
zV = zeros(3,len);                       %测量值
 
for k=1:len
  %随机赋值控制量
  u2 = 0.1*randn(1,1);
  u3 = 0.1*randn(1,1);
  u4 = 0.1*randn(1,1);
  
  z = h(s) + v*randn;                     
  sV(:,k)= s;                             %实际状态
  zV(:,k) = z;                           %状态测量值
  
  %状态方程
  f=@(x)[x(1)+Ts*x(2);
           (a1*x(4)*x(6) +b1*u2)*Ts+x(2);
           x(3)+Ts*x(4);
           (a2*x(2)*x(6) +b2*u3)*Ts+x(4);
           x(5)+Ts*x(6);
           (a3*x(2)*x(4) +b3*u4)*Ts+x(6);];  
  
  %一步预测,同时计算f的雅可比矩阵A
  [x1,A]=jaccsd(f,x); 
  
  %过程方差预测
  P=A*P*A'+Q;         
  
  %状态预测,同时计算h的雅可比矩阵H
  [z1,H]=jaccsd(h,x1); 
  
  %计算卡尔曼增益
  K=P*H'/(H*P*H'+R); 
  
  %状态EKF估计值
  x=x1+K*(z-z1);        
  
  %协方差更新
  P=P-K*H*P;          
  
  xV(:,k) = x;          
  
  %更新状态
  s = f(s) + w*randn(6,1);  
end
 
%俯仰角、滚转角、偏航角度值
for k=1:2:5
  figure(); hold on; 
  plot(sV(k,:),'-.'); %画出真实值
  plot(xV(k,:)) %画出最优估计值
  plot(abs(sV(k,:)-xV(k,:)), '--'); %画出误差值
  legend('真实状态', 'EKF最优估计估计值', '误差值');
end
A128

4.完整MATLAB

V文章来源地址https://www.toymoban.com/news/detail-422786.html

到了这里,关于基于EKF的四旋翼无人机姿态估计matlab仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • m基于PID控制算法的四旋翼无人机飞行控制simulink仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB   无人机采用常见的四旋翼无人飞行器,如图1所示。       PID 控制器,即控制器的控制方式为 P 比例调整, I 积分调整以及 D 微分调整三个部分构成, PID 控制器是目前为止应用最为广泛的控制方式。 PID 控制器具

    2023年04月22日
    浏览(79)
  • 基于PID优化和矢量控制装置的四旋翼无人机(Matlab&Simulink实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 PID优化 2.2 矢量控制装置  🎉3 参考

    2024年02月10日
    浏览(59)
  • 基于PID控制器的四旋翼无人机控制系统的simulink建模与仿真,并输出虚拟现实动画

    目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1四旋翼无人机的动力学模型 4.2 PID控制器设计 4.3 姿态控制实现 4.4 VR虚拟现实动画展示 5.完整工程文件        基于PID控制器的四旋翼无人机控制系统的simulink建模与仿真,并输出vr虚拟现实动画,输出PID控制器

    2024年04月09日
    浏览(62)
  • 基于MiniFly魔改的共轴双旋翼无人机

    大学期间在实验室做的项目就跟MiniFly息息相关,因此我对MiniFly的基本结构有所了解,加之去年珠海航展的璇玑科技展出了衡系列无人机,勾起了我制作一台共轴双旋翼无人机的想法,当然,这也是我的毕业设计。废话不多说,先看看我的共轴双旋翼无人机。 共轴双旋翼无人

    2024年02月14日
    浏览(56)
  • 基于RRT算法的旋翼无人机安全和最小能量轨迹规划

    基于RRT算法的旋翼无人机安全和最小能量轨迹规划 概述: 无人机的轨迹规划是无人机自主飞行的关键问题之一。在飞行过程中,无人机需要在保证安全的前提下,以最小的能量消耗完成任务。本文将介绍如何使用RRT(Rapidly-exploring Random Tree)算法来实现旋翼无人机的安全轨迹

    2024年02月05日
    浏览(56)
  • 基于simulink的无人机姿态飞行控制仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB         无人机是无人驾驶飞机的简称(Unmanned Aerial Vehicle),是利用无线电遥控设备和自备的程序控制装置的不载人飞机,包括无人直升机、固定翼机、多旋翼飞行器、无人飞艇、无人伞翼机。广义地看也包括临近

    2024年02月02日
    浏览(63)
  • 基于Unity构建机器人的数字孪生平台系列2—四旋翼无人机三维模型

    系列2的主要内容是探讨如何自己构建一个模型并且导入Unity 。 3D仿真与其他类型仿真的一大区别是三维场景和三维模型。为了实现对某个对象的仿真,模型是必须的。当然,针对不同的仿真任务,需要描述对象也是不一样的。但是,一个可视化的三维模型是必须的。比如,通

    2024年02月06日
    浏览(100)
  • 无人机基础知识:多旋翼无人机各模式控制框图

    无人机(Unmanned Aerial Vehicle),指的是一种由动力驱动的、无线遥控或自主飞行、机上无人驾驶并可重复使用的飞行器,飞机通过机载的计算机系统自动对飞行的平衡进行有效的控制,并通过预先设定或飞机自动生成的复杂航线进行飞行,并在飞行过程中自动执行相关任务和

    2023年04月09日
    浏览(139)
  • 旋翼无人机常用仿真工具

    简单的质点(也可以加上动力学姿态),用urdf模型在rviz中显示无人机和飞行轨迹、地图等。配合ROS代码使用,轻量化适合多机。典型的比如浙大ego-planner的仿真: https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git https://github.com/ethz-asl/rotors_simulator 利用gazebo仿真,提供gazebo中的简单四

    2024年02月07日
    浏览(50)
  • 多旋翼无人机调试问题分析

    一、电机和螺旋桨检查 在多旋翼无人机的调试过程中,首先需要检查电机和螺旋桨的状态。电机应转动灵活,无卡滞现象,且无明显磨损。螺旋桨应安装牢固,无松动现象,且桨叶完好无损。若发现问题,应及时更换或维修。 二、电池和充电器检查 电池是无人机飞行的能量

    2024年01月24日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包