目标定位算法(四)之移动目标定位算法

article/2025/10/12 14:34:47

文章目录

  • 移动目标定位算法
    • 1.移动目标计算机仿真建模
    • 2.基于距离观测的运动目标定位
    • 3.纯方位角的运动目标定位

移动目标定位算法

实时探测目标并对目标进行实时定位。

1.移动目标计算机仿真建模

假定目标做匀速直线运动,第i个观测站的位置为(x,y),目标运动模型可以写成如下形式:
在这里插入图片描述
其中:
在这里插入图片描述注: Γ \Gamma Γ仿真时用G表示

u(k)的均方差Q=Wdiag([1,1]),w为一个可调节的参数,w<<1。v(k)的均方差R=5.

例:在一个100mx 100m的环境用计算机模拟一目标匀速运动的情形,如式(3-32),目标受到空气阻力影响,导致运动轨迹不一:定是匀速 直线的,即目标出现一定的轨迹抖动或弯曲。假定目标的初始位置为(0,0)、速度为(0.8,0.6), 过程噪声方差可以设置不同大小以观测计算机模拟的目标运动轨迹。

function TargetMotionModel %计算机模拟目标运动模型
dt=1;            %采样时间,单位:秒
Time=30;         %模拟总时长,也叫步数
X=zeros(4,Time); %目标在Time时间内各个时刻的状态初始化
x0=0;y0=0;vx=0.8;vy=0.6; %目标初始状态,包括位置和速度
X(:,1)=[x0,vx,y0,vy]'; %第一个时刻的状态,也叫初始状态
%系统信息,系统不同,状态转移矩阵和过程噪声驱动矩阵也不同
F=[1 dt 0 0;0 1 0 0;0 0 1 dt;0 0 0 1]; %公式(3-32)中的φ
G=[dt^2/2 0;dt 0;0 dt^2/2;0 dt]; %公式(3-32)中的r
Q=0.1; %公式(3-32)中u(k)的方差,过程噪声
u=sqrt(Q)*randn(2,Time) ;
%现在开始模拟目标随着时间推移,开始发生位置移动
for k= 2:TimeX(:,k)=F*X(:,k-1)+G*u(:,k);
end
figure
hold on;box on;%设置坐标轴的展示形式
plot(X(1,:),X(3,:),'-r.');%画出目标的运动轨迹

运行结果:
在这里插入图片描述
从左到右分别为,Q=0.00001时,目标基本匀速直线运动;Q=0.001时,目标的轨迹已经开始弯曲;Q=0.1时,已经无法相信目标是在做匀速直线运动哭了,因为这时的过程噪声非常大,导致目标的随机性也大。

2.基于距离观测的运动目标定位

假定有3个及以上的观测站对目标进行观测,第
i个观测站的测量方程为:
在这里插入图片描述
最后把这些观测站测量的距离信息传给融合中心,融合中心用最小二乘法就能实现对移动目标的动态定位。

例:在二维平面空间里,假定目标做匀速直线运动,目标运动的初始状态为x(0)=[0,1.5,20,1.4],目标受到摩擦力的影响存在过程噪声。在环境中有5个观测站对目标距离进行探测,观测站传感器的测量噪声方差为R=1,采样时间为Is,总运行时间为60s,MATLAB仿真如下:

function TrackingByDist %基于距离的跟踪(连续定位)
%系统模型的基本信息,包括场地大小、观测站位置.模型驱动参数等
Length=100;                          %场地空间,单位:米
Width=100;                           %场地空间,单位:米
Node_number=5;                       %观测站的个数,最少必须有3个
for i=1:Node_number                  %观测站的位置初始化,这里位置是随机给定的Node(i).x= Width * rand;Node(i).y= Length * rand;Node(i).D= Node(i).x^2+Node(i).y^2; % 固定参数便于位置估计
end
T=1;                                 %雷达采样时间,单位:秒
N= 60/T;                             %总的采样次数
delta_w=1e-3;                         %如果增大这个参数,目标真实轨迹就是曲线了
Q=delta_w*diag([0.5,1]) ;             %过程噪声均值
R=1;                                 %观测噪声方差
G=[T^2/2,0;T,0;0,T^2/2;0,T];         %过程噪声驱动矩阵
F=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1]; %状态转移矩阵%开始模拟目标运动,观测在目标运动中同时采样,测量距离
X(:,1)=[0,1.5,20,1.4];               %目标初始位置、速度,状态参数格式[x,vx,y,vy]
Z=zeros( Node_number,N);            %各观测站的传感器对位置的观测
Xn=zeros(2,N);                       %最小二乘估计出的位置
for t=2:N                            %状态方程的建模:目标运动,时间从1T→NTX(:,t)=F*X(:,t-1)+G * sqrtm(Q) * randn(2,1); % 目标真实轨迹
end
for t=1:N                            %观测方程的建模:多观测站观测目标,时间从1T→NTfor i= 1:Node_number             %名个观测站对1时刻目标距离测量[d1,d2]=DIST(X(:,t),Node(i)); %dl是真实距离,d2是真实距离的平方Z(i,t)= d1+sqrtm(R) * randn; %模拟观测的距离受到噪声的污染end%对当前时刻目标位置的二乘法估算A=[];b=[];for i=2:Node_numberA(i-1,:)= 2*[Node(i).x-Node( 1).x,Node(i).y-Node(1).y];b(i-1,1)= [Z(1,t)^2-Z(i,t)^2+Node(i).D-Node(1).D];endXn(:,t)= inv(A'*A)*A'*b;          %得到目标当前时刻的位置
end
for t=1:N                             %计算位置偏差,即用最小二乘位置与计算机模拟的目标真实位置做差error(t)=sqrt( (X(1,t)-Xn(1,t))^2+(X(3,t)-Xn(2,t))^2);
end
%画图
figure             %轨迹图
hold on;box on;xlabel('x/m');ylabel('y/m');       %输出图形的框架
for i= 1: Node_numberh1= 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(X(1,:),X(3,:),'-r'); %目标的真实位置
h3=plot(Xn(1,:),Xn(2,:),'-k.'); %目标的估计位置
legend([h1,h2,h3 ],'Observation Station','Target Postion','Estimate Postion');
figure %偏差图
hold on;box on;xlabel( 'time/s' );ylabel( 'value of the deviation');
plot( error,'-ko' ,'MarkerFace','g');%子函数,计算两点间的距离和距离平方
function [dist ,dist2]=DIST(A,B)
dist2=(A(1)-B.x)^2+(A(3)-B.y)^2; %距离的平方
dist=sqrt(dist2); %距离
end

运行结果:
在这里插入图片描述
作图为定位估计与真实轨迹对比,右图为定位估计与真实位置偏差对比。

注:偏差的定义为
在这里插入图片描述

3.纯方位角的运动目标定位

观测站测量目标与自身的方位角的目标跟踪,又称为纯方位角的目标跟踪。当有多个观测站测量目标角度时,可以用最小二乘定位算法估计目标的位置。

第i个观测站的位置为 P ( x i , y i ) P(x_i,y_i) P(xi,yi),目标的位置为 T ( x , y ) T(x,y) T(x,y),则观测站测得的角度为 θ i \theta_i θi,
多个观测站测量,有如下关系: .
在这里插入图片描述
将上式转为矩阵的形式,如下:
在这里插入图片描述

例:假定目标的运动模型为在这里插入图片描述
目标的初始状态为X(0)= [20,1.4,0,1.5],目标的过程噪声方差 Q = 1 ∗ 1 0 3 ∗ d i a g ( [ 0.5 , 1 ] ) Q= 1*10^3*diag([0.5,1]) Q=1103diag([0.5,1]),有5个观测站对目标进行探测,第i个观测站的测量方程为:
在这里插入图片描述
测量噪声 v i ( k ) v_i(k) vi(k)的方差R=0.1π/180,同样采样时间为T=1s,仿真时间为60s。MATLAB仿真如下:

function TrackingByAngle
% 定位初始化
Length=100;  % 场地空间,单位:米
Width=100;   % 场地空间,单位:米
Node_number=5;      % 观测站的个数,也可以设置成3个,4个,但是最少必须要3个
for i=1:Node_number % 观测站的位置初始化,这里位置是随机给定的Node(i).x=Width*rand; Node(i).y=Length*rand;
end
T=1;                      %雷达扫描周期,  
N=60/T;                   %总的采样次数,也称步长
delta_w=1e-4;              % 如果增大这个参数,目标真实轨迹就是曲线了
Q=delta_w*diag([0.5,1]) ;     % 过程噪声方差
R=0.1*pi/180;             % 观测噪声方差
G=[T^2/2,0;T,0;0,T^2/2;0,T];          % 过程噪声驱动矩阵
F=[1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1];  % 状态转移矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X=zeros(4,N);           % 目标真实状态初始化
X(:,1)=[20,1.4,0,1.5];      % 目标初始位置、速度
Z=zeros(Node_number,N); % 各观测站的传感器对位置的观测
Xn=zeros(2,N);          % 估计出的位置
for t=2:N               % 目标运动X(:,t)=F*X(:,t-1)+G*sqrtm(Q)*randn(2,1);    %目标真实轨迹
end
for t=1:Nfor i=1:Node_numbercita=hfun(X(:,t),Node(i));      % 观测角度Z(i,t)=cita+sqrtm(R)*randn;     % 模拟观测的角度受到噪声的污染end
% 对当前时刻目标位置的二乘法的估算A=[];b=[];for i=1:Node_numberA(i,:)=[tan(Z(i,t)),-1];b(i,1)=[Node(i).x*tan(Z(i,t))-Node(i).y];end  inv(A'*A)*A'*bXn(:,t)=inv(A'*A)*A'*b; % 得到目标当前时刻的位置
end
for t=1:N   % 偏差分析error(t)=sqrt( (X(1,t)-Xn(1,t))^2+(X(3,t)-Xn(2,t))^2 );
end%画图
figure
hold on;box on;xlabel('x/m');ylabel('y/m'); % 输出图形的框架
for i=1:Node_numberh1=plot(Node(i).x,Node(i).y,'ko','MarkerFace','g');text(Node(i).x+2,Node(i).y,['Node ',num2str(i)]);
end
h2=plot(X(1,:),X(3,:),'-r');
h3=plot(Xn(1,:),Xn(2,:),'-k.');
legend([h1,h2,h3],'Observation Station','True Trace','MLE Ttace');
figure
hold on;box on;xlabel('time/s');ylabel('value of the deviation'); 
plot(error,'-ko','MarkerFace','g');% 子函数
function angle=hfun(A,B) % 角度观测方程
angle=atan( (A(3)-B.y)/(A(1)-B.x) );

运行结果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
测量噪声从上到下分别为:R=0.001π/180、R=0.01π/180、R=0.1π/180。左边为轨迹,右边为定位偏差。

由结果可知,随着测量噪声增大,目标定位结果越来越差,即传感器信息足够可靠对提高精度至关重要,定位算法只是最大限度地减小误差。


http://chatgpt.dhexx.cn/article/YvZAocgw.shtml

相关文章

目标定位跟踪系统概述

一、观测系统&#xff1a;目标、观测站、坐标系。 观测站如雷达、声纳等传感器。坐标系&#xff1a;二维、三维直角坐标系&#xff08;描述确定位置&#xff09;&#xff1b;极坐标系&#xff08;r,cita&#xff09;、球坐标系(r,cita,fai)&#xff08;利用角度描述位置&#x…

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

文章目录 基于角度测量的定位算法1.双战角度定位2.三角测量法定位 基于角度测量的定位算法 又叫纯方位目标定位&#xff0c;它的测量信息是目标与观测站之间的角度&#xff0c;包括方向角和俯仰角等。 1.双战角度定位 例&#xff1a;有两个观测站&#xff0c;其中A观测站的位…

目标检测之目标定位

目标检测是计算机视觉领域中一个新兴的应用方向&#xff0c;相比前两年&#xff0c;它的性能越来越好。在构建对象检测之前&#xff0c;我们先了解一下对象定位&#xff0c;首先我们看看它的定义。 图片分类任务我们已经熟悉了&#xff0c;就是算法遍历图片&#xff0c;判断其中…

深度学习——目标定位

目标定位 图片分类任务我们已经熟悉了&#xff0c;就是算法遍历图片&#xff0c;判断其中的对象是不是汽车&#xff0c;这就是图片分类。这节课我们要学习构建神经网络的另一个问题&#xff0c;即定位分类问题。这意味着&#xff0c;我们不仅要用算法判断图片中是不是一辆汽车&…

目标检测及目标定位

一、概述 本文是关于目标检测后根据物体的坐标来确定物体所处的区域&#xff0c;适用于需要根据物体在图像中的位置来分别判断的情况&#xff0c;而且对应的是YOLOv5模型。YOLOv5目标检测的内容可以看看我之前的一篇文章YOLOv5训练自己的数据集_ONEPIECE_00的博客-CSDN博客 本…

一、目标定位

1、目标定位是要求图像中只有一个目标&#xff0c;则构建这个目标的位置信息&#xff0c;如一个网络输出8个值&#xff0c;一个是是否有目标的pc&#xff0c;4个目标位置信息的bx,by,bh,bw&#xff0c;其中bx,by为目标中心点坐标&#xff0c;bh,bw为目标的高和宽&#xff0c;最…

3-1 目标定位

目标定位&#xff08; Object localization&#xff09; 图片分类任务就是算法遍历图片&#xff0c;判断其中的对象是不是某个指定的类别&#xff0c;这就是图片分类。 定位分类问题。意味着我们不仅要用算法判断图片中是不是一辆汽车&#xff0c;还要在图片中标记出它的位置&a…

深度学习(十五):目标定位 Object Localization

这是一系列深度学习的介绍&#xff0c;本文不会涉及公式推导&#xff0c;主要是一些算法思想的随笔记录。 适用人群&#xff1a;深度学习初学者&#xff0c;转AI的开发人员。 编程语言&#xff1a;Python 参考资料&#xff1a;吴恩达老师的深度学习系列视频 吴恩达老师深度学习…

第二十五节,初步认识目标定位、特征点检测、目标检测

一 目标定位(单个物体) 对象检测&#xff0c;它是计算机视觉领域中一个新兴的应用方向&#xff0c;相比前两年&#xff0c;它的性能越来越好。在构建对象检测之前&#xff0c;我们先了解一下对象定位&#xff0c;首先我们看看它的定义。 图片分类任务我们已经熟悉了&#xff0c…

目标定位和特征点检测

1. 目标定位 目标检测是计算机视觉领域中的一个新兴的应用方向&#xff0c;在构建目标检测之前&#xff0c;我们首先了解一下object localization目标定位。 前面说过的图片分类任务就是算法遍历图片&#xff0c;判断其中的对象是不是汽车&#xff0c;主要是图片分类 这里所…

目标定位(Object localization)

来源&#xff1a;Coursera吴恩达深度学习课程 在构建目标检测之前&#xff0c;建议先了解一下目标定位&#xff08;object localization&#xff09;。 在上图的这个例子中&#xff0c;图片分类&#xff08;image classification&#xff09;不仅要判断图片中是不是一辆汽车&a…

学习云计算从哪里入手

学习云计算从哪里入手 1、 学习思路 a) 学习前建议先了解 i. 什么是云计算 ii. 云计算对当前的商业模式有什么影响 iii. 云计算所涉及到的技术 iv. 云计算的现状 b) 云计算可以分为广义的和狭义的两类&…

云计算学习(1)

原文来自于HCIA-Cloud Computing 华为云计算工程师认证 --hsyl007学习笔记收集整理 &#xff0c;个人博客地址 http://hsyl007.work/zblog/ 什么是云计算 云计算就在身边 将资源准备好&#xff0c;通过特定技术随时随地使用这些资源去执行特定任务的方式基本就属于云计算类…

大数据与云计算学习(2)

四、分布式数据库HABSE 1、请阐述HBase和传统关系数据库的区别 正确答案&#xff1a; 我的答案&#xff1a; &#xff08;1&#xff09;数据类型&#xff1a;关系数据库采用关系模型&#xff0c;具有丰富的数据类型和存储方式&#xff0c;HBase则采用了更加简单的数据模型&a…

云计算学习笔记(一):云计算基础

文章转载只能用于非商业性质&#xff0c;且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者恺风Wei 本系列将对云计算进行学习&#xff0c;目前资料来自《云计算-概念、技术与架构》&#xff08;第一作者&#xff1a;Tomas…

(一)云计算技术学习--基础概念

目录 Linux的用户管理 Yum 命令 Python SELinux vsftpd etcd Session、Cookie、Token LNMP VMware Docker Kubernetes(K8S) Centos CentOS&#xff08;Community Enterprise Operating System&#xff0c;中文意思是社区企业操作系统&#xff09;是Linux发行版之一…

云计算学习路线

文章目录 一、什么是云计算二、虚拟化2.1 云计算与虚拟机基础2.1.1 云计算底层就是虚拟化 or 物理机2.1.2【重点】企业级虚拟化架构 &#xff08;VRM CNA 存储&#xff09;&#xff08;1&#xff09;架构分析&#xff08;2&#xff09;心跳 cluster&#xff08;3&#xff09;…

云计算的学习(四)

四、云计算中的存储基础知识 1.云计算虚拟化中的存储架构 ①虚拟化存储 在虚拟化存储架构中&#xff0c;最底层为物理磁盘。 底层的硬件组成存储池&#xff0c;存储池分为NAS存储和SAN存储&#xff1b;NAS存储需要文件系统&#xff1b;SAN存储需要对存储池进行逻辑划分产生逻…

云计算的学习(三)

三、云计算中的网络基础知识 1.虚拟化中网络的架构 1.1虚拟化中网络的架构 二层交换机作为接入交换机使用&#xff0c;三层交换机可以作为汇聚交换机或核心交换机&#xff0c;在抛开网络安全设备时&#xff0c;路由器直接连接在互联网上。 1.2广播和单播 物理服务器内部主要…

云计算基础:云计算运用越来越广泛,我们应该如何去学习云计算

随着时代的发展&#xff0c;云计算越来越普及&#xff0c;越大众化&#xff0c;使用的人越来越多&#xff0c;我们应该如何去学习这门技术呢?这篇文章我们就来介绍如何学习我们的云计算。 学前介绍&#xff1a; 学前介绍 学习资料&#xff1a;HedEX Lite、产品文档、笔记、P…