Преобразуйте эмиссию к системе координат тела платформы
Преобразуйте радиолокационное излучение от координат сценария до системы координат тела.
Задайте радиолокационное излучение относительно системы координат сценария.
emScene = radarEmission('PlatformID',1,'EmitterIndex',1, ... 'OriginPosition',[0 0 0])
emScene = radarEmission with properties: PlatformID: 1 EmitterIndex: 1 OriginPosition: [0 0 0] OriginVelocity: [0 0 0] Orientation: [1x1 quaternion] FieldOfView: [180 180] CenterFrequency: 300000000 Bandwidth: 3000000 WaveformType: 0 ProcessingGain: 0 PropagationRange: 0 PropagationRangeRate: 0 EIRP: 0 RCS: 0
Задайте положение, скорость и ориентацию, тела относительно системы координат сценария.
bodyFrame = struct( ... 'Position',[10 0 0], ... 'Velocity',[5 5 0], ... 'Orientation',quaternion([45 0 0],'eulerd','zyx','frame'));
Преобразуйте эмиссию в систему координат тела.
emBody = emissionsInBody(emScene,bodyFrame)
emBody = radarEmission with properties: PlatformID: 1 EmitterIndex: 1 OriginPosition: [-7.0711 7.0711 0] OriginVelocity: [-7.0711 4.4409e-16 0] Orientation: [1x1 quaternion] FieldOfView: [180 180] CenterFrequency: 300000000 Bandwidth: 3000000 WaveformType: 0 ProcessingGain: 0 PropagationRange: 0 PropagationRangeRate: 0 EIRP: 0 RCS: 0
Преобразуйте эмиссию гидролокатора координат сценария в координаты тела. Используйте 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 array
{1x1 sonarEmission}
{1x1 sonarEmission}
Преобразуйте эмиссию в систему координат тела второй платформы.
emBodyRx = emissionsInBody(emPropScene, platRx); disp(emBodyRx(1))
{1x1 sonarEmission}
emscene
— Эмиссия в координатах сценарияЭмиссия в сценарии координирует в виде массива ячеек radarEmission
или sonarEmission
объекты эмиссии.
bodyframe
— Система координат тела Platform
объектСистема координат тела в виде структуры или Platform
объект. Можно использовать Platform
возразите, потому что это содержит необходимую информацию. Структура системы координат тела должна содержать, по крайней мере, эти поля:
Поле | Описание |
---|---|
Position | Положение тела в сценарии координирует в виде с действительным знаком 1 3 вектор. Это поле требуется. Нет никакого значения по умолчанию. Величины в метрах. |
Velocity | Скорость тела в сценарии координирует в виде с действительным знаком 1 3 вектор. Модули исчисляются в метрах в секунду. Значением по умолчанию является |
Orientation | Ориентация тела относительно сценария координирует систему координат в виде скалярного кватерниона или 3х3 матрицы вращения. Ориентация задает вращение системы координат от системы координат сценария до системы координат тела. Модули являются безразмерными. Значением по умолчанию является |
Поскольку поля в структуре системы координат тела являются подмножеством полей в структуре платформы, можно использовать структуру платформы выход от platformPoses
метод trackingScenario
как вход bodyframe
.
embody
— Эмиссия в координатах телаЭмиссия в координатах тела, возвращенных как массив ячеек radarEmission
и sonarEmission
объекты эмиссии.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.