Визуализируйте поле зрения конического датчика
fieldOfView( добавляет sensor)FieldOfView возразите против заданного конического датчика, и чертит контуры на Земле. Каждый контур представляет поле зрения конического датчика в sensor на основе текущего состояния сценария.
Местоположения в контуре в поле зрения. Если никакое средство просмотра не открыто, новое средство просмотра запускается, и контуры поля зрения показывают в открытом средстве просмотра. Если средство просмотра уже открыто, контуры поля зрения добавляются к нему. Контуры являются линиями пересечения поверхности земли и конуса поля зрения. Половина угла конуса поля зрения равна свойству MaxViewAngle конического датчика, и осью конуса является z - ось (или опорное направление) конического датчика. Вершина конуса расположена в положении конического датчика. Конус становится более широким вдоль положительного тела z - ось конического датчика.
fieldOfView( задает опции при помощи одних или нескольких аргументов name-value.sensor,Name,Value)
возвращает вектор из указателей на добавленные графические объекты поля зрения. Задайте любую входную комбинацию от предыдущих синтаксисов.fov = fieldOfView(___)
Создайте спутниковый сценарий со временем начала от 15 июня 2021 8:55:00 UTC и время остановки пять дней спустя. Установите шаг расчета симуляции на 60 секунды.
startTime = datetime(2021,6,21,8,55,0);
stopTime = startTime + days(5);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)sc =
satelliteScenario with properties:
StartTime: 21-Jun-2021 08:55:00
StopTime: 26-Jun-2021 08:55:00
SampleTime: 60
Viewers: [0x0 matlabshared.satellitescenario.Viewer]
Satellites: [1x0 matlabshared.satellitescenario.Satellite]
GroundStations: [1x0 matlabshared.satellitescenario.GroundStation]
AutoShow: 1
Добавьте спутник в сценарий с помощью Кеплеровских орбитальных элементов.
semiMajorAxis = 7878137; % meters eccentricity = 0; inclination = 50; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 50; % degrees sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ... argumentOfPeriapsis,trueAnomaly)
sat =
Satellite with properties:
Name: Satellite 1
ID: 1
ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor]
Gimbals: [1x0 matlabshared.satellitescenario.Gimbal]
Transmitters: [1x0 satcom.satellitescenario.Transmitter]
Receivers: [1x0 satcom.satellitescenario.Receiver]
Accesses: [1x0 matlabshared.satellitescenario.Access]
GroundTrack: [1x1 matlabshared.satellitescenario.GroundTrack]
Orbit: [1x1 matlabshared.satellitescenario.Orbit]
OrbitPropagator: sgp4
MarkerColor: [1 0 0]
MarkerSize: 10
ShowLabel: true
LabelFontColor: [1 0 0]
LabelFontSize: 15
Добавьте наземную станцию, которая представляет местоположение, которое будет сфотографировано к сценарию.
gs = groundStation(sc,"Name","Location To Photograph", ... "Latitude",42.3001,"Longitude",-71.3504) % degrees
gs =
GroundStation with properties:
Name: Location To Photograph
ID: 2
Latitude: 42.3 degrees
Longitude: -71.35 degrees
Altitude: 0 meters
MinElevationAngle: 0 degrees
ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor]
Gimbals: [1x0 matlabshared.satellitescenario.Gimbal]
Transmitters: [1x0 satcom.satellitescenario.Transmitter]
Receivers: [1x0 satcom.satellitescenario.Receiver]
Accesses: [1x0 matlabshared.satellitescenario.Access]
MarkerColor: [0 1 1]
MarkerSize: 10
ShowLabel: true
LabelFontColor: [0 1 1]
LabelFontSize: 15
Добавьте карданов подвес в спутник. Можно регулировать этот карданов подвес независимо от спутника.
g = gimbal(sat)
g =
Gimbal with properties:
Name: Gimbal 3
ID: 3
MountingLocation: [0; 0; 0] meters
MountingAngles: [0; 0; 0] degrees
ConicalSensors: [1x0 matlabshared.satellitescenario.ConicalSensor]
Transmitters: [1x0 satcom.satellitescenario.Transmitter]
Receivers: [1x0 satcom.satellitescenario.Receiver]
Отследите местоположение, которое будет сфотографировано с помощью карданова подвеса.
pointAt(g,gs);
Добавьте конический датчик в карданов подвес. Этот датчик представляет камеру. Установите поле зрения на 60 градусов.
camSensor = conicalSensor(g,"MaxViewAngle",60)camSensor =
ConicalSensor with properties:
Name: Conical sensor 4
ID: 4
MountingLocation: [0; 0; 0] meters
MountingAngles: [0; 0; 0] degrees
MaxViewAngle: 60 degrees
Accesses: [1x0 matlabshared.satellitescenario.Access]
FieldOfView: [0x0 matlabshared.satellitescenario.FieldOfView]
Добавьте анализ доступа между камерой и местоположением, которое будет сфотографировано. Доступ добавляется к коническому датчику.
ac = access(camSensor,gs)
ac =
Access with properties:
Sequence: [4 2]
LineWidth: 1
LineColor: [0.5 0 1]
Визуализируйте поле зрения камеры при помощи Спутникового Средства просмотра Сценария.
v = satelliteScenarioViewer(sc); fieldOfView(camSensor);

Определите интервалы, во время которых камера видит географический сайт.
t = accessIntervals(ac)
t=35×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
__________________ ________________________ ______________ ____________________ ____________________ ________ __________ ________
"Conical sensor 4" "Location To Photograph" 1 21-Jun-2021 10:38:00 21-Jun-2021 10:55:00 1020 1 2
"Conical sensor 4" "Location To Photograph" 2 21-Jun-2021 12:36:00 21-Jun-2021 12:58:00 1320 2 3
"Conical sensor 4" "Location To Photograph" 3 21-Jun-2021 14:37:00 21-Jun-2021 15:01:00 1440 3 4
"Conical sensor 4" "Location To Photograph" 4 21-Jun-2021 16:41:00 21-Jun-2021 17:04:00 1380 5 5
"Conical sensor 4" "Location To Photograph" 5 21-Jun-2021 18:44:00 21-Jun-2021 19:07:00 1380 6 6
"Conical sensor 4" "Location To Photograph" 6 21-Jun-2021 20:46:00 21-Jun-2021 21:08:00 1320 7 7
"Conical sensor 4" "Location To Photograph" 7 21-Jun-2021 22:50:00 21-Jun-2021 23:04:00 840 8 8
"Conical sensor 4" "Location To Photograph" 8 22-Jun-2021 09:51:00 22-Jun-2021 10:02:00 660 13 13
"Conical sensor 4" "Location To Photograph" 9 22-Jun-2021 11:46:00 22-Jun-2021 12:07:00 1260 14 15
"Conical sensor 4" "Location To Photograph" 10 22-Jun-2021 13:46:00 22-Jun-2021 14:10:00 1440 15 16
"Conical sensor 4" "Location To Photograph" 11 22-Jun-2021 15:50:00 22-Jun-2021 16:13:00 1380 16 17
"Conical sensor 4" "Location To Photograph" 12 22-Jun-2021 17:53:00 22-Jun-2021 18:16:00 1380 18 18
"Conical sensor 4" "Location To Photograph" 13 22-Jun-2021 19:55:00 22-Jun-2021 20:18:00 1380 19 19
"Conical sensor 4" "Location To Photograph" 14 22-Jun-2021 21:58:00 22-Jun-2021 22:16:00 1080 20 20
"Conical sensor 4" "Location To Photograph" 15 23-Jun-2021 10:56:00 23-Jun-2021 11:16:00 1200 26 27
"Conical sensor 4" "Location To Photograph" 16 23-Jun-2021 12:56:00 23-Jun-2021 13:19:00 1380 27 28
⋮
Вычислите максимум пересматривают время в часах.
startTimes = t.StartTime;
endTimes = t.EndTime;
revisitTimes = hours(startTimes(2:end) - endTimes(1:end-1));
maxRevisitTime = max(revisitTimes) % hoursmaxRevisitTime = 12.6667
Визуализируйте пересмотреть времена, который фотографирует местоположение.
play(sc);

sensor — Конический датчикConicalSensor объектКонический датчик в виде ConicalSensor объект.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'LineWidth',2.5 устанавливает ширину линии поля зрения к 2,5 пикселям.Viewer — Спутниковое средство просмотра сценарияsatelliteScenarioViewer объекты (значение по умолчанию) | скалярный satelliteScenarioViewer возразите | массив satelliteScenarioViewer объектыСпутниковое средство просмотра сценария в виде скаляра, вектора-строки или массива satelliteScenarioViewer объекты.
NumContourPoints — Количество точек контура (значение по умолчанию) | целое число, больше, чем или равный 4Количество точек контура раньше чертило контур поля зрения в виде целого числа, больше, чем или равный 4.
Типы данных: double
LineWidth — Визуальная ширина контура поля зрения (значение по умолчанию) | скаляр в области значений (0 10]Визуальная ширина поля зрения очерчивает в пикселях в виде скаляра в области значений (0 10].
Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы устанавливаете ширину линии на значение, которое меньше ширины пикселя в вашей системе, отображения линии как один пиксель шириной.
LineColor — Цвет контура поля зрения (значение по умолчанию) | триплет RGB | RGB triplet | string scalar of color name | character vector of color nameЦвет поля зрения очерчивает в виде триплета RGB, шестнадцатеричного цветового кода, названия цвета или краткого названия.
Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.
Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].
Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.
Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.
| Название цвета | Краткое название | Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид |
|---|---|---|---|---|
'red' | 'r' | [1 0 0] | '#FF0000' |
|
'green' | 'g' | [0 1 0] | '#00FF00' |
|
'blue' | 'b' | [0 0 1] | '#0000FF' |
|
'cyan'
| 'c' | [0 1 1] | '#00FFFF' |
|
'magenta' | 'm' | [1 0 1] | '#FF00FF' |
|
'yellow' | 'y' | [1 1 0] | '#FFFF00' |
|
'black' | 'k' | [0 0 0] | '#000000' |
|
'white' | 'w' | [1 1 1] | '#FFFFFF' |
|
'none' | Не применяется | Не применяется | Не применяется | Нет цвета |
Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использование во многих типах графиков.
| Триплет RGB | Шестнадцатеричный цветовой код | Внешний вид |
|---|---|---|
[0 0.4470 0.7410] | '#0072BD' |
|
[0.8500 0.3250 0.0980] | '#D95319' |
|
[0.9290 0.6940 0.1250] | '#EDB120' |
|
[0.4940 0.1840 0.5560] | '#7E2F8E' |
|
[0.4660 0.6740 0.1880] | '#77AC30' |
|
[0.3010 0.7450 0.9330] | '#4DBEEE' |
|
[0.6350 0.0780 0.1840] | '#A2142F' |
|
Пример: 'blue'
Пример: [0 0 1]
Пример: '#0000FF'
fov — Поле зрения конического датчикаFieldOfView объектыПоле зрения конического датчика, возвращенного как вектор-строка из FieldOfView объекты.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.