Отобразите движение радаров и целей
phased.ScenarioViewer
Система object™ создает 3-D средство просмотра, чтобы отобразить движение радаров и целей, которые вы моделируете в своей радарной симуляции. Можно отобразить текущие положения и скорости, объектные дорожки, положение и аннотации скорости, радарные направления луча и другие параметры объекта. Можно изменить радарные функции, такие как область значений луча и излучить ширину во время симуляции. Можно использовать phased.Platform
Системный объект к перемещению модели возражает, или можно предоставить собственные динамические модели.
Этот рисунок показывает сценарий с четырьмя объектами, состоящий из наземного радара, двух самолетов и наземного транспортного средства. Можно просмотреть код, который сгенерировал этот рисунок в Визуализировании Многоплатформенного примера Сценария.
Создать средство просмотра сценария:
Задайте и настройте 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
.
Name
— Имя заголовка окна'Scenario Viewer'
(значение по умолчанию) | вектор символовИмя заголовка окна, заданное как вектор символов. Name
свойство и Title
свойство отличается.
Пример: 'Multitarget Viewer'
Типы данных: char
ReferenceRadar
— Ссылочный радарный индекс
(значение по умолчанию) | положительное целое числоСсылочный радарный индекс, заданный как положительное целое число. Это свойство выбирает один из радаров как ссылочный радар. Его значение должно быть меньше чем или равно количеству радаров, которые вы задаете в radar_pos
аргумент 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
— Излучите держащееся направление
(значение по умолчанию) | положительный вектор-столбец с 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
, из step
метод, заданный как true
или false
. Установка этого свойства к true
включает входные параметры. Когда этим свойством является false
, векторы скорости оцениваются от изменения положения между последовательными обновлениями, разделенными на интервал обновления. Интервал обновления является инверсией UpdateRate
значение.
Пример: false
Типы данных: логический
OrientationInputPort
— Включите вход ориентацииfalse
(значение по умолчанию) | true
Включите вход системных осей ориентации локальной координаты, radar_laxes
и tgt_laxes
, к step
метод, заданный как false
или true
. Установка этого свойства к true
включает входные параметры. Когда этим свойством является false
, оси ориентации выравниваются с осями глобальной координаты.
Пример: true
Типы данных: логический
UpdateRate
— Частота обновления средства просмотра сценария
(значение по умолчанию) | positive scalar
Частота обновления средства просмотра сценария, заданного как положительная скалярная величина. Модули находятся в герц.
Пример: 2.5
Типы данных: double
Title
— Отобразите заголовок''
(значение по умолчанию) | вектор символовОтобразите заголовок, заданный как вектор символов. 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
— Длина видимых дорожек
(значение по умолчанию) | положительное целое число | (N+M) - вектор длины положительных целых чиселПродолжительность видимости объектных дорожек, заданных как положительное целое число или (N+M) - вектор длины положительных целых чисел. N является количеством радаров, и M является количеством целей. Когда TrailLength
скаляр, все дорожки имеют ту же длину. Когда TrailLength
вектор, каждый элемент вектора задает длину соответствующего радара или целевой траектории. Закажите записи радарами, сопровождаемыми целями. Каждый вызов 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
обновить средство просмотра с каждым вызовом 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.