メインコンテンツ

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

link

送信機にリンク解析オブジェクトを追加する

R2021a 以降

説明

link(asset1,asset2,...,assetN) は、ノード asset1asset2 などによって定義された Link 解析オブジェクトを追加します。

lnk = link(___,Name=Value) は、名前と値のペアとして指定された追加パラメータを使用してリンク解析オブジェクトを追加します。

lnk = link(___)はリンク解析オブジェクトを追加し、ベクトルリンクを返します。

すべて折りたたむ

衛星シナリオ オブジェクトを作成します。

startTime = datetime(2020,11,25,0,0,0);
stopTime = startTime + days(1);
sampleTime = 60;                                     % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)
sc = 
  satelliteScenario with properties:

         StartTime: 25-Nov-2020
          StopTime: 26-Nov-2020
        SampleTime: 60
      AutoSimulate: 1
        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

シナリオに衛星を追加します。

semiMajorAxis = 10000000;                                                                  % meters
eccentricity = 0;
inclination = 60;                                                                          % degrees
rightAscensionOfAscendingNode = 0;                                                         % degrees
argumentOfPeriapsis = 0;                                                                   % degrees
trueAnomaly = 0;                                                                           % degrees
sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ...
        argumentOfPeriapsis,trueAnomaly,Name="Satellite");

衛星にジンバルを追加します。これらのジンバルにより、衛星受信アンテナを第 1地上局に向け、その送信アンテナを第 2地上局に向けることができます。

gimbalrxSat = gimbal(sat);
gimbaltxSat = gimbal(sat);

衛星の最初のジンバルに受信機を追加します。

gainToNoiseTemperatureRatio = 5;                                                        % dB/K
systemLoss = 3;                                                                         % dB
rxSat = receiver(gimbalrxSat,Name="Satellite Receiver",GainToNoiseTemperatureRatio= ...
    gainToNoiseTemperatureRatio,SystemLoss=systemLoss)
rxSat = 
  Receiver with properties:

                           Name:  Satellite Receiver
                             ID:  4
               MountingLocation:  [0; 0; 0] meters
                 MountingAngles:  [0; 0; 0] degrees
                        Antenna:  [1x1 satcom.satellitescenario.GaussianAntenna]
                     SystemLoss:  3 decibels
                PreReceiverLoss:  3 decibels
    GainToNoiseTemperatureRatio:  5 decibels/Kelvin
                   RequiredEbNo:  10 decibels
                 CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]

衛星の2番目のジンバルに送信機を追加します。

frequency = 27e9;                                                                     % Hz
power = 20;                                                                           % dBW
bitRate = 20;                                                                         % Mbps
systemLoss = 3;                                                                       % dB
txSat = transmitter(gimbaltxSat,Name="Satellite Transmitter",Frequency=frequency, ...
    power=power,BitRate=bitRate,SystemLoss=systemLoss)
txSat = 
  Transmitter with properties:

                Name:  Satellite Transmitter
                  ID:  5
    MountingLocation:  [0; 0; 0] meters
      MountingAngles:  [0; 0; 0] degrees
             Antenna:  [1x1 satcom.satellitescenario.GaussianAntenna]
          SystemLoss:  3 decibels
           Frequency:  2.7e+10 Hertz
             BitRate:  20 Mbps
               Power:  20 decibel-watts
               Links:  [1x0 satcom.satellitescenario.Link]
      CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]

リピーターのアンテナ仕様を指定します。

dishDiameter = 0.5;                                                                    % meters
apertureEfficiency = 0.5;
gaussianAntenna(txSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);
gaussianAntenna(rxSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);

シナリオに地上局を2 つ追加します。

gs1 = groundStation(sc,Name="Ground Station 1");
latitude = 52.2294963;                                              % degrees
longitude = 0.1487094;                                              % degrees
gs2 = groundStation(sc,latitude,longitude,Name="Ground Station 2");

シミュレーション期間中、衛星のジンバルを2 つの地上局に向けます。

pointAt(gimbaltxSat,gs2);
pointAt(gimbalrxSat,gs1);

地上局にジンバルを追加します。これらのジンバルにより、地上局のアンテナを衛星に向けることができます。

gimbalgs1 = gimbal(gs1);
gimbalgs2 = gimbal(gs2);

地上局gs1に送信機を追加します。

frequency = 30e9;                                                                          % Hz
power = 40;                                                                                % dBW
bitRate = 20;                                                                              % Mbps
txGs1 = transmitter(gimbalgs1,Name="Ground Station 1 Transmitter",Frequency=frequency, ...
        Power=power,BitRate=bitRate);

地上局gs2に受信機を追加します。

requiredEbNo = 14;                                                                     % dB
rxGs2 = receiver(gimbalgs2,Name="Ground Station 2 Receiver",RequiredEbNo=requiredEbNo);

地上局のアンテナ仕様を定義します。

dishDiameter = 5;                                % meters
gaussianAntenna(txGs1,DishDiameter=dishDiameter);
gaussianAntenna(rxGs2,DishDiameter=dishDiameter);

シミュレーション期間中、地上局のジンバルを衛星に向けます。

pointAt(gimbalgs1,sat);
pointAt(gimbalgs2,sat);

送信機txGs1にリンク解析を追加します。

lnk = link(txGs1,rxSat,txSat,rxGs2)
lnk = 
  Link with properties:

    Sequence:  [10 4 5 11]
    LineWidth:  2
    LineColor:  [0.3922 0.8314 0.0745]

地上局gs1が衛星経由で地上局gs2にデータを送信できる時間を決定します。

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

    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          1           25-Nov-2020 00:20:00    25-Nov-2020 00:40:00      1200         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          2           25-Nov-2020 03:19:00    25-Nov-2020 03:36:00      1020         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          3           25-Nov-2020 06:15:00    25-Nov-2020 06:36:00      1260         NaN          NaN   
    "Ground Station 1 Transmitter"    "Ground Station 2 Receiver"          4           25-Nov-2020 22:20:00    25-Nov-2020 22:38:00      1080         NaN          NaN   

衛星シナリオ ビューアーを使用してリンクを可視化します。

play(sc);

この例では、衛星の傾斜角の変化に応じてリンクとリンク間隔が変化するシナリオを示します。

startTime = datetime(2024,6,1,0,0,0);
stopTime = startTime + hours(4);
sampleTime = 60;% seconds
sc = satelliteScenario(startTime,stopTime,sampleTime);

シナリオに衛星1 と送信機を追加します。

sat1 = satellite(sc,10e6,0,0,0,0,0,Name="Satellite 1");
txSat1 = transmitter(sat1,Name="Satellite 1 Transmitter");

シナリオに衛星2 と受信機を追加します。

sat2= satellite(sc,10e6,0,0,10,0,0,Name="Satellite 2");
rxSat2 = receiver(sat2,Name="Satellite 2 Receiver"); 

シナリオに地上局を追加します。

latitude = 49.8728; % degrees
longitude = 8.6512; % degrees
gs = groundStation(sc,latitude,longitude,Name="Ground Station");

2つの衛星を地上局に向けます。

pointAt(sat1,gs)
pointAt(sat2,gs)

地上局にジンバルを追加します。

gimbalrxGs = gimbal(gs);
gimbaltxGs = gimbal(gs);

地上局に送信機と受信機を追加します。

rxGs = receiver(gimbalrxGs,Name="Ground Station Receiver");
txGs = transmitter(gimbaltxGs,Name="Ground Station Transmitter");

地上局の送信機と受信機を衛星に向けます。

pointAt(gimbalrxGs,sat1)
pointAt(gimbaltxGs,sat2)

地上局と衛星間のリンクを計算します。

lnk1 = link(txSat1,rxGs,txGs,rxSat2)
lnk1 = 
  Link with properties:

    Sequence:  [2 8 9 4]
    LineWidth:  2
    LineColor:  [0.3922 0.8314 0.0745]

リンク間隔を見つけます。

linkIntervals(lnk1)
ans=1×8 table
             Source                      Target            IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    _________________________    ______________________    ______________    ____________________    ____________________    ________    __________    ________

    "Satellite 1 Transmitter"    "Satellite 2 Receiver"          1           01-Jun-2024 02:10:00    01-Jun-2024 02:14:00      240           1            1    

lnk1 からのリンク間隔は、地上局を通過する衛星 1 から衛星 2 への有効なリンクが 7560 秒間存在することを示しています。

衛星が互いを指すようにシナリオを更新します。

pointAt(sat1,sat2)
pointAt(sat2,sat1)

更新されたシナリオを使用して、lnk1 のリンク間隔を計算します。

linkIntervals(lnk1)
ans =

  0×8 empty table

    Source    Target    IntervalNumber    StartTime    EndTime    Duration    StartOrbit    EndOrbit
    ______    ______    ______________    _________    _______    ________    __________    ________

lnk1 の linkInterval は、地上局がどちらの衛星アンテナからも向けられていないため、シナリオの期間中は間隔が存在しないことを示しています。

衛星1から衛星2に直接新しいリンクオブジェクトlnk2を作成します。

lnk2 = link(txSat1,rxSat2)
lnk2 = 
  Link with properties:

    Sequence:  [2 4]
    LineWidth:  2
    LineColor:  [0.3922 0.8314 0.0745]

更新されたシナリオで lnk2 のリンク間隔を計算します。

linkIntervals(lnk2)
ans=1×8 table
             Source                      Target            IntervalNumber     StartTime           EndTime           Duration    StartOrbit    EndOrbit
    _________________________    ______________________    ______________    ___________    ____________________    ________    __________    ________

    "Satellite 1 Transmitter"    "Satellite 2 Receiver"          1           01-Jun-2024    01-Jun-2024 04:00:00     14400          1            2    

衛星はシナリオ全体にわたって互いに向いているため、シナリオ全体にわたるリンク間隔が表示されます。

入力引数

すべて折りたたむ

スカラーまたはベクトルとして指定されたアセット ノードによって定義されたリンク解析オブジェクトを追加します。アセット タイプは、送信オブジェクトまたは受信オブジェクトのいずれかである必要があります。asset1 は常に送信オブジェクトであり、assetN は常に受信オブジェクトである必要があります。

  • 特定のノード内のアセットがスカラーの場合、すべてのリンク解析オブジェクトはそのノード位置に同じアセットを使用します。

  • 特定のノード内のアセットがベクターの場合、アセットの長さはリンク解析オブジェクトの数と等しくなければなりません。

  • 入力が 2 つ以上ある場合は、マルチホップリンク モデルを作成し、各送信機と受信機を tx1,rx1,tx2,rx2 のように交互に渡す必要があります。ここで、同じ ID 番号を持つアセットは同じ衛星または地上局に属している必要があります。各マルチホップもまた、[1,n]次元の別々のシーケンスです。

各リンク解析オブジェクトは、そのノード位置のアセット ベクトルの対応する要素を使用します。ASSET1、ASSET2、ASSET3 などの ID は、リンクの Sequence を指定します。これらのオブジェクトは同じ satelliteScenario オブジェクトに属している必要があります。各リンク解析オブジェクトは、ASSET1 内の対応する送信機の Link プロパティに追加されます。

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: LineWidth=2.5 は視野の線幅を 2.5 ピクセルに設定します。

衛星シナリオ ビューアー。スカラー、ベクトル、または satelliteScenarioViewer オブジェクトの配列として指定されます。シナリオの AutoSimulate プロパティが false の場合、シナリオに衛星を追加すると、以前使用可能だったタイムラインおよび再生ウィジェットがすべて無効になります。

出力引数

すべて折りたたむ

入力オブジェクト間のリンク解析オブジェクト。スカラーまたは行ベクトルとして返されます。

メモ

衛星シナリオの AutoSimulatefalse の場合、 SimulationStatusNotStarted の場合にのみ link を呼び出すことができます。それ以外の場合は、restart 関数を呼び出してシミュレーション データを消去し、SimulationStatusNotStarted にリセットする必要があります。

バージョン履歴

R2021a で導入