initcvukf

从检测报告中创建恒速无迹卡尔曼滤波器

描述

例子

过滤器= initcvukf(检测)创建并初始化一个恒定速度的无香味Kalman过滤器a中包含的信息检测报告。有关无气味卡尔曼滤波器的更多信息,请参见trackingUKF

例子

全部折叠

从初始检测报告中创建并初始化一个3-D恒速无迹卡尔曼滤波对象。

从对象位置的初始三维测量(10,200,−5)创建检测报告。

检测= objectDetection (0 (10; 200; 5)“MeasurementNoise”,1.5 *眼(3),“SensorIndex”,1“ObjectClassID”,1“ObjectAttributes”{“跑车”,5});

从检测报告创建新过滤器并显示过滤器属性。

过滤器= initcvukf(检测)
filter = trackingUKF with properties: [6x1 double] StateCovariance: [6x6 double] State transitionfcn: @ convel ProcessNoise: [3x3 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @cvmeas MeasurementNoise: [3x3 double] HasAdditiveMeasurementNoise: 1 Alpha: 1.0000e-03 Beta: 2 Kappa: 0

显示状态。

filter.State
ans =6×110 0 200 0 -5 0

显示状态协方差。

filter.StateCovariance
ans =6×60000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000

初始化一个恒速无迹卡尔曼滤波器从一个初始测量球坐标的初始检测报告。因为对象位于x - y平面,无高程测量。如果要使用球坐标,则必须提供一个测量参数结构作为检测报告的一部分框架字段设置为“球”。设定目标的方位角为45度,射程为1000米,射程速率为-4.0米/秒。

帧=“球”;sensorpos = (-40,0)。';sensorvel = (0; 5。0);宽松=眼(3);

创建测量参数结构。组'HasElevation'。然后,测量包括方位角、距离和距离比。

measparms =结构('帧',帧,“OriginPosition”sensorpos,“OriginVelocity”sensorvel,'取向'宽松的,'HasVelocity',真的,'HasElevation',假);MEAS = [45; 1000; -4];measnoise = DIAG([3.0,2,1.0] ^ 2);检测= objectDetection(0,MEAS,“MeasurementNoise”,measnoise,“MeasurementParameters”measparms)
测量:[3x1双]Measurement: [3x3双]SensorIndex: 1 ObjectClassID: 0测量参数:[1x1结构]ObjectAttributes: {}
过滤器= initcvukf(检测);

显示滤波状态向量。

disp (filter.State)
732.1068 -2.8284 667.1068 2.1716 0 0

输入参数

全部折叠

检测报告,指定为objectDetection宾语。

例子:检测= objectDetection(0,[1; 4.5; 3], 'MeasurementNoise',[1.0 0 0 0 2.0 0 0 0 1.5])

输出参数

全部折叠

无迹卡尔曼滤波,返回为trackingUKF宾语。

算法

  • 的函数计算过程噪声矩阵假设一第二时间步长,为1米/秒的加速度的标准偏差2

  • 你可以用这个函数FilterInitializationFcn财产的trackerGNN要么trackerTOMHT宾语。

扩展功能

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

介绍了R2018b