exponenta event banner

платформа

Добавить платформу в сценарий РЛС

Описание

пример

plat = platform(scenario) создает новый Platform объект, platи добавляет платформу к сценарию радара, scenario.

пример

plat = platform(scenario,Name,Value) создает новый Platform с дополнительными свойствами, заданными одним или несколькими аргументами «» имя-значение «».

Примеры

свернуть все

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

rs = radarScenario;

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

plat = platform(rs);

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

wpts = [0 10 0; 10 0 0; 0 -10 0; -10 0 0; 0 10 0];
times = [0; 0.25; .5; .75; 1.0];
plat.Trajectory = waypointTrajectory(wpts,times);

Отображение свойств объекта платформы.

plat
plat = 
  Platform with properties:

       PlatformID: 1
          ClassID: 0
         Position: [0 10 0]
      Orientation: [-1.7180e-05 0 0]
       Dimensions: [1x1 struct]
       Trajectory: [1x1 waypointTrajectory]
    PoseEstimator: [1x1 insSensor]
         Emitters: {}
          Sensors: {}
       Signatures: {[1x1 rcsSignature]}

Выполните моделирование, продвигаясь один шаг за один раз. Отображение времени моделирования и положения и скорости платформы на каждом временном шаге.

while advance(rs)  
    p = pose(plat);
    disp(strcat("Time = ",num2str(rs.SimulationTime)))
    disp(strcat("  Position = [",num2str(p.Position),"]"))
    disp(strcat("  Velocity = [",num2str(p.Velocity),"]"))
end
Time = 0
  Position = [0  10   0]
  Velocity = [62.8318 -1.88403e-05            0]
Time = 0.1
  Position = [5.8779      8.0902           0]
  Velocity = [50.832     -36.9316            0]
Time = 0.2
  Position = [9.5106      3.0902           0]
  Velocity = [19.4161     -59.7566            0]
Time = 0.3
  Position = [9.5106     -3.0902           0]
  Velocity = [-19.4161     -59.7567            0]
Time = 0.4
  Position = [5.8779     -8.0902           0]
  Velocity = [-50.832     -36.9316            0]
Time = 0.5
  Position = [0 -10   0]
  Velocity = [-62.8319  1.88181e-05            0]
Time = 0.6
  Position = [-5.8779     -8.0902           0]
  Velocity = [-50.832      36.9316            0]
Time = 0.7
  Position = [-9.5106     -3.0902           0]
  Velocity = [-19.4161      59.7566            0]
Time = 0.8
  Position = [-9.5106      3.0902           0]
  Velocity = [19.4161      59.7566            0]
Time = 0.9
  Position = [-5.8779      8.0902           0]
  Velocity = [50.832      36.9316            0]
Time = 1
  Position = [-7.10543e-15           10            0]
  Velocity = [62.8319 -1.88404e-05            0]

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

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.

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

свернуть все

Сценарий радара, указанный как radarScenario объект.

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

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

Пример: 'ClassID',2

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

Пример: 5

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

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

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

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

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

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

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

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

Этот аргумент указывается только при создании стационарной платформы. Если выбрана траектория платформы, используйте Trajectory аргумент.

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

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

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

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

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

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

Размеры платформы и смещение начала координат, указанные как структура. Структура содержит 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

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

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

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

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

свернуть все

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

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