initctckf

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

Синтаксис

Описание

пример

ckf = initctckf(detection) инициализирует постоянный Фильтр Калмана кубатуры угловой скорости вращения для отслеживания объекта на основе информации, предоставленной в objectDetection объект, detection.

Функция инициализирует постоянное состояние угловой скорости вращения тем же соглашением как constturn и ctmeasX; v x; y; v y; ω; z; v z], где ω является угловой скоростью вращения.

Примеры

свернуть все

Создайте угловую скорость вращения, отслеживающую объект Фильтра Калмана кубатуры, trackingCKF, из первоначального отчета обнаружения. Отчет обнаружения сделан из начального 3-D измерения положения состояния Фильтра Калмана в прямоугольных координатах. Можно получить 3-D измерение положения с помощью постоянной функции измерения угловой скорости вращения, ctmeas.

Этот пример использует координаты, x = 1, y = 3, z = 0 и 3-D шум измерения положения [1 0.2 0; 0.2 2 0; 0 0 1].

detection = objectDetection(0, [1;3;0], 'MeasurementNoise', [1 0.2 0; 0.2 2 0; 0 0 1]);

Используйте initctckf создать trackingCKF фильтр инициализируется в обеспеченном положении и использовании шума измерения, заданного выше.

ckf = initctckf(detection)
ckf = 
  trackingCKF with properties:

                          State: [7x1 double]
                StateCovariance: [7x7 double]

             StateTransitionFcn: @constturn
                   ProcessNoise: [4x4 double]
        HasAdditiveProcessNoise: 0

                 MeasurementFcn: @ctmeas
               MeasurementNoise: [3x3 double]
    HasAdditiveMeasurementNoise: 1

                EnableSmoothing: 0

Проверяйте значения состояния и шума измерения. Проверьте что состояние фильтра, ckf.State, имеет те же компоненты положения как измерение обнаружения, detection.Measurement.

ckf.State
ans = 7×1

     1
     0
     3
     0
     0
     0
     0

Проверьте что шум измерения фильтра, ckf.MeasurementNoise, совпадает с detection.MeasurementNoise значения.

ckf.MeasurementNoise
ans = 3×3

    1.0000    0.2000         0
    0.2000    2.0000         0
         0         0    1.0000

Создайте постоянную угловую скорость вращения, отслеживающую объект Фильтра Калмана кубатуры, trackingCKF, из первоначального отчета обнаружения. Отчет обнаружения сделан из начального 3-D измерения положения состояния Фильтра Калмана в сферических координатах. Можно получить 3-D измерение положения с помощью постоянной функции измерения угловой скорости вращения, ctmeas.

Этот пример использует координаты, az = 30, e1 = 5, r = 100, rr = 4 и шум измерения diag([2.5, 2.5, 0.5, 1].^2).

meas = [30;5;100;4];
measNoise = diag([2.5, 2.5, 0.5, 1].^2);

Используйте MeasurementParameters свойство detection объект задать систему координат. Если не заданный, поля MeasurementParameters значения по умолчанию использования struct. В этом примере положение датчика, скорость датчика, ориентация, вертикальное изменение и флаги уровня области значений являются значением по умолчанию.

measParams = struct('Frame','spherical');
detection = objectDetection(0,meas,'MeasurementNoise',measNoise,...
    'MeasurementParameters',measParams) 
detection = 
  objectDetection with properties:

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

Используйте initctckf создать trackingCKF фильтр инициализируется в обеспеченном положении и использовании шума измерения, заданного выше.

ckf = initctckf(detection)
ckf = 
  trackingCKF with properties:

                          State: [7x1 double]
                StateCovariance: [7x7 double]

             StateTransitionFcn: @constturn
                   ProcessNoise: [4x4 double]
        HasAdditiveProcessNoise: 0

                 MeasurementFcn: @ctmeas
               MeasurementNoise: [4x4 double]
    HasAdditiveMeasurementNoise: 1

                EnableSmoothing: 0

Проверьте, что состояние фильтра производит то же измерение как выше.

meas2 = ctmeas(ckf.State, measParams)
meas2 = 4×1

   30.0000
    5.0000
  100.0000
    4.0000

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

свернуть все

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

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

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

свернуть все

Постоянный Фильтр Калмана кубатуры угловой скорости вращения для объектного отслеживания, возвращенного как trackingCKF объект.

Алгоритмы

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

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

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

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

Введенный в R2018b
Для просмотра документации необходимо авторизоваться на сайте