Считывание следующего шага из записи сценария РЛС
[ возвращает один записанный набор данных во время моделирования, simTime,poses,detections,sensorConfigs,sensorPlatformIDs,emissions,emitterConfigs,emitterPlatformIDs] = read(recording)simTime, из записи сценария радара.
Загрузка предварительно записанных данных из сценария радара. Данные сохраняются как структура с именем переменной 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.