メインコンテンツ

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

Access

シナリオに属するアクセス分析オブジェクト

R2021a 以降

    説明

    Access オブジェクトは、SatelliteGroundStationConicalSensor、または Platform オブジェクトに属するアクセス解析オブジェクトを定義します。このオブジェクトを使用して、2 つのオブジェクト間の視線 (LOS) が存在するかどうかを判断します。

    また、

    詳細については、アルゴリズムを参照してください。

    作成

    SatelliteGroundStationConicalSensor、または Platformaccess オブジェクト関数を使用して Access オブジェクトを作成できます。

    プロパティ

    すべて展開する

    アクセス解析を定義する衛星、地上局、プラットフォーム、または円錐形センサーの 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'

    オブジェクト関数

    show衛星シナリオビューアでオブジェクトを表示する
    accessStatusアクセス解析を定義する最初のノードと最後のノード間のアクセスの状態
    accessIntervalsアクセスステータスが true である間隔
    accessPercentageアクセス解析における最初のノードと最後のノードの間にアクセスが存在する時間の割合
    hide衛星シナリオエンティティをビューアーから非表示にする

    すべて折りたたむ

    衛星シナリオを作成し、緯度と経度から地上局を追加します。

    startTime = datetime(2020,5,1,11,36,0);
    stopTime = startTime + days(1);
    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime);
    lat = 10;
    lon = -30;
    gs = groundStation(sc,lat,lon);

    ケプラーの要素を使用して衛星を追加します。

    semiMajorAxis = 10000000;
    eccentricity = 0;
    inclination = 10; 
    rightAscensionOfAscendingNode = 0; 
    argumentOfPeriapsis = 0; 
    trueAnomaly = 0; 
    sat = satellite(sc,semiMajorAxis,eccentricity,inclination, ...
            rightAscensionOfAscendingNode,argumentOfPeriapsis,trueAnomaly);

    シナリオにアクセス解析を追加し、衛星と地上局間のアクセス間隔の表を取得します。

    ac = access(sat,gs);
    intvls = accessIntervals(ac)
    intvls=8×8 table
           Source              Target          IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        _____________    __________________    ______________    ____________________    ____________________    ________    __________    ________
    
        "Satellite 2"    "Ground station 1"          1           01-May-2020 11:36:00    01-May-2020 12:04:00      1680          1            1    
        "Satellite 2"    "Ground station 1"          2           01-May-2020 14:20:00    01-May-2020 15:11:00      3060          1            2    
        "Satellite 2"    "Ground station 1"          3           01-May-2020 17:27:00    01-May-2020 18:18:00      3060          3            3    
        "Satellite 2"    "Ground station 1"          4           01-May-2020 20:34:00    01-May-2020 21:25:00      3060          4            4    
        "Satellite 2"    "Ground station 1"          5           01-May-2020 23:41:00    02-May-2020 00:31:00      3000          5            5    
        "Satellite 2"    "Ground station 1"          6           02-May-2020 02:50:00    02-May-2020 03:39:00      2940          6            6    
        "Satellite 2"    "Ground station 1"          7           02-May-2020 05:58:00    02-May-2020 06:47:00      2940          7            7    
        "Satellite 2"    "Ground station 1"          8           02-May-2020 09:06:00    02-May-2020 09:56:00      3000          8            9    
    
    

    シナリオを再生して地上局を可視化します。

    play(sc)

    衛星シナリオを作成します。

    startTime = datetime(2020,5,1,11,36,0);
    stopTime = startTime + days(1);
    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime);
    lat = 10;
    lon = -30;

    衛星シナリオで指定された軌跡を使用してプラットフォームを追加します。

    trajectory = geoTrajectory([40.6413,-73.7781,10600;32.3634,-64.7053,10600],[0,2*3600],AutoPitch=true,AutoBank=true);
    pltf = platform(sc,trajectory);

    ケプラーの要素を使用して衛星を追加します。

    semiMajorAxis = 10000000;
    eccentricity = 0;
    inclination = 10; 
    rightAscensionOfAscendingNode = 0; 
    argumentOfPeriapsis = 0; 
    trueAnomaly = 0; 
    sat = satellite(sc,semiMajorAxis,eccentricity,inclination, ...
            rightAscensionOfAscendingNode,argumentOfPeriapsis,trueAnomaly);

    シナリオにアクセス解析を追加し、衛星とプラットフォーム間のアクセス間隔の表を取得します。

    ac = access(sat,pltf);
    intvls = accessIntervals(ac)
    intvls=7×8 table
           Source           Target       IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        _____________    ____________    ______________    ____________________    ____________________    ________    __________    ________
    
        "Satellite 2"    "Platform 1"          1           01-May-2020 14:07:00    01-May-2020 14:54:00      2820          1            2    
        "Satellite 2"    "Platform 1"          2           01-May-2020 17:11:00    01-May-2020 18:01:00      3000          3            3    
        "Satellite 2"    "Platform 1"          3           01-May-2020 20:16:00    01-May-2020 21:06:00      3000          4            4    
        "Satellite 2"    "Platform 1"          4           01-May-2020 23:22:00    02-May-2020 00:11:00      2940          5            5    
        "Satellite 2"    "Platform 1"          5           02-May-2020 02:31:00    02-May-2020 03:15:00      2640          6            6    
        "Satellite 2"    "Platform 1"          6           02-May-2020 05:43:00    02-May-2020 06:22:00      2340          7            7    
        "Satellite 2"    "Platform 1"          7           02-May-2020 08:54:00    02-May-2020 09:33:00      2340          8            8    
    
    

    シナリオを再生して、プラットフォームと衛星を可視化します。

    play(sc)

    platform_accessintervals_example.png

    アルゴリズム

    アクセスするには:

    • 2衛星の衛星の間には、視線が存在する必要があります。

    • 衛星と地上局の間には、両者の間に視線が存在する必要があります。また、衛星と地上局の仰角は地上局のMinElevationAngleよりも大きくなければなりません。

    • 2 つの地上局の間では、視線が存在する必要があり、互いの仰角は他方の MinElevationAngle より上になければなりません。

    • 衛星に取り付けられていないコニカル センサーの間では、コニカル センサーと衛星の間に視線が存在する必要があり、衛星がコニカル センサーの視野内にある必要があります。視野は、円錐の領域であり、その頂点はコニカル センサーの位置にあり、円錐の Z 軸に沿って無限に拡張されます。円錐角度はコニカル センサーの MaxViewAngle によって定義されます。さらに、コニカル センサーが地上局に(直接またはジンバルを介して)取り付けられている場合、その地上局に対する衛星の仰角は、地上局の各 MinElevationAngle 以上である必要があります。コニカル センサーが同じ衛星に取り付けられている場合、円錐形コニカル センサーと衛星の間には常にアクセスがあります。

    • 同じ衛星に接続されていない 2 つのコニカル センサーの間には視線が存在し、各センサーが他のセンサーの視野内にある必要があります。コニカル センサーを地上局に取り付ける場合、地上局に対するもう一方のコニカル センサーの仰角はMinElevationAngle 以上でなければなりません。コニカル センサーが同じ衛星または地上局に直接またはジンバルを介して取り付けられている場合、2つのコニカル センサー間は常にアクセスが可能です。

    • 地上局に接続されていないコニカル センサーの間には、視線ている必要があり、コニカル センサーの地上局に対する仰角はMinElevationAngle以上でなければならず、地上局はセンサーの視野内になければなりません。コニカル センサーがこの地上局に直接またはジンバルを介して接続されている場合は、常にアクセスできます。

    上記は 2 つのノード間のアクセスについて説明しました。ただし、地上局から衛星上のコニカル センサーに行き、さらに別の地上局に行くなど、ノードを連結することで 3 つ以上のノードを持つことができます。このような場合、隣接するノードの各ペア間にアクセスが存在する必要があります。次に例を示します。

    sc = satelliteScenario;
    sat = satellite(sc,10000000,0,0,0,0,0);
    c = conicalSensor(sat);
    gs1 = groundStation(sc);
    gs2 = groundStation(sc,0,0);

    ac = access(gs1,c,gs2);
    s = accessStatus(ac,sc.StartTime)

    s は、gs1c、および cgs2 の間にアクセスがある場合に true になります。また、sc.StartTime では次の条件が満たされている必要があります。

    • gs1c の間には視線が存在する必要があります。

    • gs1 に対する c の仰角はgs1MinElevationAngle 以上である必要があります。

    • gs1c の視野内になければなりません。

    • cgs2 の間には視線が存在する必要があります。

    • gs2 に対する c の仰角はgs2MinElevationAngle 以上である必要があります。

    • gs2c の視野内になければなりません。

    詳細については、衛星コンスタレーション地上局へのアクセスを参照してください。

    バージョン履歴

    R2021a で導入