trackingScenario

Создайте сценарий отслеживания

Описание

trackingScenario создает объект сценария отслеживания. Сценарий отслеживания симулирует 3-D арену, содержащую несколько платформ. Платформы представляют что-либо, что вы хотите симулировать, такие как самолет, наземные транспортные средства или поставки. Некоторые платформы несут датчики, такие как радар, гидролокатор или инфракрасное излучение. Другие платформы действуют как источники сигналов или отражают сигналы. Платформы могут также включать стационарные препятствия, которые могут влиять на движение других платформ. Платформы могут быть смоделированы как точки или кубоиды путем определения 'Dimension' свойство при вызове platform. Платформы могут иметь зависимые аспектом свойства включая радарное поперечное сечение или целевую силу гидролокатора. Можно заполнить сценарий отслеживания путем вызова platform метод для каждой платформы вы хотите добавить. Платформами является Platform объекты. Можно создать траектории для любой платформы с помощью kinematicTrajectory или waypointTrajectory Системные объекты. После создания сценария запустите симуляцию путем вызова advance объектная функция.

Создание

sc = trackingScenario создает пустой сценарий отслеживания со значениями свойств по умолчанию.

sc = trackingScenario(Name,Value) конфигурирует trackingScenario объект со свойствами с помощью одного или нескольких Name,Value парные аргументы. Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Любые незаданные свойства берут значения по умолчанию.

Свойства

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

Время остановки симуляции, заданной как положительная скалярная величина. Симуляция останавливается, когда любое из этих условий соблюдают:

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

  • Любая платформа достигает конца своей траектории, и вы задали платформу Motion свойство с помощью waypoints, waypointTrajectory.

Модули находятся в секундах.

Пример: 60.0

Типы данных: double

Это свойство доступно только для чтения.

Текущее время симуляции, заданной как положительная скалярная величина. Чтобы сбросить время симуляции, чтобы обнулить и перезапустить симуляцию, вызовите restart метод. Модули находятся в секундах.

Типы данных: double

Частота обновлений симуляции, заданных как положительная скалярная величина. Это - уровень, на котором можно обеспечить последовательные обновления симуляции сценария. Модули находятся в Гц.

Пример: 2.0

Типы данных: double

Это свойство доступно только для чтения.

Состояние запуска симуляции, заданной как true или false. Если симуляция запускается, IsRunning true. Если симуляция остановилась, IsRunning false. Симуляция останавливается, когда любое из этих условий соблюдают:

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

  • Любая платформа достигает конца своей траектории, и вы задали ту платформу Motion стратегия с waypoints использование waypointTrajectory Система object™.

Модули находятся в секундах.

Типы данных: логический

Это свойство доступно только для чтения.

Платформы в сценарии, возвращенном как массив ячеек или массив ячеек Platform объекты. Чтобы добавить платформу в сценарий, используйте platform объектная функция.

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

advanceУсовершенствуйте симуляцию сценария отслеживания одним временным шагом
platformДобавьте платформу в отслеживание сценария
platformPosesПоложения, скорости и ориентации всех платформ в отслеживании сценария
platformProfilesПрофили платформ в отслеживании сценария
restartПерезапустите симуляцию сценария отслеживания
recordЗапустите сценарий отслеживания и запишите состояния платформы

Примеры

свернуть все

Создайте сценарий отслеживания с двумя платформами, которые следуют за различными траекториями.

sc = trackingScenario('UpdateRate',100.0,'StopTime',1.2);

Создайте две платформы.

platfm1 = platform(sc);
platfm2 = platform(sc);

Платформа 1 следует за круговым путем радиуса 10 м в течение одной секунды. Это выполняется путем размещения waypoints в круговой форме, гарантирования, что первые и последние waypoint являются тем же самым.

wpts1 = [0 10 0; 10 0 0; 0 -10 0; -10 0 0; 0 10 0];
time1 = [0; 0.25; .5; .75; 1.0];
platfm1.Trajectory = waypointTrajectory(wpts1, time1);

Платформа 2 следует за прямым путем в течение одной секунды.

wpts2 = [-8 -8 0; 10 10 0];
time2 = [0; 1.0];
platfm2.Trajectory = waypointTrajectory(wpts2,time2);

Проверьте количество платформ в сценарии.

disp(sc.Platforms)
    [1x1 fusion.scenario.Platform]    [1x1 fusion.scenario.Platform]

Запустите симуляцию и постройте текущее положение каждой платформы. Используйте анимированную линию, чтобы построить положение каждой платформы

figure
grid
axis equal
axis([-12 12 -12 12])
line1 = animatedline('DisplayName','Trajectory 1','Color','b','Marker','.');
line2 = animatedline('DisplayName','Trajectory 2','Color','r','Marker','.');
title('Trajectories')
p1 = pose(platfm1);
p2 = pose(platfm2);
addpoints(line1,p1.Position(1),p1.Position(2));
addpoints(line2,p2.Position(2),p2.Position(2));

while advance(sc)
    p1 = pose(platfm1);
    p2 = pose(platfm2);
    addpoints(line1,p1.Position(1),p1.Position(2));
    addpoints(line2,p2.Position(2),p2.Position(2));
    pause(0.1)
end

Постройте waypoints для обеих платформ.

hold on
plot(wpts1(:,1),wpts1(:,2),' ob')
text(wpts1(:,1),wpts1(:,2),"t = " + string(time1),'HorizontalAlignment','left','VerticalAlignment','bottom')
plot(wpts2(:,1),wpts2(:,2),' or')
text(wpts2(:,1),wpts2(:,2),"t = " + string(time2),'HorizontalAlignment','left','VerticalAlignment','bottom')
hold off

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

Системные объекты

Введенный в R2018b