Добавьте платформу к радарному сценарию
Создайте радиолокационный сценарий.
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

scenario - Радиолокационный сценарийradarScenario объектРадиолокационный сценарий, заданный как radarScenario объект.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'ClassID',2'ClassID' - Идентификатор классификации платформы0 (по умолчанию) | неотрицательное целое числоИдентификатор классификации платформы, заданный как неотрицательное целое число. Можно задать собственную схему классификации платформ и назначить ClassID значений на платформы по схеме. Значение 0 зарезервирован для объекта неизвестного или неназначенного класса.
Пример: 5
Типы данных: double
'Trajectory' - Движение платформыkinematicTrajectory | объекта waypointTrajectory | объекта geoTrajectory объектДвижение платформы, заданное как kinematicTrajectory объект, a waypointTrajectory объект, или geoTrajectory объект. Объект траектории определяет временную эволюцию положения и скорости системы координат платформы, а также ориентацию системы координат платформы относительна система координат сценария.
Когда IsEarthCentered свойство сценария установлено в false, используйте kinematicTrajectory или waypointTrajectory объект. По умолчанию платформа использует стационарную kinematicTrajectory объект.
Когда IsEarthCentered свойство сценария установлено в true, используйте geoTrajectory объект. По умолчанию платформа использует стационарную geoTrajectory объект.
'Position' - Положение платформыЭто свойство доступно только для чтения.
Текущее положение платформы, заданное как трехэлементный вектор скаляров.
Когда IsEarthCentered свойство сценария установлено в false, положение задается как трехэлементное Декартово состояние [x, y, z] в метрах.
Когда IsEarthCentered свойство сценария установлено в true, положение задается как трехэлементное геодезическое состояние: latitude в степенях, longitude в степенях и altitude в метрах.
Задайте этот аргумент только при создании стационарной платформы. Если вы принимаете решение задать траекторию платформы, используйте Trajectory аргумент.
Типы данных: double
'Orientation' - Ориентация платформыЭто свойство доступно только для чтения.
Ориентация платформы, заданная как трехэлементный числовой вектор в степенях. Три элемента являются [yaw, pitch, roll] углы поворота от локальной системы отсчета до каркаса кузова платформы.
Задайте этот аргумент только при создании стационарной платформы. Если вы принимаете решение задать ориентацию с течением времени, используйте Trajectory аргумент.
Типы данных: double
'Signatures' - Сигнатуры платформы{}Сигнатуры платформы, заданные как массив ячеек из объектов сигнатуры или пустой массив ячеек ({}). Значение по умолчанию является массивом ячеек, содержащим rcsSignature объект со значениями свойств по умолчанию. Если у вас есть Sensor Fusion and Tracking Toolbox™, массив ячеек также может включать irSignature (Sensor Fusion and Tracking Toolbox) и tsSignature (Sensor Fusion and Tracking Toolbox) объекты. Массив ячеек содержит не более одного образцы для каждого типа объекта сигнатуры. Сигнатура представляет шаблону отражения или излучения платформы, такой как ее радарное сечение, сила цели или интенсивность ИК-излучения.
'Dimensions' - размерности платформы и смещение источникаРазмерности платформы и смещение источника, заданные как колодец. Структура содержит 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
'PoseEstimator' - Оценка положения платформыinsSensor объект (по умолчанию) | объект оценки положенияОценка положения платформы, заданная как объект оценки положения, такой как insSensor объект. Оценщик положения определяет положение платформы относительно локальных координат сценария NED. Интерфейс любой оценки положения должен совпадать с интерфейсом insSensor объект. По умолчанию платформа устанавливает свойства точности оценки положения на нуль.
'Emitters' - Излучатели, установленные на платформеЭмиттеры, установленные на платформе, заданные как массив ячеек из таких объектов эмиттера, как radarEmitter объекты. Если у вас есть Sensor Fusion and Tracking Toolbox, то массив ячеек может также включать sonarEmitter (Sensor Fusion and Tracking Toolbox) объекты.
'Sensors' - Датчики, установленные на платформеДатчики, установленные на платформе, задаются как массив ячеек из таких объектов датчика, как radarDataGenerator объекты.
plat - Сценарная платформаPlatform объектСценарная платформа, возвращенная как Platform объект.
insSensor | Platform | radarDataGenerator | radarEmitter | radarScenario | rcsSignature | waypointTrajectory
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.