Объект платформы, относящийся к сценарию РЛС
Platform определяет объект платформы, принадлежащий сценарию радара.
Можно создавать Platform с использованием platform функции radarScenario объект.
PlatformID - Идентификатор платформы, определяемый сценариемЭто свойство доступно только для чтения.
Определяемый сценарием идентификатор платформы, указанный как положительное целое число. Сценарий автоматически присваивает PlatformID значения для каждой платформы, начиная с 1 для первой платформы и увеличивая на 1 для каждой новой платформы.
Типы данных: double
ClassID - Идентификатор классификации платформы0 (по умолчанию) | неотрицательное целое числоИдентификатор классификации платформы, указанный как неотрицательное целое число. Можно определить собственную схему классификации платформ и назначить ClassID значения для платформ по схеме. Значение 0 зарезервирован для объекта неизвестного или неназначенного класса.
Пример: 5
Типы данных: double | single
Position - Текущее положение площадкиЭто свойство доступно только для чтения.
Текущее положение платформы, определяемое как трехэлементный числовой вектор.
Когда IsEarthCentered свойство сценария имеет значение falseположение выражается как декартовы координаты [x, y, z] в метрах.
Когда IsEarthCentered свойство сценария имеет значение trueположение выражается в геодезических координатах [latitude, longitude, altitude], где latitude и longitude в градусах и altitude в метрах.
Типы данных: double
Orientation - Текущая ориентация платформыЭто свойство доступно только для чтения.
Текущая ориентация платформы, заданная как трехэлементный числовой вектор в градусах. Ориентация выражается как [yaw, pitch, roll] углы поворота от локальной опорной рамы к раме кузова платформы.
Типы данных: double
Dimensions - Размеры платформы и смещение начала координатРазмеры платформы и смещение начала координат, указанные как структура. Структура содержит Length, Width, Height, и OriginOffset кубоида, который аппроксимирует размеры платформы. OriginOffset - вектор положения от центра кубоида до начала координат платформы. 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
Trajectory - Движение платформыkinematicTrajectory объект | waypointTrajectory объект | geoTrajectory объектДвижение платформы, указанное как kinematicTrajectory объект, a waypointTrajectory объект или geoTrajectory объект. Объект траектории определяет эволюцию во времени положения и скорости начала кадра платформы, а также ориентацию кадра платформы относительно кадра сценария.
Когда IsEarthCentered свойство сценария имеет значение false, используйте kinematicTrajectory или waypointTrajectory объект. По умолчанию платформа использует стационарный kinematicTrajectory объект.
Когда IsEarthCentered свойство сценария имеет значение true, используйте geoTrajectory объект. По умолчанию платформа использует стационарный geoTrajectory объект.
Signatures - Подписи платформы{}Сигнатуры платформы, указанные как массив ячеек объектов сигнатур или пустой массив ячеек ({}). Значением по умолчанию является массив ячеек, содержащий rcsSignature со значениями свойств по умолчанию. При наличии Toolbox™ слияния и отслеживания датчиков массив ячеек также может включать irSignature(панель инструментов слияния и отслеживания датчиков) и tsSignature(Панель инструментов слияния и отслеживания датчиков). Массив ячеек содержит не более одного экземпляра каждого типа объекта сигнатуры. Сигнатура представляет картину отражения или излучения платформы, такую как ее радиолокационное сечение, целевая сила или интенсивность ИК-излучения.
PoseEstimator - Оценщик позы платформыinsSensor объект (по умолчанию) | объект оценки позыОценщик позы платформы, указанный как объект оценки позы, такой как insSensor объект. Блок оценки позы определяет позу платформы относительно локальных координат сценария NED. Интерфейс любого оценщика позы должен соответствовать интерфейсу insSensor объект. По умолчанию свойства точности оценщика позы равны нулю.
Emitters - излучатели, установленные на платформе;Излучатели, установленные на платформе, задаются как массив ячеек объектов-излучателей, таких как radarEmitter объекты. Если у вас есть Sensor Fusion и Tracking Toolbox, то массив ячеек также может включать sonarEmitter(Панель инструментов слияния и отслеживания датчиков).
Sensors - Датчики, установленные на платформеДатчики, установленные на платформе, определяемые как массив элементов сенсорных объектов, таких как radarDataGenerator объекты.
detect | Сбор обнаружений от всех датчиков, установленных на платформе |
emit | Сбор выбросов от всех эмиттеров, установленных на платформе |
pose | Обновление позы для платформы |
receive | Прием сигнала IQ от РЛС, установленных на платформе |
targetPoses | Целевые позиции и ориентации, как видно из платформы |
Создайте радарный сценарий с двумя платформами, которые следуют по разным траекториям.
sc = radarScenario('UpdateRate',100,'StopTime',1.2);
Создайте две платформы.
platfm1 = platform(sc); platfm2 = platform(sc);
Платформа 1 следует по круговой траектории радиусом 10 м в течение одной секунды. Это достигается путем размещения ППМ круглой формы, гарантируя, что первый и последний ППМ одинаковы.
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

Постройте график ППМ для обеих платформ.
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

Создайте сценарий радара.
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

Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.