メインコンテンツ

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

Access

R2024a

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

    説明

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

    また、

    • オブジェクトの 1 つが GroundStation に属している場合、GroundStation オブジェクトの MinElevationAngle プロパティによって LOS の可視性が制限されます。

    • オブジェクトの 1 つが ConicalSensor に属している場合、ConicalSensor オブジェクトの MaxViewAngle プロパティによって LOS の可視性が制限されます。

    詳細については、を参照してください。

    作成

    Satellite、GroundStation、ConicalSensor、または Platform の access オブジェクト関数を使用して 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"該当なし該当なし該当なし色なし

    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

    例: 'blue'

    例: [0 0 1]

    例: '#0000FF'

    オブジェクト関数

    show
    accessStatus
    accessIntervals
    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:32:00      3060          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:59:00    02-May-2020 06:47:00      2880          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 つの円錐形センサーの間では、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 は、 gs1 と c の間、および c と gs2 の間にアクセスがある場合に true になります。また、sc .StartTime では次の条件が満たされている必要があります。

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

    • gs1 に対する c の仰角は gs1 の MinElevationAngle 以上でなければなりません。

    • gs1 は c の視野内になければなりません。

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

    • gs2 に対する c の仰角は gs2 の MinElevationAngle 以上でなければなりません。

    • gs2 は c の視野内になければなりません。

    詳細については、を参照してください。

    バージョン履歴

    R2021a で導入

    参考

    オブジェクト

    • satelliteScenario | satelliteScenarioViewer

    関数

    • show | play | hide | groundStation | conicalSensor | satellite

    トピック