Отобразите движение радаров и целей
Система phased.ScenarioViewer
object™ создает 3-D средство просмотра, чтобы отобразить движение радаров и целей, которые вы моделируете в своей радарной симуляции. Можно отобразить текущие положения и скорости, объектные дорожки, положение и аннотации скорости, радарные направления луча и другие параметры объекта. Можно изменить радарные функции, такие как область значений луча и излучить ширину во время симуляции. Можно использовать Системный объект phased.Platform
для объектов перемещения модели, или можно предоставить собственные динамические модели.
Эти данные показывают сценарий с четырьмя объектами, состоящий из наземного радара, двух самолетов и наземного транспортного средства. Можно просмотреть код, который сгенерировал эту фигуру в Визуализировании Многоплатформенного примера Сценария.
Создать средство просмотра сценария:
Задайте и настройте Системный объект phased.ScenarioViewer
. Смотрите Конструкцию. Можно установить свойства Системного объекта во время создания или оставить их их значениям по умолчанию. Некоторые свойства, которые вы устанавливаете во время создания, могут быть изменены позже. Эти свойства являются настраиваемыми.
Вызовите метод phased.ScenarioViewer.step
, чтобы обновить радар, и цель отобразила положения согласно свойствам Системного объекта phased.ScenarioViewer
. Можно изменить настраиваемые свойства в любое время.
При запуске в R2016b, вместо того, чтобы использовать метод step
, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
создает Системный объект средства просмотра сценария, sIS
= phased.ScenarioViewersIS
, имеющий значения свойств по умолчанию.
возвращает Системный объект средства просмотра сценария, sIS
= phased.ScenarioViewer(Name,Value)sIS
, с любым заданным набором свойства Name
к заданному Value
. Имя должно находиться внутри одинарных кавычек (' ').
Можно задать несколько аргументов пары "имя-значение" в любом порядке как
Name1,Value1,...,NameN,ValueN
.
Имя
Имя заголовка окна'Scenario Viewer'
(значение по умолчанию) | вектор символовИмя заголовка окна, заданное как вектор символов. Свойство Name
и свойство Title
отличаются.
Пример: 'Multitarget Viewer'
Типы данных: char
ReferenceRadar
— Ссылочный радарный индекс1
(значение по умолчанию) | положительное целое числоСсылочный радарный индекс, заданный как положительное целое число. Это свойство выбирает один из радаров как ссылочный радар. Его значение должно быть меньше чем или равно количеству радаров, которые вы задаете в аргументе radar_pos
метода phased.ScenarioViewer.step
. Это свойство является настраиваемым. Целевой диапазон, радиальная скорость, азимут и повышение заданы относительно этого радара.
Пример 2
Типы данных: double
ShowBeam
— Покажите радарные лучи'ReferenceRadar'
(значение по умолчанию) | 'None'
| 'All'
Включите отображение радарных лучей, заданных как 'ReferenceRadar'
, 'None'
или 'All'
. Эта опция определяет, который радар излучает, чтобы показать.
Опция | Лучи, чтобы показать |
---|---|
'ReferenceRadar' | Покажите луч радара, заданного в свойстве ReferenceRadar . |
'None' | Не показывайте радарные лучи. |
'All' | Покажите лучи для всех радаров. |
Это свойство является настраиваемым.
Пример: 'All'
Типы данных: char
BeamWidth
— Вертикальный и горизонтальный радар излучает шириныВертикальный и горизонтальный радар излучает ширины, заданные как положительный скаляр с действительным знаком, вектор-столбец с 2 элементами, N - вектор - строка элемента или 2 N матрицей. N является количеством радаров. Весь скаляр, вектор и матричные записи являются положительными, числами с действительным знаком между 0-360 °. Модули в градусах.
Спецификация значения | Интерпретация |
---|---|
Скаляр | Горизонтальные и вертикальные радарные ширины луча равны и идентичны для всех радаров. |
Вектор-столбец с 2 элементами | Первая строка задает горизонтальную ширину луча. Вторая строка задает вертикальную ширину луча. Эти значения идентичны для всех радаров. |
N- вектор - строка элемента | Каждый элемент применяется к одному радару. Вертикальные и горизонтальные ширины луча для каждого радара равны. |
2 N матрицей | Каждый столбец применяется к одному радару. Первая строка задает горизонтальную ширину луча, и вторая строка задает вертикальную ширину луча для каждого радара. |
Когда CameraPerspective
установлен в 'Radar'
, Системный объект использует это свойство вычислить значение CameraViewAngle
. Это свойство является настраиваемым.
Пример: [20 10; 18 9]
Типы данных: double
BeamRange
— Радарная область значений лучаРадарная область значений луча, заданная как положительная скалярная величина или N - вектор - строка элемента, где N является количеством радаров. Модули исчисляются в метрах. Когда задано как скаляр, все радары имеют ту же область значений луча. Когда задано как вектор, каждый элемент соответствует одному радару. Это свойство является настраиваемым.
Пример: [1000 1500 850]
Типы данных: double
BeamSteering
— Излучите держащееся направление[0;0]
(значение по умолчанию) | положительный вектор-столбец с 2 элементами с действительным знаком | положительный N с действительным знаком - вектор - строка элементаИзлучите держащиеся направления радаров, заданных как вектор-столбец с 2 элементами с действительным знаком положительных значений или 2 N матрицей с действительным знаком положительных значений. N является количеством радаров. Держащиеся углы луча относительно осей локальной координаты каждого радара. Модули в градусах. Каждый столбец принимает форму [azimuthangle;elevationangle]
. Когда только один столбец задан, руководящие направления луча всех радаров являются тем же самым. Углы азимута от-180 ° до 180 °, и углы повышения от-90 ° до 90 °. Это свойство является настраиваемым.
Пример: [20 60 35; 5 0 10]
Типы данных: double
VelocityInputPort
— Включите скоростной входtrue
(значение по умолчанию) | false
Включите входные параметры скорости, radar_velocity
и tgt_velocity
, метода phased.ScenarioViewer.step
, заданного как true
или false
. Установка этого свойства к true
включает входные параметры. Когда этим свойством является false
, векторы скорости оцениваются от изменения положения между последовательными обновлениями, разделенными на интервал обновления. Интервал обновления является инверсией значения UpdateRate
.
Пример: false
Типы данных: логический
OrientationInputPort
— Включите вход ориентацииfalse
(значение по умолчанию) | true
Включите вход системных осей ориентации локальной координаты, radar_laxes
и tgt_laxes
, к методу phased.ScenarioViewer.step
, заданному как false
или true
. Установка этого свойства к true
включает входные параметры. Когда этим свойством является false
, оси ориентации выравниваются с осями глобальной координаты.
Пример: true
Типы данных: логический
UpdateRate
— Частота обновления средства просмотра сценария1
(значение по умолчанию) | positive scalar
Частота обновления средства просмотра сценария, заданного как положительная скалярная величина. Модули находятся в герц.
Пример: 2.5
Типы данных: double
Заголовок
Отобразите заголовок''
(значение по умолчанию) | вектор символовОтобразите заголовок, заданный как вектор символов. Свойство Title
и свойство Name
отличаются. Заголовок отображения появляется в фигуре наверху. Имя появляется наверху окна рисунка. Это свойство является настраиваемым.
Пример: 'Radar and Target Display'
Типы данных: char
PlatformNames
— Имена радаров и целей'Auto'
(значение по умолчанию) | 1 (N+M) массивом ячеек из символьных векторовИмена присвоены радарам и целям, заданным как 1 (N+M) массивом ячеек из символьных векторов. N является количеством радаров, и M является количеством целей. Закажите записи ячейки радарными именами, сопровождаемыми целевыми именами. Имена появляются в легенде и аннотациях. Когда вы устанавливаете PlatformNames
на 'Auto'
, имена создаются, последовательно начиная с 'Radar 1'
для радаров и 'Target 1'
для целей.
Пример: {'Stationary Radar','Mobile Radar','Airplane'}
Типы данных: cell
TrailLength
— Длина видимых дорожек500
(значение по умолчанию) | положительное целое число | (N+M) - вектор длины положительных целых чиселПродолжительность видимости объектных дорожек, заданных как положительное целое число или (N+M) - вектор длины положительных целых чисел. N является количеством радаров, и M является количеством целей. Когда TrailLength
является скаляром, все дорожки имеют ту же длину. Когда TrailLength
является вектором, каждый элемент вектора задает длину соответствующего радара или целевой траектории. Закажите записи радарами, сопровождаемыми целями. Каждый вызов метода phased.ScenarioViewer.step
генерирует новую видимую точку. Это свойство является настраиваемым.
Пример: [100,150,100]
Типы данных: double
CameraPerspective
— Перспектива камеры'Auto'
(значение по умолчанию) | 'Custom'
| 'Radar'
Перспектива камеры, заданная как 'Auto'
, 'Custom'
или 'Radar'
. Когда вы устанавливаете это свойство на 'Auto'
, Системный объект оценивает, что соответствующие значения для положения камеры, ориентации и угла представления показывают все дорожки. Когда вы устанавливаете это свойство на 'Custom'
, можно установить положение камеры, ориентацию и углы с помощью свойств камеры или панели инструментов камеры. Когда вы устанавливаете это свойство на 'Radar'
, Системный объект определяет положение камеры, ориентацию и углы от радарного положения и радарного руководящего направления луча. Это свойство является настраиваемым.
Пример: 'Radar'
Типы данных: char
CameraPosition
CameraPosition [x,y,z]
действительных значенийПоложение камеры, заданное как вектор [x,y,z]
действительных значений. Модули исчисляются в метрах. Это свойство применяется, когда вы устанавливаете CameraPerspective
на 'Custom'
. Когда вы не задаете это свойство, Системный объект выбирает значения на основе вашей настройки отображения. Это свойство является настраиваемым.
Пример: [100,50,40]
Типы данных: double
CameraOrientation
— Ориентация камеры[pan,tilt,roll]
положительных, действительных значенийОриентация камеры, заданная как вектор [pan,tilt,roll]
положительных, действительных значений. Модули в градусах. Панорамирование и углы вращения принимают значения от –180° до 180°. Угол наклона принимает значения от –90° до 90°. Вращения камеры выполняются в порядке: панорамирование, наклон и список. Это свойство применяется, когда вы устанавливаете CameraPerspective
на 'Custom'
. Когда вы не задаете это свойство, Системный объект выбирает значения на основе вашей настройки отображения. Это свойство является настраиваемым.
Пример: [180,45,30]
Типы данных: double
CameraViewAngle
CameraViewAngle Угол поля зрения камеры, заданный как скаляр с действительным знаком. Модули в градусах. Угловые значения представления находятся в области значений 0 ° к 360 °. Это свойство применяется, когда вы устанавливаете CameraPerspective
на 'Custom'
. Когда вы не задаете это свойство, Системный объект выбирает значения на основе вашей настройки отображения. Это свойство является настраиваемым.
Пример: 75
Типы данных: double
ShowLegend
— Покажите легенду средства просмотраfalse
(значение по умолчанию) | true
Опция, чтобы показать легенду средства просмотра, заданную как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowGround
— Покажите наземную плоскость сценарияtrue
(значение по умолчанию) | false
Опция, чтобы показать наземную плоскость сценария средства просмотра, заданного как true
или false
. Это свойство является настраиваемым.
Пример: false
Типы данных: логический
ShowName
— Опция, чтобы аннотировать радар и цель отслеживает с именамиtrue
(значение по умолчанию) | false
Аннотируйте радар и предназначайтесь для дорожек с именами, заданными как true
или false
. Можно задать пользовательские имена платформы с помощью PlatformNames
. Это свойство является настраиваемым.
Пример: false
Типы данных: логический
ShowPosition
— Аннотируйте радар и предназначайтесь для дорожек с положениямиfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает с положениями, заданными как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowRange
— Аннотируйте радар и предназначайтесь для дорожек с областями значенийfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает с диапазоном от ссылочного радара, заданного как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowAltitude
— Аннотируйте радар и предназначайтесь для дорожек с высотойfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает с высотой, заданной как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowSpeed
— Аннотируйте радар и предназначайтесь для дорожек со скоростьюfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает со скоростью, заданной как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowRadialSpeed
— Аннотируйте радар и предназначайтесь для дорожек с радиальной скоростьюfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает с радиальной скоростью, заданной как false
или true
. Радиальная скорость относительно ссылочного радара. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
ShowAzEl
— Аннотируйте радар и предназначайтесь для дорожек с азимутом и повышениемfalse
(значение по умолчанию) | true
Опция, чтобы аннотировать радар и цель отслеживает с азимутом и углами повышения относительно ссылочного радара, заданного как false
или true
. Это свойство является настраиваемым.
Пример: true
Типы данных: логический
Position
— Размер окна средства просмотра и положение[left bottom width height]
положительных, действительных значенийРазмер окна средства просмотра сценария и положение, заданное как вектор [left bottom width height]
положительных, действительных значений. Модули находятся в пикселях.
left
устанавливает положение левого края окна.
bottom
устанавливает положение базового края окна.
width
устанавливает ширину окна.
height
устанавливает высоту окна.
Когда вы не задаете это свойство, окно расположено в центр экрана, с width
и height
, принимающим значения 410
и пиксели 300
, соответственно. Это свойство является настраиваемым.
Пример: [100,200,800,500]
Типы данных: double
ReducePlotRate
— Включите уменьшаемый уровень графикаtrue
(значение по умолчанию) | false
Опция, чтобы уменьшать уровень графика, чтобы улучшать производительность, заданную как true
или false
. Установите это свойство на true
обновлять средство просмотра по льготному тарифу. Установите это свойство на false
обновлять средство просмотра с каждым вызовом метода phased.ScenarioViewer.step
. Этот режим оказывает негативное влияние на производительность средства просмотра. Это свойство является настраиваемым.
Пример: false
Типы данных: логический
скрыться | Скройте окно средства просмотра сценария |
сброс | Сбросьте состояние Системного объекта |
show | Покажите окно средства просмотра сценария |
шаг | Обновите отображение средства просмотра сценария |
Характерный для всех системных объектов | |
---|---|
release | Позвольте изменения значения свойства Системного объекта |
Визуализируйте дорожки радара и одной цели самолета. Радар является стационарным, и самолет перемещается в прямую линию. Поддержите радарный луч, указывающий на самолет.
Создайте радар и объекты платформной системы самолета. Установите частоту обновления на 0,1 с.
updateRate = 0.1; radarPlatform = phased.Platform(... 'InitialPosition',[0;0;10], ... 'Velocity',[0;0;0]); airplanePlatforms = phased.Platform(... 'InitialPosition',[5000.0;3500.0;6000.0],... 'Velocity',[-300;0;0]);
Создайте Системный объект phased.ScenarioViewer
. Покажите, что радар излучает и аннотирует дорожки положением, скоростью и высотой.
sSV = phased.ScenarioViewer('BeamRange',5000.0,'UpdateRate',updateRate,... 'PlatformNames',{'Ground Radar','Airplane'},'ShowPosition',true,... 'ShowSpeed',true,'ShowAltitude',true,'ShowLegend',true);
Запустите сценарий. На каждом шаге вычислите угол к цели. Затем используйте тот угол, чтобы регулировать радарный луч к цели.
for i = 1:100 [radar_pos,radar_vel] = step(radarPlatform,updateRate); [tgt_pos,tgt_vel] = step(airplanePlatforms,updateRate); [rng,ang] = rangeangle(tgt_pos,radar_pos); sSV.BeamSteering = ang; step(sSV,radar_pos,radar_vel,tgt_pos,tgt_vel); pause(0.1); end
Визуализируйте дорожки бортового радара и цели наземного транспортного средства. Бортовой радар несет беспилотник, летящий на 5-километровой высоте.
Создайте радар беспилотника и наземное транспортное средство с помощью Системных объектов phased.Platform
. Установите частоту обновления на 0,1 с.
updateRate = 0.1; drone = phased.Platform(... 'InitialPosition',[100;1000;5000], ... 'Velocity',[400;0;0]); vehicle = phased.Platform('MotionModel','Acceleration',... 'InitialPosition',[5000.0;3500.0;0.0],... 'InitialVelocity',[40;5;0],'Acceleration',[0.1;0.1;0]);
Создать Системный объект phased.ScenarioViewer
?. Покажите, что радар излучает и аннотирует дорожки положением, скоростью, и, высота.
viewer = phased.ScenarioViewer('BeamRange',8000.0,'BeamWidth',2,'UpdateRate',updateRate,... 'PlatformNames',{'Drone Radar','Vehicle'},'ShowPosition',true,... 'ShowSpeed',true,'ShowAltitude',true,'ShowLegend',true,'Title','Vehicle Tracking Radar');
Запустите сценарий. На каждом шаге вычислите угол к цели. Затем используйте тот угол, чтобы регулировать радарный луч к цели.
for i = 1:100 [radar_pos,radar_vel] = step(drone,updateRate); [tgt_pos,tgt_vel] = step(vehicle,updateRate); [rng,ang] = rangeangle(tgt_pos,radar_pos); viewer.BeamSteering = ang; viewer(radar_pos,radar_vel,tgt_pos,tgt_vel) pause(.1) end
Этот пример показывает, как создать и отобразить многоплатформенный сценарий, содержащий наземный стационарный радар, поворачивающийся самолет, самолет постоянной скорости и движущееся наземное транспортное средство. Поворачивающийся самолет следует за параболическим курсом полета при убывании на уровне 20 м/с.
Задайте частоту обновления сценария на уровне 0,5 Гц. Для 150 шагов длительность времени сценария составляет 300 с.
updateRate = 0.5; N = 150;
Настройте поворачивающийся самолет с помощью модели Acceleration
Системного объекта phased.Platform
?. Задайте исходное положение самолета областью значений и азимутом от наземного радара и его повышения. Самолет в 10 км от радара в 60? азимут и имеет высоту 6 км. Самолет ускоряется в 10 в отрицательном направлении X.
airplane1range = 10.0e3; airplane1Azimuth = 60.0; airplane1alt = 6.0e3; airplane1Pos0 = [cosd(airplane1Azimuth)*airplane1range;... sind(airplane1Azimuth)*airplane1range;airplane1alt]; airplane1Vel0 = [400.0;-100.0;-20]; airplane1Accel = [-10.0;0.0;0.0]; airplane1platform = phased.Platform('MotionModel','Acceleration',... 'AccelerationSource','Input port','InitialPosition',airplane1Pos0,... 'InitialVelocity',airplane1Vel0,'OrientationAxesOutputPort',true,... 'InitialOrientationAxes',eye(3));
Настройте стационарный наземный радар в начале координат глобальной системы координат. Чтобы моделировать вращающийся радар, измените наземный радарный руководящий угол луча в цикле обработки.
groundRadarPos = [0,0,0]'; groundRadarVel = [0,0,0]'; groundradarplatform = phased.Platform('MotionModel','Velocity',... 'InitialPosition',groundRadarPos,'Velocity',groundRadarVel,... 'InitialOrientationAxes',eye(3));
Настройте наземное транспортное средство, чтобы переместиться в постоянную скорость.
groundVehiclePos = [5e3,2e3,0]'; groundVehicleVel = [50,50,0]'; groundvehicleplatform = phased.Platform('MotionModel','Velocity',... 'InitialPosition',groundVehiclePos,'Velocity',groundVehicleVel,... 'InitialOrientationAxes',eye(3));
Настройте второй самолет, чтобы также переместиться в постоянную скорость.
airplane2Pos = [8.5e3,1e3,6000]'; airplane2Vel = [-300,100,20]'; airplane2platform = phased.Platform('MotionModel','Velocity',... 'InitialPosition',airplane2Pos,'Velocity',airplane2Vel,... 'InitialOrientationAxes',eye(3));
Настройте средство просмотра сценария. Задайте радар как наличие области значений луча 8 км, вертикальной ширины луча 30?, и горизонтальная ширина луча 2?. Аннотируйте дорожки положением, скоростью, высотой и областью значений.
BeamSteering = [0;50]; viewer = phased.ScenarioViewer('BeamRange',8.0e3,'BeamWidth',[2;30],'UpdateRate',updateRate,... 'PlatformNames',{'Ground Radar','Turning Airplane','Vehicle','Airplane 2'},'ShowPosition',true,... 'ShowSpeed',true,'ShowAltitude',true,'ShowLegend',true,'ShowRange',true,... 'Title','Multiplatform Scenario','BeamSteering',BeamSteering);
Продвиньтесь через цикл обработки отображения, обновив радар и предназначайтесь для положений. Вращайте наземный радарный руководящий угол четырьмя градусами на каждом шаге.
for n = 1:N [groundRadarPos,groundRadarVel] = groundradarplatform(updateRate); [airplane1Pos,airplane1Vel,airplane1Axes] = airplane1platform(updateRate,airplane1Accel); [vehiclePos,vehicleVel] = groundvehicleplatform(updateRate); [airplane2Pos,airplane2Vel] = airplane2platform(updateRate); viewer(groundRadarPos,groundRadarVel,[airplane1Pos,vehiclePos,airplane2Pos],... [airplane1Vel,vehicleVel,airplane2Vel]); BeamSteering = viewer.BeamSteering(1); BeamSteering = mod(BeamSteering + 4,360.0); if BeamSteering > 180.0 BeamSteering = BeamSteering - 360.0; end viewer.BeamSteering(1) = BeamSteering; pause(0.2); end
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.