メインコンテンツ

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

Gimbal

衛星シナリオに属するジンバルオブジェクト

R2021a 以降

    説明

    Gimbal は、衛星シナリオに属するジンバル オブジェクトを定義します。

    作成

    SatellitePlatform (Satellite Communications Toolbox)、または GroundStationgimbal オブジェクト関数を使用して Gimbal オブジェクトを作成できます。

    プロパティ

    すべて展開する

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

    ジンバル名。'Name' と文字列スカラー、文字列ベクトル、文字ベクトル、または文字ベクトルのセル配列で構成される名前値引数として指定されます。

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

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

    デフォルト値では、idx は衛星シナリオによって割り当てられた ID です。

    データ型: char | string

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

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

    親オブジェクトに対する取り付け位置(メートル単位)。3 要素のベクトルまたは行列として指定します。位置ベクトルは、入力 parent のボディ座標系で指定されます。

    • ジンバルを 1 つ追加する場合、MountingLocation プロパティは 3 要素のベクトルになります。要素は、ジンバルのボディ座標系内の直交座標の xy、および z コンポーネントを指定します。

    • 複数のジンバルを追加する場合、MountingLocation プロパティは 3 要素のベクトルまたは行列になります。ベクトルとして指定すると、指定されたすべてのジンバルに同じ取り付け位置のセットが割り当てられます。行列として指定する場合、MountingLocation には 3 つの行とジンバルと同じ数の列が含まれている必要があります。列は指定された各ジンバルの取り付け位置に対応し、行は親ボディ座標系内の取り付け位置座標に対応します。

    衛星シナリオの AutoSimulate プロパティが false の場合、 SimulationStatusNotStarted の場合にのみ MountingLocation プロパティを変更できます。restart 関数を使用して SimulationStatusNotStarted にリセットできますが、これを行うとシミュレーション データが消去されます。

    データ型: double

    親オブジェクトに対する取り付け方向(度単位)。正の数値の 3 要素の行ベクトルとして指定します。ベクトルの要素は、ヨー、ピッチ、ロールの順に対応します。ヨー、ピッチ、ロールは、親の z 軸、中間の y 軸、中間の x 軸を中心とした正の回転です。

    • ジンバルを 1 つ追加する場合、MountingAngles プロパティは 3 要素のベクトルになります。

    • 複数のジンバルを追加する場合、MountingAngles プロパティは 3 要素のベクトルまたは行列になります。ベクトルとして指定すると、指定されたすべてのジンバルに同じ取り付け角度のセットが割り当てられます。行列として指定する場合、MountingAngles には 3 つの行とジンバルと同じ数の列が含まれている必要があります。列は指定された各ジンバルの取り付け角度に対応し、行は親ボディ座標系のヨー、ピッチ、ロール角度に対応します。

    衛星シナリオの AutoSimulate プロパティが false の場合、 SimulationStatusNotStarted の場合にのみ MountingAngles プロパティを変更できます。restart 関数を使用して SimulationStatusNotStarted にリセットできますが、これを行うとシミュレーション データが消去されます。

    例: [0; 30; 60]

    データ型: double

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

    Gimbal に取り付けられた円錐形センサー。円錐形センサーの行ベクトルとして指定されます。

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

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

    オブジェクト関数

    aerNEDフレーム内の他の衛星または地上局の方位角角、仰角、範囲を計算します。
    conicalSensor衛星シナリオに円錐型センサーを追加する
    gimbalAnglesジンバルのステアリング角度
    pointAt衛星をターゲットに向ける
    CoordinateAxes座標軸トライアド グラフィック オブジェクト
    platform (Satellite Communications Toolbox)衛星シナリオにプラットフォームを追加する

    すべて折りたたむ

    開始時刻が 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 で導入

    参考

    オブジェクト

    関数