exponenta event banner

Платформа

Объект платформы, относящийся к сценарию РЛС

Описание

Platform определяет объект платформы, принадлежащий сценарию радара.

Создание

Можно создавать Platform с использованием platform функции radarScenario объект.

Свойства

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

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

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

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

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

Пример: 5

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

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

Текущее положение платформы, определяемое как трехэлементный числовой вектор.

  • Когда IsEarthCentered свойство сценария имеет значение falseположение выражается как декартовы координаты [x, y, z] в метрах.

  • Когда IsEarthCentered свойство сценария имеет значение trueположение выражается в геодезических координатах [latitude, longitude, altitude], где latitude и longitude в градусах и altitude в метрах.

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

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

Текущая ориентация платформы, заданная как трехэлементный числовой вектор в градусах. Ориентация выражается как [yaw, pitch, roll] углы поворота от локальной опорной рамы к раме кузова платформы.

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

Размеры платформы и смещение начала координат, указанные как структура. Структура содержит Length, Width, Height, и OriginOffset кубоида, который аппроксимирует размеры платформы. OriginOffset - вектор положения от центра кубоида до начала координат платформы. OriginOffset выражается в системе координат платформы. Например, если начало координат платформы находится в центре задней грани кубовида, как показано на рисунке, установите OriginOffset как [-L/2, 0, 0]. Значение по умолчанию для Dimensions - структура с нулевым значением всех полей, соответствующая точечной модели.

Platform depicted as a cuboid whose center is offset from the center of the platform frame coordinate system

Поля Dimensions

ОбластиОписаниеДефолт
LengthРазмер кубоида вдоль направления x0
WidthРазмер кубоида вдоль направления y0
HeightРазмер кубоида вдоль направления z0
OriginOffsetПоложение начала координат платформы относительно центра кубовида[0 0 0 ]

Пример: struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[-2.5 0 0])

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

Движение платформы, указанное как kinematicTrajectory объект, a waypointTrajectory объект или geoTrajectory объект. Объект траектории определяет эволюцию во времени положения и скорости начала кадра платформы, а также ориентацию кадра платформы относительно кадра сценария.

  • Когда IsEarthCentered свойство сценария имеет значение false, используйте kinematicTrajectory или waypointTrajectory объект. По умолчанию платформа использует стационарный kinematicTrajectory объект.

  • Когда IsEarthCentered свойство сценария имеет значение true, используйте geoTrajectory объект. По умолчанию платформа использует стационарный geoTrajectory объект.

Сигнатуры платформы, указанные как массив ячеек объектов сигнатур или пустой массив ячеек ({}). Значением по умолчанию является массив ячеек, содержащий rcsSignature со значениями свойств по умолчанию. При наличии Toolbox™ слияния и отслеживания датчиков массив ячеек также может включать irSignature(панель инструментов слияния и отслеживания датчиков) и tsSignature(Панель инструментов слияния и отслеживания датчиков). Массив ячеек содержит не более одного экземпляра каждого типа объекта сигнатуры. Сигнатура представляет картину отражения или излучения платформы, такую как ее радиолокационное сечение, целевая сила или интенсивность ИК-излучения.

Оценщик позы платформы, указанный как объект оценки позы, такой как insSensor объект. Блок оценки позы определяет позу платформы относительно локальных координат сценария NED. Интерфейс любого оценщика позы должен соответствовать интерфейсу insSensor объект. По умолчанию свойства точности оценщика позы равны нулю.

Излучатели, установленные на платформе, задаются как массив ячеек объектов-излучателей, таких как radarEmitter объекты. Если у вас есть Sensor Fusion и Tracking Toolbox, то массив ячеек также может включать sonarEmitter(Панель инструментов слияния и отслеживания датчиков).

Датчики, установленные на платформе, определяемые как массив элементов сенсорных объектов, таких как radarDataGenerator объекты.

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

detectСбор обнаружений от всех датчиков, установленных на платформе
emitСбор выбросов от всех эмиттеров, установленных на платформе
poseОбновление позы для платформы
receiveПрием сигнала IQ от РЛС, установленных на платформе
targetPosesЦелевые позиции и ориентации, как видно из платформы

Примеры

свернуть все

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

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.

Создайте сценарий радара.

rs = radarScenario;

Создать кубовидную платформу для грузовика размерами 5 м на 2,5 м на 3,5 м.

dim1 = struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[0 0 0]);
truck = platform(rs,'Dimension',dim1);

Укажите траекторию грузовика как круг радиусом 20 м.

truck.Trajectory = waypointTrajectory('Waypoints', ...
    [20*cos(2*pi*(0:10)'/10) 20*sin(2*pi*(0:10)'/10) -1.75*ones(11,1)], ...
    'TimeOfArrival',linspace(0,50,11)');

Создайте платформу для небольшого квадрокоптера с размерами 0,3 м на 0,3 м на 0,1 м.

dim2 = struct('Length',.3,'Width',.3,'Height',.1,'OriginOffset',[0 0 0]);
quad = platform(rs,'Dimension',dim2);

Укажите траекторию квадрокоптера как круг на 10 м над грузовиком с небольшой угловой задержкой. Следует отметить, что отрицательные координаты z соответствуют положительной отметке.

quad.Trajectory = waypointTrajectory('Waypoints', ...
    [20*cos(2*pi*((0:10)'-.6)/10) 20*sin(2*pi*((0:10)'-.6)/10) -11.80*ones(11,1)], ...
    'TimeOfArrival',linspace(0,50,11)');

Визуализация результатов с помощью theaterPlot.

tp = theaterPlot('XLim',[-30 30],'YLim',[-30 30],'Zlim',[-12 5]);
pp1 = platformPlotter(tp,'DisplayName','truck','Marker','s');
pp2 = platformPlotter(tp,'DisplayName','quadcopter','Marker','o');

Укажите направление вида и выполните моделирование.

view(-28,37);
set(gca,'Zdir','reverse');

while advance(rs)
    poses = platformPoses(rs);
    plotPlatform(pp1,poses(1).Position,truck.Dimensions,poses(1).Orientation);
    plotPlatform(pp2,poses(2).Position,quad.Dimensions,poses(2).Orientation);
end

Figure contains an axes. The axes contains 2 objects of type line. These objects represent truck, quadcopter.

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