radarScenarioRecording

Возвратите запись радарного сценария

Описание

Используйте radarScenarioRecording возразите, чтобы записать радарный сценарий.

Создание

Можно создать radarScenarioRecording объект этими способами:

  • Создайте запись radarScenario объект при помощи record функция и определение 'RecordingFormat'аргумент значения имени как 'Recording'.

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

Описание

пример

recording = radarScenarioRecording(recordedData) создает radarScenarioRecording объект с помощью зарегистрированных данных. recordedData аргумент устанавливает значение свойства RecordedData.

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

Свойства

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

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

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

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

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

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

Примеры

свернуть все

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

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

|

Введенный в R2021a