💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
基于多Dubins路径段协同路径规划及粒子群优化的无人机复杂威胁环境路径规划策略研究
💥1 概述
基于多Dubins路径段协同路径规划及粒子群优化的无人机复杂威胁环境路径规划策略研究
在现代无人机应用场景中,尤其是在复杂威胁环境下执行任务时,精确且高效的路径规划成为关键挑战。本研究聚焦于无人机集群的路径规划,提出一种创新策略。首先,采用多 Dubins 路径段构建无人机的基础飞行路径框架,Dubins 路径的特性使其在处理具有曲率约束的路径规划问题上具备天然优势,能够较好地模拟无人机实际飞行中的转向限制,确保路径的可行性与平滑性。 针对复杂威胁环境中的光程调整需求以及无人机集群间的碰撞避免要求,引入粒子群优化算法。粒子群优化算法通过模拟鸟群觅食行为,在搜索空间中不断迭代更新粒子的位置与速度,以寻找最优解。在本路径规划情境下,将无人机的路径参数(如路径段连接点、飞行速度等)编码为粒子的位置信息,以路径的安全性(避开威胁)、光程合理性以及碰撞风险最小化为目标函数,利用粒子群优化算法进行求解。 通过多 Dubins 路径段与粒子群优化的有机结合,无人机集群能够在复杂威胁环境中智能地规划出满足穿透任务要求的路径,同时有效避免相互之间的碰撞并合理调整光程,从而提升整个无人机集群执行任务的成功率与安全性,为无人机在复杂环境下的集群作业提供强有力的技术支撑与理论依据,推动相关领域的进一步发展与应用拓展。
1,多 Dubins 路径段原理: Dubins 路径主要基于车辆或飞行器在具有最小转弯半径约束下从起始点到目标点的最优路径规划理论。在二维平面中,无人机的运动可看作是具有一定曲率限制的曲线运动。多 Dubins 路径段规划是将无人机从起始位置到目标位置的整个路径分解为多个连续的 Dubins 路径子段。对于每个子段,根据起始点、目标点以及中间的路径点(例如为了避开威胁区域而设置的必经点)的几何关系,结合无人机的最小转弯半径,确定子段的圆弧段和直线段组合。这些子段依次连接,形成一条从起始到目标且满足无人机机动性能限制的连续路径。例如,在存在多个威胁区域的环境中,通过巧妙地设置中间路径点,使得无人机能够沿着 Dubins 路径段绕过威胁区域,实现穿透复杂威胁环境的初步路径规划。
2粒子群优化原理: 粒子群优化算法基于群体智能思想。在无人机路径规划应用中,首先初始化一群粒子,每个粒子代表一种可能的无人机路径方案,该方案由多 Dubins 路径段的参数(如各路径段的长度、连接角度、飞行速度等)所确定。每个粒子都有一个对应的适应度值,这个适应度值是根据路径的优劣程度来计算的,具体而言,就是综合考虑路径是否避开了威胁区域(安全指标)、光程是否符合任务要求以及是否存在与其他无人机碰撞的风险(碰撞指标)等因素。在迭代过程中,粒子根据自身的经验(个体最优位置)和群体中其他粒子的经验(全局最优位置)来更新自己的速度和位置。粒子的速度更新公式综合考虑了当前速度、个体最优与当前位置的差异以及全局最优与当前位置的差异等因素,通过这种方式引导粒子在解空间中不断搜索更优的路径方案。位置更新则基于新的速度计算得出。随着迭代的进行,粒子群逐渐收敛到一个或多个较优的路径方案,这些方案对应的路径即为满足复杂威胁环境穿透需求、光程调整和碰撞避免要求的无人机集群路径。
一、问题背景与挑战
在复杂威胁环境中,无人机路径规划需同时满足运动学约束(如最小转弯半径)、动态避障(静态/动态障碍物规避)及多目标优化(路径长度、能耗、隐蔽性等)。传统方法(如单一Dubins曲线或独立优化算法)难以应对以下挑战:
- 威胁建模复杂性:威胁源类型多样(如雷达探测区、防空导弹),需动态更新威胁场模型。
- 多机协同约束:多无人机需同步到达目标或保持编队,路径长度需动态调整以避免碰撞。
- 实时性要求:动态环境中需快速生成并优化路径,传统全局规划算法(如A*)计算效率不足。
二、Dubins路径与粒子群优化(PSO)的理论基础
- Dubins路径:由圆弧(L/R)和直线(S)组合构成,六种最短路径类型(如RSR、LSL)。其优势在于严格满足无人机曲率约束,适用于固定翼无人机的最小转弯半径限制。
- 数学模型:路径长度计算基于几何解析,如两圆切点间的直线段与圆弧段组合。
- 粒子群优化(PSO) :群体智能算法,通过粒子位置更新搜索最优解。在路径规划中,粒子编码表示候选路径,适应度函数综合路径长度、威胁规避、碰撞风险等指标。
- 改进方向:自适应参数调整(如惯性权重)、混合算法(结合遗传算法或RRT*)以增强全局搜索能力。
三、协同路径规划策略
- 多Dubins路径段分解:
- 将全局路径分解为多个Dubins子段,每段对应特定威胁规避或航向调整。
- 协同优化机制:通过PSO全局优化各子段的参数(如转弯半径、航向角),确保整体路径满足多目标约束。
- 多无人机协同:
- 路径长度同步:调整各无人机路径的子段数量或转弯半径,确保同时到达目标。
- 碰撞避免:基于“向量共享”动态调整航向角,或引入优先级策略(如PPSwarm算法)分阶段规划。
四、粒子群优化在路径规划中的应用
- 粒子编码设计:
- 每个粒子表示多无人机路径的集合,编码包含各Dubins段的类型(LSL、RSR等)、起始/终止点坐标及转弯半径。
- 适应度函数构建:
- 多目标加权:路径总长度(50%权重)、威胁场穿透代价(30%)、碰撞风险(20%)。
- 动态惩罚机制:对进入威胁区域的路径段施加指数级惩罚,加速收敛至安全解。
- 混合优化策略:
- 两阶段优化:先使用JADE算法生成初始可行路径,再用Dubins曲线平滑处理,提升计算效率。
- 重启策略与种群多样化:避免局部最优,如在迭代停滞时重新初始化部分粒子。
五、复杂威胁环境建模与动态避障
- 威胁建模方法:
- 静态威胁:以圆或椭圆模型表示雷达探测区,威胁强度随距离衰减。
- 动态威胁:引入速度障碍模型,预测威胁移动轨迹并生成动态碰撞锥。
- 动态避障算法:
- 实时重规划:结合模型预测控制(MPC),每段Dubins路径末端触发局部优化。
- 强化学习融合:如ET-SAC-ERE算法,通过事件触发机制降低计算负载,适应动态障碍物。
六、现有研究成果与案例分析
- PPSwarm算法:
- 结合RRT*快速生成初始路径,再用PSO优化,最后以Dubins曲线平滑。实验表明,在50架无人机场景下路径规划成功率提升35%。
- 多机协同案例:
- PSO优化多无人机路径,路径长度差异从12%降至3%,同步到达误差小于1秒。
- 动态威胁规避:
- 改进贝塞尔曲线算法,动态威胁规避成功率较传统绕行方法提高40%。
七、数学建模与算法实现
-
路径分解模型:
- 全局路径表示为 P={D1,D2,...,Dn},其中 Di 为第i个Dubins段,参数包括类型 TiTi、圆心 (xci,yci)、半径 ri。
-
优化目标函数:
其中 Li 为第i段路径长度,dij 为路径点与第j个威胁中心的距离,σ 为威胁衰减系数。
-
Matlab实现示例:
- 初始化粒子群,设置Dubins参数范围;
- 迭代更新粒子位置,计算适应度值;
- 输出最优路径并可视化(见图1)。
八、未来研究方向
- 三维扩展:现有研究多基于二维平面,需引入高度维度并考虑爬升/俯仰角约束。
- 异构无人机协同:不同机型(如旋翼与固定翼)的路径协同优化。
- 在线学习机制:结合深度强化学习(如MADDPG)实现动态环境下的实时自适应。
结论
基于多Dubins路径段协同规划与粒子群优化的策略,有效解决了复杂威胁环境下的无人机路径规划问题。通过分解路径、协同优化及动态避障机制,兼顾了路径最优性、安全性与实时性。未来需进一步融合新型算法与三维建模技术,推动无人机集群在军事侦察、灾害救援等领域的应用。
📚2 运行结果
主函数部分代码:
clear;
clc;
addpath('Function_Plot');
addpath('Function_Dubins');
addpath('Function_Trajectory');
%% Initialize Data
Property.obs_last=0; % Record the obstacles avoided during current trajectory planning
Property.invasion=0; % Record whether there is any intrusion into obstacles (threat areas) during trajectory planning
Property.mode=2; % Set trajectory generation mode 1: shortest path; 2: Conventional path
Property.ns=50; % Set the number of discrete points in the starting arc segment
Property.nl=50; % Set the number of discrete points in the straight line segment
Property.nf=50; % Set the number of discrete points at the end of the arc segment
Property.max_obs_num=5; % Set the maximum number of obstacles to be detected for each path planning
Property.max_info_num=20; % Set the maximum number of stored path segments for each planning step
Property.max_step_num=4; % Set the maximum number of planned steps for the path
Property.Info_length=33; % Set the length of each path information
Property.radius=100*1e3; % Set the turning radius of the UAV锛坢m锛�
Property.scale=1/1000;
Property.increment=20*1e3; % Set the adjustment range of path lenth increment
Property.selection1=3; % Set path filtering mode 1
Property.selection2=1; % Set path filtering mode 2
% =1: The path does not intersect with obstacles
% =2: The turning angle of the path shall not exceed 3 * pi/2
% =3: Simultaneously satisfying 1 and 2
% Set starting point infomation
StartInfo=[ 50*1e3, 30*1e3, 0, 100*1e3; % positon x, position y, yaw angle, starting arc radius
80*1e3, -40*1e3, pi/6, 100*1e3; % xs, ys, phi_s, R_s
20*1e3, 80*1e3, -pi/6, 100*1e3]; % unit (mm)
% Set ending point information
FinishInfo=[550*1e3, 120*1e3, 0, 100*1e3; % positon x, position y, yaw angle, starting arc radius
500*1e3, 100*1e3, 0, 100*1e3; % xf, yf, phi_f, R_f
500*1e3, 140*1e3, 0, 100*1e3]; % unit (mm)
% Set obastacles (threat circle) information
ObsInfo=[ 150*1e3, 50*1e3, 50*1e3; % positon x, position y, threat circle radius
300*1e3, 100*1e3, 20*1e3; % xo, yo, Ro
400*1e3, 50*1e3, 50*1e3; % unit (mm)
200*1e3, 200*1e3, 50*1e3];
[uav_num,~]=size(StartInfo); % Obtain UAVs number
[obs_num,~]=size(ObsInfo); % Obtain obstacles number
Coop_State(1:uav_num)=struct(... % The structure of flight paths information for UAVs
'traj_length',[],... % Array of all path length
'traj_length_max',0,... % Maximum path length
'traj_length_min',0,... % Minimum path length
'TrajSeqCell',[],... % Path sequence cell array
'ideal_length',12*1e5,... % Expected path length
'optim_length',0,... % Optimized path length
'traj_index_top',0,... % Index of path that lenth is greater than and closest to the expected path length
'traj_index_bottom',0,... % Index of path that lenth is shorter than and closest to the expected path length
'TrajSeq_Coop',[]); % Matrix of cooperative path sequence
%% Plan the path of each UAV from the starting point to the endpoint in sequence
for uav_index=1:3 % Traverse each UAV
start_info=StartInfo(uav_index,:); % Obtain the starting point information of the UAV
finish_info=FinishInfo(uav_index,:); % Obtain the ending point information of the UAV
Property.radius=start_info(4); % Set the turning radius of the UAV based on initial information
TrajSeqCell=Traj_Collection... % Calculate all available flight paths for the UAV
(start_info,finish_info,ObsInfo,Property);
Coop_State(uav_index)=Coop_State_Update... % Select the basic path from the available flight paths
(TrajSeqCell,Coop_State(uav_index),ObsInfo,Property); % and optimize the basic path to generate a cooperative path
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]王国强,施倩,段婕,等.面向点线混合巡检任务的多无人机路径规划方法[J/OL].系统科学与数学,1-25[2024-12-08].http://kns.cnki.net/kcms/detail/11.2019.o1.20241128.1030.018.html.
[2]孙伟昌,罗志浩,石建迈,等.无人机覆盖路径规划方法综述[J/OL].控制理论与应用,1-21[2024-12-08].http://kns.cnki.net/kcms/detail/44.1240.TP.20241130.0849.004.html.