Считайте следующий шаг из записи радиолокационного сценария
[
возвращает один записанный набор данных во время симуляции, simTime
,poses
,detections
,sensorConfigs
,sensorPlatformIDs
,emissions
,emitterConfigs
,emitterPlatformIDs
] = read(recording
)simTime
, из записи радиолокационного сценария.
Загрузите предварительно записанные данные из радарного сценария. Данные сохраняются как struct с именем переменной recordedData
. Создайте radarScenarioRecording
объект, использующий записанные данные.
load recordedRadarScenarioData.mat
recording = radarScenarioRecording(recordedData);
Создайте график кинотеатра, чтобы отобразить записанные данные с помощью нескольких плоттеров.
tp = theaterPlot('AxesUnits',["km" "km" "km"], ... 'XLimits',[-50 50]*1e3,'YLimits',[-50 50]*1e3,'ZLimits',[-20 20]*1e3); to = platformPlotter(tp,'DisplayName','Tower','Marker','d'); pp = platformPlotter(tp,'DisplayName','Targets'); dp = detectionPlotter(tp,'DisplayName','Detections','MarkerFaceColor','black'); cp = coveragePlotter(tp,'DisplayName','Radar Beam'); coverage = struct('Index',1,'LookAngle',[0;-7],'FieldOfView',[1;10], ... 'ScanLimits',[0 365;-12 -2],'Range',100e3,'Position',[0;0;-15], ... 'Orientation',eye(3));
Запустите записанный сценарий и анимируйте результаты.
scanBuffer = {}; while ~isDone(recording) % Step the reader to read the next frame of data [simTime,poses,covcon,dets,senconfig] = read(recording); scanBuffer = [scanBuffer;dets]; %#ok<AGROW> plotPlatform(to,poses(1).Position); plotPlatform(pp,reshape([poses(2:4).Position]',3,[])'); plotCoverage(cp,covcon); if ~isempty(dets) plotDetection(dp,cell2mat(cellfun(@(c) c.Measurement(:)', scanBuffer, 'UniformOutput', false))); end % Clear the buffer when a 360 degree scan is complete if senconfig.IsScanDone scanBuffer = {}; dp.clearData; end end
recording
- Запись радиолокационного сценарияradarScenarioRecording
объектРадиолокационная запись сценария, заданная как radarScenarioRecording
объект.
simTime
- Время симуляцииВремя симуляции, возвращенное как неотрицательный скаляр.
poses
- Положения платформПоложения платформ, возвращенные как массив структур. Каждая структура имеет эти поля.
Область | Описание |
---|---|
PlatformID | Уникальный идентификатор для платформы, заданный как положительное целое число. Это обязательное поле без значения по умолчанию. |
ClassID | Пользовательское целое число, используемое для классификации типа целевого значения, заданное как неотрицательное целое число. Нуль зарезервирован для неклассифицированных типов платформ и является значением по умолчанию. |
Position | Положение цели в координатах сценария, заданное как реальный вектор-строка 1 на 3.
|
Velocity | Скорость платформы в координатах сценария, заданная как реальный вектор-строка 1 на 3. Модули - метры в секунду. Значение по умолчанию |
Acceleration | Ускорение платформы в координатах сценария, заданное как вектор-строка 1 на 3 в метрах в секунду за секунду. Значение по умолчанию |
Orientation | Ориентация платформы относительно локальной навигационной системы координат сценария, заданная как скалярный кватернион или матрица вращения 3 на 3. Ориентация определяет поворот системы координат локальной навигации к текущей системе координат тела платформы. Модули безразмерны. Значение по умолчанию |
AngularVelocity | Скорость вращения платформы в координатах сценария, заданная как действительный вектор 1 на 3. Величина вектора задает угловую скорость. Направление задает ось поворота по часовой стрелке. Модулями являются степени в секунду. Значение по умолчанию |
detections
- ОбнаружениеobjectDetection
объектыОбнаружения, возвращенные как массив ячеек objectDetection
объекты.
sensorConfigs
- строения датчикаДатчик строений, возвращенный как массив структур. Каждая структура имеет эти поля.
Область | Описание |
SensorIndex | Уникальный индекс датчика, возвращенный как положительное целое число. |
IsValidTime | Допустимое время обнаружения, возвращаемое как |
IsScanDone |
|
FieldOfView | Поле зрения датчика, возвращаемое как вектор 2 на 1 положительных вещественных значений, [ |
MeasurementParameters | Параметры измерения датчика, возвращенные как массив структур, содержащих преобразования координатной системы координат, необходимые для преобразования положений и скоростей в системе координат верхнего уровня в систему координат тока. |
sensorPlatformIDs
- Идентификаторы платформ датчиковИдентификаторы платформ датчиков, возвращенные как массив неотрицательных целых чисел.
emissions
- ВыбросыВыбросы, возвращенные как массив ячеек объектов эмиссии, таких как radarEmission
объекты.
emitterConfigs
- строения эмиттераСтроения эмиттера, возвращенные как массив структур. Каждая структура имеет эти поля.
Область | Описание |
EmitterIndex | Уникальный индекс эмиттера, возвращенный как положительное целое число. |
IsValidTime | Допустимое время излучения, возвращаемое следующим |
IsScanDone | Завершил ли эмиттер скан, возвращается следующим |
FieldOfView | Поле зрения эмиттера, возвращаемое как двухэлементный вектор [азимут; повышение] в степенях. |
MeasurementParameters | Параметры измерения Эмиттера, возвращенные как массив структур, содержащих преобразования координатной системы координат, необходимые для преобразования положений и скоростей в системе координат верхнего уровня в систему координат тока. |
emitterPlatformIDs
- Идентификаторы платформы излучателейИдентификаторы платформы эмиттеров, возвращенные как массив неотрицательных целых чисел.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.