主要内容

retroCorrectJPDA

正确的跟踪滤波器OOSMs使用JPDA-based算法

自从R2022a

描述

retroCorrectJPDA纠正的状态估计和协方差函数跟踪滤波器使用按顺序测量(OOSMs)基于联合概率数据关联(JPDA)算法。要使用这个功能,您必须指定MaxNumOOSMSteps财产的过滤器作为一个正整数。在使用这个函数之前,你必须使用retrodict函数成功retrodict过滤器的当前状态的时间OOSMs。

例子

(retroCorrState,retroCorrCov)= retroCorrectJPDA (过滤器,z,jpdacoeffs)纠正的过滤器使用OOSM测量z及其相应的联合概率数据关联系数jpdacoeffs。函数返回修正后的状态和状态协方差。函数的值变化状态StateCovariance过滤器对象的属性retroCorrStateretroCorrCov,分别。如果过滤器是一个trackingIMM对象,函数也改变了ModelProbabilities财产的过滤器

(___)= retroCorrectJPDA (___,measparams)指定按顺序的测量参数测量z除了所有参数从以前的语法。

请注意

只有当你可以使用这个语法过滤器是一个trackingEKFtrackingIMM对象。

例子

全部折叠

假设一个平台正朝着三维恒定速度的10 m / sx方向。每个系统的离散时间步是1秒。整个仿真持续3秒。

韦尔= 10;%增加速度dt = 1;%truePositions =[1 *或者0 0;2 *或者0 0;3 *或者0 0)';

系统包含两个传感器,获取三维测量平台的地位。第二个传感器偏差的0.5米x方向测量。

偏见= 0.5;

指定两个传感器JPDA系数为0.6和0.3,分别。

jpdacoeffs = (0.6 0.3 0.1);

初始化一个trackingEKF过滤器对象三维运动估计。指定MaxNumOOSMSteps财产3使retrodiction过滤器。

过滤器= trackingEKF(状态= [0;0;0;0;0;0),StateTransitionFcn = @constvel,MeasurementFcn = @cvmeas,MaxNumOOSMSteps = 3,HasAdditiveProcessNoise = false,ProcessNoise =眼(3))
过滤器= trackingEKF属性:状态:x1双[6]StateCovariance: [6 x6双]StateTransitionFcn: @constvel StateTransitionJacobianFcn: [] ProcessNoise: [3 x3双]HasAdditiveProcessNoise: 0 MeasurementFcn: @cvmeas MeasurementJacobianFcn: [] HasMeasurementWrapping: 0 MeasurementNoise: 1 HasAdditiveMeasurementNoise: 1 MaxNumOOSMSteps: 3 EnableSmoothing: 0

预测滤波器和正确的测量。在t = 2秒,假设传感器的测量不到达滤波器,因此成为按顺序测量。

j = 1:3预测(过滤器,dt);meas1 = truePositions (: 1);meas2 = truePositions(: 1) +(偏见0 0)';如果j ~ = 2 (x, P) = correctjpda(过滤器,[meas1 meas2], jpdacoeffs);其他的OOSMs = [meas1 meas2];结束结束

显示的估计误差x方向和估计误差协方差矩阵跟踪。矩阵跟踪表示状态估计的不确定性。

xError = x (1) - truePositions(结束)
xError = -19.2582
traceCovariance =跟踪(P)
traceCovariance = 14.5817

假设OOSMs t = 3秒后可用。Retrodict过滤器1秒和retro-correct OOSMs过滤器。

retrodict(过滤器,1);[xRetro, PRetro] = retroCorrectJPDA(过滤、OOSMs jpdacoeffs);

显示了协方差矩阵retro-correction后跟踪。减少了协方差估计误差和跟踪显示改善状态估计。

retroXError = xRetro (1) - truePositions(结束)
retroXError = -17.4344
retroTraceCovariance =跟踪(PRetro)
retroTraceCovariance = 10.7589

输入参数

全部折叠

跟踪滤波器对象,指定为一个trackingKF,trackingEKF,或trackingIMM对象。

乱序执行测量,指定为一个——- - - - - -N矩阵,是一个测量的尺寸,N是测量的数量。

数据类型:|

联合概率数据关联系数,指定为一个(N+ 1)元向量。的th (= 1,…,N)的元素jpdacoeffs的联合概率th测量z与过滤有关。最后一个元素的jpdacoeffs的概率是不相关的测量过滤器。的所有元素的和jpdacoeffs必须等于1

数据类型:|

测量参数,指定为一个结构或一个结构数组。函数将这个结构传递给指定的测量功能MeasurementFcn财产的跟踪过滤器。结构可以包含这些字段:

描述
框架

枚举类型指示帧用来测量报告。当检测报告使用直角坐标系统,集框架“矩形”。在球坐标检测报告时,集框架“球”第一个结构。

OriginPosition

位置偏移起源的孩子相对于父帧,表示为一个3×1的向量。

OriginVelocity

速度抵消起源的孩子相对于父帧,表示为一个3×1的向量。

取向

帧定位,指定为3 x3的实值正交坐标系旋转矩阵。旋转的方向取决于IsParentTochild字段。

IsParentToChild

指示是否一个逻辑标量取向执行一个框架给孩子从父坐标系旋转坐标系。如果,取向执行一个框架从孩子坐标系旋转到父坐标系。

HasElevation

一个逻辑标量表示如果测量包括高程。在一个矩形框架测量报告,如果HasElevation所有测量,测量函数报告0度的仰角。

HasAzimuth 一个逻辑标量表示如果测量包括方位。
HasRange 一个逻辑标量表示如果测量包含范围。
HasVelocity

一个逻辑标量表示,如果检测报告包括速度测量。在一个矩形框架测量报告,如果HasVelocity,测量函数测量报告[x y z]。如果HasVelocity真正的,测量函数测量报告[x y z vx v vz]

输出参数

全部折叠

国家由retrodiction纠正,作为一个返回1实值向量,过滤器的大小状态。

由retrodiction状态协方差修正,作为一个返回——- - - - - -实正定矩阵。

更多关于

全部折叠

JPDA-Based Retrodiction和Retro-Correction

假设当前时间步的过滤器k。在时间k的后验状态和状态协方差滤波器x(k|k),P(k|k),分别。按顺序测量(OOSMs)在时间τ现在到达时间k。找到l这样τ是这两个之间的时间步连续时间的步骤:

k l τ < k l + 1 ,

在哪里l是一个正整数,l<k

Retrodiction

在retrodiction步骤中,预测当前状态和状态协方差k回到OOSM时。您可以获得retrodicted状态通过传播状态转换函数落后。对于一个线性状态转换函数,retrodicted状态表示为:

x ( τ | k ) = F ( τ , k ) x ( k | k ) ,

在哪里F(τ,k)是时间步中落后的状态转移矩阵k对时间步τ。获得retrodicted协方差为:

P ( τ | k ) = F ( τ , k ) ( P ( k | k ) + ( k , τ ) P x v ( τ | k ) P x v T ( τ | k ) ] F ( τ , k ) T ,

在哪里(k,τ)是过程噪声协方差矩阵

P x v ( τ | k ) = ( k , τ ) P ( k | k l ) 年代 * ( k ) 1 ( k , τ )

在这里,P(k|k-l)是先验状态协方差k预测协方差信息的时间k-l,

年代 * ( k ) 1 = P ( k | k l ) 1 P ( k | k l ) 1 P ( k | k ) P ( k | k l ) 1

与JPDA Retro-Correction

在第二步中,retro-correction,正确使用OOSMs当前状态和状态协方差与联合概率数据关联算法。首先,获得卡尔曼增益矩阵和创新矩阵τ为:

W ( k , τ ) = P x z ( τ | k ) ( H ( τ ) P ( τ | k ) H T ( τ ) + R ( τ ) ] 1

年代 ( τ ) = H ( τ ) P ( τ | k ) H ( τ ) T + R ( τ )

在哪里H(τ)是测量雅可比矩阵,R(τ)是OOSMs的协方差矩阵。

得到修正后的状态为:

x ( k | τ ) = x ( τ | k ) + W ( k , τ ) δ z ( τ ) ,

在哪里δz(τ):

δ z ( τ ) = j = 1 β j δ z j

在这里,在时间步是OOSMs的数量吗τ,βj是按顺序对应的JPDA系数测量吗zj,:

δ z j = z j h ( x τ | k ) ,

在这h(xτ| k)使用retrodicted预测测量状态xτ| k

修正后的协方差:

P k | τ = P τ | k ( 1 β 0 ) W ( k , τ ) 年代 ( τ ) W ( k , τ ) T + W ( k , τ ) ( j = 1 β j z ˜ j z ˜ j T δ z ( τ ) δ z ( τ ) T ] W ( k , τ ) T

引用

[1]Bar-Shalom Y。,Huimin Chen, and M. Mallick. “One-Step Solution for the Multistep out-of-Sequence-Measurement Problem in Tracking.”IEEE航空航天和电子系统40,不。1(2004年1月):27-37。

[2]Muntzinger,马克·M。,et al. “Tracking in a Cluttered Environment with Out-of-Sequence Measurements.”2009年IEEE车辆电子安全国际会议(icf)IEEE 2009,页56 - 61。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2022a