advance

Продвигайте симуляцию радиолокационного сценария на один временной шаг

Описание

пример

isRunning = advance(scenario) совершенствует симуляцию радиолокационного сценария scenario на один временной шаг и возвращает текущее состояние сценария. Настройте поведение усовершенствование с помощью свойств UpdateRate и InitialAdvance radarScenario объект.

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

  • Когда UpdateRate свойство 0, симуляция переходит к следующему запланированному времени дискретизации любых установленных датчиков или излучателей. Например, если в сценарии два датчика со частотами обновления 2 Гц и 5 Гц, то первые семь обновлений симуляции находятся на 0, 0,2, 0,4, 0,5, 0,6, 0,8 и 1,0 секундах соответственно.

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

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

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

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

Примеры

свернуть все

Создайте новый радиолокационный сценарий.

rs = radarScenario;

Создайте платформу, которая будет следовать по круговому пути радиусом 10 м в течение одной секунды. Это достигается путем размещения путевых точек в круглой форме, гарантируя, что первая и последняя путевые точки совпадают.

plat = platform(rs);
wpts = [0 10 0; 10 0 0; 0 -10 0; -10 0 0; 0 10 0];
time = [0; 0.25; .5; .75; 1.0];
plat.Trajectory = waypointTrajectory(wpts,time);

Выполните симуляцию, продвигаясь по одному временному шагу за раз. Отображение времени симуляции, положения и скорости платформы на каждом временном шаге.

while advance(rs)
    p = pose(plat);
    disp(strcat("Time = ",num2str(rs.SimulationTime)))
    disp(strcat("  Position = [",num2str(p.Position),"]"))
    disp(strcat("  Velocity = [",num2str(p.Velocity),"]"))
end
Time = 0
  Position = [0  10   0]
  Velocity = [62.8318 -1.88403e-05            0]
Time = 0.1
  Position = [5.8779      8.0902           0]
  Velocity = [50.832     -36.9316            0]
Time = 0.2
  Position = [9.5106      3.0902           0]
  Velocity = [19.4161     -59.7566            0]
Time = 0.3
  Position = [9.5106     -3.0902           0]
  Velocity = [-19.4161     -59.7567            0]
Time = 0.4
  Position = [5.8779     -8.0902           0]
  Velocity = [-50.832     -36.9316            0]
Time = 0.5
  Position = [0 -10   0]
  Velocity = [-62.8319  1.88181e-05            0]
Time = 0.6
  Position = [-5.8779     -8.0902           0]
  Velocity = [-50.832      36.9316            0]
Time = 0.7
  Position = [-9.5106     -3.0902           0]
  Velocity = [-19.4161      59.7566            0]
Time = 0.8
  Position = [-9.5106      3.0902           0]
  Velocity = [19.4161      59.7566            0]
Time = 0.9
  Position = [-5.8779      8.0902           0]
  Velocity = [50.832      36.9316            0]
Time = 1
  Position = [-7.10543e-15           10            0]
  Velocity = [62.8319 -1.88404e-05            0]

Входные параметры

свернуть все

Радиолокационный сценарий, заданный как radarScenario объект.

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

свернуть все

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

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

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

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

Введенный в R2021a