目标定位算法(三)之基于角度的定位算法

本文介绍了两种基于角度测量的目标定位算法:双站角度定位和三角测量法。双站角度定位通过两个观测站的角度信息,利用最小二乘法估算目标位置;三角测量法则利用三个观测站的角度数据,通过几何关系确定目标坐标。MATLAB仿真实现了双站角度定位算法,并展示了定位误差。这些方法在无线传感器网络、雷达定位等领域有广泛应用。
摘要由CSDN通过智能技术生成

基于角度测量的定位算法

又叫纯方位目标定位,它的测量信息是目标与观测站之间的角度,包括方向角和俯仰角等。

1.双战角度定位

例:有两个观测站,其中A观测站的位置为坐标原点(0,0), 另一个观测站位于x轴,位置为(d,0)。 两个观测站和目标同处于一个二维平面内,观测站对目标观测偏向角,并用该系统完成对目标的定位,MATLAB仿真如下:

function DoubleStationEstimate
%第一步:定位初始化
Length=100;              %场地空间,单位:米
Width=100;               %场地空间,单位:米
Node_number=2;           %两个观测站
Q=5e-4;                  %角度观测方差
%两个观测站之间的距离
dd=20;
Node(1).x=0;Node(1).y=0;
Node(2).x=dd;Node(2).y=0;
%目标的真实位置,这里随机给定
Target.x= Width * rand;
Target.y= Length * rand;
%第二步:各观测站对目标探测角度
Z=[];
for i=1:Node_number
    %获取观测角度
    Z(i)=atan2(Target.y-Node(i).y,Target.x-Node(i).x);
    %叠加上噪声,才是实际情况
    Z(i)=Z(i)+sqrt(Q)*randn;
end
%第三步:根据观测角度,用最小二乘法计算目标估计位置
H=[tan(Z(1)),-1;tan(Z(2)),-1];
b=[0,dd * tan(Z(2))]';
Estimate=inv(H'*H) *H'*b;        %目标的估计位置
Est_Target.x= Estimate(1);Est_Target.y= Estimate(2);

%画图
figure
hold on;box on;axis([0 120 0 120]); %输出图形的框架
for i= 1: Node_number
    h1= plot(Node(i).x, Node(i).y,'ko','MarkerFace','g','MarkerSize',10);
    text(Node(i).x+2,Node(i).y,[ 'Node ', num2str(i)]);
end
h2= plot(Target.x,Target.y,'k^','MarkerFace','b','MarkerSize', 10) ;
h3= plot(Est_Target.x,Est_Target.y,'ks','MarkerFace','r','MarkerSize',10);
line([Target.x,Est_Target.x],[Target.y,Est_Target.y] ,'Color' ,'k');
legend([h1,h2,h3 ],'Observation Station','Target Postion','Estimate Postion');
[Error_Dist]=DIST(Est_Target,Target);
xlabel(['error=',num2str( Error_Dist),'m']);

%子函数,计算两点间的距离
function[dist] = DIST(A,B)
dist= sqrt((A.x-B.x)^2+(A.y-B.y)-2);
end

在这里插入图片描述

2.三角测量法定位

三角测量法如下图所示,已知A、B、C三个观测站的坐标分别为 ( x a , y a ) 、 ( x b , y b ) 、 ( x c , y c ) (x_a,y_a)、(x_b,y_b)、(x_c,y_c) (xa,ya)(xb,yb)(xc,yc),目标位置相对观测站A、B、C的角度分别为∠AMC、∠BMC和∠CMA,求目标坐标M(x,y)。
在这里插入图片描述
根据观测站A、B到目标点夹角∠AMB,则能够唯一确定一个圆,其圆心为 O 1 , ( x 1 , y 1 ) O_1,(x_1,y_1) O1,(x1,y1),半径为 r 1 r_1 r1,则存在公式:
在这里插入图片描述
求出目标点到3个圆心的距离,然后利用三角测量法求取目标M的坐标(x,y)。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值