基于Rflysim平台的无人机拦截三维比例导引算法仿真

news2024/12/26 9:26:19

【后厂村路钢铁侠出品】

一、Rflysim简介

RflySim是一套专为科研和教育打造的Pixhawk /PX4 MATLAB/Simulink生态系统或工具链,采用基于模型设计(Model-Based DesignMBD)的思想,可用于无人系统的控制和安全测试。

基于三维比例导引的Rflysim仿真

二、三维比例导引简介

浅入深出的介绍比例导引法原理及分析-CSDN博客

导引导弹概述和相对运动方程-CSDN博客

三维比例制导律matlab代码(含注释)_matlab三维求导-CSDN博客

三、无人机拦截数学建模

3.1常用坐标系定义

地面坐标系OXYZ、无人机坐标系、轨迹坐标系、速度坐标系、视线坐标系

3.2无人机动力学和运动学建模

3.3无人机-目标运动信息计算

四、算法仿真结果

4.1基于差分法matlab仿真二维比例导引

clear all;
close all;
clc
% 假设sphere_pos和pos_info是已经定义好的变量,其中sphere_pos是一个3x1的数组,pos_info是一个结构体,包含mav_pos字段,也是一个3x1的数组  
sphere_pos = [20, 45];
mav_pos=[0,0];
self.temp1=0
self.temp2=0
self.temp3=0
self.temp4=0
self.K=6;
dt=0.01;
% 计算los向量  
cmd_v=[0,0];
i=1;
pmr=[];
% 计算LOS的横向通道、竖向通道角度 
while i<100000
los = [sphere_pos(1) - mav_pos(1), sphere_pos(2) - mav_pos(2)];
q_x = atan2(los(2), los(1)); % 注意MATLAB中atan2的参数顺序与Python不同  
dqx = q_x - self.temp1;  
self.temp1 = q_x;  

theta_x = atan2(cmd_v(2), cmd_v(1)); % 注意MATLAB中atan2的参数顺序  
self.temp3 = theta_x;  

% 比例导引:计算期望速度角度  
theta_xd = (self.K * dqx) + self.temp3;  

  
% 计算V的横向通道、竖向通道角度  
cmd_v = [cos(theta_xd),sin(theta_xd)];   
cmd_v = cmd_v / norm(cmd_v);  
cmd_v = cmd_v * 4; % 调整速度向量的幅度
mav_pos=mav_pos+(dt.*cmd_v);
i=i+1;
pmr(i,:)=mav_pos;
if los(2)<1
    break;
end
end
plot(pmr(:,1),pmr(:,2),'r')
xlabel('X(m)');ylabel('Y(m)');%给三维图加坐标轴标注
text(0, 0,'\leftarrow起始点');%给目标轨迹加标注
text(sphere_pos(1), sphere_pos(2),'\leftarrow目标飞行器');%给目标轨迹加标注

仿真结果:

4.2基于差分法matlab仿真三维比例导引 

三维的仿真代码是两个二维耦合的。

仿真结果:

 4.3基于Rflysim仿真结果

基于三维比例导引的Rflysim仿真

仿真侧拍

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

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

相关文章

社交革命:Facebook如何改变我们的生活

引言 在数字化时代的浪潮中&#xff0c;社交媒体平台成为了人们日常生活不可或缺的一部分&#xff0c;而Facebook作为其中的巨头&#xff0c;已经深刻地改变了我们的生活方式和社交模式。本文将探讨Facebook在社交领域的影响力&#xff0c;以及它是如何改变了我们的生活。 1. …

SQLite数据库浏览器sqlite-web

什么是 sqlite-web &#xff1f; sqlite-web是一个用 Python 编写的基于 Web 的 SQLite 数据库浏览器。 软件特点&#xff1a; 可与您现有的 SQLite 数据库配合使用&#xff0c;也可用于创建新数据库。添加或删除&#xff1a; 表格列&#xff08;支持旧版本的 SQLite&#xff…

春秋云境CVE-2023-1313

简介 cockpit在2.4.1版本之前存在任意文件上传漏洞PS&#xff1a;通过在浏览器中打开/install来运行安装 正文 来到靶场&#xff0c;首先进行弱口令爆破&#xff0c;发现没用&#xff0c;那么只好老老实实的看靶场提示 先来访问/install 访问后就可以进行登录了&#xff0c…

阿里云实时计算Flink的产品化思考与实践【上】

摘要&#xff1a;本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。内容主要为以下五部分&#xff1a; 阿里云实时计算 Flink 简介产品化思考产品化实践SQL 产品化思考及实践展望 该主题由黄鹏程和陈婧敏共同完成&#xff0c;前半程…

AJAX(二):axios 和 fetch函数发送AJAX请求、同源策略、 jsonp、CORS

一、各种发送AJAX请求 jquery基于回调函数&#xff0c;axios基于promise 1.axios发送AJAX请求!!! axios (v1.5.0) - Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 Node.js 中。 | BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 服务器&#xff1a; app.…

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;的缩写。它是软件开发中的一种流程和方法论&#xff0c;旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…

面试题 之 webpack

1.说说你对webpack理解&#xff1f;解决什么问题&#xff1f; Webpack 是实现前端项目的模块化&#xff0c;用于现代 JavaScript 应用程序的静态模块打包工具&#xff0c;被webpack 直接引用的资源打包进 bunde.js的资源&#xff0c;当webpack 处理应用程序时,它会在内部构建一…

将jupyter notebook文件导出为pdf(简单有效)

1.打开jupyter notebook笔记&#xff1a; 2.点击file->print Preview 3.在新打开的页面右键打印 4.另存为PDF 5.保存即可 6.pdf效果 &#xff08;可能有少部分图片显示不了&#xff09; 网上也有其他方法&#xff0c;比如将其转换为.tex再转为PDF等&#xff0c;但个人觉…

Maplesoft Maple 2024数学软件中文安装 Maple2024 Mac下载

Maplesoft Maple for Mac 是一款功能强大、易于使用的数学计算软件&#xff0c;适用于各种科学计算场景。无论是教学、科研还是工程设计&#xff0c;它都能为用户提供有力的支持。 Maple2024 Mac中文破解补丁 Windows版&#xff1a;点此下载 Maple 2024 mac破解教程 打开镜像…

学习可视化比较好用的网站Apache ECharts

Apache ECharts 是一个基于 JavaScript 的开源可视化图表库&#xff0c;它提供了直观、交互丰富且可高度个性化定制的数据可视化图表。这个库最初由百度团队开源&#xff0c;并在 2018 年初捐赠给了 Apache 基金会&#xff0c;成为 ASF 的孵化级项目。在 2021 年 1 月 26 日&am…

Java常见限流用法介绍和实现

目录 一、现象 ​编辑 二、工具 ​​​​​​1、AtomicInteger,AtomicLong 原子类操作 ​​​​​​2、RedisLua ​​​​​​3、Google Guava的RateLimiter 1&#xff09; 使用 2&#xff09; Demo 3&#xff09; 优化demo 4、阿里开源的Sentinel 三、算法 1、计数…

光伏百科|分布式光伏电站如何开展运维管理工作?

随着经济的不断发展和生活水平的日益提高&#xff0c;节能环保已经成为全社会的责任和共识&#xff0c;分布式光伏电站作为清洁能源走进了千家万户。然而&#xff0c;在分布式光伏电站运行期间&#xff0c;面临监管困难、系统繁多、火灾隐患和运维不当等困难&#xff0c;该如何…

gopher伪协议

基础知识 基本格式 基本格式&#xff1a;URL:gopher://<host>:<port>/<gopher-path>web也需要加端口号80gophert协议默认端口为70gopheri请求不转发第一个字符 get请求 问号&#xff08;&#xff1f;)需要转码为URL编码&#xff0c;也就是%3f回车换行要变…

Patchwork包使用教程,R语言快速组合拼接图片

R语言如何拼接多幅图片&#xff1f; 今天分享的笔记带你领略R语言Patchwork包独特的魅力&#xff0c;patchwork是一个非常流行的用于拼接 ggplot2 图形的包&#xff0c;以一种简单的方式对图形进行排列和组合&#xff0c;不论多复杂的组合图形&#xff0c;都能确保图形之间正确…

社交革命:Facebook如何塑造数字社交的未来

引言 在当今数字化时代&#xff0c;社交媒体已成为人们生活的核心&#xff0c;而Facebook作为其中的领军者&#xff0c;一直在塑造着数字社交的未来。本文将深入探讨Facebook在数字社交领域的地位、影响力以及对未来社交的塑造作用&#xff0c;为读者揭示这场社交革命如何由Fa…

Windows直接运行python程序

Windows直接运行python程序 一、新建bat脚本二、新建vbs脚本 一、新建bat脚本 新建bat批处理脚本&#xff0c;写入以下内容 echo off call conda activate pytorch python app.pyecho off&#xff1a;在此语句后所有运行的命令都不显示命令行本身&#xff0c;但是本身的指令是…

【软件开发】给Ubuntu 18.04虚拟机安装最新的Python 3.12.2

一、前言 笔者在Windows 11主机上安装有Ubuntu 18.04虚拟机&#xff08;使用虚拟化平台Oracle VM VirtualBox&#xff09;&#xff0c;在Python3.6的使用过程中遇到了问题&#xff0c;决定安装Python 3.12.2&#xff0c;在此记录安装过程。 二、安装过程&#xff08;在Ubuntu…

鸿蒙HarmonyOS应用开发之使用Node-API实现跨语言交互开发流程

使用Node-API实现跨语言交互&#xff0c;首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧&#xff1a;实现C方法的调用。代码比较简单&#xff0c;import一个对应的so库后&#xff0c;即可调用C方法。 Native侧&#xff1a;.cpp文件&#xff0c;实现模…

持续集成与版本控制的相关概念

目录 一、持续集成 1.1 持续集成基本概念 1.1.1 持续集成的含义 1.1.1.1 持续集成流程是依赖产品版本迭代和版本分支而产生的 1.1.1.2 持续集成流程中包含的内容 1.1.2 传统打包模式说明 1.1.2.1 传统打包模式概述 1.1.2.2 传统打包模式问题 1.1.3 持续集成模式 1.1.…

FFmpeg初步了解

一、了解FFmpeg 1.1 什么是FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0c;为了保证…