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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Пример 5

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

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

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

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

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

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

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

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

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

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

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

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

Dimensions of Platform

Поля 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 объект используется.

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

Средство оценки положения в виде объекта средства оценки положения. Средство оценки положения определяет положение платформы относительно локальной координаты сценария 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 object. The axes object contains 2 objects of type line. These objects represent truck, quadcopter.

Смотрите также

Объекты

Введенный в R2018b