Отображение движения РЛС и целей
phased.ScenarioViewer Система object™ создает средство просмотра 3-D для отображения движения радаров и целей, моделируемых при моделировании радара. Можно отобразить текущие положения и скорости, дорожки объекта, аннотации положения и скорости, направления луча радара и другие параметры объекта. Во время моделирования можно изменять такие функции радара, как дальность и ширину луча. Вы можете использовать phased.Platform Системный объект для моделирования движущихся объектов или можно предоставить собственные динамические модели.
На этом рисунке показан сценарий с четырьмя объектами, состоящий из наземного радара, двух самолетов и наземного транспортного средства. Код, сгенерировавший этот рисунок, можно просмотреть в примере «Визуализация мультиплатформенного сценария».

Чтобы создать средство просмотра сценариев, выполните следующие действия.
Определение и настройка phased.ScenarioViewer Системный объект. См. раздел Строительство. Можно задать свойства объекта System во время конструирования или оставить для них значения по умолчанию. Некоторые свойства, заданные во время конструирования, могут быть изменены позже. Эти свойства можно настроить.
Позвоните в step способ обновления позиций РЛС и цели согласно свойствам phased.ScenarioViewer Системный объект. Настраиваемые свойства можно изменить в любое время.
Примечание
Начиная с R2016b, вместо использования step для выполнения операции, определенной объектом System, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.
создает системный объект программы просмотра сценариев, sIS = phased.ScenarioViewersIS имеет значения свойств по умолчанию.
возвращает объект System средства просмотра сценариев, sIS = phased.ScenarioViewer(Name,Value)sIS, с любым указанным свойством Name задать для указанного Value. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.
Name - Название подписи окна'Scenario Viewer' (по умолчанию) | символьный векторИмя подписи окна, указанное как символьный вектор. Name собственность и Title свойства отличаются.
Пример: 'Multitarget Viewer'
Типы данных: char
ReferenceRadar - Индекс опорной РЛС1 (по умолчанию) | положительное целое числоИндекс опорной РЛС, указанный как положительное целое число. Это свойство выбирает один из радаров в качестве опорного радиолокатора. Его значение должно быть меньше или равно количеству радаров, указанному в radar_pos аргумент step способ. Это свойство можно настроить. По этой РЛС определяют дальность цели, радиальную скорость, азимут и отметку.
Пример: 2
Типы данных: double
ShowBeam - Показать радиолокационные лучи'ReferenceRadar' (по умолчанию) | 'None' | 'All'Включить отображение радиолокационных лучей, указанных как 'ReferenceRadar', 'None', или 'All'. Этот параметр определяет, какие лучи радара должны отображаться.
| Выбор | Балки для отображения |
|---|---|
'ReferenceRadar' | Показать луч РЛС, указанный в ReferenceRadar собственность. |
'None' | Не показывать радиолокационные лучи. |
'All' | Показать лучи для всех радаров. |
Это свойство можно настроить.
Пример: 'All'
Типы данных: char
BeamWidth - Ширина луча РЛС по вертикали и горизонталиВертикальная и горизонтальная ширина радиолокационного луча, заданная как положительный действительный скаляр, 2-элементный вектор столбца, N-элементный вектор строки или 2-by-N матрица. N - количество радаров. Все скалярные, векторные и матричные записи являются положительными, вещественными числами между 0-360 °. Единицы измерения в градусах.
| Спецификация стоимости | Интерпретация |
|---|---|
| Скаляр | Ширина луча РЛС по горизонтали и вертикали одинакова и одинакова для всех РЛС. |
| 2-элементный вектор столбца | Первая строка указывает ширину горизонтальной балки. Вторая строка определяет ширину вертикальной балки. Эти значения идентичны для всех радаров. |
| Вектор строки N-элемента | Каждый элемент относится к одному радиолокатору. Ширина луча по вертикали и горизонтали для каждой РЛС равна. |
| 2-by-N матрица | Каждая колонна относится к одному радару. Первая строка определяет ширину горизонтального луча, а вторая строка - ширину вертикального луча для каждого радара. |
Когда CameraPerspective имеет значение 'Radar', объект System использует это свойство для вычисления значения CameraViewAngle. Это свойство можно настроить.
Пример: [20 10; 18 9]
Типы данных: double
BeamRange - Дальность луча РЛСДальность радиолокационного луча, заданная как положительный скаляр или вектор строки N-элемента, где N - количество радаров. Единицы в метрах. При задании в качестве скаляра все радары имеют одинаковый диапазон направленности. При задании в качестве вектора каждый элемент соответствует одной РЛС. Это свойство можно настроить.
Пример: [1000 1500 850]
Типы данных: double
BeamSteering - Направление поворота балки[0;0] (по умолчанию) | положительный вектор 2-элементного столбца с действительным значением | положительный вектор N-элементной строки с действительным значениемНаправления управления лучом РЛС, определяемые как действительный 2-элементный вектор-колонка положительных значений или 2-by-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
Типы данных: logical
OrientationInputPort - Включить ввод ориентацииfalse (по умолчанию) | trueВключить ввод осей ориентации локальной системы координат, radar_laxes и tgt_laxes, в step метод, указанный как false или true. Установка для этого свойства значения true включает входные аргументы. Когда это свойство falseоси ориентации выравниваются с глобальными координатными осями.
Пример: true
Типы данных: logical
UpdateRate - Частота обновления средства просмотра сценариев1 (по умолчанию) | positive scalarЧастота обновления средства просмотра сценариев, заданная как положительный скаляр. Единицы измерения в герцах.
Пример: 2.5
Типы данных: double
Title - Заголовок дисплея'' (по умолчанию) | символьный векторОтображение заголовка, заданного как символьный вектор. Title собственность и Name свойства отличаются. Заголовок экрана отображается в верхней части рисунка. Имя появляется в верхней части окна рисунка. Это свойство можно настроить.
Пример: 'Radar and Target Display'
Типы данных: char
PlatformNames - Наименования РЛС и целей'Auto' (по умолчанию) | 1-by- (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 - вектор, каждый элемент вектора задает длину соответствующей траектории РЛС или цели. Закажите записи радарами, за которыми следуют цели. Каждый вызов step метод создает новую видимую точку. Это свойство можно настроить.
Пример: [100,150,100]
Типы данных: double
CameraPerspective - Перспектива камеры'Auto' (по умолчанию) | 'Custom' | 'Radar'Перспектива камеры, указанная как 'Auto', 'Custom', или 'Radar'. При установке для этого свойства значения 'Auto'объект System оценивает соответствующие значения для положения камеры, ориентации и угла обзора для отображения всех дорожек. При установке для этого свойства значения 'Custom'можно задать положение, ориентацию и углы камеры с помощью свойств камеры или панели инструментов камеры. При установке для этого свойства значения 'Radar'объект System определяет положение камеры, ориентацию и углы от положения радара и направления управления лучом радара. Это свойство можно настроить.
Пример: 'Radar'
Типы данных: char
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 - Угол обзора камерыУгол обзора камеры, заданный как действительный скаляр. Единицы измерения в градусах. Значения угла просмотра находятся в диапазоне от 0 ° до 360 °. Это свойство применяется при установкеCameraPerspective кому 'Custom'. Если это свойство не задано, системный объект выбирает значения на основе конфигурации экранного представления. Это свойство можно настроить.
Пример: 75
Типы данных: double
ShowLegend - Показать легенду программы просмотраfalse (по умолчанию) | trueПараметр для отображения легенды Viewer, указанной как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowGround - Показать наземную плоскость сценарияtrue (по умолчанию) | falseОпция отображения нулевой плоскости сценария Viewer, указанная как true или false. Это свойство можно настроить.
Пример: false
Типы данных: logical
ShowName - Возможность аннотирования радиолокационных и целевых трасс наименованиямиtrue (по умолчанию) | falseАннотировать РЛС и цели с наименованиями, указанными как true или false. Пользовательские имена платформ можно определить с помощью PlatformNames. Это свойство можно настроить.
Пример: false
Типы данных: logical
ShowPosition - Аннотировать РЛС и цели позициямиfalse (по умолчанию) | trueВозможность аннотирования РЛС и целей позициями, указанными как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowRange - Аннотировать РЛС и цели с дальностямиfalse (по умолчанию) | trueВозможность аннотирования РЛС и путей цели с дальностью от реперной РЛС, указанной как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowAltitude - Аннотировать РЛС и цели по высотеfalse (по умолчанию) | trueОпция аннотирования РЛС и целей с высотой, указанной как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowSpeed - Аннотировать РЛС и цели со скоростьюfalse (по умолчанию) | trueВозможность аннотирования радиолокационных и целевых трасс со скоростью, указанной как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowRadialSpeed - Аннотировать РЛС и цели радиальной скоростьюfalse (по умолчанию) | trueОпция аннотирования радиолокационных и целевых путей с радиальной скоростью, указанная как false или true. Радиальная скорость относительно опорной РЛС. Это свойство можно настроить.
Пример: true
Типы данных: logical
ShowAzEl - Аннотировать РЛС и цели по азимуту и отметкеfalse (по умолчанию) | trueОпция аннотирования РЛС и путей цели с углами азимута и места относительно реперной РЛС, указанная как false или true. Это свойство можно настроить.
Пример: true
Типы данных: logical
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
Типы данных: logical
| скрыть | Скрыть окно просмотра сценариев |
| сброс | Сброс состояния объекта System |
| показать | Показать окно просмотра сценариев |
| шаг | Обновление просмотра сценариев |
| Общие для всех системных объектов | |
|---|---|
release | Разрешить изменение значения свойства объекта системы |
Визуализация следов радара и одиночной цели самолета. Радар неподвижен, а самолет движется по прямой. Поддерживайте радиолокационный луч, направленный на самолет.
Создайте радар и самолетную платформу System 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.