当前位置: 首页 > news >正文

基于闪电搜索算法的无人机航迹规划-附代码

基于闪电搜索算法的无人机航迹规划

文章目录

  • 基于闪电搜索算法的无人机航迹规划
    • 1.闪电搜索搜索算法
    • 2.无人机飞行环境建模
    • 3.无人机航迹规划建模
    • 4.实验结果
      • 4.1地图创建
      • 4.2 航迹规划
    • 5.参考文献
    • 6.Matlab代码

摘要:本文主要介绍利用闪电搜索算法来优化无人机航迹规划。

1.闪电搜索搜索算法

闪电搜索算法原理请参考:https://blog.csdn.net/u011835903/article/details/108538622

2.无人机飞行环境建模

? 环境模型的建立是考验无人机是否可以圆满完成人类所赋予各项任务的基
础和前提,其中第一步便是如何描述规划空间中的障碍物。首先我们将采取函数模拟法模拟地貌特征。其函数表达式为:
z ( x , y ) = s i n ( y + a ) + b s i n ( x ) + c c o s ( d y 2 + x 2 ) + e c o s ( y ) + f s i n ( f y 2 + x 2 ) + g c o s ( y ) (1) z(x,y)=sin(y+a)+bsin(x)+ccos(d\sqrt{y^2+x^2})+ecos(y)+fsin(f\sqrt{y^2+x^2})+gcos(y)\tag{1} z(x,y)=sin(y+a)+bsin(x)+ccos(dy2+x2 )+ecos(y)+fsin(fy2+x2 )+gcos(y)(1)
其中, ( x , y ) (x, y) (x,y) 为地形上某点投影在水平面上的点坐标, z z z 则为对应点坐标的高度。式中 a , b , c , d , e , f , g a, b, c, d, e, f , g a,b,c,d,e,f,g 是常系数,想要得到不同的地貌特征可以通过改变其常系数的大小,以上建模是作为环境模型的基准地形信息。但为了得到障碍区域我们还需要在这个基准地形上叠加山峰模型,这样就可以模拟像山峰、丘陵等障碍地理信息。山峰模型的数学表达式为:
h ( x , y ) = ∑ i h i e x p [ − ( x − x o i ) 2 a i 2 − ( y − y o i ) 2 b i 2 ] + h o (2) h(x,y)=\sum_ih_iexp[-\frac{(x-x_{oi})^2}{a_i^2}-\frac{(y-y_{oi})^2}{b_i^2}]+h_o \tag{2} h(x,y)=ihiexp[ai2(xxoi)2bi2(yyoi)2]+ho(2)
式 (2)中, h o h_o ho h i h_i hi 分别表示基准地形和第 i i i座山峰的高度, ( x o i , y o i ) (xoi , y oi ) (xoi,yoi)则表示第 i座山峰的中心坐标位置,a i 和 b i 分别是第 i 座山峰沿 x 轴和 y 轴方向的坡度。由式(1)和(2),我们可以得到如下表达式:
Z ( x , y ) = m a x [ z ( x , y ) , h ( x , y ) ] (3) Z(x,y)=max[z(x,y),h(x,y)]\tag{3} Z(x,y)=max[z(x,y),h(x,y)](3)
无人机在躲避障碍物的同时也会经常遇到具有威胁飞行安全的区域,我们称之为威胁区域。这些威胁区域可以是敌人的雷达和防空导弹系统的探测威胁区域也可以是一些其它的威胁,一旦无人机进入这些区域很有可能会被击落或者坠毁。为了简化模型,本文采用半径为 r 的圆柱形区域表示威胁区域,其半径的大小决定威胁区域的覆盖范围。每一个圆柱体的中心位置是对无人机构成最大威胁的地方并向外依次减弱。

3.无人机航迹规划建模

? 在环境建模的基础上,无人机航迹规划需要考虑到在执行复杂任务的过程中自身性能约束要求,合理的设计航迹评价函数才能使得闪电搜索搜索算法得出的最后结果符合要求,并保证规划出的航迹是有效的。考虑到实际环境中,无人机需要不断适应变化的环境。所以在无人机路径规划过程中,最优路径会显得比较复杂,并包含许多不同的特征。基于实际的情况,本文采用较为复杂的航迹评价函数进行无人机路径规划。影响无人机性能的指标主要包括航迹长度、飞行高度、最小步长、转角代价、最大爬升角等。

? 搜索最佳路径通常与搜索最短路径是密不可分的。在无人机航迹规划过程中,航迹的长度对于大多数航迹规划任务来说也是非常重要的。众所周知,较短的路线可以节省更多的燃料和更多的时间并且发现未知威胁的几率会更低。我们一般把路径定义为无人机从起始点到终点所飞行路程的值,设一条完整的航线有 n n n个节点,其中第 i i i个航路点和第 i + 1 i+1 i+1个航路点之间的距离表示为 l i l_i li ,这两个航路点的坐标分别表示为 ( x i , y i , z i ) (x_i,y_i,z_i ) (xi,yi,zi) ( x i + 1 , y i + 1 , z i + 1 ) (x_{i+1}, y_{i+1},z_{i+1}) (xi+1,yi+1,zi+1)并分别记作 g ( i ) g(i) g(i) g ( i + 1 ) g(i+1) g(i+1)。航迹需要满足如下条件:
{ l i = ∣ ∣ g ( i + 1 ) − g ( i ) ∣ ∣ 2 L p a t h = ∑ i = 1 n − 1 l i (4) \begin{cases} l_i = ||g(i+1)-g(i)||_2\\ L_{path}=\sum_{i=1}^{n-1}l_i \end{cases}\tag{4} {li=∣∣g(i+1)g(i)2Lpath=i=1n1li(4)
在飞行的过程中会遇到障碍物或者进入威胁区域,如果无人机无法躲避障碍物或者飞入了威胁区域将面临被击落或坠毁的危险以至于无法到达终点,记为 L p a t h = ∞ L_{path}=\infty Lpath=,但是无穷函数在实际问题中很难表示,我们采用惩罚的方式进行处理。一般情况下,为了利用地形覆盖自身位置,无人机应尽可能降低高度这可以帮助自身避免一些未知雷达等威胁。但是太低的飞行高度同样会加大无人机同山体和地面的撞击几率,因此设定稳定的飞行高度是非常重要的。飞行高度不应该有太大的变化,稳定的飞行高度可以减少控制系统的负担,节省更多的燃料 。为了使无人机飞行更加安全,给出的飞行高度模型:
{ h h e i g h t = 1 n ∑ i = 0 n − 1 ( z ( i ) − z ‾ ) 2 z ‾ = 1 n ∑ i = 0 n − 1 z ( i ) (5) \begin{cases} h_{height}=\sqrt{\frac{1}{n}\sum_{i=0}^{n-1}(z(i)-\overline{z})^2}\\ \overline{z}=\frac{1}{n}\sum_{i=0}^{n-1}z(i) \end{cases}\tag{5} {hheight=n1i=0n1(z(i)z)2 z=n1i=0n1z(i)(5)
无人机的可操作性也受到其转角代价函数的限制。,在飞行过程中无人机的转角应不大于其预先设定的最大转角,转角的大小会影响其飞行的稳定性。本文的研究中,设定最大转角为 Φ Φ Φ,当前转角为 θ \theta θ并且 a i a_i ai是第 i i i段航路段向量。
{ c o s θ = a i T a i + 1 ∣ a i ∣ ∣ a i + 1 ∣ J t u r n = ∑ i = 1 n ( c o s ( Φ − c o s θ ) ) (6) \begin{cases} cos\theta =\frac{a_i^Ta_{i+1}}{|a_i||a_{i+1}|}\\ J_{turn}=\sum_{i=1}^n(cos(\Phi-cos\theta)) \end{cases}\tag{6} {cosθ=ai∣∣ai+1aiTai+1Jturn=i=1n(cos(Φcosθ))(6)
其中, ∣ a ∣ |a| a代表矢量 a a a的长度。

? 通过对以上三个方面建立了无人机航迹规划的代价函数,可以得出本文的航迹评价函数如下:
J c o s t = w 1 L p a t h + w 2 h h e i g h t + w 3 J t u r n (7) J_{cost}=w_1L_{path}+w_2h_{height}+w_3J_{turn} \tag{7} Jcost=w1Lpath+w2hheight+w3Jturn(7)
其中, J c o s t J_{cost} Jcost是总的代价函数,参数 w i w_i wi i = 1 , 2 , 3 i=1,2,3 i=1,2,3 表示每个代价函数的权值,且满足如下条件:
{ w i ≥ 0 ∑ i = 1 3 w i = 1 (8) \begin{cases} w_i\geq0 \\ \sum_{i=1}^3 w_i=1 \end{cases} \tag{8} {wi0i=13wi=1(8)
通过对总的代价函数进行有效地处理,我们可以得到由线段组成的航迹。不可否认的是得到的路径往往是仅在理论上可行,但为了实际可飞,有必要对航迹进行平滑处理。本文采用三次样条插值的方法对路径进行平滑。

4.实验结果

4.1地图创建

设置地图参数a, b, c, d, e, f , g=1。地图大小为:200*200。设置三个山峰,山峰信息如表1所示。威胁区域信息如表2所示

表1:山峰信息
信息山峰中心坐标山峰高度山峰X方向坡度山峰y方向坡度
山峰1[60,60]502020
山峰2[100,100]603030
山峰3[150,150]802020
表2 威胁区域信息
信息威胁区域中心坐标威胁区域半径
威胁区域1[150,50]30
威胁区域2[50,150]20

创建的地图如下:

在这里插入图片描述

4.2 航迹规划

设置起点坐标为[0,0,20],终点坐标为[200,200,20]。利用闪电搜索算法对航迹评价函数式(7)进行优化。优化结果如下:
在这里插入图片描述
在这里插入图片描述

从结果来看,闪电搜索算法规划出了一条比较好的路径,表明算法具有一定的优势。

5.参考文献

[1]薛建凯. 一种新型的群智能优化技术的研究与应用[D].东华大学,2020.DOI:10.27012/d.cnki.gdhuu.2020.000178.

6.Matlab代码

相关文章:

基于闪电搜索算法的无人机航迹规划-附代码

基于闪电搜索算法的无人机航迹规划 文章目录 基于闪电搜索算法的无人机航迹规划1.闪电搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用闪电搜索算法来优化无人机航迹规划。 …...

【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析

一,前期准备环境和工具 1,vmware 16.0安装 若已安装,请忽略 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读186次,点赞9次,收藏2次。【网络安全 --- 工…...

BUUCTF刷题记录

[BJDCTF2020]Easy MD51 进入题目页面,题目提示有一个链接,应该是题目源码 进入环境,是一个查询框,无论输入什么都没有回显,查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…...

黑客技术(网络安全)—小白自学

目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类&am…...

免登陆 同步脚本 zookeeper kafka集群详细安装步骤

一.免登陆配置 #修改注解名 vim /etc/hostname #修改host文件 vim /etc/hosts 192.168.1.10 kafka1 kafka1 192.168.1.11 kafka2 kafka2 192.168.1.12 kafka3 kafka3#免登陆生成秘钥和授权自动登陆 ssh-keygen -t rsa cd ~/.ssh shh-copy-id kafka1 shh-copy-id kafka2 shh-co…...

深入理解NLP

引子 自然语言处理(Natural Language Processing, NLP)是人工智能领域中的一个重要研究方向,它涉及了计算机与人类自然语言之间的交互和理解。 1. NLP的起源与发展 NLP的起源可以追溯到早期的机器翻译项目,随着科技的进步&…...

Python-自动化绘制股票价格通道线

常规方案 通过将高点/低点与其 2 个或 3 个相邻点进行比较来检测枢轴点,并检查它是否是其中的最高/最低点。对所有枢轴点进行线性回归以获得上方和下方趋势线。价格离开通道后建仓。通过这样做,我们得到如下所示的价格通道。我认为我们可以利用给定的数据取得更好的结果。...

CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。

文章目录 前言SHA-1加密算法介绍关于SHA-1和MD5 SHA-1 加密过程原文处理设置初始值和数据结构定义加密运算原理过程 在python中调用SHA-1 前言 MD5学习MD5加密算法 SHA-1加密算法介绍 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密…...

海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电

高精度三维扫描技术已经在大型工件制造领域发挥着重要作用,特别是在质量检测环节,高效、高精度,可以轻松实现全尺寸三维测量。本期,CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件,是将…...

【PyQt学习篇 · ④】:QWidget - 尺寸操作

文章目录 QWidget简介QWidget大小位置操作案例一案例二 QWidget尺寸限定操作案例 内容边距案例 QWidget简介 在PyQt中,QWidget是一个基本的用户界面类,用于创建可见的窗口组件。QWidget可以包含多种类型的子组件,如QPushButton、QLabel、QLi…...

APC学习记录

文章目录 APC概念APC插入、执行过程逆向分析插入过程执行过程总结 代码演示参考资料 APC概念 APC全称叫做异步过程调用,英文名是 Asynchronous Procedure Call,在进行系统调用、线程切换、中断、异常时会进行触发执行的一段代码,其中主要分为…...

前端将图片储存table表格中,页面回显

<el-table :data"tableData" v-loading"loading" style"width: 100%" height"calc(100vh - 270px)" :size"tableSize"row-dblclick"enterClick"><el-table-column prop"name" label"文档…...

[论文阅读]Ghost-free High Dynamic Range Imaging with Context-aware Transformer

多帧高动态范围成像&#xff08;High Dynamic Range Imaging, HDRI/HDR&#xff09;旨在通过合并多幅不同曝光程度下的低动态范围图像&#xff0c;生成具有更宽动态范围和更逼真细节的图像。如果这些低动态范围图像完全对齐&#xff0c;则可以很好地融合为HDR图像&#xff0c;但…...

react高阶成分(HOC)例子效果

使用React函数式组件写了一个身份验证的一个功能&#xff0c;示例通过高阶组件实现的一个效果展示&#xff1a; import React, { useState, useEffect } from react;// 定义一个高阶组件&#xff0c;它接受一个组件作为输入&#xff0c;并返回一个新的包装组件 const withAuth…...

【24种设计模式】工厂模式(Factory Pattern)

工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建对象的方式&#xff0c;而无需暴露对象创建的逻辑。在这篇博客中&#xff0c;我们将介绍工厂模式的概念、使用场景以及示例代码。 概念 工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建对象的方式&#…...

树——对称二叉树

leetcode题目地址 树为空树&#xff0c;亦为对称二叉树树非空时&#xff0c;仅需判断其左右子树是否对称判断左右子树对称 (1) 左右子树是否为空&#xff0c;有一个为空 便不对称&#xff0c; 都为空或都不为空 可能对称 (2) 左右子树根节点值是否相同 (3) 判断 左子树 的 左子…...

拉扎维模拟CMOS集成电路设计西交张鸿老师课程P10~13视频学习记录

--------------------------------------------------------------------------------------------------------------------------------- p10 短沟道&#xff0c;除了沟长调&#xff0c;还可能出现速度饱和问题&#xff1b; 但是在拉扎维这本书里面没有考虑这个问题&#…...

3.线性神经网络

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 线性回归基础优化算法一、线性回归1、买房案例2、买房模型简化3、线性模型4、神经网络5、损失函数6、训练数据7、参数学习8、显示解9、总结 二、 基础优化算法1、梯度下降2、学习率3、小批量随机梯度下降4、批量大小5、…...

python常用内置函数的介绍和使用

Python具有丰富的内置函数&#xff0c;这些函数是Python语言提供的基础功能。以下是一些常用的内置函数的介绍和使用&#xff1a; print(): 打印输出指定的内容到屏幕。 print("Hello, World!") len(): 返回给定对象的长度或元素个数。 s "Hello, World!"…...

2023辽宁省赛E

Solution 题目大致分为三个步骤 计算 P ( S ) P(S) P(S)证明删除区间连续且找到最值位置根据最值位置求出答案 接下来过程中不合法的组合数都默认为 0 0 0 第 1 步 - 求出总值 考虑 S m { 1 , 2 , ⋯ , m } S_m \{1, 2, \cdots, m\} Sm​{1,2,⋯,m} , 则有 $P(S_{n2}…...

visual studio 启用C++11

用C11取决于你所使用的编译器和开发环境。以下是一些常见的编译器和相应的启用C11的方法&#xff1a; GCC (GNU Compiler Collection): 对于 GCC&#xff0c;你可以在编译时使用 -stdc11 或更高的标志来启用C11支持。例如&#xff1a; g -stdc11 yourfile.cpp -o yourprogramCl…...

获取某个抖音用户的视频列表信息

思路 确定url确定并获取相关参数构造header发送请求解析数据输出数据 运行结果 代码 import requests # 获取某个用户的的视频信息&#xff0c;截至20231028&#xff0c;程序可以正常运行。 # 构造请求头header headers {User-Agent:..........................,Cookie:...…...

【C语言】strcpy()函数(字符串拷贝函数详解)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.strcpy()函数简介 1.函数功能 2.函数参数 1>.char * destination 2>.const char * source 3.函数返回值 4.函数头文件 二.strcpy()函数的具体使用 1.使用s…...

机器学习之IV编码,分箱WOE编码

IV的概念与作用 全称是Information Value&#xff0c;中文的意思是信息价值&#xff0c;或者信息量作用&#xff1a; 1、构建分类模型时&#xff0c;经常需要对特征进行筛选。 2、挑选特征的过程考虑的因素比较多&#xff0c;最主要和最直接的衡量标准是特征的预测能力&#…...

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第六套区块链系统部署与运维

第六套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 子任务1-2-1: 搭建区块链系统并验证 题意: P2P起始端口 30500 channel起始端口 20500 JSONRPC 8945 使用Docker配置 使用 build_chain.sh 文件 进行生成节点文件 root@192-168-19-133:/yijiu/mode6# bas…...

山西电力市场日前价格预测【2023-10-30】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-30&#xff09;山西电力市场全天平均日前电价为309.35元/MWh。其中&#xff0c;最高日前电价为400.33元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…...

win10虚拟机安装教程

目录 1、安装VMware 10、12、16都可以&#xff0c;看个人选择 2、开始安装系统&#xff08;以vm16为例&#xff09; 3、在虚拟机中安装win10 完成 1、安装VMware 10、12、16都可以&#xff0c;看个人选择 下面链是我虚拟机安装包&#xff0c;需要可以下载。 YR云盘 软件安…...

2011-2021年“第四期”数字普惠金融与上市公司匹配(根据城市匹配)/上市公司数字普惠金融指数匹配数据

2011-2021年“第四期”数字普惠金融与上市公司匹配&#xff08;根据城市匹配&#xff09;/上市公司数字普惠金融指数匹配数据 1、时间&#xff1a;2011-2021年 指标&#xff1a;指标&#xff1a;股票代码、年份、行政区划代码、行业名称、行业代码、所属省份、所属城市、数字…...

CSP-J 2023 T3 一元二次方程 解题报告

CSP-J 2023 T3 一元二次方程 解题报告 Link 前言 今年 C S P CSP CSP的原题, 回家 1 h 1h 1h内写 A C AC AC, 但是考场上没有写出来 , 原因是脑子太不好了, 竟然调了两个小时没有调出来. 一等奖悬那… 正题 看完题目,第一眼就是大模拟, 并且 C C F CCF CCF绝对不会让你好受…...

中颖单片机SH367309全套量产PCM,专用动力电池保护板开发资料

方案总体介绍 整套方案硬件部分共2块板子&#xff0c;包括MCU主板&#xff0c;采用SH79F6441-32作为主处理器。MCU主板包括2个版本。PCM动力电池保护板采用SH367309。 软件方案采用Keil51建立的工程&#xff0c;带蓝牙的版本&#xff0c;支持5~16S电池。 硬件方案--MCU主板 MC…...