メインコンテンツ

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

Satellite

R2025a

衛星内の衛星シナリオ

    説明

    Satellite は、衛星シナリオ オブジェクト内の衛星を定義します。

    作成

    satelliteScenario オブジェクトの satellite 関数を使用して Satellite オブジェクトを作成できます。

    プロパティ

    すべて展開する

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

    衛星名。'Name' と文字列スカラー、文字列ベクトル、文字ベクトル、または文字ベクトルのセル配列で構成されるコンマ区切りのペアとして指定されます。

    • 衛星を 1 つだけ追加する場合は、Name を文字列スカラーまたは文字ベクトルとして指定します。

    • 複数の衛星を追加する場合は、Name を文字列スカラー、文字ベクトル、文字列ベクトル、または文字ベクトルのセル配列として指定します。文字列スカラーまたは文字ベクトルとして追加されたすべての衛星には、同じ指定された名前が割り当てられます。文字列ベクトルまたは文字ベクトルのセル配列内の要素数は、追加される衛星の数と等しくなければなりません。各衛星には、ベクトルまたはセル配列から対応する名前が割り当てられます。

    衛星シナリオに衛星を追加した場合のデフォルト値は、

    • ケプラーの軌道要素、 TLEファイル - 「衛星ID」。ここで、ID は衛星シナリオによって割り当てられます。

    • SEMアルマナックファイルまたは RINEX GPSナビゲーション データ - 「PRN:prnValue」。ここで、prnValue は、SEMアルマナックファイルで指定されている衛星の疑似ランダム ノイズ コードを示す整数です。

    • RINEX Galileo ナビゲーション データ - 「GAL Sat IF: id」。ここで、「id」は RINEX ナビゲーション データで定義された Galileo衛星の衛星ID です。

    • タイムテーブル - タイムテーブルオブジェクトの変数名

    • Timeseries - 入力されている場合は Timeseries オブジェクトの名前、そうでない場合は「衛星 ID」。ID は衛星シナリオによって割り当てられます。

    データ型: string

    このプロパティはシミュレータによって内部的に設定され、読み取り専用です。

    Satellite シミュレータによって割り当てられた ID。正のスカラーとして指定されます。

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

    Satellite に取り付けられたコニカル センサー。コニカル センサーの行ベクトルとして指定されます。

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

    Satellite に取り付けられたジンバル。'Gimbals' と Gimbal オブジェクトの行ベクトルで構成されるコンマ区切りのペアとして指定されます。

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

    アクセス解析オブジェクト。Access オブジェクトの行ベクトルとして指定されます。

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

    空またはスカラーの Eclipse オブジェクトとして指定された食解析オブジェクト。

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

    座標軸トライアドグラフィック オブジェクト。CoordinateAxes オブジェクトとして指定されます。

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

    Orbit オブジェクトとして指定された衛星の軌道可視化パラメータ。

    データ型: char | string

    このプロパティは、satellite オブジェクトの作成時に設定することができ、その後このプロパティは読み取り専用になります。

    衛星の位置と速度を伝播するために使用される軌道プロパゲーターの名前。次のいずれかのオプションとして指定します。

    • timetable、table、timeseries、または tscollection を使用して衛星を指定する場合、OrbitPropagator の値は "ephemeris" になります。

    • SEMアルマナックファイルまたはGPSナビゲーション メッセージを含む RINEX データを使用して衛星を指定する場合、OrbitPropagator 値は次のいずれかのオプションを取ることができます。

      • "gps" (既定)

      • "sgp4"

      • "sdp4"

      • "two-body-keplerian"

      • "numerical"

    • Galileo ナビゲーション メッセージを含む RINEX データを使用して衛星を指定する場合、OrbitPropagator 値は次のいずれかのオプションを取ることができます。

      • "galileo" (既定)

      • "sgp4"

      • "sdp4"

      • "two-body-keplerian"

      • "numerical"

    • ケプラー要素を使用して衛星を追加するように指定する場合、OrbitPropagator 値はこれらのオプションのいずれかを取ることができます。

      • "two-body-keplerian"

      • "sgp4"

      • "sdp4"

      • "numerical"

      さらに、長半径が負の場合、OrbitPropagator の値は "numerical" のみになります。長半径が正の場合、デフォルト値は、周期が 225 分未満の場合は "sgp4"、周期が 225 分以上の場合は "sdp4" になります。

    • TLEまたは OMM ファイルを使用して衛星を指定する場合、OrbitPropagator 値はこれらのオプションのいずれかを取ることができます。

      • "two-body-keplerian"

      • "sgp4"

      • "sdp4"

      • "numerical"

      軌道周期が 225 分未満の場合、デフォルトの OrbitPropagator 値は "sgp4" になります。それ以外の場合、デフォルトの OrbitPropagator 値は "sdp4" になります。

    • Keplerian 要素を使用して衛星を指定する場合、OrbitPropagator 値はこれらのオプションのいずれかを取ることができます。

      • "two-body-keplerian"

      • "sgp4"

      • "sdp4"

    RINEX データに有効なGPSと Galileo ナビゲーション メッセージの両方が含まれている場合、名前値引数を使用して OrbitPropagator を "gps" または "galileo" として指定することはできません。ただし、"two-body-keplerian"、"sgp4"、"sdp4"、または "numerical" として指定することもできます。

    マーカーの色。'MarkerColor' と RGB トリプレット、または色名の文字文字列または文字ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

    カスタム色を使用する場合は、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

    MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

    RGB 3 成分16 進数カラー コード外観
    [0 0.4470 0.7410] "#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980] "#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250] "#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560] "#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880] "#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330] "#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840] "#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    マーカーのサイズ。'MarkerSize' と 30 未満の実数の正のスカラーで構成されるコンマ区切りのペアとして指定します。単位はピクセルです。

    Satellite ラベルの可視性の状態。'ShowLabel' と、1 (true) または 0 (false) の数値または論理値で構成されるコンマ区切りのペアとして指定されます。

    データ型: logical

    Satellite ラベルのフォント色。'LabelFontColor' と RGB トリプレットまたは色名の文字列または文字ベクトルのいずれかで構成されるコンマ区切りのペアとして指定します。

    カスタム色を使用する場合は、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

    MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

    RGB 3 成分16 進数カラー コード外観
    [0 0.4470 0.7410] "#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980] "#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250] "#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560] "#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880] "#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330] "#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840] "#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

    Satelliteラベルのフォントサイズ。'LabelFontSize'と[6 30]の範囲の正のスカラーで構成されるコンマ区切りのペアとして指定します。

    ビューアーでレンダリングするビジュアル 3D モデル ファイルの名前。.GLTF、.GLB、または .STL 拡張子の文字列として指定します。GLB および GLTF モデルの場合、gITF は右手座標系を使用します。gITF は、+Y を上、+Z を前、-X を右と定義します。gITF アセットは +Z に面しています。詳細については、https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units を参照してください。GLB のメッシュはメートル単位です。

    3-D model of a small satellite

    データ型: string

    ビューアでレンダリングされるビジュアル 3D モデルの線形スケーリング。負でない整数として指定します。スケーリングでは、GLB モデルがメートル単位であることを前提としています。

    データ型: double

    数値プロパゲータで使用される衛星の物理的特性。Aero.spacecraft.PhysicalProperties オブジェクトとして指定されます。これらのオプションを変更するには、physicalProperties 関数を使用します。

    オブジェクト関数

    accessサテライトシナリオにアクセス解析オブジェクトを追加する
    aerNEDフレーム内の他の衛星または地上局の方位角角、仰角、範囲を計算します。
    conicalSensor衛星シナリオに円錐型センサーを追加する
    eclipse衛星、地上局、またはプラットフォームに日食解析オブジェクトを追加する
    gimbal衛星、プラットフォーム、地上局にジンバルを追加する
    groundTrackシナリオ内の衛星またはプラットフォームに地上追跡オブジェクトを追加する
    orbitalElementsシナリオにおける衛星の軌道要素
    coordinateAxes衛星シナリオ アセットの座標軸トライアドを可視化する
    pointAt衛星をターゲットに向ける
    states衛星またはプラットフォームの位置と速度を取得する
    show衛星シナリオビューアでオブジェクトを表示する
    hide衛星シナリオエンティティをビューアから非表示にする
    physicalPropertiesRetrieve or modify physical properties of satellite object

    例

    すべて折りたたむ

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

    startTime = datetime(2020,5,5,0,0,0);
    stopTime = startTime + days(1);
    sampleTime = 60;                                      %seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    TLEファイルからシナリオに衛星を追加します。

    tleFile = "eccentricOrbitSatellite.tle";
    sat1 = satellite(sc,tleFile,"Name","Sat1")
    sat1 = 
      Satellite with properties:
    
                   Name:  Sat1
                     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:  sdp4
            MarkerColor:  [0.059 1 1]
             MarkerSize:  6
              ShowLabel:  true
         LabelFontColor:  [1 1 1]
          LabelFontSize:  15
    
    

    ケプラー要素から衛星をシナリオに追加し、その軌道プロパゲーターを「2 体ケプラー」として指定します。

    semiMajorAxis = 6878137;                                                                    %m
    eccentricity = 0;
    inclination = 20;                                                                           %degrees
    rightAscensionOfAscendingNode = 0;                                                          %degrees
    argumentOfPeriapsis = 0;                                                                    %degrees
    trueAnomaly = 0;                                                                            %degrees
    sat2 = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode,...
        argumentOfPeriapsis,trueAnomaly,"OrbitPropagator","two-body-keplerian","Name","Sat2")
    sat2 = 
      Satellite with properties:
    
                   Name:  Sat2
                     ID:  2
         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:  two-body-keplerian
            MarkerColor:  [0.059 1 1]
             MarkerSize:  6
              ShowLabel:  true
         LabelFontColor:  [1 1 1]
          LabelFontSize:  15
    
    

    2 つの衛星間のアクセス解析を追加します。

    ac = access(sat1,sat2);

    2 つの衛星間の視線が通る時間を決定します。

    accessIntervals(ac)
    ans=15×8 table
        Source    Target    IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        ______    ______    ______________    ____________________    ____________________    ________    __________    ________
    
        "Sat1"    "Sat2"           1          05-May-2020 00:09:00    05-May-2020 01:08:00      3540          1            1    
        "Sat1"    "Sat2"           2          05-May-2020 01:50:00    05-May-2020 02:47:00      3420          1            1    
        "Sat1"    "Sat2"           3          05-May-2020 03:45:00    05-May-2020 04:05:00      1200          1            1    
        "Sat1"    "Sat2"           4          05-May-2020 04:32:00    05-May-2020 05:26:00      3240          1            1    
        "Sat1"    "Sat2"           5          05-May-2020 06:13:00    05-May-2020 07:10:00      3420          1            1    
        "Sat1"    "Sat2"           6          05-May-2020 07:52:00    05-May-2020 08:50:00      3480          1            1    
        "Sat1"    "Sat2"           7          05-May-2020 09:30:00    05-May-2020 10:29:00      3540          1            1    
        "Sat1"    "Sat2"           8          05-May-2020 11:09:00    05-May-2020 12:07:00      3480          1            2    
        "Sat1"    "Sat2"           9          05-May-2020 12:48:00    05-May-2020 13:46:00      3480          2            2    
        "Sat1"    "Sat2"          10          05-May-2020 14:31:00    05-May-2020 15:27:00      3360          2            2    
        "Sat1"    "Sat2"          11          05-May-2020 17:12:00    05-May-2020 18:08:00      3360          2            2    
        "Sat1"    "Sat2"          12          05-May-2020 18:52:00    05-May-2020 19:49:00      3420          2            2    
        "Sat1"    "Sat2"          13          05-May-2020 20:30:00    05-May-2020 21:29:00      3540          2            2    
        "Sat1"    "Sat2"          14          05-May-2020 22:08:00    05-May-2020 23:07:00      3540          2            2    
        "Sat1"    "Sat2"          15          05-May-2020 23:47:00    06-May-2020 00:00:00       780          2            2    
    
    

    衛星間の視線を可視化します。

    play(sc);

    衛星シナリオを設定します。

    startTime = datetime(2021,8,5);
    stopTime = startTime + days(1);
    sampleTime = 60;                                      % seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    SEMアルマナックファイルからシナリオに衛星を追加します。

    sat = satellite(sc,"gpsAlmanac.txt","OrbitPropagator","gps");

    GPS コンステレーションを可視化します。

    v = satelliteScenarioViewer(sc);

    参照

    [1] Hoots, Felix R., and Ronald L. Roehrich. Models for propagation of NORAD element sets. Aerospace Defense Command Peterson AFB CO Office of Astrodynamics, 1980.

    [2] Vallado, David, et al. “Revisiting Spacetrack Report #3.” AIAA/AAS Astrodynamics Specialist Conference and Exhibit, American Institute of Aeronautics and Astronautics, 2006, https://doi.org/10.2514/6.2006-6753

    バージョン履歴

    R2021a で導入