exponenta event banner

прогресс

Предварительное моделирование сценария отслеживания на один шаг

Синтаксис

Описание

пример

isrunning = advance(sc) предварительное моделирование сценария слежения, scи возвращает рабочее состояние сценария. Настройте предварительное поведение, используя свойства UpdateRate и InitialAdvance trackingScenario объект.

  • Когда UpdateRate определяется как положительный скаляр F, сценарий продвигается на временном шаге 1/F. Более того, если InitialAdvance свойство указано как 'Zero', сценарий начинается в момент времени 0. Если InitialAdvance свойство указано как 'UpdateInterval', то сценарий начинается в момент времени 1/F.

  • Когда UpdateRate свойство указано как 0, сценарий развивается исходя из необходимости обновления датчиков или излучателей, устанавливаемых на платформах в сценарии. В этом случае начальное время всегда является временем 0. Кроме того, необходимо запустить работу датчиков или излучателей, используя хотя бы одну из этих опций между advance вызовы:

    • Непосредственный запуск датчиков или излучателей

    • Использование emit, detect, или lidarDetect функция сценария отслеживания для запуска датчиков или излучателей в сценарии

    • Использование emit, detect, или lidarDetect функционирование платформы с соответствующими датчиками или излучателями

Примеры

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

Создать сценарий отслеживания и установить его InitialAdvance свойство для UpdateInterval.

scene = trackingScenario('UpdateRate',10);
scene.InitialAdvance = 'UpdateInterval';

Создайте платформу и определите ее траекторию. Установите датчик на платформу.

plat = platform(scene);
traj = waypointTrajectory('Waypoints', [0 1 0; 1 0 0; 0 -1 0; -1 0 0; 0 1 0], ...
    'TimeOfArrival', [0; 0.25; .5; .75; 1.0]);
sensor = fusionRadarSensor(1,'UpdateRate',20)
sensor = 
  fusionRadarSensor with properties:

              SensorIndex: 1
               UpdateRate: 20
            DetectionMode: 'Monostatic'
                 ScanMode: 'Mechanical'
    InterferenceInputPort: 0
       EmissionsInputPort: 0

         MountingLocation: [0 0 0]
           MountingAngles: [0 0 0]

              FieldOfView: [1 5]
              RangeLimits: [0 100000]

     DetectionProbability: 0.9000
           FalseAlarmRate: 1.0000e-06
           ReferenceRange: 100000

       TargetReportFormat: 'Clustered detections'

  Show all properties

plat.Trajectory = traj;
plat.Sensors = sensor;

Отображение состояния моделирования перед выполнением сценария.

fprintf('Time = %f, Status is %s\n',...
    scene.SimulationTime, scene.SimulationStatus);
Time = 0.000000, Status is NotStarted

Продвигайте сценарий отслеживания рекурсивно.

while advance(scene)
    p = pose(plat);
    poses = platformPoses(scene);
    detections = sensor(poses,scene.SimulationTime);
    fprintf('Time = %f, Status is %s\n', ...
        scene.SimulationTime, scene.SimulationStatus);
end
Time = 0.100000, Status is InProgress
Time = 0.200000, Status is InProgress
Time = 0.300000, Status is InProgress
Time = 0.400000, Status is InProgress
Time = 0.500000, Status is InProgress
Time = 0.600000, Status is InProgress
Time = 0.700000, Status is InProgress
Time = 0.800000, Status is InProgress
Time = 0.900000, Status is InProgress
Time = 1.000000, Status is InProgress

Отображение состояния моделирования после завершения моделирования.

fprintf('Time = %f, Status is %s\n', ...
    scene.SimulationTime, scene.SimulationStatus);
Time = 1.100000, Status is Completed

Входные аргументы

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

Сценарий отслеживания, указанный как trackingScenario объект.

Выходные аргументы

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

Состояние выполнения моделирования, возвращенное как 0 или 1. Если isrunning является 1, моделирование выполняется. Если isrunning является 0, моделирование остановлено. Моделирование останавливается при выполнении одного из следующих условий:

  • Достигнуто время остановки.

  • Любая платформа достигает конца своей траектории.

Единицы измерения в секундах.

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