💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
摘要
本文提出了一种名为基于球形矢量的粒子群优化(SPSO)算法,用于处理在复杂环境中受到多重威胁的无人机(UAV)路径规划问题。首先制定一种成本函数,将路径规划转化为一个优化问题,其中包含了对无人机可行和安全操作的要求和约束。然后使用SPSO通过粒子位置与无人机的速度、转角和爬升/下潜角之间的对应关系,有效搜索无人机的配置空间,找到最小化成本函数的最优路径。为了评估SPSO的性能,从真实数字高程模型图生成了八个基准场景。此外,还进行了实验以证明生成的路径对于实际无人机操作的有效性。
路径规划对于无人机执行任务并避开出现在其操作环境中的威胁至关重要。一个计划好的路径应该在应用程序定义的特定标准下是最优的。对于大多数应用,比如航拍、制图和表面检查,标准通常是最小化无人机访问位置之间的行进距离,以便减少所需的时间和燃料消耗。该标准也可以是最大化动态目标搜索中的探测概率,最小化监视和救援中的飞行时间,或者寻找多目标导航的帕累托解。此外,计划好的路径还需要满足与操作环境和无人机相关的安全和可行性约束。在文献中,已经提出了几种无人机路径规划的方法,如图搜索、单元分解、潜在场和自然启发算法。尽管基于图的算法在生成可行的飞行路径方面是有效的,但它们不适合包括与无人机机动相关的约束,因此可能导致计划路径与实际飞行路径之间存在较大误差。与此相反,单元分解方法将空间表示为相等单元格的网格,并采用启发式搜索来寻找飞行路径。A*是一种流行的算法,它使用从当前位置到其邻居和目标位置的最小成本来搜索单元空间。然而,单元分解方法的主要缺点是在搜索空间维度增加时,单元格数量呈指数级增加的可扩展能力的限制。潜在场是另一种直接搜索连续空间解决方案的方法,通过将无人机视为在受到与目标和任何障碍物相关的人造潜在场影响下移动的粒子来实现。然而,潜在场方法不考虑解决方案的最优性。
📚2 运行结果
部分代码:
% PSO Parameters
MaxIt=200; % Maximum Number of Iterations
nPop=500; % Population Size (Swarm Size)
w=1; % Inertia Weight
wdamp=0.98; % Inertia Weight Damping Ratio
c1=1.5; % Personal Learning Coefficient
c2=1.5; % Global Learning Coefficient
%% Initialization
% Create Empty Particle Structure
empty_particle.Position=[];
empty_particle.Velocity=[];
empty_particle.Cost=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
% Initialize Global Best
GlobalBest.Cost=inf; % Minimization problem
% Create an empty Particles Matrix, each particle is a solution (searching path)
particle=repmat(empty_particle,nPop,1);
% Initialization Loop
isInit = false;
while (~isInit)
disp("Initialising...");
for i=1:nPop
% Initialize Position
particle(i).Position=CreateRandomSolution(VarSize,VarMin,VarMax);
% Initialize Velocity
particle(i).Velocity.r=zeros(VarSize);
particle(i).Velocity.psi=zeros(VarSize);
particle(i).Velocity.phi=zeros(VarSize);
% Evaluation
particle(i).Cost= CostFunction(SphericalToCart(particle(i).Position,model));
% Update Personal Best
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
% Update Global Best
if particle(i).Best.Cost < GlobalBest.Cost
GlobalBest=particle(i).Best;
isInit = true;
end
end
end
% Array to Hold Best Cost Values at Each Iteration
BestCost=zeros(MaxIt,1);
%% PSO Main Loop
for it=1:MaxIt
% Update Best Cost Ever Found
BestCost(it)=GlobalBest.Cost;
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]王龙宝,栾茵琪,徐亮,等.基于动态簇粒子群优化的无人机集群路径规划方法[J].计算机应用, 2023(12):3816-3823.DOI:10.11772/j.issn.1001-9081.2022111763.
[2]刘科,周继强,郭小和.基于改进粒子群算法的无人机路径规划研究[J].中北大学学报:自然科学版, 2013, 34(4):7.DOI:10.3969/j.issn.1673-3193.2013.04.019.
[3]徐建新,孙纬,马超.基于改进粒子群算法的无人机三维路径规划[J].电光与控制, 2023, 30(6):15-21.
[4]Manh Duong Phung, Quang Phuc Ha,Safety-enhanced UAV path planning with spherical vector-based particle swarm optimization,Applied Soft Computing,Volume 107.
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取