exponenta event banner

прогресс

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

Описание

пример

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