資源簡介
用于計算雙站測角交叉定位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
評論
共有 條評論