このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
衛星コンスタレーション地上局へのアクセス
この例では、地上局と衛星コンステレーションに搭載された円錐形センサー間のアクセス解析を設定する方法を示します。地上局と衛星に属するコニカル センサーは、地上局が円錐形センサーの視野内にあり、円錐形センサーの地上局に対する仰角が後者の最小仰角以上である場合に、互いにアクセスできると言われます。シナリオには、40 基の低軌道衛星コンスタレーションと地理的サイトが含まれます。各衛星には90度の視野を持つカメラが搭載されています。衛星コンスタレーション全体の任務は、北緯 42.3001 度、西経 71.3504 度に位置する地理的サイトを撮影することです。写真は、サイトが太陽によって十分に照らされているときに、2020 年 5 月 12 日PM1 時 (UTC) から 2020 年 5 月 12 日PM7 時 (UTC) の間に撮影する必要があります。大気の歪みを最小限に抑えて高品質の画像を撮影するには、サイトに対する衛星の仰角が少なくとも 30 度である必要があります (30 度は説明のために任意に選択されたものであることに注意してください)。6 時間の間隔中に、各衛星が現場を撮影できる時間を決定する必要があります。また、この間隔中に少なくとも 1 つの衛星のカメラがサイトを視認できる時間の割合を決定することも必要です。このパーセンテージの量は、システム全体のアクセス パーセンテージと呼ばれます。
衛星シナリオを作成する
satelliteScenario
を使用して衛星シナリオを作成します。datetime
を使用して、開始時刻を 2020 年 5 月 12 日PM1 時 00 分 (UTC) に設定し、終了時刻を 2020 年 5 月 12 日PM7 時 00 分 (UTC) に設定します。シミュレーションのサンプル時間を 30 秒に設定します。
startTime = datetime(2020,5,12,13,0,0);
stopTime = startTime + hours(6);
sampleTime = 30; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)
sc = satelliteScenario with properties: StartTime: 12-May-2020 13:00:00 StopTime: 12-May-2020 19:00:00 SampleTime: 30 AutoSimulate: 1 CentralBodyOptions: [1×1 Aero.satellitescenario.CentralBodyOptions] Satellites: [1×0 matlabshared.satellitescenario.Satellite] GroundStations: [1×0 matlabshared.satellitescenario.GroundStation] Platforms: [1×0 matlabshared.satellitescenario.Platform] Viewers: [0×0 matlabshared.satellitescenario.Viewer] AutoShow: 1
衛星シナリオに衛星を追加する
satellite
を使用して、 TLEファイル leoSatelliteConstellation.tle
からシナリオに衛星を追加します。TLEファイルは、高度と傾斜角がそれぞれ約 500 km と 55 度のほぼ円形の低軌道にある 40 個の一般的な衛星の平均軌道パラメーターを定義します。
tleFile = "leoSatelliteConstellation.tle";
sat = satellite(sc,tleFile)
sat = 1x40 Satellite array with properties: Name ID PhysicalProperties ConicalSensors Gimbals Transmitters Receivers Accesses Eclipse GroundTrack Orbit CoordinateAxes OrbitPropagator MarkerColor MarkerSize ShowLabel LabelFontColor LabelFontSize Visual3DModel Visual3DModelScale
衛星にカメラを追加する
conicalSensor
を使用して、各衛星にコニカル センサーを追加します。これらのコニカル センサーはカメラを表しています。MaxViewAngle
を 90 度に指定して、視野を定義します。
names = sat.Name + " Camera"; cam = conicalSensor(sat,"Name",names,"MaxViewAngle",90)
cam = 1x40 ConicalSensor array with properties: Name ID MountingLocation MountingAngles MaxViewAngle Accesses FieldOfView CoordinateAxes
衛星シナリオで撮影する地理的サイトを定義する
groundStation
を使用して、撮影する地理的サイトを表す地上局を追加します。MinElevationAngle
を 30 度に指定します。緯度と経度が指定されていない場合は、デフォルトで北緯 42.3001 度、西経 71.3504 度になります。
name = "Geographical Site"; minElevationAngle = 30; % degrees geoSite = groundStation(sc, ... "Name",name, ... "MinElevationAngle",minElevationAngle)
geoSite = GroundStation with properties: Name: Geographical Site ID: 81 Latitude: 42.3 degrees Longitude: -71.35 degrees Altitude: 0 meters MinElevationAngle: 30 degrees MaskElevationAngle: 30 degrees MaskAzimuthEdges: [0 360] 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] Eclipse: [1x0 Aero.satellitescenario.Eclipse] CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes] MarkerColor: [1 0.4118 0.1608] MarkerSize: 6 ShowLabel: true LabelFontColor: [1 1 1] LabelFontSize: 15
カメラと地理的サイト間のアクセス解析を追加する
access
を使用して、各カメラと地理的なサイト間のアクセス解析を追加します。アクセス解析は、各カメラがいつサイトを撮影できるかを決定するために使用されます。
ac = access(cam,geoSite);
% Properties of access analysis objects
ac(1)
ans = Access with properties: Sequence: [41 81] LineWidth: 3 LineColor: [0.3922 0.8314 0.0745]
シナリオを可視化する
satelliteScenarioViewer
を使用して衛星シナリオ ビューアーを起動し、シナリオを可視化します。ShowDetails
の名前と値のペアを false
に設定して、衛星と地上局の軌道とラベルを非表示にします。地理的サイトと衛星4 のラベルを表示し、衛星を画面の中央に配置します。
v = satelliteScenarioViewer(sc,"ShowDetails",false);
sat(4).ShowLabel = true;
geoSite.ShowLabel = true;
show(sat(4));
ShowDetails
プロパティが false
に設定されている場合、衛星と地上局のみが表示されます。ラベル、軌道、視野、グラウンド トラックは非表示になります。衛星や地上局の上にマウスを移動すると、ラベルが表示されます。衛星または地上局をクリックすると、そのラベル、軌道、その他の隠れたグラフィックが表示されます。衛星または地上局をもう一度クリックすると、閉じます。
ビューアは、シナリオが正しく設定されていることを視覚的に確認するために使用できます。紫色の線は、衛星4 のカメラと地理的サイトが相互にアクセスできることを示しています。これは、地理的サイトがカメラの視野内にあり、場所に対するカメラの仰角が30 度以上であることを意味します。このシナリオでは、カメラが現場を正常に撮影できることを意味します。
カメラの視野を可視化する
fieldOfView
を使用して、衛星 4 の各カメラの視野を可視化します。
fov = fieldOfView(cam([cam.Name] == "Satellite 4 Camera"))
fov = FieldOfView with properties: LineWidth: 1 LineColor: [1 0.0745 0.6510] VisibilityMode: 'inherit'
コンターの内側に地理的サイトが存在するということは、それが衛星4 号に搭載されたカメラの視野内にあることを視覚的に確認するものです。
可視化をカスタマイズする
アクセス可視化の色を赤に変更します。
ac.LineColor = 'red';
カメラが地理的サイトを撮影できる時間を決定する
accessIntervals
を使用して、各カメラと地理的サイト間のアクセスがある時間を決定します。カメラで現場を撮影できる時間帯です。
accessIntervals(ac)
ans=30×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_____________________ ___________________ ______________ ____________________ ____________________ ________ __________ ________
"Satellite 1 Camera" "Geographical Site" 1 12-May-2020 13:36:00 12-May-2020 13:39:30 210 1 1
"Satellite 1 Camera" "Geographical Site" 2 12-May-2020 15:23:00 12-May-2020 15:25:00 120 2 2
"Satellite 2 Camera" "Geographical Site" 1 12-May-2020 14:30:30 12-May-2020 14:34:30 240 1 1
"Satellite 3 Camera" "Geographical Site" 1 12-May-2020 13:28:30 12-May-2020 13:32:30 240 1 1
"Satellite 4 Camera" "Geographical Site" 1 12-May-2020 13:00:00 12-May-2020 13:02:30 150 1 1
"Satellite 4 Camera" "Geographical Site" 2 12-May-2020 14:46:00 12-May-2020 14:48:30 150 2 2
"Satellite 5 Camera" "Geographical Site" 1 12-May-2020 16:28:30 12-May-2020 16:33:00 270 3 3
"Satellite 6 Camera" "Geographical Site" 1 12-May-2020 17:05:30 12-May-2020 17:09:30 240 3 3
"Satellite 7 Camera" "Geographical Site" 1 12-May-2020 16:20:00 12-May-2020 16:24:30 270 2 3
"Satellite 8 Camera" "Geographical Site" 1 12-May-2020 15:18:00 12-May-2020 15:20:00 120 2 2
"Satellite 8 Camera" "Geographical Site" 2 12-May-2020 17:03:30 12-May-2020 17:07:00 210 3 3
"Satellite 9 Camera" "Geographical Site" 1 12-May-2020 17:55:30 12-May-2020 17:57:00 90 3 3
"Satellite 10 Camera" "Geographical Site" 1 12-May-2020 18:44:30 12-May-2020 18:49:00 270 4 4
"Satellite 11 Camera" "Geographical Site" 1 12-May-2020 18:39:30 12-May-2020 18:44:00 270 4 4
"Satellite 12 Camera" "Geographical Site" 1 12-May-2020 17:58:00 12-May-2020 18:01:00 180 3 3
"Satellite 29 Camera" "Geographical Site" 1 12-May-2020 13:09:30 12-May-2020 13:13:30 240 1 1
⋮
上記の表は、特定のカメラがサイトを撮影できる各間隔の開始時刻と終了時刻で構成されています。各間隔の継続時間は秒単位で報告されます。StartOrbit と EndOrbit は、アクセスの開始時と終了時にカメラが取り付けられている衛星の軌道カウントです。カウントはシナリオ開始時間から開始されます。
play
を使用して、シナリオのシミュレーションを開始時間から終了時間まで可視化します。カメラが地理的サイトを撮影できるときはいつでも、緑色の線が表示されることがわかります。
play(sc);
システム全体のアクセス率を計算する
各カメラが地理的サイトを撮影できる時間を決定することに加えて、システム全体のアクセス率、つまり、シナリオの開始時刻から終了時刻までの、少なくとも 1 つの衛星がサイトを撮影できる時間の割合を決定する必要もあります。これは次のように計算されます。
各カメラについて、
accessStatus
を使用してサイトへのアクセス状況履歴を計算します。特定のカメラの場合、これは論理の行ベクトルであり、ベクトル内の各要素は特定の時間サンプルに対応するアクセス ステータスを表します。True
の値は、カメラがその特定の時間サンプルでサイトを撮影できることを示します。各カメラのサイトへのアクセスに対応するすべての行ベクトルに対して論理
OR
を実行します。これにより、論理の単一行ベクトルが生成されます。このベクトルでは、少なくとも 1 台のカメラが、1 つのシナリオ サンプル時間である 30 秒間、対応する時間サンプルでサイトを撮影できる場合、特定の要素が true になります。ベクトル内で値が
True
である要素の数を数えます。この量に 30 秒のサンプル時間を掛けて、少なくとも 1 台のカメラがサイトを撮影できる合計時間 (秒) を決定します。この量をシナリオ期間の 6 時間で割り、100 を掛けてシステム全体のアクセス率を算出します。
for idx = 1:numel(ac) [s,time] = accessStatus(ac(idx)); if idx == 1 % Initialize system-wide access status vector in the first iteration systemWideAccessStatus = s; else % Update system-wide access status vector by performing a logical OR % with access status for the current camera-site access % analysis systemWideAccessStatus = or(systemWideAccessStatus,s); end end
plot
を使用して、時間に対するシステム全体のアクセス ステータスをプロットします。
plot(time,systemWideAccessStatus,"LineWidth",2); grid on; xlabel("Time"); ylabel("System-Wide Access Status");
システム全体のアクセス ステータスが 1 (True
) の場合、少なくとも 1 台のカメラがサイトを撮影できます。
nnz
を使用して、値が True
である systemWideAccessStatus
の要素の数を決定します。
n = nnz(systemWideAccessStatus)
n = 203
少なくとも 1 台のカメラがサイトを撮影できる合計時間を決定します。これは、True
要素の数とシナリオのサンプル時間を掛け合わせることで実現されます。
systemWideAccessDuration = n*sc.SampleTime % seconds
systemWideAccessDuration = 6090
seconds
を使用して、シナリオの合計期間を計算します。
scenarioDuration = seconds(sc.StopTime - sc.StartTime)
scenarioDuration = 21600
システム全体のアクセス率を計算します。
systemWideAccessPercentage = (systemWideAccessDuration/scenarioDuration)*100
systemWideAccessPercentage = 28.1944
カメラで地理的サイトを追跡することでシステム全体のアクセス率を向上させる
衛星のデフォルトの姿勢構成では、ヨー軸が真下、つまり地球上の天底の真下の点を指すようになっています。デフォルトではカメラはヨー軸に沿って配置されているため、カメラも真下を向いています。その結果、仰角が30 度を下回る前に、地理的サイトがカメラの視野外になってしまいます。したがって、累積アクセス率はカメラの視野によって制限されます。
代わりにカメラが常に地理的サイトに向けられている場合、地球が視線を遮っていない限り、地理的な場所は常にカメラの視野内にあります。その結果、システム全体のアクセス率は、カメラの視野ではなく、地理的サイトの MinElevationAngle
によって制限されるようになります。前者の場合、アクセス間隔はサイトがカメラの視野に入ったときと視野から出たときに開始および終了しました。カメラの仰角が30 度を超えてからしばらくして視界に入り、仰角が30 度を下回る前に視界から消えました。ただし、カメラが常に現場に向けられている場合、アクセス間隔は仰角が30 度を超えたときに開始され、仰角が 30 度を下回ったときに終了するため、間隔の長さが長くなります。したがって、システム全体のアクセス率も増加します。
カメラは衛星にしっかりと取り付けられているため、各衛星はヨー軸が地理的サイトを追跡するように軌道に沿って継続的に方向を変える必要があります。カメラはヨー軸に沿って配置されているため、カメラも現場に向けられます。pointAt
を使用して、各衛星のヨー軸が地理的サイトを追跡するようにします。
pointAt(sat,geoSite);
システム全体のアクセス率を再計算します。
% Calculate system-wide access status for idx = 1:numel(ac) [s,time] = accessStatus(ac(idx)); if idx == 1 % Initialize system-wide access status vector in the first iteration systemWideAccessStatus = s; else % Update system-wide access status vector by performing a logical OR % with access status for the current camera-site combination systemWideAccessStatus = or(systemWideAccessStatus,s); end end % Calculate system-wide access percentage n = nnz(systemWideAccessStatus); systemWideAccessDuration = n*sc.SampleTime; systemWideAccessPercentageWithTracking = (systemWideAccessDuration/scenarioDuration)*100
systemWideAccessPercentageWithTracking = 38.3333
システム全体のアクセス率は約36%向上しました。これはカメラが地理的サイトを継続的に向けている結果です。これは、play
を再度使用することで可視化できます。
play(sc)
カメラが地理的サイトをトラッキング際に真下を向いていないため、ビュー コンターは円形ではなくなります。
例の検討
この例では、地上局と衛星コンステレーションに搭載された円錐形センサー間のアクセス解析を設定する方法を示しました。コニカル センサーは衛星に搭載されたカメラを表し、地上局は撮影対象となる地理的サイトを表しています。アクセス解析を使用して、衛星搭載カメラが地理的サイトを撮影できる時間を決定しました。さらに、システム全体のアクセス率が計算され、6 時間の間に少なくとも 1 つの衛星がその場所を撮影できる時間の割合が決定されました。これらの結果はカメラが向いている方向によって異なることがわかりました。
これらの結果は、以下の要素によっても決まります。
衛星の軌道
地理的サイトの
MinElevationAngle
衛星に対するカメラの設置位置と配置
カメラが地理的サイトを継続的に向いていないときのカメラの視野(
MaxViewAngle
)
上記のパラメーターを要件に合わせて変更し、アクセス間隔とシステム全体のアクセス率への影響を確認します。衛星の軌道は、satellite
を使用してケプラーの軌道要素を明示的に指定することで変更できます。さらに、カメラは衛星とは独立して回転できる gimbals
に取り付けることができます。この方法により、衛星は真下を向き(デフォルトの動作)、ジンバルはカメラが地理的サイトを独立して追跡するように構成できます。
参考
オブジェクト
satelliteScenario
|satellite
|Access
|GroundStation
|satelliteScenarioViewer
|ConicalSensor
|Transmitter
|Receiver