国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】

這篇具有很好參考價值的文章主要介紹了【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?博主簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進(jìn),Matlab項目合作可私信。
??個人主頁:海神之光
??代碼獲取方式:
海神之光Matlab王者學(xué)習(xí)之路—代碼獲取方式
??座右銘:行百里者,半于九十。

更多Matlab仿真內(nèi)容點擊??
Matlab圖像處理(進(jìn)階版)
路徑規(guī)劃(Matlab)
神經(jīng)網(wǎng)絡(luò)預(yù)測與分類(Matlab)
優(yōu)化求解(Matlab)
語音處理(Matlab)
信號處理(Matlab)
車間調(diào)度(Matlab)

?一、蟻群算法無人機(jī)避障三維航跡規(guī)劃簡介

1 無人機(jī)航跡規(guī)劃問題的數(shù)學(xué)模型
建立三維航跡規(guī)劃問題的數(shù)學(xué)模型時, 不但考慮無人機(jī)基本約束, 還考慮復(fù)雜的飛行環(huán)境, 包括山體地形和雷暴威脅區(qū)。

1.1 無人機(jī)基本約束
規(guī)劃的無人機(jī)三維航跡, 通常需要滿足一些基本約束, 包括最大轉(zhuǎn)彎角、最大爬升角或下滑角、最小航跡段長度、最低和最高飛行高度, 以及最大航跡長度等約束。其中, 最大轉(zhuǎn)彎角約束, 是指無人機(jī)只能在水平面內(nèi)小于或等于指定的最大轉(zhuǎn)彎角內(nèi)轉(zhuǎn)彎;最大爬升角或下滑角約束, 是指無人機(jī)只能在垂直平面內(nèi)小于或等于指定的最大爬升角或下滑角內(nèi)爬升或下滑;最小航跡段長度約束, 要求無人機(jī)改變飛行姿態(tài)之前, 按目前的航跡方向飛行的最短航程;最低和最高飛行高度約束, 要求無人機(jī)在指定的飛行高度區(qū)間飛行;最大航跡長度約束, 是指無人機(jī)的航跡長度小于或等于指定的閾值。

記q (x, y, z, θ, ψ) 為無人機(jī)的飛行位置與姿態(tài), 其中, (x, y, z) 為無人機(jī)的位置, θ為無人機(jī)的水平轉(zhuǎn)彎角, ψ為無人機(jī)的豎直爬升角或下滑角, 進(jìn)而建立上述基本約束的數(shù)學(xué)表達(dá)式。
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab
1.2 飛行環(huán)境障礙物和威脅區(qū)建模
在飛行環(huán)境中, 高聳的山體近似采用圓錐體等效表示, 用以e為底的自然指數(shù)圖形生成, 那么, 山體地形可以通過多個位置不同的圓錐體疊加而成。若將參考海拔基準(zhǔn)高度設(shè)置為xOy平面, 記 (x, y, z) 為山體地形中的點, 那么
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab
式中:N為山體個數(shù);xk0和yk0為第k座山體中心對稱軸的橫坐標(biāo)和縱坐標(biāo);hk為第k座山體的最大高度;xki和yki為第k座山體的橫向斜度和縱向斜度。

在飛行環(huán)境中, 山體附近通常存在雷暴等極端氣象, 本文視為飛行威脅區(qū), 并通過球體近似等效表示, 且記第k座山體附近飛行威脅區(qū)的球心坐標(biāo)為 (xks0, yks0, zks0) , 半徑為rk。

1.3 目標(biāo)函數(shù)及航跡表示
在本文中, 執(zhí)行任務(wù)的某型無人機(jī), 其航跡規(guī)劃的目標(biāo)函數(shù)是生成一條由起始點到目標(biāo)點的無碰撞可行航跡。采用q (x, y, z, θ, ψ) 表示無人機(jī)在飛行空域中某特定位置的特定姿態(tài), 那么 (x, y, z) 則表示無人機(jī)所在航跡點, θ表示無人機(jī)的水平轉(zhuǎn)彎角, ψ表示無人機(jī)的豎直爬升角或下滑角。采用r (q) 表示由起始點qinitial到目標(biāo)點qgoal的無碰撞可行航跡, 那么航跡規(guī)劃的過程可以寫成如下形式:
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab

2 蟻群算法
2.1 簡介
蟻群算法(Ant Colony Optimization,ACO)由Dorigo 等人于1991年在第一屆歐洲人工生命會議(European Conference on Artificial Intelligence,ECAL)上提出,是模擬自然界真實螞蟻覓食過程的一種隨機(jī)搜索算法。蟻群算法與遺傳算法(GeneticAlgorithm,GA)、粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)、免疫算法(Immune Algorithm,IA)等同屬于仿生優(yōu)化算法,具有魯棒性強(qiáng)、全局搜索、并行分布式計算、易與其他方法結(jié)合等優(yōu)點,在典型組合優(yōu)化問題如旅行商問題(Traveling SalesmanProblem,TSP)、車輛路徑問題(Vehicle Routing Problem,VRP),車間作業(yè)調(diào)度問題(Job-shop Scheduling Problem,JSP)和動態(tài)組合規(guī)劃問題如通信領(lǐng)域的路由問題中均得到了成功的應(yīng)用。

2.2 基本思想
在自然界中,螞蟻群體在尋找食物的過程中,無論是螞蟻與螞蟻之間的協(xié)作還是螞蟻與環(huán)境之間的交互均依賴于一種被稱為信息素(Pheromone)的物質(zhì)實現(xiàn)蟻群的間接通信,從而通過合作發(fā)現(xiàn)從蟻穴到食物源的最短路徑。

螞蟻在尋找食物的過程中往往是隨機(jī)選擇路徑的,但它們能感知當(dāng)前地面上的信息素濃度,并傾向于往信息素濃度高的方向行進(jìn)。信息素由螞蟻自身釋放,是實現(xiàn)蟻群內(nèi)間接通信的物質(zhì)。由于較短路徑上螞蟻的往返時間比較短,單位時間內(nèi)經(jīng)過該路徑的螞蟻多,所以信息素的積累速度比較長路徑快。因此,當(dāng)后續(xù)螞蟻在路口時,就能感知先前螞蟻留下的信息,并傾向于選擇一條較短的路徑前行。這種正反饋機(jī)制使得越來越多的螞蟻在巢穴與食物之間的最短路徑上行進(jìn)。由于其他路徑上的信息素會隨著時間蒸發(fā),最終所有的螞蟻都在最優(yōu)路徑上行進(jìn)。

2.3 基本流程
螞蟻系統(tǒng)(Ant System,AS)是最基本的ACO算法,是以TSP作為應(yīng)用實例提出的。
AS對于TSP的求解流程大致可分為兩步:路徑構(gòu)建和信息素更新。
(1)路徑構(gòu)建
偽隨機(jī)比例選擇規(guī)則(random proportional)。
長度越短、信息素濃度越大的路徑被螞蟻選擇的概率越大。a和b是兩個預(yù)先設(shè)置的參數(shù),用來控制啟發(fā)式信息與信息素濃度作用的權(quán)重關(guān)系。當(dāng)a=0時,算法演變成傳統(tǒng)的隨機(jī)貪心算法,最鄰近城市被選中的概率最大。當(dāng)b=0時,螞蟻完全只根據(jù)信息素濃度確定路徑,算法將快速收斂,這樣構(gòu)建出的最優(yōu)路徑往往與實際目標(biāo)有著較大的差異,算法的性能比較糟糕。
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab

(2)信息素更新
1 在算法初始化時,問題空間中所有的邊上的信息素都被初始化為。
2 算法迭代每一輪,問題空間中的所有路徑上的信息素都會發(fā)生蒸發(fā),我們?yōu)樗羞吷系男畔⑺爻松弦粋€小于1的常數(shù)。信息素蒸發(fā)是自然界本身固有的特征,在算法中能夠幫助避免信息素的無限積累,使得算法可以快速丟棄之前構(gòu)建過的較差的路徑。
3 螞蟻根據(jù)自己構(gòu)建的路徑長度在它們本輪經(jīng)過的邊上釋放信息素。螞蟻構(gòu)建的路徑越短、釋放的信息素就越多。一條邊被螞蟻爬過的次數(shù)越多、它所獲得的信息素也越多。
4 迭代(2),直至算法終止。
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab

?二、部分源代碼

%% 三維地圖-無人機(jī)尋路
% 3D map - aircraft pathfinding
%% 這是使用原始算法的直接求解結(jié)果,添加專用于本問題的更新方式可以進(jìn)一步提高精度
% This is the direct result of using the original algorithm,
% adding some specific update methods to this problem can further improve the accuracy
clc;
clear;
close all;
warning off

%% 載入數(shù)據(jù)
data.S=[1,950,12]; %起點位置
data.E=[950,1,1]; %終點點位置
data.Obstacle=xlsread(‘data.xls’);
data.numObstacles=length(data.Obstacle(:,1));
data.mapSize=[1000,1000,20]; %10m 地圖尺寸
data.unit=[50,50,1]; %地圖精度
data.S0=ceil(data.S./data.unit);
data.E0=ceil(data.E./data.unit);
data.mapSize0=data.mapSize./data.unit;
data.map=zeros(data.mapSize0);
figure
plot3(data.S(:,1),data.S(:,2),data.S(:,3),‘o’,‘LineWidth’,1,…
‘MarkerEdgeColor’,‘g’,…
‘MarkerFaceColor’,‘g’,…
‘MarkerSize’,8)
hold on
plot3(data.E(:,1),data.E(:,2),data.E(:,3),‘h’,‘LineWidth’,1,…
‘MarkerEdgeColor’,‘g’,…
‘MarkerFaceColor’,‘g’,…
‘MarkerSize’,8)
for i=1:data.numObstacles
x=1+data.Obstacle(i,1);
y=1+data.Obstacle(i,2);
z=1+data.Obstacle(i,3);
long=data.Obstacle(i,4);
wide=data.Obstacle(i,5);
pretty=data.Obstacle(i,6);
[V,F] = DrawCuboid(long, wide, pretty, x,y,z);
x0=ceil(x/data.unit(1));
y0=ceil(y/data.unit(2));
z0=ceil(z/data.unit(3));
long0=ceil(long/data.unit(1));
wide0=ceil(wide/data.unit(2));
pretty0=ceil(pretty/data.unit(3));
data.map(x0:x0+long0,y0:y0+wide0,z0:z0+pretty0)=1;
end
legend(‘起點’,‘終點’)
title(‘三維地形地圖’)
grid on
axis equal
%%
% index=find(data.map==1);
% [p1,p2,p3] = ind2sub(size(data.map), index);
% figure
% plot3(data.S0(:,1),data.S0(:,2),data.S0(:,3),‘o’,‘LineWidth’,1,…
% ‘MarkerEdgeColor’,‘g’,…
% ‘MarkerFaceColor’,‘g’,…
% ‘MarkerSize’,8)
% hold on
% plot3(data.E0(:,1),data.E0(:,2),data.E0(:,3),‘h’,‘LineWidth’,1,…
% ‘MarkerEdgeColor’,‘g’,…
% ‘MarkerFaceColor’,‘g’,…
% ‘MarkerSize’,8)
% plot3(p1,p2,p3,‘.’,‘LineWidth’,1,…
% ‘MarkerEdgeColor’,‘k’,…
% ‘MarkerFaceColor’,‘g’,…
% ‘MarkerSize’,10)
% legend(‘起點’,‘終點’)
% title(‘三維地形地圖’)
% grid on
% axis equal
% xlabel(‘x(km)’)
% ylabel(‘y(km)’)
% zlabel(‘z(km)’)
%% 生成可移動方向
temp=[1,0,-1];
direction=[];
for i=1:3
for j=1:3
for k=1:3
direction=[direction;temp(i),temp(j),temp(k)];
end
end
end
position=find(direction(:,1)==0 & direction(:,2)==0 & direction(:,3)==0);
direction(position,:)=[];
data.direction=direction;

%% 算法參數(shù)設(shè)置 Parameters
% 基本參數(shù)
numAgent=20; %種群個體數(shù) size of population,可自行修改
Max_iter=20; %最大迭代次數(shù) maximum number of interation,可自行修改
lb=0;%下限,可自行修改
ub=1;%上限,可自行修改
dim=prod(data.mapSize0); % 優(yōu)化變量個數(shù)
fobj=@(x) aimFcn(x,data);%目標(biāo)函數(shù),用以優(yōu)化

%% 使用優(yōu)化算法求解

Optimal_results{2,index}=recording;%迭代曲線
Optimal_results{3,index}=bestY;%最佳函數(shù)值
Optimal_results{4,index}=bestX; %最佳變量值
Optimal_results{5,index}=result; %優(yōu)化結(jié)果
Optimal_results{6,index}=toc; %運(yùn)行時間
index = index +1;

?三、運(yùn)行結(jié)果

【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab
【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】,Matlab路徑規(guī)劃(進(jìn)階版),matlab

?四、matlab版本及參考文獻(xiàn)

1 matlab版本
2014a

2 參考文獻(xiàn)
[1]田疆,李二超.用于無人機(jī)三維航跡規(guī)劃改進(jìn)連接型快速擴(kuò)展隨機(jī)樹算法[J].航空工程進(jìn)展. 2018,9(04)

3 備注
簡介此部分摘自互聯(lián)網(wǎng),僅供參考,若侵權(quán),聯(lián)系刪除

?? 仿真咨詢
1 各類智能優(yōu)化算法改進(jìn)及應(yīng)用

生產(chǎn)調(diào)度、經(jīng)濟(jì)調(diào)度、裝配線調(diào)度、充電優(yōu)化、車間調(diào)度、發(fā)車優(yōu)化、水庫調(diào)度、三維裝箱、物流選址、貨位優(yōu)化、公交排班優(yōu)化、充電樁布局優(yōu)化、車間布局優(yōu)化、集裝箱船配載優(yōu)化、水泵組合優(yōu)化、解醫(yī)療資源分配優(yōu)化、設(shè)施布局優(yōu)化、可視域基站和無人機(jī)選址優(yōu)化

2 機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面
卷積神經(jīng)網(wǎng)絡(luò)(CNN)、LSTM、支持向量機(jī)(SVM)、最小二乘支持向量機(jī)(LSSVM)、極限學(xué)習(xí)機(jī)(ELM)、核極限學(xué)習(xí)機(jī)(KELM)、BP、RBF、寬度學(xué)習(xí)、DBN、RF、RBF、DELM、XGBOOST、TCN實現(xiàn)風(fēng)電預(yù)測、光伏預(yù)測、電池壽命預(yù)測、輻射源識別、交通流預(yù)測、負(fù)荷預(yù)測、股價預(yù)測、PM2.5濃度預(yù)測、電池健康狀態(tài)預(yù)測、水體光學(xué)參數(shù)反演、NLOS信號識別、地鐵停車精準(zhǔn)預(yù)測、變壓器故障診斷

3 圖像處理方面
圖像識別、圖像分割、圖像檢測、圖像隱藏、圖像配準(zhǔn)、圖像拼接、圖像融合、圖像增強(qiáng)、圖像壓縮感知

4 路徑規(guī)劃方面
旅行商問題(TSP)、車輛路徑問題(VRP、MVRP、CVRP、VRPTW等)、無人機(jī)三維路徑規(guī)劃、無人機(jī)協(xié)同、無人機(jī)編隊、機(jī)器人路徑規(guī)劃、柵格地圖路徑規(guī)劃、多式聯(lián)運(yùn)運(yùn)輸問題、車輛協(xié)同無人機(jī)路徑規(guī)劃、天線線性陣列分布優(yōu)化、車間布局優(yōu)化

5 無人機(jī)應(yīng)用方面
無人機(jī)路徑規(guī)劃、無人機(jī)控制、無人機(jī)編隊、無人機(jī)協(xié)同、無人機(jī)任務(wù)分配

6 無線傳感器定位及布局方面
傳感器部署優(yōu)化、通信協(xié)議優(yōu)化、路由優(yōu)化、目標(biāo)定位優(yōu)化、Dv-Hop定位優(yōu)化、Leach協(xié)議優(yōu)化、WSN覆蓋優(yōu)化、組播優(yōu)化、RSSI定位優(yōu)化

7 信號處理方面
信號識別、信號加密、信號去噪、信號增強(qiáng)、雷達(dá)信號處理、信號水印嵌入提取、肌電信號、腦電信號、信號配時優(yōu)化

8 電力系統(tǒng)方面
微電網(wǎng)優(yōu)化、無功優(yōu)化、配電網(wǎng)重構(gòu)、儲能配置

9 元胞自動機(jī)方面
交通流 人群疏散 病毒擴(kuò)散 晶體生長

10 雷達(dá)方面
卡爾曼濾波跟蹤、航跡關(guān)聯(lián)、航跡融合文章來源地址http://www.zghlxwxcb.cn/news/detail-842692.html

到了這里,關(guān)于【ACO三維路徑規(guī)劃】蟻群算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3335期】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包