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');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Target State, Corners.

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

свернуть все

Текущая прямоугольная цель утверждает в виде 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