• 大小: 493KB
    文件类型: .zip
    金币: 2
    下载: 5 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: 双站定位  AOA  GDOP  

资源简介

用于计算双站测角交叉定位GDOP,包括数据推导过程、matlab程序、仿真结果

资源截图

代码片段和文件信息

% 计算双站DOA交叉定位的GDOP
% 修改日期:2017.03.19
%   创建程序
% 修改日期:2017.03.20
%   并行改串行(并行的有问题)

clear all; close all; clc;

ang_std = 0.01*pi/180;
d = 8;  % m
stations = [-d/20;d/20];

X = -200:1:200; % km
Y = 50:300;

%% GDOP图
for i = 1:length(X)
    for j = 1:length(Y)
        [a1a2] = ang_cal([X(i)Y(j)]*1e3stations);
        G(ij) = GDOP_ang(a1a2dang_std)/1e3; % km
    end
end


figure;
mesh(XYG‘);hold on;grid on;
plot3(stations(:1)stations(:2)[00]‘o‘‘Linewidth‘1.5);
xlabel(‘x(km)‘);ylabel(‘y(km)‘);zlabel(‘z(km)‘);

figure;
[Ch] = contour(XYG‘);hold on; grid on;
clabel(Ch);
plot(stations(:1)stations(:2)‘o‘);
xlabel(‘x(km)‘);ylabel(‘y(km)‘);
title(‘基线长度8m,测角误差0.01度‘);
axis equal;
axis tight;

%% 基线长度、距离-定位误差
ds = 1:0.5:6;  % km
ranges = [200300400];    % km
for a = 1:length(ranges)
    range = ranges(a);
    for k = 1:length(ds)
        d = ds(k);  % km
        X1 = d/2;
        Y1 = sqrt(range^2-X1^2);
        stations1 = [00;d0];
        [a1a2] = ang_cal([X1Y1]*1e3stations1*1e3);
        G1(k) = GDOP_ang(a1a2d*1e3ang_std)/1e3; % km
%         G1(k) = GDOP_ang2([X1Y1]*1e3d*1e3ang_std)/1e3;
    end
    figure(3);
    plot(dsG1‘-o‘‘Linewidth‘1.5);grid on; hold on;
    xlabel(‘基线长度(km)‘);ylabel(‘定位误差(km)‘);
    title(‘测角误差0.01度‘);
end
legend(‘R=200km‘‘R=300km‘‘R=400km‘);
for a = 1:length(ranges)
    range = ranges(a);
    plot(dsrange*0.03*ones(1length(ds))‘--k‘);
    text(1.2range*0.03+1[‘3%(R=‘num2str(range)‘km)‘]);
end


%% 基线长度、测角误差-定位误差
range = 200;    % km
ds = 10:10:100;  % km
ang_stds = (0.1:0.1:0.5)*pi/180;
for a = 1:length(ang_stds)
    ang_std = ang_stds(a);
    for k = 1:length(ds)
        d = ds(k);  % km
        X1 = d/2;
        Y1 = sqrt(range^2-X1^2);
        stations1 = [00;d0];
        [a1a2] = ang_cal([X1Y1]*1e3stations1*1e3);
        G2(k) = GDOP_ang(a1a2d*1e3ang_std)/1e3; % km
    end
    figure(4);
    semilogy(dsG2‘-o‘‘Linewidth‘1.5);grid on; hold on;
    xlabel(‘基线长度(km)‘);ylabel(‘定位误差(km)‘);
    title(‘目标距离200km‘);
end
legend(‘\sigma_{\theta}=0.1deg‘‘\sigma_{\theta}=0.2deg‘‘\sigma_{\theta}=0.3deg‘‘\sigma_{\theta}=0.4deg‘‘\sigma_{\theta}=0.5deg‘);
plot(dsrange*0.03*ones(1length(ds))‘--k‘);
text(12range*0.03-1[‘3%(R=‘num2str(range)‘km)‘]);




function [ang1ang2] = ang_cal(posstations)
ang1 = atan2(pos(2)-stations(12)pos(1)-stations(11));
ang2 = atan2(pos(2)-stations(22)pos(1)-stations(21));

end


function [gdop] = GDOP_ang(ang1ang2dang_std)
J = zeros(2);
J(11) = d*tan(ang2)/(tan(ang2)-tan(ang1))^2/(cos(ang1))^2;
J(12) = d/(cos(ang2))^2/(tan(ang2)-tan(ang1)) - d*tan(ang2)/(cos(ang2))^2/(tan(ang2)-tan(ang1))^2;
J(21) = (d/(cos(ang1))^2*tan(ang2)*(tan(ang2)-tan(ang1)) + d*tan(ang1)*tan(ang2)/(cos(ang1))^2)/(tan(ang2)-tan(ang1))^2;
J(22) = (d*tan(ang1)/(cos(ang2))^2*(tan(ang2)-tan(ang1)) - d*tan(ang1)*tan(ang2)/(cos(ang2))^2)/(tan(ang2)-tan(ang1))^

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3423  2017-05-29 11:02  GDOP_of_AOA_2BS.m
     文件      524633  2017-07-07 15:27  推导过程.pdf

评论

共有 条评论