ctrectcorners

Угловые измерения постоянной угловой скорости вращения прямоугольная цель

Описание

zCorners = ctrectcorners(states) возвращает положения углов для постоянной угловой скорости вращения прямоугольные цели в прямоугольной системе координат.

пример

zCorners = ctrectcorners(states,sensorParameters) задает параметры датчика, который измеряет углы прямоугольных целей.

Примеры

свернуть все

Задайте систему координат датчика путем определения sensorParameters входной параметр.

sensorPosition = [-5;10;0];
sensorOrientation = rotmat(quaternion([30 0 0],'eulerd','ZYX','frame'),'frame');
sensorParams = struct('Frame','Rectangular', ...
    'OriginPosition',sensorPosition,...
    'Orientation',sensorOrientation);

Задайте постоянное состояние угловой скорости вращения для прямоугольной цели.

state = [10;5;1.6;30;0.5;4.7;1.8];

Вычислите угловые положения в системе координат датчика.

corners = ctrectcorners(state,sensorParams);

Настройте среду визуализации с помощью theaterPlot.

% Create a theater plot.
tp = theaterPlot;
% Plot the state using a track plotter.
statePlotter = trackPlotter(tp,'DisplayName','Target State');
% Plot the corners using a detection plotter.
cornerPlotter = detectionPlotter(tp,'DisplayName','Corners');

Вычислите входные параметры и график.

targetPos = [state(1) state(2) 0];
targetOrientation = rotmat(quaternion([state(4) 0 0],'eulerd','ZYX','frame'),'frame');
targetDims = struct('Length',state(6),...
    'Width',state(7),...
    'Height',5,...
    'OriginOffset',[0 0 0]);

cornerPosGlobal = sensorOrientation*corners(:,:) + sensorPosition;
statePlotter.plotTrack(targetPos,targetDims,targetOrientation);
cornerPlotter.plotDetection(cornerPosGlobal');

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

свернуть все

Текущие прямоугольные целевые состояния, заданные как 7 N матрицей с действительным знаком, где N является количеством состояний. Семь размерных прямоугольных состояний заданы как [x; y; s; θ; ω; L; W. Значение этих переменных и их модулей:

ПеременнаяЗначение Модуль
x

Положение прямоугольника центрируется в направлении x

m
y

Положение прямоугольника центрируется в направлении y

m
s

Скорость в направляющемся направлении

m/s
θ

Угол ориентации прямоугольника относительно направления x

градус
ω

Угловая скорость вращения

degree/s
L

Длина прямоугольника

m
W

Ширина прямоугольника

m

Пример: [1;2;2;30;1;4.7;1.8]

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

Параметры для датчика преобразовывают функцию, возвращенную как структура или массив структур. Если только необходимо преобразовать состояние однажды, задайте его как структуру. Если необходимо преобразовать времена n состояния, задайте его как n-by-1 массив структур. Например, чтобы преобразовать состояние из сценария структурируют к системе координат датчика, обычно необходимо сначала преобразовывать состояние из сценария прямоугольная система координат на платформу прямоугольная система координат, и затем преобразовывать состояние с платформы прямоугольная система координат к датчику сферическая система координат.

Поля структуры:

Поле Описание
Frame

Тип системы координат координаты нижестоящего элемента, заданный как 'Rectangular' или 'Spherical'.

OriginPosition

Дочерняя позиция системы координат выражена в родительской системе координат, заданной как вектор 3 на 1.

OriginVelocity

Дочерняя скорость системы координат выражается в родительской системе координат, заданной как вектор 3 на 1.

Orientation

Относительная ориентация между системами координат, заданными как 3х3 матрица вращения. Если IsParentToChild свойство установлено в false, затем задайте Orientation как вращение от дочерней системы координат до родительской системы координат. Если IsParentToChild свойство установлено в true, затем задайте Orientation как вращение от родительской системы координат до дочерней системы координат.

IsParentToChild

Отметьте, чтобы указать на направление вращения между родительской и дочерней системой координат, заданной как true или false. Значением по умолчанию является false. См. описание Orientation поле для деталей.

HasAzimuth

Указывает, содержат ли выходные параметры компоненты азимута, заданные как true или false.

HasElevation

Указывает, содержат ли выходные параметры компоненты вертикального изменения, заданные как true или false.

HasRange

Указывает, содержат ли выходные параметры компоненты области значений, заданные как true или false.

HasVelocity

Указывает, содержат ли выходные параметры скоростные компоненты, заданные как true или false.

Обратите внимание на то, что здесь система координат сценария является родительской системой координат системы координат платформы, и система координат платформы является родительской системой координат системы координат датчика.

Когда frame 'Rectangular', HasVelocity определяет, возвращено ли измерение в форме [x; y; z; v x; v y; v z] или [x; y; z.

Когда frame 'spherical', возвращенные измерения находятся в порядке [азимут, вертикальное изменение, область значений, уровень области значений]. Элементы возвращенных измерений определяются:

  • HasAzimuth — Определяет, содержит ли выведенный измерение азимута.

  • HasElevation — Определяет, содержит ли выведенный измерение вертикального изменения.

  • HasRange — Определяет, содержит ли выведенный измерение области значений.

  • HasVelocity — Определяет, содержит ли выведенный измерение уровня области значений при условии, что HasRange 'true'. Если HasRange 'false', возвращенное измерение не содержит уровень области значений (даже при том, что HasVelocity 'true').

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

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

свернуть все

Состояния углов, возвращенных как M с действительным знаком-by-N-by-4 массив. Каждая страница (M-by-N матрица) массива соответствует одному углу для всех состояний, данных во входе состояний. N является количеством состояний. M является размерностью выхода, заданного sensorParameters входной параметр. Если незаданный, значение по умолчанию M равняется трем, которые соответствуют 3-D Декартовым координатам положения.

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

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

Введенный в R2018b