Platform

Объект Platform, принадлежащий радарному сценарию

Описание

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

Создание

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

Свойства

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

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

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

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

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

Пример 5

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

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

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

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

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

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

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

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

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

Размерности платформы и источник возмещены в виде структуры. Структура содержит Lengthwidthвысота, и 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 объект, waypointTrajectory объект или geoTrajectory объект. Объект траектории задает эволюцию времени положения и скорость системы координат платформы, а также ориентацию системы координат платформы относительно системы координат сценария.

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

sc = radarScenario('UpdateRate',100,'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)
    {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.

Постройте 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

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)');

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

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

Задайте траекторию quadcopter как круг на 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