exponenta event banner

radarScenarioRecording

Обратная запись сценария РЛС

Описание

Используйте radarScenarioRecording объект для регистрации радиолокационного сценария.

Создание

Можно создать radarScenarioRecording объект следующими способами:

  • Создание записи radarScenario с помощью record и указывая «»RecordingFormatаргумент «имя-значение» как 'Recording'.

  • Создайте запись из предварительно записанных данных сценария радара с помощью radarScenarioRecording функция, описанная здесь.

Описание

пример

recording = radarScenarioRecording(recordedData) создает radarScenarioRecording с использованием записанных данных. recordedData задает значение свойства TranslationData.

recording = radarScenarioRecording(recordedData,Name,Value) задает одно или оба свойства CurrentTime и CurrentStep, используя аргументы «имя-значение». Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Записанные данные, хранящиеся в объекте записи, заданном как структура. Это свойство можно задать только при создании объекта. Поля структуры совпадают с полями выходных данных record функции radarScenario объект.

Временная метка последних считанных данных, заданная как неотрицательный скаляр. При вызове read функция на объекте, функция считывает записанный набор данных, который SimulationTime больше, чем CurrentTime.

Индекс шага последних считанных данных, указанный как неотрицательное целое число. При вызове read функция на объекте считывает набор данных с индексом следующего шага.

Функции объекта

isDoneУказывает окончание регистрации сценария РЛС
readСчитывание следующего шага из записи сценария РЛС
resetВозврат к началу регистрации сценария РЛС

Примеры

свернуть все

Загрузка предварительно записанных данных из сценария радара. Данные сохраняются как структура с именем переменной 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

См. также

|

Представлен в R2021a