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

2024-03-28 05:28

本文主要是介绍基于Rflysim平台的无人机拦截三维比例导引算法仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【后厂村路钢铁侠出品】

一、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)<1break;
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仿真

仿真侧拍

这篇关于基于Rflysim平台的无人机拦截三维比例导引算法仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854565

相关文章

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu4826(三维DP)

这是一个百度之星的资格赛第四题 题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=500 题意:从左上角的点到右上角的点,每个点只能走一遍,走的方向有三个:向上,向下,向右,求最大值。 咋一看像搜索题,先暴搜,TLE,然后剪枝,还是TLE.然后我就改方法,用DP来做,这题和普通dp相比,多个个向上