Добавьте платформу в радарный сценарий
Создайте радарный сценарий.
rs = radarScenario;
Создайте платформу со значениями свойств по умолчанию и добавьте его в сценарий.
plat = platform(rs);
Задайте траекторию платформы как круговой путь радиуса 10 м в течение одной секунды. Это выполняется путем размещения waypoints в круговой форме, гарантирования, что первые и последние waypoint являются тем же самым.
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)');
Создайте платформу для маленького quadcopter с размерностями 0,3 м на 0,3 м на 0,1 м.
dim2 = struct('Length',.3,'Width',.3,'Height',.1,'OriginOffset',[0 0 0]); quad = platform(rs,'Dimension',dim2);
Задайте траекторию quadcopter как круг на 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
— Идентификатор классификации платформ
(значение по умолчанию) | неотрицательное целое числоИдентификатор классификации платформ в виде неотрицательного целого числа. Можно задать собственную систему классификации платформы и присвоить ClassID
значения на платформы согласно схеме. Значение 0
резервируется для объекта неизвестного или неприсвоенного класса.
Пример 5
Типы данных: double
Trajectory
— Движение платформыkinematicTrajectory
возразите | waypointTrajectory
возразите | geoTrajectory
объектДвижение платформы в виде kinematicTrajectory
объект, 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
Тангаж
Крен
] углы поворота от локальной ссылки структурируют к системе координат тела платформы.
Задайте этот аргумент только при создании стационарной платформы. Если вы принимаете решение задать ориентацию в зависимости от времени, используйте Trajectory
аргумент.
Типы данных: double
Signatures
— Подписи платформы{}
Подписи платформы в виде массива ячеек объектов подписи или массива пустой ячейки ({}
). Значением по умолчанию является массив ячеек, содержащий rcsSignature
объект со значениями свойств по умолчанию. Если у вас есть Sensor Fusion and Tracking Toolbox™, то массив ячеек может также включать irSignature
(Sensor Fusion and Tracking Toolbox) и tsSignature
(Sensor Fusion and Tracking Toolbox) объекты. Массив ячеек содержит самое большее один экземпляр для каждого типа объекта подписи. Подпись представляет шаблон отражения или эмиссии платформы, такой как ее эффективная площадь рассеивания, целевая сила или интенсивность IR.
Dimensions
— Размерности платформы и источник возмещеныРазмерности платформы и источник возмещены в виде структуры. Структура содержит Length
width
высота
, и 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
PoseEstimator
— Средство оценки положения платформыinsSensor
объект (значение по умолчанию) | излагает объект средства оценкиСредство оценки положения платформы в виде объекта средства оценки положения, такого как insSensor
объект. Средство оценки положения определяет положение платформы относительно локальных координат сценария NED. Интерфейс любого средства оценки положения должен совпадать с интерфейсом insSensor
объект. По умолчанию платформа обнуляет свойства точности средства оценки положения.
Emitters
— Эмиттеры смонтированы на платформеЭмиттеры, смонтированные на платформе в виде массива ячеек эмиттерных объектов такой как radarEmitter
объекты. Если у вас есть Sensor Fusion and Tracking Toolbox, то массив ячеек может также включать sonarEmitter
(Sensor Fusion and Tracking Toolbox) объекты.
Sensors
— Датчики смонтированы на платформеДатчики, смонтированные на платформе в виде массива ячеек объектов датчика, такие как radarDataGenerator
объекты.
plat
— Платформа сценарияPlatform
объектПлатформа сценария, возвращенная как Platform
объект.
Platform
| radarScenario
| waypointTrajectory
| rcsSignature
| insSensor
| radarEmitter
| radarDataGenerator
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.