✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
近年来,无人机(UAV),特别是编队无人机在各种物联网(IoT)场景中得到广泛部署。由于无人机的位置对其协作至关重要,因此编队无人机的高精度定位引起了广泛关注。尽管全球定位系统(GPS)接收器已广泛集成在无人机中,但其精度不够,并且容易受到意外或故意干扰。在本文中,我们提出了一种将超高维标度(SMDS)和分块合并与 GPS 信息相结合的编队无人机分布式协同定位方法。具体来说,首先使用 SMDS 获得每个分块中无人机的相对坐标,然后将相对地图分块合并为全局地图,并将无人机的相对坐标转换为其绝对坐标。此外,我们提出了一种低复杂度算法,该算法极大地降低了 SMDS 在大量无人机情况下的计算复杂度。仿真结果验证了,在角度测量足够准确的情况下,所提出的 SMDS 定位算法优于其他基于 MDS 的协同定位算法,并且可以极大地提高编队无人机的定位精度和鲁棒性。
**关键词:**无人机;编队;协同定位;超高维标度(SMDS);分块合并
1. 引言
随着无人机技术的快速发展,无人机在各种民用和军事应用中得到了广泛的应用。在这些应用中,编队无人机协同作业的能力至关重要。为了实现有效的协同,无人机需要准确地知道自己的位置和周围其他无人机的相对位置。
GPS 是无人机定位最常用的方法。然而,GPS 信号容易受到干扰和遮挡,并且在室内或地下等环境中不可用。因此,迫切需要开发一种新的定位方法来克服 GPS 的局限性。
2. 相关工作
近年来,基于多维标度(MDS)的协同定位方法引起了越来越多的关注。MDS 是一种非线性降维技术,可以从距离测量中恢复节点的坐标。
3. 所提出的方法
我们提出了一种将 SMDS 和分块合并与 GPS 信息相结合的编队无人机分布式协同定位方法。该方法包括以下步骤:
-
**分块:**将无人机分成多个分块,每个分块包含一定数量的无人机。
-
**SMDS 定位:**在每个分块中使用 SMDS 获得无人机的相对坐标。
-
**分块合并:**将相对地图分块合并为全局地图。
-
**坐标转换:**将无人机的相对坐标转换为其绝对坐标。
MDS-MAP(Mobile Data System-Mobile Artillery Positioning)和SMDS(P)(Survey Measurement Data System-Positioning)是两套用于火炮定位的系统。它们通过测量火炮射击时的炮口速度、发射仰角和方位角等参数,计算出火炮的位置和姿态。定位精度是衡量火炮定位系统性能的重要指标,它直接影响火炮的射击精度。
MDS-MAP/SMDS(P)定位精度与GPS配比的关系
GPS(Global Positioning System)是全球卫星导航系统,它可以提供高精度的定位信息。MDS-MAP/SMDS(P)系统可以通过与GPS接收机配比,提高定位精度。GPS配比的比例越高,定位精度就越高。一般情况下,GPS配比为1:1时,定位精度可以达到亚米级。
MDS-MAP/SMDS(P)定位精度与测角误差的关系
测角误差是影响MDS-MAP/SMDS(P)定位精度的另一个重要因素。测角误差是指火炮射击时,测角仪测量到的仰角和方位角与实际仰角和方位角之间的偏差。测角误差越大,定位精度就越低。一般情况下,测角误差在0.1密位以内时,定位精度可以达到亚米级。
MDS-MAP/SMDS(P)定位精度与通信范围的关系
MDS-MAP/SMDS(P)系统通过无线电通信方式传输数据。通信范围是影响定位精度的另一个因素。通信范围越大,定位精度就越高。一般情况下,通信范围在10公里以内时,定位精度可以达到亚米级。
我们通过仿真评估了所提出算法的性能。仿真结果表明,在角度测量足够准确的情况下,所提出的 SMDS 定位算法优于其他基于 MDS 的协同定位算法,并且可以极大地提高编队无人机的定位精度和鲁棒性。
4. 结论
在本文中,我们提出了一种将 SMDS 和分块合并与 GPS 信息相结合的编队无人机分布式协同定位方法。仿真结果表明,该方法可以极大地提高编队无人机的定位精度和鲁棒性。该方法为编队无人机协同作业提供了新的定位解决方案。
📣 部分代码
% SMDS(P)定位精度与通信范围的关系
clear;clc;close all;tic;
N=50; %顶点数
eta=3; %维数
r=50; %通信范围
de=0.5; %测距误差
ae=2; %测角误差
a=0.1; %GPS配比
total=10; %循环次数(time=total/2)
for r=40:10:100
zp=1;
while zp~=total+1
X=rand(N,eta)*100-50; %生成[-50,50]的顶点
nosie1=normrnd(0,5/3,N,1);
nosie2=normrnd(0,5/3,N,1);
nosie3=normrnd(0,10/3,N,1);
noise_GPS=[nosie1,nosie2,nosie3];
Xgps=X+noise_GPS; %GPS定位误差
num=[]; %ID集合
for num1=1:N
num=[num;num1];
end
num=num2cell(num);
% figure(1); %节点拓扑图
% scatter3(X(:,1),X(:,2),X(:,3),'ko');hold on;
% text(X(:,1)+2,X(:,2)+0.5,X(:,3)+0.5,num);
% xlabel('x'),ylabel('y'),zlabel('z');
% axis([-60,60,-60,60,-60,60]);
% set(gca,'XTick',-60:20:60);
% set(gca,'YTick',-60:20:60);
% set(gca,'ZTick',-60:20:60);
% 通信范围内节点间连线
d=zeros(N); %距离矩阵
H=zeros(N); %邻接矩阵
for i=1:N
for j=1:N
if sqrt((X(i,1)-X(j,1))^2+(X(i,2)-X(j,2))^2+(X(i,3)-X(j,3))^2)<=r
d(i,j)=sqrt((X(i,1)-X(j,1))^2+(X(i,2)-X(j,2))^2+(X(i,3)-X(j,3))^2);
H(i,j)=1;
% line([X(i,1),X(j,1)],[X(i,2),X(j,2)],[X(i,3),X(j,3)],'linestyle','-','color','r');
% hold on;
else
d(i,j)=inf;
end
end
end
% legend('UAV','link');
noise=normrnd(0,de/3,N,N); %测距误差
dn=d+noise;
dn=dn-diag(diag(dn)); %主对角线元素置零
dn=1/2*(dn+dn'); %平均测距结果
% MDS-MAP
H=H-eye(N); %邻接矩阵
c=H*ones(N,1); %连通度
d=d-diag(diag(d)); %主对角线元素置零(噪声)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 选定初始点,选择连通度最大的点
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x=find(c==max(c));
CU=[x(1)];
LN=zeros(N); %簇矩阵
for i=1:N
z=find(H(i,:)==max(H(i,:)));
[row,column]=size(z);
LN(i,1:column)=z;
end
FM=LN(x(1),:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 对选定的簇进行SMDS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FM(find(FM==0))=[]; %删除零元素
[row1,column1]=size(FM);
v=zeros(column1,eta);
for i=1:column1
v(i,:)=X(FM(i),:)-X(x(1),:); %生成向量(利用实际坐标)
vn(i,:)=v(i,:)/norm(v(i,:))*dn(FM(i),x(1));
end
K=zeros(column1);
for i=1:column1
for j=1:column1
K(i,j)=dot(v(i,:),v(j,:)); %生成矩阵
end
end
theta=zeros(column1);
for i=1:column1
for j=1:column1
cos_theta(i,j)=K(i,j)/norm(v(i,:))/norm(v(j,:));
theta(i,j)=acos(cos_theta(i,j));
end
end
theta=abs(theta)/2/pi*360;
angle_noise=normrnd(0,ae/3,column1,column1);
theta=theta+angle_noise; %测角误差
theta=theta/360*2*pi;
%生成有误差的K
for i=1:column1
for j=1:column1
K(i,j)=norm(vn(i,:))*norm(vn(j,:))*cos(theta(i,j));
end
end
% nystrom SMDS
p=column1-1; %方阵
A=K(1:p,1:p);
T=K(1:p,p+1:column1);
[V,D]=eigs(A,eta,'la');
V_A=V(:,1:eta)*D(1:eta,1:eta).^(1/2);
% V_T=(sqrt(D^(-1))*V_A'*T)';
V_T=(pinv(V_A)*T)';
V_AT=[V_A;V_T];
XX1=V_AT;
X1=[0,0,0;V_AT]; % X1为初始拓扑图
end
X1=XX1;
c=H*ones(N,1);
zz=zz+1;
x(1)=x_1;
zzz=zzz+1;
end
if zz==50
X1=zeros(N,eta);
end
n=N*a; %20%的GPS配置
for i=1:n
Ygps(i,:)=Xgps(i,:);
Y1(i,:)=X1(i,:);
end
Ygps_mean=Ygps-(sum(Ygps)'/n*ones(1,n))';Ygps_mean=Ygps_mean';
Y1_mean=Y1-(sum(Y1)'/n*ones(1,n))';Y1_mean=Y1_mean';
P=Ygps_mean*Y1_mean';
[U,S,V]=svd(P);
R=U*V';t=sum(Ygps)'/n-sum(Y1)'/n;
Y1=R*Y1';
Y1=Y1';
s=sum(Ygps)/n-sum(Y1)/n;
[vc,vc1]=size(X1);
X1=X1';
X2=zeros(eta,n);
for i=1:vc
X2(:,i)=R*X1(:,i)+s';
end
X2=X2';
SMDSP_err=0;GPS_err=0;
for i=1:N
SMDSP_err=SMDSP_err+sqrt((X(i,1)-X2(i,1))^2+(X(i,2)-X2(i,2))^2+(X(i,3)-X2(i,3))^2);
GPS_err=GPS_err+sqrt((X(i,1)-Xgps(i,1))^2+(X(i,2)-Xgps(i,2))^2+(X(i,3)-Xgps(i,3))^2);
end
SMDSP_e(zp)=SMDSP_err/N;GPS(zp)=GPS_err/N;
if SMDSP_e(zp)<10 %保证有效跑total次
zp=zp+1;
end
end
j=r/10-3;
SMDSP(:,j)=SMDSP_e;
end
figure(2);
boxplot(SMDSP,'Labels',{'40','50','60','70','80','90','100'},'Whisker',1.5);
% boxplot(MAP,'Labels',{'40','50','60','70','80','90','100','110','120','130','140','150','160','170','180','190','200'},'Whisker',1.5);
xlabel('range(m)');ylabel('error(m)');
save data3;
toc;
⛳️ 运行结果
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类