2022年数学建模国赛B题(无人机编队)助攻论文&支撑材料.doc

本博客下载链接包含修改的word版本, 可免费下载阅览学习, 也可作为数学建模相关课程作业修改上交:

链接:https://pan.baidu.com/s/1HxzDk3q0p6y2xpuJyxPgvw?pwd=qtnc

提取码:qtnc

      为保证无人机集群在遂行编队飞行时,尽可能的保持电磁静默减少电磁波信号的发射,可采用纯方位无源定位的方法调整无人机的位置。本文通过对无人机不同编队情况进行分析,给出了无人遂行编队飞行中的纯方位无源定位方法,以及相应的位置调整策略

      针对问题一第一问,由于均匀分布在圆周上发射信号的两架无人机编号已知且位置无偏差,我们可以得到三架发射信号的无人机的位置信息。因此,对该问题, 我们提出了两种方法实现被动接收信号无人机的位置定位。一种为建立极坐标, 根据已知的方向信息, 按照被动无人机是否在已知无人机位置中间的情况划分, 利用平面上三角形的正弦定理, 联立方程, 得到最终的结果;另一种为利用三角测量定位法, 将该问题转化为求解一个最小二乘问题,通过求解最小二乘问题,可以得到无人机的具体位置。

       针对问题一第二问,由于无法得知FY00和FY01外其余发射信号的无人机的编号, 故无法直接利用三角测量定位法进行求解。需借助交叉定位的想法,构造两条相交的轨迹利用其交点确定无人机的具体位置。

      针对问题一第三问,由于发送信号的无人机位置存在偏差, 为使得在发射信号的无人的数量尽可能的少的情况下,通过接收到的位置信息对无人位置进行调整,使其均匀分布与某一圆周上。我们利用目标拆分想法,将上述目标拆分为两个子目标,分别实现,从而避免在对无人机位置调整时,需要较多的无人机发送信号。

      针对问题二,由于编队中无人机不一定保持同一高度飞行,并且无法得知初始位置信息。因此,我们结合模型特点,根据相邻无人机之间边角关系,构造了一种基于所需发射信号无人机数量最小的贪婪准则,并以此给出了问题二的无人机的位置调整方案

关键词:三角测量定位法;交叉定位;贪婪策略;目标分解;调整策略

三角测量的定位算法Matlab程序

%三角测量的定位算法

%a1,a2,a3是三个夹角(假定坐标[x,y]未知)的模拟测量距离

function [P] = Triangle1(a1,a2,a3,R,k)

a1=a1*pi/180;   a2=a2*pi/180;   a3=a3*pi/180;%转换弧度制

alpha=2/9*pi;

theta=k*alpha;

dA=sqrt(R^2/(2*(1-cos(2*a1))));%%dA,dB,dC为相应第一小问中外接圆半径r1,r2,r3

dB=sqrt(R^2/(2*(1-cos(2*a2))));

dC=sqrt((R^2*(1-cos(theta))^2+(sin(theta)*R)^2)/(2*(1-cos(2*a3))));

A(1,1)=R/2;%%A,B,C为第一问中外接圆的圆心(x1,y1),(x2,y2),(x3,y3)

A(1,2)=sqrt(R^2/(2*(1-cos(2*a1)))-R^2/4);

B(1,2)=sqrt(dB^2+R^2*(1/2-sin(theta)^2/4))-R/2*sin(theta);

B(1,1)=R/(2*cos(theta))+tan(theta)*B(1,2);

eta=1+(1-cos(theta))^2/sin(theta)^2;

C(1,1)=R/eta+sqrt(abs(R^2/eta-dC^2/eta));

C(1,2)=(1-cos(theta))/sin(theta)*C(1,1);
%定义未知坐标x,y为符号变量

syms x y;

%距离方程,以信标节点为圆心,信标节点到未知节点的测量距离为半径作三个圆

f1 = (A(1)-x)^2+(A(2)-y)^2-dA^2;

f2 = (B(1)-x)^2+(B(2)-y)^2-dB^2;

f3 = (C(1)-x)^2+(C(2)-y)^2-dC^2;

%任两个方程联立,求任两圆交点

s1 = solve(f1,f2); %求A,B两圆的交点

s2 = solve(f2,f3); %求B,C两圆的交点

s3 = solve(f1,f3); %求A,C两圆的交点

%将结果(符号变量)转换为双精度数值

x1 = double(s1.x);

y1 = double(s1.y);

x2 = double(s2.x);

y2 = double(s2.y);

x3 = double(s3.x);

y3 = double(s3.y);

%选择内侧的三个交点

%两圆相交于两点,距第三个圆心近的为选定交点Pab,Pbc,Pac

d1(1) = sqrt(abs(((C(1)-x1(1))^2+(C(2)-y1(1))^2)));

d1(2) = sqrt(abs(((C(1)-x1(2))^2+(C(2)-y1(2))^2)));

if d1(1) <= d1(2)

Pab(1) = x1(1);

Pab(2) = y1(1);

else

Pab(1) = x1(2);

Pab(2) = y1(2);

end

d2(1) = sqrt(abs(((A(1)-x2(1))^2+(A(2)-y2(1))^2)));

d2(2) = sqrt(abs(((A(1)-x2(2))^2+(A(2)-y2(2))^2)));

if d2(1) <= d2(2)

Pbc(1) = x2(1);

Pbc(2) = y2(1);

else

Pbc(1) = x2(2);

Pbc(2) = y2(2);

end

d3(1) = sqrt(abs(((B(1)-x3(1))^2+(B(2)-y3(1))^2)));

d3(2) = sqrt(abs(((B(1)-x3(2))^2+(B(2)-y3(2))^2)));

if d3(1) <= d3(2)

Pac(1) = x3(1);

Pac(2) = y3(1);

else

Pac(1) = x3(2);

Pac(2) = y3(2);

end

%Pab

%Pbc

%Pac

%求三个圆内侧三个交点Pab,Pbc,Pac的质心,即为未知节点P,完成定位

P(1) = (Pab(1)+Pbc(1)+Pac(1))/3;

P(2) = (Pab(2)+Pbc(2)+Pac(2))/3;
end

第一问第三小问Matlab程序

clear all; clc;

orgin=[100,0;112,80.21;105,119.75;112,199.96;105,240.07;112,320.28];%原始数据

orgin(:,2)=orgin(:,2)*pi/180;%弧度制

orgin=[orgin(:,1).*cos(orgin(:,2)),orgin(:,1).*sin(orgin(:,2))];%换到平面直角坐标系

for i=1:length(orgin)
    
    choose=orgin(i,:);  %以编号为3的无人机为例,其余点只需更改坐标
    
    direction=choose;  %初步设定无人机移动方向
    
    R=sqrt(choose(1).^2+choose(2).^2);%无人机到原点的距离
    
    if R>98
        direction=-direction;
    end
    
    direction=direction+20*rand(1,2);%给移动方向一个扰动
    
    k=direction(2)/direction(1);
    
    syms x y%求圆周与移动方向的交点
    
    s=solve(x^2+y^2==98^2,y==k*x+-k*choose(1)+choose(2),x,y);
    
    X=double(s.x);%双精度
    
    Y=double(s.y);
    
    dist=sqrt((X-choose(1)).^2+(Y-choose(2)).^2);
    
    [temp,n]=min(dist);
    
    point(1)=X(n);    point(2)=Y(n);%找到距离无人机最近的交点
    
    point %输出交点值
    
    r = 98;%半径
    
    a = 0;%圆心横坐标
    
    b = 0;%圆心纵坐标
    
    theta = 0:pi/20:2*pi; %角度[0,2*pi]
    
    x1 = a+r*cos(theta);
    
    y1 = b+r*sin(theta);
    
    plot(x1,y1,'-')%画圆
    
    hold on
    
    line([choose(1),point(1)],[choose(2),point(2)],'Marker','*','MarkerIndices',[2]);
    
    %画移动方向
    axis equal
end

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2022数学建模国赛B的第一第三问中,需要对无人机的位置进行定位。根据引用中提到的问设定,已知编号FY00(0,0)和FY01(R,0)的位置无偏差。在定位过程中,可以先选择一架无人机作为起点,然后根据正弦公式列出方程组。当未知数的数量大于方程个数时,需要再次随机选择两架无人机,并再次列出正弦公式。根据未知数和方程数的比较,当未知量与方程数相等时,就可以求解定位方程组。需要注意的是,在对方程组进行求解时,还需要添加约束条件来解出具体增加的无人机编号。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2022数模国赛B-无人机纯方位无源定位matlab代码实现](https://download.csdn.net/download/qq_62868689/88134483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [2022数学建模国赛B无人机定位(国二分享)](https://blog.csdn.net/m0_57273050/article/details/128024265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值