exponenta event banner

radarScenario

Создать сценарий РЛС

Описание

radarScenario создает объект сценария радара. Сценарий радара моделирует 3-D среду, содержащую несколько платформ. Платформы представляют объекты, которые требуется моделировать, такие как самолеты, наземные транспортные средства или суда. На некоторых платформах установлены датчики, такие как радар, гидролокатор или инфракрасный. В качестве источника сигналов или отражателя сигналов выступают другие платформы.

Заполните сценарий радара вызовом platform функция для каждой платформы Вы хотите добавить. Вы можете смоделировать платформы как пункты или cuboids, определив 'Dimension' при вызове platform функция. Платформы имеют сигнатуры со свойствами, специфичными для типа датчика, такими как радиолокационное сечение для радиолокационных датчиков. Можно создать траектории для любой платформы с помощью kinematicTrajectory, waypointTrajectory, или geoTrajectory object™ системы.

После добавления всех необходимых платформ можно моделировать сценарий с помощью пошаговых временных шагов с помощью advance функция в цикле. Вы можете запустить моделирование все сразу с помощью record функция.

Создание

Описание

scene = radarScenario создает пустой сценарий радара со значениями свойств по умолчанию. Можно указать траектории платформы в сценарии как декартовы состояния, используя kinematicTrajectory или waypointTrajectory Системный объект.

scene = radarScenario('IsEarthCentered',true) создает пустой сценарий радара с центром Земли и устанавливает свойство IsEarthCentered как true. Можно указать траектории платформы в сценарии как геодезические состояния, используя geoTrajectory Системный объект.

пример

scene = radarScenario(Name,Value) конфигурирует свойства radarScenario с использованием одного или нескольких аргументов «имя-значение». Name является именем свойства и Value - соответствующее значение. Можно указать несколько аргументов «имя-значение» в любом порядке. Все неопределенные свойства принимают значения по умолчанию.

Свойства

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

Включить опорную рамку и траектории с центром Земли, заданную как логическая 0 (false) или 1 (true).

  • Если указано как 0 (false), то необходимо определить траектории платформ как декартовы состояния с помощью kinematicTrajectory или waypointTrajectory Системный объект.

  • Если указано как 1 (true), то необходимо определить траектории платформ как геодезические состояния с помощью geoTrajectory Системный объект.

Можно указать IsEarthCentered свойство только при создании сценария радара.

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

Время остановки моделирования, указанное как положительный скаляр в секундах. Моделирование останавливается при выполнении одного из следующих условий:

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

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

Пример: 60.0

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

Частота обновлений моделирования, заданная как неотрицательный скаляр в герцах.

  • Если указан как положительный скаляр, сценарий продвигается с временным шагом 1/F, где F - значение UpdateRate собственность.

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

Пример: 2.0

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

Первоначальный аванс при вызове advance функция, указанная как одно из этих значений.

  • Zero - Моделирование сценария начинается в момент времени. 0 в первом вызове advance функция.

  • UpdateInterval - Моделирование сценария начинается в момент времени 1/F, где F - значение ненулевого значения. UpdateRate собственность. Если UpdateRate свойство указано как 0, то моделирование сценария игнорирует InitialAdvance свойство и начинается в момент времени 0.

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

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

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

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

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

Состояние моделирования, указанное как одно из этих значений.

  • NotStarted - Когда advance функция не использовалась в сценарии РЛС.

  • InProgress - Когда advance функция была использована в сценарии радара по крайней мере один раз, и сценарий не достиг Completed статус.

  • Completed - Когда сценарий достигнет времени остановки, указанного StopTime собственность или любое Platform объект в сценарии достигает конца своей траектории.

Можно перезапустить моделирование сценария с помощью restart объектная функция.

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

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

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

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

platformДобавить платформу в сценарий РЛС
advanceПредварительное моделирование сценария РЛС на один шаг
restartЗапуск моделирования сценария РЛС
recordЗапись имитации сценария РЛС
emitСбор данных о выбросах от всех излучателей в радиолокационном сценарии
propagateРаспространение выбросов в радиолокационном сценарии
detectСбор обнаружений от всех датчиков в сценарии радара
platformProfilesПрофили радиолокационных сценарных платформ
platformPosesИнформация о положении каждой платформы в сценарии РЛС
coverageConfigКонфигурация покрытия датчика и эмиттера
perturbПрименить возмущения к сценарию РЛС
cloneСоздать копию сценария РЛС

Примеры

свернуть все

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

sc = radarScenario('UpdateRate',100,'StopTime',1.2);

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

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

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

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 radar.scenario.Platform}    {1x1 radar.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

Figure contains an axes. The axes with title Trajectories contains 2 objects of type animatedline. These objects represent Trajectory 1, Trajectory 2.

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

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

Figure contains an axes. The axes with title Trajectories contains 11 objects of type animatedline, line, text. These objects represent Trajectory 1, Trajectory 2.

Создайте сценарий радара, ориентированного на Землю, и укажите скорость обновления.

scene = radarScenario('IsEarthCentered',true,'UpdateRate',0.01);

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

geoTraj = geoTrajectory([42.300,-71.351,10600;42.300,-124.411,0],[0 21600]);
plane = platform(scene,'Trajectory',geoTraj);

Продвиньте сценарий РЛС и запишите геодезические и декартовы положения цели самолета.

positions = [];
while advance(scene)
    poseLLA = pose(plane,'CoordinateSystem','Geodetic');
    poseXYZ = pose(plane,'CoordinateSystem','Cartesian');
    positions = [positions;poseXYZ.Position];%#ok<AGROW> Allow the buffer to grow.
end

Перевести единицы измерения расстояния из метров в километры.

km = 1000;
positions = positions/km;

Визуализация начального положения, конечного положения и траектории в кадре ECEF.

hold on
plot3(positions(1,1),positions(1,2),positions(1,3),'b*')
plot3(positions(end,1),positions(end,2),positions(end,3),'bo')
plot3(positions(:,1),positions(:,2),positions(:,3),'b')

Постройте график радиальных линий Земли начального положения и конечного положения.

plot3([0 positions(1,1)],[0 positions(1,2)],[0 positions(1,3)],'k:')
plot3([0 positions(end,1)],[0 positions(end,2)],[0 positions(end,3)],'k:')
xlabel('x (km)')
ylabel('y (km)')
zlabel('z (km)')
legend('Start position','End position','Trajectory')
view(3)

Figure contains an axes. The axes contains 5 objects of type line. These objects represent Start position, End position, Trajectory.

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