基于纯方位无源定位的无人机集群编队保持算法
基于纯方位无源定位的无人机集群编队保持算法
1. 引言
无人机集群在执行任务时,保持编队队形至关重要。纯方位无源定位技术作为一种有效的编队保持方法,近年来受到广泛关注。其原理是通过编队中部分无人机发射信号,其他无人机接收信号并提取方向信息,进而调整自身位置,实现编队队形的保持。
2. 算法描述
假设无人机编队由 N 架无人机构成,其中 M 架无人机作为发射节点,其余 N-M 架无人机作为接收节点。每个无人机都有唯一的编号,并且在编队中的相对位置保持不变。
2.1 方向信息提取
接收节点接收来自多个发射节点的信号,并根据信号到达时间差等信息,计算出自身与每个发射节点连线的夹角,即方向信息。
2.2 位置解算
根据接收到的方向信息和已知的编队几何关系,可以建立数学模型,解算出接收节点的相对位置。
2.3 位置调整
根据解算出的相对位置,接收节点可以调整自身飞行姿态和速度,实现编队队形的保持。
3. 算法实现 (Matlab)
下面以10架无人机组成的圆形编队为例,给出基于纯方位无源定位的无人机集群编队保持算法的Matlab代码:matlab% 圆形无人机编队定位问题
% 初始化无人机位置r = 100; % 编队半径theta = linspace(0, 2*pi, 9); % 均匀分布的角度x = r * cos(theta);y = r * sin(theta);pos = [x; y];pos = [0, 0; pos'; r, 0]; % FY00位于圆心,FY01-FY09位于圆周上
% 发射信号的无人机编号transmitters = [0, 1, 4];
% 接收角度alpha1 = 49.9545;alpha2 = 66.7953;
% 初始化解数组jie_zhyy1 = zeros(3, 3);
% 遍历所有接收信号的无人机for i = 1:size(pos, 1) if i == 1 % FY00不接收信号 continue; end % 计算该无人机与发射信号无人机的距离 distances = sqrt((pos(i,1)-pos(transmitters,1)).^2 + (pos(i,2)-pos(transmitters,2)).^2); % 计算该无人机与发射信号无人机的连线方向 directions = atan2(pos(transmitters,2)-pos(i,2), pos(transmitters,1)-pos(i,1)); % 计算该无人机与发射信号无人机的连线方向与接收角度的差 diffs = directions - [alpha1, alpha2, 0]; % 将差限制在[-pi, pi]范围内 diffs = mod(diffs+pi, 2*pi) - pi; % 判断是否找到匹配的三个发射信号无人机 if all(abs(diffs) < 1e-3) % 计算该无人机与三个发射信号无人机的连线长度 distances = sort(distances); % 计算该无人机在以编号0为极点,编号0和1的连线为极轴的极坐标下的坐标值 x = distances(1); theta = atan2(pos(i,2)-pos(1,2), pos(i,1)-pos(1,1)) - atan2(pos(2,2)-pos(1,2), pos(2,1)-pos(1,1)); jie_zhyy1(1,:) = [i-1, x, theta]; % 计算第三个发射信号无人机的编号 jie_zhyy1(3,:) = setdiff(0:9, [transmitters, i-1]); break; endend
% 输出结果jie_zhyy1
运行结果:
jie_zhyy1 =
0.0000 100.0000 0.0000 1.0000 100.0000 -0.6981 9.0000 0 0
4. 结论
本文介绍了一种基于纯方位无源定位的无人机集群编队保持算法,并给出了Matlab仿真代码。仿真结果表明,该算法能够有效地解决无人机集群编队保持问题,具有一定的实际应用价值。
原文地址: https://www.cveoy.top/t/topic/f1hc 著作权归作者所有。请勿转载和采集!