trackingScenario

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

Описание

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

Создание

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

sc = trackingScenario(Name,Value) конфигурирует объект trackingScenario со свойствами с помощью одного или нескольких аргументов пары Name,Value. Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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)
    [1×1 fusion.scenario.Platform]    [1×1 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