メインコンテンツ

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

Link

R2025a

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

    説明

    Link オブジェクトは、Transmitter に属するリンク解析オブジェクトを定義します。

    作成

    Transmitter または Receiver オブジェクトの link オブジェクト関数を使用して Link オブジェクトを作成できます。

    プロパティ

    すべて展開する

    このプロパティは、Link を呼び出すときにのみ設定できます。Link を呼び出した後、このプロパティは読み取り専用になります。

    送信機または受信機の ID。正の数値のベクトルとして指定されます。

    リンク ラインの視覚的な幅 (ピクセル単位)。範囲(0 ~ 10] のスカラーとして指定します。

    ライン幅をピクセルの幅より細くすることはできません。システムでライン幅をピクセルの幅より細い値に設定すると、ラインは 1 ピクセル幅で表示されます。

    リンク ラインの色。RGB トリプレット、16 進カラー コード、色名、または短い名前として指定します。

    カスタム色を使用する場合は、RGB 3 成分または 16 進数カラー コードを指定します。

    • RGB 3 成分は、色の赤、緑、青成分の強度値を指定する 3 要素の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

    • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く string スカラーまたは文字ベクトルです。これらの値では大文字小文字は区別されません。したがって、カラー コード "#FF8800"、"#ff8800"、"#F80"、および "#f80" は等価です。

    あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

    色名省略名RGB 3 成分16 進数カラー コード外観
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    "none"該当なし該当なし該当なし色なし

    次の表に、プロット用のライト テーマとダーク テーマの既定のカラー パレットを示します。

    パレットパレットの色

    "gem" — ライト テーマの既定値

    R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。

    Sample of the "gem" color palette

    "glow" — ダーク テーマの既定値

    Sample of the "glow" color palette

    orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。

    RGB = orderedcolors("gem");
    H = rgb2hex(RGB);

    R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。

    R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。

    例: 'blue'

    例: [0 0 1]

    例: '#0000FF'

    オブジェクト関数

    ebnoリンクの最終ノードのEb/No
    linkPercentagePercentage of time when link between first and last node in link analysis is closed
    linkIntervalsリンクが閉じられる間隔
    linkStatus最初のノードと最後のノード間のリンク クロージャーの状態
    show衛星シナリオビューアでオブジェクトを表示する
    sigstrengthCalculate received signal strength at last node of link
    hide衛星シナリオエンティティをビューアーから非表示にする

    例

    すべて折りたたむ

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

    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    
    
    

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

    バージョン履歴

    R2021a で導入

    すべて展開する