initctukf

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

Описание

пример

filter = initctukf(detection) создает и инициализирует постоянную угловую скорость вращения недушистый Кальман filter от информации, содержавшейся в detection отчет. Для получения дополнительной информации о сигма-точечном фильтре Калмана, смотрите trackingUKF.

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

Примеры

свернуть все

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

Создайте отчет обнаружения из начального 2D измерения, (-250,-40), положения объекта. Примите некоррелированый шум измерения.

Расширьте измерение к трем измерениям путем добавления z-компонента нуля.

detection = objectDetection(0,[-250;-40;0],'MeasurementNoise',2.0*eye(3), ...
    'SensorIndex',1,'ObjectClassID',1,'ObjectAttributes',{'Car',2});

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

filter = initctukf(detection)
filter = 
  trackingUKF with properties:

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

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

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

                          Alpha: 1.0000e-03
                           Beta: 2
                          Kappa: 0

                EnableSmoothing: 0

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

filter.State
ans = 7×1

  -250
     0
   -40
     0
     0
     0
     0

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

filter.StateCovariance
ans = 7×7

    2.0000         0         0         0         0         0         0
         0  100.0000         0         0         0         0         0
         0         0    2.0000         0         0         0         0
         0         0         0  100.0000         0         0         0
         0         0         0         0  100.0000         0         0
         0         0         0         0         0    2.0000         0
         0         0         0         0         0         0  100.0000

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

frame = 'spherical';
sensorpos = [25,-40,-10].';
sensorvel = [0;5;0];
laxes = eye(3);

Создайте структуру параметров измерения. Установите 'HasVelocity' и 'HasElevation' к false. Затем измерение состоит из азимута и области значений.

measparms = struct('Frame',frame,'OriginPosition',sensorpos, ...
    'OriginVelocity',sensorvel,'Orientation',laxes,'HasVelocity',false, ...
    'HasElevation',false);
meas = [45;1000];
measnoise = diag([3.0,2].^2);
detection = objectDetection(0,meas,'MeasurementNoise', ...
    measnoise,'MeasurementParameters',measparms)
detection = 
  objectDetection with properties:

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

filter = initctukf(detection);

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

disp(filter.State)
  732.1068
         0
  667.1068
         0
         0
  -10.0000
         0

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

свернуть все

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

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

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

свернуть все

Сигма-точечный фильтр Калмана, возвращенный как trackingUKF объект.

Алгоритмы

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

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

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

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

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

Функции

Объекты

Введенный в R2017a