?博主簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進(jìn),Matlab項(xiàng)目合作可私信。
??個人主頁:海神之光
??代碼獲取方式:
海神之光Matlab王者學(xué)習(xí)之路—代碼獲取方式
??座右銘:行百里者,半于九十。
更多Matlab仿真內(nèi)容點(diǎn)擊??
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á)式。
1.2 飛行環(huán)境障礙物和威脅區(qū)建模
在飛行環(huán)境中, 高聳的山體近似采用圓錐體等效表示, 用以e為底的自然指數(shù)圖形生成, 那么, 山體地形可以通過多個位置不同的圓錐體疊加而成。若將參考海拔基準(zhǔn)高度設(shè)置為xOy平面, 記 (x, y, z) 為山體地形中的點(diǎn), 那么
式中: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ù)是生成一條由起始點(diǎn)到目標(biāo)點(diǎn)的無碰撞可行航跡。采用q (x, y, z, θ, ψ) 表示無人機(jī)在飛行空域中某特定位置的特定姿態(tài), 那么 (x, y, z) 則表示無人機(jī)所在航跡點(diǎn), θ表示無人機(jī)的水平轉(zhuǎn)彎角, ψ表示無人機(jī)的豎直爬升角或下滑角。采用r (q) 表示由起始點(diǎn)qinitial到目標(biāo)點(diǎn)qgoal的無碰撞可行航跡, 那么航跡規(guī)劃的過程可以寫成如下形式:
2 帝王蝶算法
受美國帝王蝶遷徙行為的影響,王改革等提出帝王蝶優(yōu)化算法(Monarch Butterfly Optimization, MBO)。MBO有2個算子:具有局部搜索能力的遷移算子和具有全局搜索能力的調(diào)整算子。
(1)遷移算子
遷移算子的目標(biāo)是從區(qū)域1(L a n d 1 {Land}_1Land 1 )或區(qū)域2(L a n d 2 {Land}_2Land 2)的帝王蝶中培育新的帝王蝶。在整個帝王蝶種群中,L a n d 1 Land_1Land 1中的帝王蝶表示種群1,L a n d 2 Land_2Land 2中的帝王蝶表示種群2。
(2)調(diào)整算子
調(diào)整算子的目標(biāo)是更新S u b p o p u l a t i o n 2Subpopulation_2Subpopulation 2 中帝王蝶個體的位置
?二、部分源代碼
%% 三維地圖-無人機(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]; %起點(diǎn)位置
data.E=[950,1,1]; %終點(diǎn)點(diǎn)位置
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(‘起點(diǎn)’,‘終點(diǎn)’)
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(‘起點(diǎn)’,‘終點(diǎn)’)
% 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é)果
?四、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實(shí)現(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ī)編隊(duì)、機(jī)器人路徑規(guī)劃、柵格地圖路徑規(guī)劃、多式聯(lián)運(yùn)運(yùn)輸問題、車輛協(xié)同無人機(jī)路徑規(guī)劃、天線線性陣列分布優(yōu)化、車間布局優(yōu)化
5 無人機(jī)應(yīng)用方面
無人機(jī)路徑規(guī)劃、無人機(jī)控制、無人機(jī)編隊(duì)、無人機(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ò)散 晶體生長文章來源:http://www.zghlxwxcb.cn/news/detail-832622.html
10 雷達(dá)方面
卡爾曼濾波跟蹤、航跡關(guān)聯(lián)、航跡融合文章來源地址http://www.zghlxwxcb.cn/news/detail-832622.html
到了這里,關(guān)于【MBO三維路徑規(guī)劃】基于matlab帝王蝶算法無人機(jī)避障三維航跡規(guī)劃【含Matlab源碼 3794期】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!