Постройте набор покрытий в театральном плоттере покрытия
plotCoverage(
задает настройки датчиков M или эмиттеров, зоны охвата которых и лучи построены по cPlotter
,configurations
)CoveragePlotter
объект, cPlotter
. Смотрите coveragePlotter
о том, как создать CoveragePlotter
объект.
plotCoverage(
задает цвет каждого покрытия и пары графика луча с помощью списка индексов и цветов.cPlotter
,configurations
,indices
,colors
)
Создайте театральный график и установите пределы для его осей. Создайте плоттер покрытия с DisplayName
установите на 'Sensor Coverage'
.
tp = theaterPlot('XLim',[-40 40],'YLim',[-40 40],'ZLim',[-40 40]); covp = coveragePlotter(tp,'DisplayName','Sensor Coverage');
Настройте настройку датчиков, покрытие которых должно быть построено.
sensor = struct('Index',1,'ScanLimits',[-45 45],'FieldOfView',[10;40],... 'LookAngle',-10,'Range',30,'Position',zeros(1,3),'Orientation',zeros(1,3));
Постройте покрытие с помощью plotCoverage
функционируйте и визуализируйте результаты. Темно-синий представляет луч датчика тока, и голубой представляет зону охвата.
plotCoverage(covp,sensor) view(70,30)
Создайте театральный график и создайте плоттер покрытия.
tp = theaterPlot('XLim',[-1e7 1e7],'YLim',[-1e7 1e7],'ZLim',[-2e6 1e6]); covp = coveragePlotter(tp,'DisplayName','Sensor Coverage'); view(25,20)
Смоделируйте радар несканирования и растровый радар сканирования.
radarIndex = 1; radar =fusionRadarSensor(radarIndex,'No Scanning','RangeLimits',[0 1e8]); RasterIndex = 2; raster = fusionRadarSensor(RasterIndex,'Raster','RangeLimits',[0 1e8]);
Создайте целевую платформу.
tgt = struct( ... 'PlatformID', 1, ... 'Position', [0 -50e3 -1e3], ... 'Speed', -1e3);
Симулируйте датчики и визуализируйте их шаблон сканирования.
time = 0; timestep = 1; stopTime = 90; while time < stopTime time = time+timestep; radar(tgt,time); raster(tgt,time); % Obtain sensor configuration using coverageConfig. radarcov = coverageConfig(radar); ircov = coverageConfig(raster); % Update plotter plotCoverage(covp,[radarcov,ircov],... [radarIndex, RasterIndex],... {'blue','red'}... ); pause(0.03) end
cPlotter
— Объект плоттера покрытияCoveragePloter
объектОбъект плоттера покрытия, созданный coveragePlotter
функция.
configurations
— Датчик или эмиттерные настройкиДатчик или эмиттерные настройки в виде массива структур. Каждая структура соответствует настройке датчика или эмиттера. Поля каждой структуры:
Поля настроек
Поле | Описание |
---|---|
Index | Уникальное целое число, чтобы отличить датчики или эмиттеры. |
LookAngle | Текущие пеленги датчика или эмиттера в виде:
|
FieldOfView | Поле зрения датчика или эмиттера в виде двухэлементного вектора [azimuth ; elevation ] в градусах. |
ScanLimits | Минимальные и максимальные углы датчик или эмиттер могут отсканировать от его
|
Range | Область значений луча и зона охвата датчика или эмиттера в метрах. |
Position | Положение источника датчика или эмиттера в виде трехэлементного вектора [X Y Z ] на театральных осях графика. |
Orientation | Преобразование вращения из сценария или глобальной переменной структурирует к датчику или системе координат монтирования эмиттера в виде матрицы вращения, кватерниона или трех Углов Эйлера в последовательности ZYX. |
Совет
Если любой значение Position
поле или значение Orientation
полем является NaN
, соответствующая зона охвата и луч не будут построены.
indices
— Датчик или эмиттерные индексыДатчик или эмиттерные индексы в виде N - массив элемента неотрицательных целых чисел. Этот аргумент позволяет вам задавать цвет каждой зоны охвата и пары луча с соответствующим индексом.
Пример: [1;2;4]
colors
— Цвета плоттера покрытияПлоттер покрытия окрашивает в виде N - вектор элемента из векторов символов, строковых скаляров, триплетов RGB или шестнадцатеричных цветовых кодов. N является числом элементов в indices
массив. Зона охвата и пара луча, индексированная i th элемент в indices
массив построен с цветом, заданным i th элемент colors
массив.
coveragePlotter
| theaterPlot
| clearData
| clearPlotterData
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.