メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

2 つの地上局間のマルチホップ衛星通信リンク

この例では、 2 つの地上局間にマルチホップ衛星通信リンクを設定する方法を示します。最初の地上局はインド(地上局1)にあり、2 番目の地上局はオーストラリア(地上局2)にあります。リンクは 2 つの衛星(衛星1 と衛星2) を経由してルーティングされます。各衛星は再生中継器として機能します。再生中継器は、入力信号を受信し、受信した信号を復調、再変調、増幅し、再送信します。地上局1 が地上局2 にデータを送信できる、1 日中の時間が決定されます。

衛星シナリオの作成

satelliteScenario を使用して衛星シナリオを作成します。datetime を使用して、シナリオの開始時間と終了時間を定義します。サンプル時間を 60 秒に設定します。

startTime = datetime(2020,8,19,20,55,0);              % 19 August 2020 8:55 PM UTC
stopTime = startTime + days(1);                       % 20 August 2020 8:55 PM UTC
sampleTime = 60;                                      % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime);

衛星シナリオ ビューアーを起動する

satelliteScenarioViewer を使用して、衛星シナリオ ビューアーを起動します。

satelliteScenarioViewer(sc);

衛星を追加する

satellite を使用して、シナリオの開始時間に対応するケプラーの軌道要素を指定して、衛星1 と衛星2 をシナリオに追加します。

semiMajorAxis = 10000000;                  % meters
eccentricity = 0;
inclination = 0;                           % degrees
rightAscensionOfAscendingNode = 0;         % degrees
argumentOfPeriapsis = 0;                   % degrees
trueAnomaly = 0;                           % degrees
sat1 = satellite(sc, ...
    semiMajorAxis, ...
    eccentricity, ...
    inclination, ...
    rightAscensionOfAscendingNode, ...
    argumentOfPeriapsis, ...
    trueAnomaly, ...
    "Name","Satellite 1", ...
    "OrbitPropagator","two-body-keplerian");
semiMajorAxis = 10000000;                  % meters
eccentricity = 0;
inclination = 30;                          % degrees
rightAscensionOfAscendingNode = 120;       % degrees
argumentOfPeriapsis = 0;                   % degrees
trueAnomaly = 300;                         % degrees
sat2 = satellite(sc, ...
    semiMajorAxis, ...
    eccentricity, ...
    inclination, ...
    rightAscensionOfAscendingNode, ...
    argumentOfPeriapsis, ...
    trueAnomaly, ...
    "Name","Satellite 2", ...
    "OrbitPropagator","two-body-keplerian");

衛星にジンバルを追加する

gimbal を使用して、衛星にジンバルを追加します。各衛星は衛星の反対側にある 2 つのジンバルで構成されています。一方のジンバルは受信機のアンテナを保持し、もう一方のジンバルは送信機のアンテナを保持します。取り付け位置は、衛星機体座標系内の直交座標で指定されます。これは、(xˆS,yˆS,zˆS) で定義されます。ここで、xˆSyˆSzˆS は、それぞれ衛星のロール、ピッチ、ヨー軸です。下の図に示すように、受信機を保持するジンバルの取り付け位置は -yˆS+2zˆS メートル、送信機を保持するジンバルの取り付け位置は yˆS+2zˆS メートルです。

sat2TxRx.png

gimbalSat1Tx = gimbal(sat1, ...
    "MountingLocation",[0;1;2]);  % meters
gimbalSat2Tx = gimbal(sat2, ...
    "MountingLocation",[0;1;2]);  % meters
gimbalSat1Rx = gimbal(sat1, ...
    "MountingLocation",[0;-1;2]); % meters
gimbalSat2Rx = gimbal(sat2, ...
    "MountingLocation",[0;-1;2]); % meters

ジンバルに受信機と送信機を追加する

各衛星は受信機と送信機で構成され、再生中継器を構成します。receiver を使用して、ジンバルgimbalSat1Rx および gimbalSat2Rx に受信機を追加します。上図に示すように、ジンバルに対する受信アンテナの取り付け位置は zˆG メートルです。受信機のゲイン対ノイズ温度比は 3dB/K で、必要な Eb/No は 4 dB です。

sat1Rx = receiver(gimbalSat1Rx, ...
    "MountingLocation",[0;0;1], ...      % meters
    "GainToNoiseTemperatureRatio",3, ... % decibels/Kelvin
    "RequiredEbNo",4);                   % decibels
sat2Rx = receiver(gimbalSat2Rx, ...
    "MountingLocation",[0;0;1], ...      % meters
    "GainToNoiseTemperatureRatio",3, ... % decibels/Kelvin
    "RequiredEbNo",4);                   % decibels

gaussianAntenna を使用して、衛星の受信アンテナの皿の直径を 0.5 m に設定します。ガウス アンテナの放射パターンは、以下の図に示すように、照準点でピークに達し、照準点から離れるにつれてガウス分布に基づいて放射対称に減衰します。ピークゲインは、皿の直径と開口効率の関数です。

radiationPattern1.png

gaussianAntenna(sat1Rx, ...
    "DishDiameter",0.5);    % meters
gaussianAntenna(sat2Rx, ...
    "DishDiameter",0.5);    % meters

transmitter を使用して、ジンバルgimbalSat1Tx および gimbalSat2Tx に送信機を追加します。ジンバルに対する送信アンテナの取り付け位置は zˆG メートルです。ここで、(xˆG,yˆG,zˆG) はジンバルのボディ座標系を定義します。アンテナの照準は zˆG と一致しています。両方の衛星は15 dBW の電力で送信します。衛星1 に搭載された送信機は、30 GHz の周波数で衛星2 にデータを送信するためのクロスリンクに使用されます。衛星2 に搭載された送信機は、27 GHz の周波数で地上局2 へのダウンリンクに使用されます。

sat1Tx = transmitter(gimbalSat1Tx, ...
    "MountingLocation",[0;0;1], ...   % meters
    "Frequency",30e9, ...             % hertz
    "Power",15);                      % decibel watts
sat2Tx = transmitter(gimbalSat2Tx, ...
    "MountingLocation",[0;0;1], ...   % meters
    "Frequency",27e9, ...             % hertz
    "Power",15);                      % decibel watts

受信機と同様に、送信機もガウスアンテナを使用します。衛星の送信アンテナの皿の直径を 0.5 m に設定します。

gaussianAntenna(sat1Tx, ...
    "DishDiameter",0.5);    % meters
gaussianAntenna(sat2Tx, ...
    "DishDiameter",0.5);    % meters

地上局を追加する

groundStation を使用して、インド (地上局1) とオーストラリア (地上局2) の地上局を追加します。

latitude = 12.9436963;          % degrees
longitude = 77.6906568;         % degrees
gs1 = groundStation(sc, ...
    latitude, ...
    longitude, ...
    "Name","Ground Station 1");
latitude = -33.7974039;        % degrees
longitude = 151.1768208;       % degrees
gs2 = groundStation(sc, ...
    latitude, ...
    longitude, ...
    "Name","Ground Station 2");

各地上局にジンバルを追加

gimbal を使用して、 地上局 1 と地上局 2 にジンバルを追加します。地上局1 のジンバルには送信機が取り付けられており、地上局2 のジンバルには受信機が取り付けられています。ジンバルは、下の図に示すように、それぞれの地上局から 5 メートル上方に配置されています。したがって、それらの取り付け位置は -5zˆGS メートルで、(xˆGS,yˆGS,zˆGS) は地上局の本体軸を定義します。xˆGSyˆGS、および zˆGS は常にそれぞれ北、東、下を指します。したがって、ジンバルの zˆGS コンポーネントは -5 メートルであり、地上局の下ではなく上に配置されます。さらに、デフォルトでは、ジンバルの取り付け角度は、ジンバルのボディ軸 (xˆG,yˆG,zˆG) が親 (この場合は地上局) のボディ軸 (xˆGS,yˆGS,zˆGS) と揃うようになっています。その結果、ジンバルの zˆG 軸は真下を向き、デフォルトの取り付け角度を使用してジンバルに取り付けられたアンテナも同様に真下を向きます。したがって、ジンバルが操縦されていないときに zˆG が真上を向くように、取り付けピッチ角度を 180 度に設定する必要があります。

gs2TxRx.png

gimbalGs1 = gimbal(gs1, ...
    "MountingAngles",[0;180;0], ... % degrees
    "MountingLocation",[0;0;-5]);   % meters
gimbalGs2 = gimbal(gs2, ...
    "MountingAngles",[0;180;0], ... % degrees
    "MountingLocation",[0;0;-5]);   % meters

地上局ジンバルに送信機と受信機を追加する

transmitter を使用して、地上局1 のジンバルに送信機を追加します。アップリンク送信機は、30 GHz の周波数と 30 dBW の電力で衛星1 にデータを送信します。送信アンテナはジンバルに対して zˆG メートルの位置に取り付けられています。

gs1Tx = transmitter(gimbalGs1, ...
    "Name","Ground Station 1 Transmitter", ...
    "MountingLocation",[0;0;1], ...           % meters
    "Frequency",30e9, ...                     % hertz
    "Power",30);                              % decibel watts

gaussianAntenna を使用して、送信アンテナの皿の直径を 2 m に設定します。

gaussianAntenna(gs1Tx, ...
    "DishDiameter",2); % meters

receiver を使用して、地上局2 のジンバルに受信機を追加し、衛星2 からのダウンリンクデータを受信します。受信機のゲイン対ノイズ温度比は 3 dB/K で、必要な Eb/No は 1 dB です。受信アンテナの取り付け位置は、ジンバルに対して zˆG メートルです。

gs2Rx = receiver(gimbalGs2, ...
    "Name","Ground Station 2 Receiver", ...
    "MountingLocation",[0;0;1], ...        % meters
    "GainToNoiseTemperatureRatio",3, ...   % decibels/Kelvin
    "RequiredEbNo",1);                     % decibels

gaussianAntenna を使用して、受信アンテナの皿の直径を 2 m に設定します。

gaussianAntenna(gs2Rx, ...
    "DishDiameter",2); % meters

ジンバルのトラッキングターゲットを設定する

最高のリンク品質を得るには、アンテナがそれぞれのターゲットに継続的に向けられている必要があります。ジンバルは親機(衛星または地上局)から独立して操縦することができ、他の衛星や地上局を追跡するように構成できます。pointAt を使用して、ジンバルのトラッキングターゲットを次のように設定します。

  • 地上局1の送信アンテナは衛星1に向けられている

  • 衛星1号機の受信アンテナは地上局1に向けられている

  • 衛星1号機の送信アンテナは衛星2号機に向けられている

  • 衛星2号機の受信アンテナは衛星1号機に向けられている。

  • 衛星2号機の送信アンテナは地上局2に向けられている。

  • 地上局2の受信アンテナは衛星2に向けられている

pointAt(gimbalGs1,sat1);
pointAt(gimbalSat1Rx,gs1);
pointAt(gimbalSat1Tx,sat2);
pointAt(gimbalSat2Rx,sat1);
pointAt(gimbalSat2Tx,gs2);
pointAt(gimbalGs2,sat2);

ジンバルのターゲットが設定されると、その zˆG 軸がターゲットを追跡します。アンテナは zˆG にあり、その照準は zˆG に揃っているので、アンテナは目的のターゲットも追跡します。

リンク解析を追加してシナリオを可視化する

link を使用して、地上局 1 の送信機にリンク解析を追加します。リンクは再生中継型で、gs1Tx で始まり gs2Rx で終了し、sat1Rxsat1Txsat2Rxsat2Tx を経由してルーティングされます。

lnk = link(gs1Tx,sat1Rx,sat1Tx,sat2Rx,sat2Tx,gs2Rx);

衛星シナリオ ビューアーは自動的に更新され、シナリオ全体が表示されます。シナリオが正しく設定されているかどうかを視覚的に確認するためにビューアを使用します。緑の線はリンクを表し、リンクが閉じられていることを確認します。

リンクが閉じられる時間を決定し、リンクの閉じを可視化する

リンクが閉じられた時間を特定するには、linkIntervals メソッドを使用します。linkIntervals メソッドは、地上局1 が地上局2 にデータを送信できる間隔を表すリンク クロージャーの開始時刻と終了時刻のテーブルを出力します。ソースとターゲットは、リンク内の最初のノードと最後のノードです。ソースまたはターゲットのいずれかが衛星上にある場合、StartOrbit と EndOrbit は、シナリオの開始時間から、直接またはジンバルを介して接続されているソース衛星またはターゲット衛星の軌道カウントを提供します。Source と Target の両方が衛星に接続されている場合、StartOrbit と EndOrbit は Source が接続されている衛星の軌道カウントを提供します。Source と Target は両方とも地上局に接続されているため、StartOrbit と EndOrbit は NaN になります。

linkIntervals(lnk)
ans=6×8 table
                Source                          Target               IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    ______________________________    ___________________________    ______________    ____________________    ____________________    ________    __________    ________

    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          1           19-Aug-2020 20:55:00    19-Aug-2020 21:20:00      1500         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          2           19-Aug-2020 23:38:00    20-Aug-2020 00:21:00      2580         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          3           20-Aug-2020 09:34:00    20-Aug-2020 09:50:00       960         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          4           20-Aug-2020 12:26:00    20-Aug-2020 12:58:00      1920         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          5           20-Aug-2020 15:25:00    20-Aug-2020 16:05:00      2400         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          6           20-Aug-2020 18:28:00    20-Aug-2020 19:13:00      2700         NaN          NaN   

play を使用して、シナリオ シミュレーションを開始時間から終了時間まで可視化します。リンクを閉じることができない場合は、緑色の線が消えます。

play(sc);

地上局2のリンク マージンをプロットする

受信側でのリンク マージンとは、受信側でのビットあたりのエネルギーとノイズ電力スペクトル密度比 (Eb/No) とその RequiredEbNo との差です。リンク クロージャーには、すべての受信側ノードでリンク マージンが正である必要があります。リンク マージンが高いほど、リンクの品質は向上します。最終ノード、つまり地上局2 受信機でのリンク マージンを計算するには、ebno を使用して地上局2 受信機での Eb/No 履歴を取得し、この量から RequiredEbNo を差し引いてリンク マージンを取得します。また、plot を使用してリンク マージンを計算してプロットします。

[e, time] = ebno(lnk);
margin = e - gs2Rx.RequiredEbNo;
plot(time,margin,"LineWidth",2);
xlabel("Time");
ylabel("Link Margin (dB)");
grid on;

Figure contains an axes object. The axes object with xlabel Time, ylabel Link Margin (dB) contains an object of type line.

プロット内のギャップは、リンクの最終ノードに到達する前にリンクが切断されたか、最終ノードとその前のノード (つまり、衛星2) 間の視線が切断されたことを意味します。それ以外の場合、リンク マージンは正になります。これは、衛星2 の送信機の電力と地上局2 の受信機の感度が常に十分であることを意味します。また、リンクの他のすべてのホップではマージンが正であることも意味します。

必要なEb/Noを変更し、リンク間隔への影響を観察する

地上局2 の受信機の RequiredEbNo を 1 dB から 10 dB に増やし、リンク間隔を再計算します。RequiredEbNo を増やすと、基本的に地上局 2 受信機の感度が低下します。これにより、結果としてリンク クロージャー時間に悪影響が生じます。閉じたリンク間隔の数は 6 から 5 に減少し、閉じたリンク間隔の持続時間は短くなります。

gs2Rx.RequiredEbNo = 10; % decibels
linkIntervals(lnk)
ans=5×8 table
                Source                          Target               IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    ______________________________    ___________________________    ______________    ____________________    ____________________    ________    __________    ________

    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          1           19-Aug-2020 20:55:00    19-Aug-2020 21:18:00      1380         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          2           19-Aug-2020 23:43:00    20-Aug-2020 00:15:00      1920         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          3           20-Aug-2020 12:30:00    20-Aug-2020 12:58:00      1680         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          4           20-Aug-2020 15:29:00    20-Aug-2020 16:05:00      2160         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          5           20-Aug-2020 18:32:00    20-Aug-2020 19:13:00      2460         NaN          NaN   

さらに、RequiredEbNo の増加はリンク マージンに悪影響を及ぼします。これを観察するには、新しいリンク マージンを再計算してプロットし、前のプロットと比較します。リンク マージンが全体的に減少しており、RequiredEbNo の増加によって受信機の感度が低下した結果、リンク品質が低下したことを示しています。場合によっては、リンク マージンがマイナスになります。これは、衛星2 への視線があっても、地上局2 受信機でリンクが切断される場合があることを表します。これは、リンク クロージャーが、隣接ノード間の視線だけでなく、リンク マージンによって制限される場合があることを意味します。

[e, newTime] = ebno(lnk);
newMargin = e - gs2Rx.RequiredEbNo;
plot(newTime,newMargin,"r",time,margin,"b","LineWidth",2);
xlabel("Time");
ylabel("Link Margin (dB)");
legend("New link margin","Old link margin","Location","north");
grid on;

Figure contains an axes object. The axes object with xlabel Time, ylabel Link Margin (dB) contains 2 objects of type line. These objects represent New link margin, Old link margin.

次のステップ

この例では、マルチホップ再生リピーター型リンクを設定する方法と、リンクが閉じられる時間を決定する方法を示しました。リンク クロージャー時間は、リンク内の各受信機のリンク マージンの影響を受けます。リンク マージンとは、受信側におけるビットあたりのエネルギーとノイズの電力スペクトル密度比(Eb/No)と必要なEb/Noとの差です。受信側におけるEb/Noは、以下の要素によって決まります。

  • 送信機と受信機を搭載した衛星の軌道と指向モード

  • 送信機と受信機を備えた地上局の位置

  • 送信機と受信機を保持するジンバルの位置、方向、指向モード

  • 送信機と受信機の親機に対する位置と方向

  • 送信機の仕様 - 電力、周波数、ビットレート、システム損失

  • 受信機の仕様 - 利得対雑音温度比、必要なEb/No、およびシステム損失

  • 送信アンテナと受信アンテナの仕様(ガウスアンテナの皿の直径や開口効率など)

上記のパラメータを変更し、リンクへの影響を観察して、さまざまな種類の what-if 解析を実行します。

参考

オブジェクト

関数

トピック