initcvekf

Создайте расширенный Фильтр Калмана постоянной скорости из отчета обнаружения

Описание

пример

filter = initcvekf(detection) создает и инициализирует постоянную скорость, расширенную Кальман filter от информации, содержавшейся в detection отчет. Для получения дополнительной информации о расширенном Фильтре Калмана, смотрите trackingEKF.

Функция инициализирует постоянное скоростное состояние тем же соглашением как constvel и cvmeasX; v x; y; v y; z; v z].

Примеры

свернуть все

Создайте и инициализируйте расширенный объект Фильтра Калмана 3-D постоянной скорости из первоначального отчета обнаружения.

Создайте отчет обнаружения из начального 3-D измерения, (10,20, −5), положения объекта.

detection = objectDetection(0,[10;20;-5],'MeasurementNoise',1.5*eye(3), ...
    'SensorIndex',1,'ObjectClassID',1,'ObjectAttributes',{'Sports Car',5});

Создайте новый фильтр из отчета обнаружения.

filter = initcvekf(detection)
filter = 
  trackingEKF with properties:

                          State: [6x1 double]
                StateCovariance: [6x6 double]

             StateTransitionFcn: @constvel
     StateTransitionJacobianFcn: @constveljac
                   ProcessNoise: [3x3 double]
        HasAdditiveProcessNoise: 0

                 MeasurementFcn: @cvmeas
         MeasurementJacobianFcn: @cvmeasjac
               MeasurementNoise: [3x3 double]
    HasAdditiveMeasurementNoise: 1

                MaxNumOOSMSteps: 0

                EnableSmoothing: 0

Покажите состояние фильтра.

filter.State
ans = 6×1

    10
     0
    20
     0
    -5
     0

Покажите ковариацию состояния.

filter.StateCovariance
ans = 6×6

    1.5000         0         0         0         0         0
         0  100.0000         0         0         0         0
         0         0    1.5000         0         0         0
         0         0         0  100.0000         0         0
         0         0         0         0    1.5000         0
         0         0         0         0         0  100.0000

Инициализируйте расширенный Фильтр Калмана 3-D постоянной скорости из первоначального отчета обнаружения, сделанного из 3-D измерения в сферических координатах. Если вы хотите использовать сферические координаты, то необходимо предоставить структуру параметра измерения как часть отчета обнаружения с Frame полевой набор к 'spherical'. Установите угол азимута цели до 45 градусов, вертикального изменения до-10 градусов, области значений к 1 000 метров и уровня области значений к-4.0 м/с.

frame = 'spherical';
sensorpos = [25,-40,0].';
sensorvel = [0;5;0];
laxes = eye(3);
measparms = struct('Frame',frame,'OriginPosition',sensorpos, ...
    'OriginVelocity',sensorvel,'Orientation',laxes,'HasVelocity',true, ...
    'HasElevation',true);
meas = [45;-10;1000;-4];
measnoise = diag([3.0,2.5,2,1.0].^2);
detection = objectDetection(0,meas,'MeasurementNoise', ...
    measnoise,'MeasurementParameters',measparms)
detection = 
  objectDetection with properties:

                     Time: 0
              Measurement: [4x1 double]
         MeasurementNoise: [4x4 double]
              SensorIndex: 1
            ObjectClassID: 0
    MeasurementParameters: [1x1 struct]
         ObjectAttributes: {}

filter = initcvekf(detection);

Отфильтруйте вектор состояния.

disp(filter.State)
  721.3642
   -2.7855
  656.3642
    2.2145
 -173.6482
    0.6946

Входные параметры

свернуть все

Отчет обнаружения в виде objectDetection объект.

Пример: detection = objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0; 0 2.0 0; 0 0 1.5])

Выходные аргументы

свернуть все

Расширенный Фильтр Калмана, возвращенный как trackingEKF объект.

Алгоритмы

  • Функция вычисляет матрицу шума процесса, принимающую шаг с одним вторым разом и ускоряющее стандартное отклонение 1 м/с2.

  • Можно использовать эту функцию в качестве FilterInitializationFcn свойство multiObjectTracker объект.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Функции

Объекты

Введенный в R2017a