基于卡尔曼滤波进行四旋翼动力学建模(SimulinkMatlab)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

文献来源:

摘要:由于近年来民用和军事领域对无人机的兴趣日益浓厚,自主微型飞行机器人的研究得到了极大的加强。本文总结了OS4项目建模和控制部分的最终成果,重点是四旋翼飞行器的设计和控制。介绍了考虑车辆运动引起的气动系数变化的仿真模型。利用该模型得到的控制参数在不重新整定的情况下成功地应用于直升机。本文的最后一部分描述了控制方法(积分反演)和我们提出的四旋翼飞行器(姿态、高度和位置)的完全控制方案。

最后给出了自主起飞、悬停、着陆和避碰的结果。

原文摘要:

Abstract— The research on autonomous miniature flying robots has intensified considerably thanks to the recent growth of civil and military interest in Unmanned Aerial Vehicles
(UAV). This paper summarizes the final results of the modeling and control parts of OS4 project, which focused on design and control of a quadrotor. It introduces a simulation model which takes into account the variation of the aerodynamical coefficients due to vehicle motion. The control parameters found with this model are successfully used on the helicopter without re-tuning. The last part of this paper describes the control approach (Integral Backstepping) and the scheme we propose for full control of quadrotors (attitude, altitude and position). Finally, the results of autonomous take-off, hover, landing and
collision avoidance are presented.

对以下内容进行了建模: - 四旋翼动力学
- 电机动力学 - 用于状态估计的卡尔曼滤波 - 简单的传感器模型/ADC转换
以下内容未建模:

- 螺旋桨动力学

- 控制规律

- 动力子系统

此SIM卡可用于:
- 系统可行性研究
- 系统性能评估和权衡
- 控制律性能评估

📚2 运行结果

 

 

 

部分代码:

%% simulation set up
step_time = 0.5;                       % simulation step time(sec)
end_time  = 1000;                   % simulation end time (sec)
%end_time  = 86400;
%% attitude estimator gains
Tatd  = 0.5;                          % attitude estimator update time (sec)
Tqint = 0.5;                         % discrete quaternion integration period (sec)
Tsen_out = 0.5;                      % sensor output period (sec)
TkfProp = 0.5;                       % Kalman filter propagation period (sec)
KfupdatePeriodInCycle = 1;           % Kalman filter update period (propagation cycle)
f_bw_atd = 0.02;                     % attitude determination bandwidth (hz)
%f_bw_atd = 0.005;
zeta = 0.7;
Krp =  (2*pi*f_bw_atd)^2 * eye(3);
Kpp =  2*zeta*2*pi*f_bw_atd*eye(3);
qest0 = [0*1e-4; 0; 0; 1];                          % initial estimator quaternion
delta_west0 = zeros(3,1);                           % initial deviation of estimator angular rate (rad/sec)
max_delta_w = 0.1*pi/180;
delta_w_lim = 2e-4; %0.1/pi/Tqint;
delta_th_lim= 1e-4; %0.1*pi/180/Tqint;
q0 = [0; 0; 0; 1];   

%% for estimate error standard deviation prediction calculation
wn=sqrt(diag(Krp));
k=sqrt((wn.^4+4*zeta^2)./(4*zeta*wn));
%% for using Lyapunove equation to solve for expected estimation error
C=[1 0];  K=[Kpp(1,1);Krp(1,1)];      A=[0    1;0 0]-K*C; B=K; 
H=[1 0];  K=[Kpp(1,1);Krp(1,1)]*Tatd; F=[1 Tatd;0 1]-K*H; G=K;
%% Kalman filter setups
Fmat = [eye(3) TkfProp*eye(3);zeros(3,3) eye(3)];
Hmat = [eye(3)  zeros(3,3)];
therr0 = max([abs(qest0(1:3)); 5*1e-4]);  % initial error estimate, assuming q0=[0 0 0 1]
P0 = diag([therr0^2*ones(1,3) 3e-6^2*ones(1,3)]);
R = TkfProp*KfupdatePeriodInCycle*diag(position_uncertainty_var);%1e-3^2*eye(3)*
Q = diag([1e-5^2*ones(1,3), 1e-7^2*ones(1,3)])*TkfProp;
max_rate = pi/180;
P0 = diag([1e-32*ones(1,3) 1e-5^2*ones(1,3)]);
Q = diag([1e-5^2*ones(1,3), 5e-6^2*ones(1,3)])*TkfProp;
max_bias = 1*pi/180/3600;
%% start simulation
Tcapt = Tsen_out;                              % sim variable capture rate (sec)

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.Docker镜像和容器操作

文章目录 Docker操作Docker镜像操作搜索镜像获取镜像镜像加速下载查看镜像详细信息为镜像添加标签删除镜像导出导入镜像上传镜像 Docker容器操作创建容器查看容器状态启动容器创建并启动容器进入容器停止容器删除容器复制容器文件到宿主机容器的导出导入 Docker操作 ###查看do…

vscode 端口转发实现端口映射,实现端口自由

用vscode连接server进行开发, 是非常方便的,但很多时候,server的端口开放的很有限,那么就可以利用vscode进行端口映射 举一个应用场景: 先通过A利用vscode 连接B,然后再vscode 的port窗口进行端口转发&…

SpringBoot中整合Sharding Sphere实现数据加解密/数据脱敏/数据库密文,查询明文

场景 为防止数据泄露,需要在插入等操作时将某表的字段在数据库中加密存储,在需要查询使用时明文显示。 Sharding Sphere ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈, 它由Sharding-JDBC、Sharding-Proxy和Shardi…

如何获取microstore商品详情接口php接口jason数据字段

随着科技的发展,API接口成为了各行业发展的最新趋势。在微店购物平台中,商品详情API接口的引入,为商家和消费者提供了更加便捷、高效的用户体验。本文将为大家详细介绍微店商品详情API接口的优势和使用方法 商品详情API接口的优势 1.提升用户…

【milvus】向量数据库,用来做以图搜图+人脸识别的特征向量

1. 安装milvus ref:https://milvus.io/docs 第一次装东西,要把遇到的问题和成功经验都记录下来。 1.Download the YAML file wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-standalone-docker-compose.yml -O docker-compose.yml看…

JavaWeb项目【SpringBoot】——图书项目4.0【源码】:SpringBoot版本 springboot相关技术 项目应用

目录 项目简介思考 & 改进1.Jsp都是同步请求---->改成异步Ajax【完成】2.前端用Jsp技术落后----->用Vue框架【完成】3.架构问题:配置数据和Java代码耦合【完成】3.SQL语句和Java代码耦合【完成】4.架构问题:servlet只能处理一个请求5.响应方式…

Web前端工程师笔试题(合集)

Web前端开发工程师笔试题篇1 1. 在一个框架的属性面板中,不能设置下面哪一项。( C ) A.源文件 ; B.边框颜色 ; C.边框宽度 D.滚动条 2. CSS样式表根据所在网页的位置,可分为?(B ) A.行内样式表、内嵌样式表、混合样式表 B.行内样式表、内嵌样式表…

客户案例 | 数字化加速,金融企业实现3D打印式应用程序开发

关键发现: 客户痛点:传统开发周期长,流程复杂,难以满足杭银消金在企业快速发展过程中的应用开发需求;内部业务因为优先级不高,导致开发资源分配有限,更加迟滞了管理部门数字化转型的进度。 解决…

pytorch实现线性回归

转大佬笔记 代码: # -*- coding: utf-8 -*- # Time : 2023-07-14 14:57 # Author : yuer # FileName: exercise05.py # Software: PyCharm import matplotlib.pyplot as plt import torch# x,y是3行1列的矩阵,所以在[]中要分为3个[] x_data torch.…

03 QT对象树

Tips: QT通过对象树机制,能够自动、有效的组织和管理继承自QObject的Qt对象,不需要用户手动回收资源,系统自动调用析构函数。 验证对象树功能: 新建C文件 继承自QPushButton,但没有QPushButton,但有其父类…

谷歌Bard更新:支持中文提问和语音朗读

ChatGPT不断更新功能,从GPT-3到3.5,再到GPT-4,甚至最新的plus版已经支持图像处理和图表生成,而谷歌Bard却自从推出后就一直很安静,没有什么大动作。眼见被ChatGPT、Claude甚至是文心一言抢去了风头,自然心有…

050、事务设计之Percolator事务模型

Percolator 背景 Bigtable: 大表打散每行到各个节点,每一行作为一个kv。解决的问题 一个事务涉及的行在多个节点,如何用单行对一个事务进行控制,实现原子性。 快照隔离级别(snapshot ) 白色点:代表事务开始…

Bring Your Data!Self- supervised Evolution of Large Language Models

Bring Your Data!Self- supervised Evolution of Large Language Models IntroductionMethod参考 Introduction 这篇论文提出了一种自监督的评估方式来衡量大型语言模型的能力和局限性。常规的基于数据集的评估方式存在一些缺点: 需要不断新建数据集。存在数据集和…

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面

不用显示器,不用鼠标和键盘,让我们用主机远程访问OK3588的桌面 MobaXterm软件介绍串口终端运行命令MobaXterm访问开发板 MobaXterm软件介绍 MobaXterm是一款增强型终端软件,对于Windows平台上的程序员、网络管理员和开发者是一款极其优秀的工…

TCP缓冲区和4次挥手调优

目录 如何修改TCP缓冲区才能兼顾并发数量与传输速度? 四次挥手性能调优 1,为什么建立连接是三次握手,而关闭连接需要四次挥手呢? 2.四次挥手的流程,注意5个状态 3.主动方优化 4,被动方调优 最后 如何修改TCP缓冲区才能兼顾并发数量与传输速度&…

【深度学习】目标检测的全面回顾

一、说明 随着自动驾驶汽车、智能视频监控、面部检测和各种人数统计应用的兴起,对快速准确的物体检测系统的需求也在不断增长。这些系统不仅涉及识别和分类图像中的每个对象,还涉及通过在图像周围绘制适当的边界框来定位每个对象。这使得对象检测比其传统…

前端 mock 数据的几种方式

目录 接口demo Better-mock just mock koa webpack Charles 总结 具体需求开发前,后端往往只提供接口文档,对于前端,最简单的方式就是把想要的数据写死在代码里进行开发,但这样的坏处就是和后端联调前还需要再把写死的数据…

spring5源码篇(10)——spring-aop代理过程

spring-framework 版本:v5.3.19 文章目录 1、ProxyFactory1.1、createAopProxy() 创建AopProxy1.2、getProxy() 创建代理对象1.3、JdkDynamicAopProxy#invoke 代理逻辑1.3.1、advised.getInterceptorsAndDynamicInterceptionAdvice() 匹配添加的advisor并转化成所需…

基于51单片机和proteus的电流采集系统

此系统是基于51单片机和proteus的仿真设计,功能如下: 1. LCD1602实时显示获取到电流值及设定值。 2. 按键可调整电流设定值。 3. 电流值过高则蜂鸣器报警。 4. 指示灯指示电流及系统状态。 5. 系统信息可通过串口实时更新。 功能框图如下&#xff1…

<C语言> 自定义类型

1.结构体 结构体是一种用户自定义的数据类型,允许将不同类型的数据项组合在一起,形成一个更大的数据结构。结构体可以包含多个成员变量,每个成员变量可以是不同的数据类型,如整数、字符、浮点数等,甚至可以包含其他结构…