メインコンテンツ

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

FieldOfView

衛星シナリオに属する視野オブジェクト

R2021a 以降

    説明

    FieldOfView オブジェクトは、衛星シナリオに属する視野オブジェクトを定義します。

    視野オブジェクトを使用して、円錐形センサーの視野を視覚化できます。センサーの視野を定義する円錐領域と地球の交線を表す等高線を地球上に描画します。実際のシナリオで視野オブジェクトを使用する方法の詳細については、衛星コンスタレーションから地上局へのアクセス を参照してください。

    作成

    ConicalSensor オブジェクトの fieldOfView オブジェクト関数を使用して FieldOfView オブジェクトを作成できます。

    プロパティ

    すべて展開する

    視野の輪郭の視覚的な幅(ピクセル単位)。範囲(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'

    視野輪郭の可視モード。次のいずれかの値として指定されます。

    • 'inherit' — グラフィックの可視性は親の可視性と一致する

    • 'manual' — グラフィックの可視性は継承されず、親の可視性から独立しています。

    オブジェクト関数

    show衛星シナリオビューアでオブジェクトを表示する
    hide衛星シナリオエンティティをビューアから非表示にする

    すべて折りたたむ

    開始時刻が 2021 年 6 月 15 日午前 8 時 55 分 UTC、終了時刻が 5 日後の衛星シナリオを作成します。シミュレーションのサンプル時間を 60 秒に設定します。

    startTime = datetime(2021,6,21,8,55,0);
    stopTime = startTime + days(5);
    sampleTime = 60;                                      % seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime)
    sc = 
      satelliteScenario with properties:
    
             StartTime: 21-Jun-2021 08:55:00
              StopTime: 26-Jun-2021 08:55:00
            SampleTime: 60
          AutoSimulate: 1
            Satellites: [1×0 matlabshared.satellitescenario.Satellite]
        GroundStations: [1×0 matlabshared.satellitescenario.GroundStation]
               Viewers: [0×0 matlabshared.satellitescenario.Viewer]
              AutoShow: 1
    
    

    ケプラーの軌道要素を使用してシナリオに衛星を追加します。

    semiMajorAxis = 7878137;                                                                    % meters
    eccentricity = 0;
    inclination = 50;                                                                           % degrees
    rightAscensionOfAscendingNode = 0;                                                          % degrees
    argumentOfPeriapsis = 0;                                                                    % degrees
    trueAnomaly = 50;                                                                           % degrees
    sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ...
        argumentOfPeriapsis,trueAnomaly)
    sat = 
      Satellite with properties:
    
                   Name:  Satellite 1
                     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:  sgp4
            MarkerColor:  [0.059 1 1]
             MarkerSize:  6
              ShowLabel:  true
         LabelFontColor:  [1 1 1]
          LabelFontSize:  15
    
    

    撮影する場所を表す地上局をシナリオに追加します。

    gs = groundStation(sc,Name="Location to Photograph", ...
        Latitude=42.3001,Longitude=-71.3504)                 % degrees
    gs = 
      GroundStation with properties:
    
                     Name:  Location to Photograph
                       ID:  2
                 Latitude:  42.3 degrees
                Longitude:  -71.35 degrees
                 Altitude:  0 meters
        MinElevationAngle:  0 degrees
           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]
              MarkerColor:  [1 0.4118 0.1608]
               MarkerSize:  6
                ShowLabel:  true
           LabelFontColor:  [1 1 1]
            LabelFontSize:  15
    
    

    衛星にジンバルを追加します。このジンバルは衛星とは独立して操縦できます。

    g = gimbal(sat)
    g = 
      Gimbal with properties:
    
                    Name:  Gimbal 3
                      ID:  3
        MountingLocation:  [0; 0; 0] meters
          MountingAngles:  [0; 0; 0] degrees
          ConicalSensors:  [1x0 matlabshared.satellitescenario.ConicalSensor]
            Transmitters:  [1x0 satcom.satellitescenario.Transmitter]
               Receivers:  [1x0 satcom.satellitescenario.Receiver]
    
    

    ジンバルを使用して撮影する場所を追跡します。

    pointAt(g,gs);

    ジンバルに円錐形センサーを追加します。このセンサーはカメラを表します。視野を60度に設定します。

    camSensor = conicalSensor(g,MaxViewAngle=60)
    camSensor = 
      ConicalSensor with properties:
    
                    Name:  Conical sensor 4
                      ID:  4
        MountingLocation:  [0; 0; 0] meters
          MountingAngles:  [0; 0; 0] degrees
            MaxViewAngle:  60 degrees
                Accesses:  [1x0 matlabshared.satellitescenario.Access]
             FieldOfView:  [0x0 matlabshared.satellitescenario.FieldOfView]
    
    

    カメラと撮影場所の間にある円錐型センサーにアクセス解析を追加します。

    ac = access(camSensor,gs)
    ac = 
      Access with properties:
    
        Sequence:  [4 2]
        LineWidth:  3
        LineColor:  [0.3922 0.8314 0.0745]
    
    

    衛星シナリオ ビューアーを使用して、カメラの視野を視覚化します。

    v = satelliteScenarioViewer(sc);
    fieldOfView(camSensor);

    カメラが地理的な場所を視認できる間隔を決定します。

    t = accessIntervals(ac)
    t=35×8 table
              Source                   Target             IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        __________________    ________________________    ______________    ____________________    ____________________    ________    __________    ________
    
        "Conical sensor 4"    "Location to Photograph"           1          21-Jun-2021 10:38:00    21-Jun-2021 10:55:00      1020           1            2   
        "Conical sensor 4"    "Location to Photograph"           2          21-Jun-2021 12:36:00    21-Jun-2021 12:58:00      1320           2            3   
        "Conical sensor 4"    "Location to Photograph"           3          21-Jun-2021 14:37:00    21-Jun-2021 15:01:00      1440           3            4   
        "Conical sensor 4"    "Location to Photograph"           4          21-Jun-2021 16:41:00    21-Jun-2021 17:04:00      1380           5            5   
        "Conical sensor 4"    "Location to Photograph"           5          21-Jun-2021 18:44:00    21-Jun-2021 19:07:00      1380           6            6   
        "Conical sensor 4"    "Location to Photograph"           6          21-Jun-2021 20:46:00    21-Jun-2021 21:08:00      1320           7            7   
        "Conical sensor 4"    "Location to Photograph"           7          21-Jun-2021 22:50:00    21-Jun-2021 23:04:00       840           8            8   
        "Conical sensor 4"    "Location to Photograph"           8          22-Jun-2021 09:51:00    22-Jun-2021 10:02:00       660          13           13   
        "Conical sensor 4"    "Location to Photograph"           9          22-Jun-2021 11:46:00    22-Jun-2021 12:07:00      1260          14           15   
        "Conical sensor 4"    "Location to Photograph"          10          22-Jun-2021 13:46:00    22-Jun-2021 14:10:00      1440          15           16   
        "Conical sensor 4"    "Location to Photograph"          11          22-Jun-2021 15:50:00    22-Jun-2021 16:13:00      1380          16           17   
        "Conical sensor 4"    "Location to Photograph"          12          22-Jun-2021 17:53:00    22-Jun-2021 18:16:00      1380          18           18   
        "Conical sensor 4"    "Location to Photograph"          13          22-Jun-2021 19:55:00    22-Jun-2021 20:18:00      1380          19           19   
        "Conical sensor 4"    "Location to Photograph"          14          22-Jun-2021 21:58:00    22-Jun-2021 22:16:00      1080          20           20   
        "Conical sensor 4"    "Location to Photograph"          15          23-Jun-2021 10:56:00    23-Jun-2021 11:16:00      1200          26           27   
        "Conical sensor 4"    "Location to Photograph"          16          23-Jun-2021 12:56:00    23-Jun-2021 13:19:00      1380          27           28   
          ⋮
    
    

    最大再訪問時間を時間単位で計算します。

    startTimes = t.StartTime;
    endTimes = t.EndTime;
    revisitTimes = hours(startTimes(2:end) - endTimes(1:end-1));
    maxRevisitTime = max(revisitTimes)                             % hours
    maxRevisitTime = 12.6667
    

    カメラがその場所を撮影した再訪問時間を視覚化します。

    play(sc);

    バージョン履歴

    R2021a で導入