Отобразите движение радаров и целей
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 | Позвольте изменения значения свойства Системного объекта |
Визуализируйте дорожки радара и одной цели самолета. Радар является стационарным, и самолет перемещается в прямую линию. Обеспечьте радарный луч, указывающий на самолет.
Создайте радар и платформную систему самолета objects™. Установите частоту обновления на 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
Система objects™. Установите частоту обновления на 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
Система object™. Задайте исходное положение самолета областью значений и азимутом от наземного радара и его вертикального изменения. Самолет в 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.