platform

Добавьте платформу к сценарию отслеживания

Синтаксис

ptfm = platform(sc)
ptfm = platform(sc,Name,Value)

Описание

ptfm = platform(sc) добавляет Platform объект, ptfm, к сценарию отслеживания, sc. Функция создает платформу со значениями свойств по умолчанию. Платформы определяются как точки или кубоиды с аспектно-зависимыми свойствами. Каждой платформе автоматически присваивается уникальный идентификатор, указанный в platformID поле Platform объект.

ptfm = platform(sc,Name,Value) добавляет платформу с дополнительными свойствами, заданными одним или несколькими Name,Value аргументы в виде пар. Name является именем свойства и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Любые неопределенные свойства берут значения по умолчанию.

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

расширить все

Сценарий отслеживания, заданный как trackingScenario объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

Пример: 5

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

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

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

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

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

Вы должны задавать положение только при создании стационарной платформы. Если вы принимаете решение задать траекторию платформы, не используйте Position. Вместо этого используйте Trajectory аргумент.

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

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

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

Необходимо задавать только Orientation при создании стационарной платформы. Если вы принимаете решение задать ориентацию с течением времени, используйте Trajectory аргумент.

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

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

Поля Dimensions

ОбластиОписаниеДефолт
LengthРазмерность кубоида по x направлению0
WidthРазмерность кубоида по y направлению0
HeightРазмерность кубоида по z направлению0
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 используется объект.

Сигнатуры платформы, заданные как массив ячеек irSignature, rcsSignature, и tsSignature объекты или пустой массив ячеек. Массив ячеек содержит не более одного образцы для каждого типа перечисленных объектов сигнатуры. Сигнатура представляет шаблону отражения или излучения платформы, такой как ее радарное сечение, сила цели или интенсивность ИК-излучения.

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

Эмиттеры, установленные на платформе, задаются как массив ячеек из объектов эмиттера, таких как radarEmitter или sonarEmitter.

Датчики, установленные на платформе, заданные как массив ячеек из сенсорных объектов, таких как irSensor, fusionRadarSensor, monostaticLidarSensor, или sonarSensor.

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

расширить все

Сценарная платформа, возвращенная как Platform объект.

Примеры

расширить все

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

scene = trackingScenario('UpdateRate',1/50);

% Create a platform
plat = platform(scene);

% Follow a circular trajectory 1 km in radius completing in 400 hundred seconds.
plat.Trajectory = waypointTrajectory('Waypoints', [0 1000 0; 1000 0 0; 0 -1000 0; -1000 0 0; 0 1000 0], ...
    'TimeOfArrival', [0; 100; 200; 300; 400]);

% Perform the simulation
while scene.advance
    p = pose(plat);
    fprintf('Time = %f ', scene.SimulationTime);
    fprintf('Position = [');
    fprintf('%f ', p.Position);
    fprintf('] Velocity = [');
    fprintf('%f ', p.Velocity);
    fprintf(']\n');
end
Time = 0.000000 
Position = [
0.000000 1000.000000 0.000000 
] Velocity = [
15.707701 -0.000493 0.000000 
]
Time = 50.000000 
Position = [
707.095476 707.100019 0.000000 
] Velocity = [
11.107152 -11.107075 0.000000 
]
Time = 100.000000 
Position = [
1000.000000 0.000000 0.000000 
] Velocity = [
0.000476 -15.707961 0.000000 
]
Time = 150.000000 
Position = [
707.115558 -707.115461 0.000000 
] Velocity = [
-11.107346 -11.107341 0.000000 
]
Time = 200.000000 
Position = [
0.000000 -1000.000000 0.000000 
] Velocity = [
-15.707963 0.000460 0.000000 
]
Time = 250.000000 
Position = [
-707.098004 -707.098102 0.000000 
] Velocity = [
-11.107069 11.107074 0.000000 
]
Time = 300.000000 
Position = [
-1000.000000 0.000000 0.000000 
] Velocity = [
-0.000476 15.707966 0.000000 
]
Time = 350.000000 
Position = [
-707.118086 707.113543 0.000000 
] Velocity = [
11.107262 11.107340 0.000000 
]
Time = 400.000000 
Position = [
-0.000000 1000.000000 0.000000 
] Velocity = [
15.708226 -0.000493 0.000000 
]

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

sc = trackingScenario;

% Create the platform for a truck with dimension 5 x 2.5 x 3.5 (m). 
p1 = platform(sc);
p1.Dimensions = struct('Length',5,'Width',2.5,'Height',3.5,'OriginOffset',[0 0 0]);

% Specify the truck's trajectory as a circle with radius 20 meters.
p1.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)');
                    
% Create the platform for a small quadcopter with dimension .3 x .3 x .1 (m).
p2 = platform(sc);
p2.Dimensions = struct('Length',.3,'Width',.3,'Height',.1,'OriginOffset',[0 0 0]);

% The quadcopter follows the truck at 10 meteres above with small angular delay.
% Note that the negative z coordinates correspond to positive elevation.
p2.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');

% Specify a view direction and animate.
view(-28,37);
set(gca,'Zdir','reverse');

while advance(sc)
    poses = platformPoses(sc);
    plotPlatform(pp1, poses(1).Position, p1.Dimensions, poses(1).Orientation);
    plotPlatform(pp2, poses(2).Position, p2.Dimensions, poses(2).Orientation);
end

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

См. также

Объекты

Введенный в R2018b