emissionsInBody

Преобразуйте эмиссию к системе координат тела платформы

Описание

embody = emissionsInBody(emscene,bodyframe) преобразует эмиссию, emscene, ссылаемый к сценарию координирует в эмиссию, embody, ссылаемый к координатам тела платформы. bodyframe задает положение, скорость и ориентацию тела платформы.

Примеры

свернуть все

Преобразуйте радиолокационное излучение от координат сценария до системы координат тела.

Задайте радиолокационное излучение относительно системы координат сценария.

emScene = radarEmission('PlatformID',1,'EmitterIndex',1, ...
    'OriginPosition',[0 0 0])

Задайте положение, скорость и ориентацию, тела относительно системы координат сценария.

bodyFrame = struct( ...
    'Position',[10 0 0], ...
    'Velocity',[5 5 0], ...
    'Orientation',quaternion([45 0 0],'eulerd','zyx','frame'));

Преобразуйте эмиссию в систему координат тела.

emBody = emissionsInBody(emScene,bodyFrame)

Преобразуйте эмиссию гидролокатора координат сценария в координаты тела. Используйте trackingScenario к заданному движение тела и использования sonarEmitter создать эмиссию.

Настройте сценарий отслеживания.

scene = trackingScenario;

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

emitter = sonarEmitter(1,'No scanning');

Смонтируйте эмиттер на платформе в сценарии на 100 метров ниже уровня моря.

platTx = platform(scene,'Emitters',emitter);
platTx.Trajectory.Position = [10 0 100];

Создайте другую платформу в сценарии.

platRx = platform(scene);
platRx.Trajectory.Position = [100 0 100];
platRx.Trajectory.Orientation = quaternion([45 0 0],'eulerd', ...
    'zyx','frame');

Испустите сигнал. Испускаемый сигнал находится в системе координат сценария.

emScene = emit(platTx,scene.SimulationTime)
emScene = 1x1 cell array
    {1x1 sonarEmission}

Распространите эмиссию через подводный канал.

emPropScene = underwaterChannel(emScene,scene.Platforms)
emPropScene=2×1 cell
    {1x1 sonarEmission}
    {1x1 sonarEmission}

Преобразуйте эмиссию в систему координат тела второй платформы.

emBodyRx = emissionsInBody(emPropScene, platRx);
disp(emBodyRx(1))
    [1x1 sonarEmission]

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

свернуть все

Эмиссия в координатах сценария, заданных как массив ячеек radarEmission или sonarEmission объекты эмиссии.

Система координат тела, заданная как структура или Platform объект. Можно использовать Platform возразите, потому что это содержит необходимую информацию. Структура системы координат тела должна содержать, по крайней мере, эти поля:

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

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

Velocity

Скорость тела в координатах сценария, заданных как с действительным знаком 1 3 вектор. Модули исчисляются в метрах в секунду. Значением по умолчанию является [0 0 0].

Orientation

Ориентация тела относительно сценария координирует систему координат, заданную как скалярный кватернион или 3х3 матрица вращения. Ориентация задает вращение системы координат от системы координат сценария до системы координат тела. Модули являются безразмерными. Значением по умолчанию является quaternion(1,0,0,0) или, эквивалентно, eye(3).

Поскольку поля в структуре системы координат тела являются подмножеством полей в структуре платформы, можно использовать структуру платформы выход от platformPoses метод trackingScenario как вход bodyframe.

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

свернуть все

Эмиссия в координатах тела, возвращенных как массив ячеек radarEmission и sonarEmission объекты эмиссии.

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

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

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

Функции

Объекты

Системные объекты

Введенный в R2018b