cameasjac

Якобиан измерения функционирует для движения постоянного ускорения

Синтаксис

measurementjac = cameasjac(state)
measurementjac = cameasjac(state,frame)
measurementjac = cameasjac(state,frame,sensorpos)
measurementjac = cameasjac(state,frame,sensorpos,sensorvel)
measurementjac = cameasjac(state,frame,sensorpos,sensorvel,laxes)
measurementjac = cameasjac(state,measurementParameters)

Описание

пример

measurementjac = cameasjac(state) возвращает якобиан измерения, для модели движения Фильтра Калмана постоянного ускорения в прямоугольных координатах. Аргумент state задает текущее состояние фильтра.

пример

measurementjac = cameasjac(state,frame) также задает систему координат измерения, frame.

пример

measurementjac = cameasjac(state,frame,sensorpos) также задает положение датчика, sensorpos.

measurementjac = cameasjac(state,frame,sensorpos,sensorvel) также задает скорость датчика, sensorvel.

measurementjac = cameasjac(state,frame,sensorpos,sensorvel,laxes) также задает локальную ориентацию осей датчика, laxes.

пример

measurementjac = cameasjac(state,measurementParameters) задает параметры измерения, measurementParameters.

Примеры

свернуть все

Задайте состояние объекта в 2D движении постоянного ускорения. Состояние является положением, скоростью и ускорением в обеих размерностях. Создайте якобиан измерения в прямоугольных координатах.

state = [1,10,3,2,20,5].';
jacobian = cameasjac(state)
jacobian = 3×6

     1     0     0     0     0     0
     0     0     0     1     0     0
     0     0     0     0     0     0

Задайте состояние объекта в 2D движении постоянного ускорения. Состояние является положением, скоростью и ускорением в обеих размерностях. Вычислите якобиан измерения в сферических координатах.

state = [1;10;3;2;20;5];
measurementjac = cameasjac(state,'spherical')
measurementjac = 4×6

  -22.9183         0         0   11.4592         0         0
         0         0         0         0         0         0
    0.4472         0         0    0.8944         0         0
    0.0000    0.4472         0    0.0000    0.8944         0

Задайте состояние объекта в 2D движении постоянного ускорения. Состояние является положением, скоростью и ускорением в обеих размерностях. Вычислите якобиан измерения в сферических координатах относительно источника в (5;-20; 0) метры.

state = [1,10,3,2,20,5].';
sensorpos = [5,-20,0].';
measurementjac = cameasjac(state,'spherical',sensorpos)
measurementjac = 4×6

   -2.5210         0         0   -0.4584         0         0
         0         0         0         0         0         0
   -0.1789         0         0    0.9839         0         0
    0.5903   -0.1789         0    0.1073    0.9839         0

Задайте состояние объекта в 2D движении постоянного ускорения. Состояние является положением, скоростью и ускорением в обеих размерностях. Вычислите якобиан измерения в сферических координатах относительно источника в (5;-20; 0) метры.

state2d = [1,10,3,2,20,5].';
sensorpos = [5,-20,0].';
frame = 'spherical';
sensorvel = [0;8;0];
laxes = eye(3);
measurementjac = cameasjac(state2d,frame,sensorpos,sensorvel,laxes)
measurementjac = 4×6

   -2.5210         0         0   -0.4584         0         0
         0         0         0         0         0         0
   -0.1789         0         0    0.9839         0         0
    0.5274   -0.1789         0    0.0959    0.9839         0

Поместите параметры измерения в структуру и используйте альтернативный синтаксис.

measparm = struct('Frame',frame,'OriginPosition',sensorpos,'OriginVelocity',sensorvel, ...
    'Orientation',laxes);
measurementjac = cameasjac(state2d,measparm)
measurementjac = 4×6

   -2.5210         0         0   -0.4584         0         0
         0         0         0         0         0         0
   -0.1789         0         0    0.9839         0         0
    0.5274   -0.1789         0    0.0959    0.9839         0

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

свернуть все

Вектор состояния фильтра Калмана для движения постоянного ускорения, заданного как 3N с действительным знаком - вектор элемента. N является количеством пространственных степеней свободы движения. Для каждой пространственной степени движения вектор состояния принимает форму, показанную в этой таблице.

Пространственные размерностиСтруктура вектора состояния
1D[x;vx;ax]
2D[x;vx;ax;y;vy;ay]
3-D[x;vx;ax;y;vy;ay;z;vz;az]

Например, x представляет x - координата, vx представляет скорость в x - направление, и ax представляет ускорение в x - направление. Если модель движения находится на одномерном пробеле, y - и z - оси приняты, чтобы быть нулем. Если модель движения находится в двумерном пространстве, значениях вдоль z - ось принята, чтобы быть нулем. Координаты положения исчисляются в метрах. Скоростные координаты находятся в метрах/секунда. Ускоряющие координаты находятся в meters/second2.

Пример: [5;0.1;0.01;0;-0.2;-0.01;-3;0.05;0]

Типы данных: double

Кадр измерения, заданный как 'rectangular' или 'spherical'. Когда кадром является 'rectangular', измерение состоит из x, y и Декартовых координат z отслеживаемого объекта. Когда задано как 'spherical', измерение состоит из азимута, повышения, области значений и уровня области значений отслеживаемого объекта.

Типы данных: char

Положение датчика относительно глобальной системы координат, заданной как вектор-столбец 3 на 1 с действительным знаком. Модули исчисляются в метрах.

Типы данных: double

Скорость датчика относительно глобальной системы координат, заданной как вектор-столбец 3 на 1 с действительным знаком. Модули находятся в метрах/секунда.

Типы данных: double

Локальные оси координат датчика, заданные как 3х3 ортогональная матрица. Каждый столбец задает направление локального x - y - и z - оси, соответственно, относительно глобальной системы координат.

Типы данных: double

Параметры измерения, заданные как структура. Поля структуры:

measurementParameters struct

ПараметрОпределениеЗначение по умолчанию
OriginPositionПоложение датчика относительно глобальной системы координат, заданной как вектор-столбец 3 на 1 с действительным знаком. Модули исчисляются в метрах.[0;0;0]
OriginVelocityСкорость датчика относительно глобальной системы координат, заданной как вектор-столбец 3 на 1 с действительным знаком. Модули находятся в m/s.[0;0;0]
OrientationЛокальные оси координат датчика, заданные как 3х3 ортогональная матрица. Каждый столбец задает направление локального x - y - и z - оси, соответственно, относительно глобальной системы координат.eye(3)
HasVelocityУказывает, содержат ли измерения скорость или компоненты уровня области значений, заданные как true или false.false, когда аргументом frame является 'rectangular' и true, когда аргументом frame является 'spherical'
HasElevationУказывает, содержат ли измерения компоненты повышения, заданные как true или false.true

Типы данных: struct

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

свернуть все

Якобиан измерения, заданный как 3 с действительным знаком N или 4 N матрицей. N является размерностью вектора состояния. Интерпретация строк и столбцов зависит от аргумента frame, как описано в этой таблице.

КадрЯкобиан измерения
'rectangular'Якобиан измерений [x;y;z] относительно вектора состояния. Вектор измерения относительно системы локальной координаты. Координаты исчисляются в метрах.
'spherical'Якобиан вектора измерения [az;el;r;rr] относительно вектора состояния. Компоненты вектора измерения задают угол азимута, угол повышения, область значений и уровень области значений объекта относительно локальной системы координат датчика. Угловые модули в градусах. Модули области значений исчисляются в метрах и располагаются, модули уровня находятся в метрах/секунда.

Больше о

свернуть все

Азимут и угловые определения повышения

Задайте азимут и углы повышения, используемые в Sensor Fusion and Tracking Toolbox™.

azimuth angle вектора является углом между x - ось и ее ортогональной проекцией на плоскость xy. Угол положителен в движении от оси x к оси y. Углы азимута находятся между –180 и 180 градусами. elevation angle является углом между вектором и его ортогональной проекцией на xy - плоскость. Угол положителен при движении к положительному z - ось от плоскости xy.

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

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

Введенный в R2018b