Main Content

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

conicalSensor

衛星シナリオに円錐型センサーを追加する

R2021a 以降

説明

conicalSensor(parent) は、デフォルトのパラメータを使用して、ベクトル parent 内の各親に ConicalSensor オブジェクトを追加します。parent は、SatelliteGroundStationPlatform (Satellite Communications Toolbox)、または Gimbal になります。

conicalSensor(parent,Name=Value) は、オプションの名前と値の引数で指定された追加のパラメータを使用して、parent の親に円錐形センサーを追加します。たとえば、'MaxViewAngle'=90 は視野角 90 度を指定します。

sensor = conicalSensor(___) は追加された円錐形センサーを行ベクトル sensor として返します。前の構文からの任意の入力引数の組み合わせを指定します。

すべて折りたたむ

開始時刻が 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);

入力引数

すべて折りたたむ

円錐センサーを追加するシナリオの要素。衛星、地上局、プラットフォーム、またはジンバルのスカラーまたはベクトルとして指定されます。追加する円錐形センサーの数は、入力のサイズによって決まります。

  • parent がスカラーの場合、すべての円錐センサーが親に追加されます。

  • parent が親のベクトルであり、指定された円錐センサーの数が 1 の場合、その円錐センサーが各親に追加されます。

  • parent が親のベクトルであり、指定された円錐センサーの数が 1 を超える場合、円錐センサーの数は parent の親の数と等しくなければならず、各親には 1 つの円錐センサーが割り当てられます。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: 'MountingAngle'=[20;35;10] は、円錐センサーのヨー、ピッチ、ロールの角度をそれぞれ 20 度、35 度、10 度に設定します。

メモ

名前値引数のサイズによって、指定できる円錐形センサーの数が決まります。複数の円錐センサーを指定する方法については、これらのプロパティを参照してください。

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

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

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

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

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

データ型: char | string

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

  • 円錐型センサーを 1 つ追加する場合、MountingLocation は 3 要素ベクトルになります。要素は、円錐形センサーのボディ座標系内の直交座標の x、y、および 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

視野角(度単位)。範囲 [0, 180] のスカラーまたはベクトルとして指定します。

  • 円錐型センサーを 1 つ追加する場合、MaxViewAngle はスカラーである必要があります。

  • 複数の円錐型センサーを追加する場合、MaxViewAngle はスカラーまたはベクトルになります。MaxViewAngle がスカラーの場合、追加するすべての円錐センサーに同じ視野角が割り当てられます。MaxViewAngle がベクトルの場合、MaxViewAngle の長さは親の円錐センサーの数と等しくなければなりません。MaxViewAngle の各要素は、指定された対応する円錐センサーに割り当てられます。

衛星シナリオの AutoSimulate プロパティが false の場合、 SimulationStatusNotStarted または InProgress であるときに MaxViewAngle を変更できます。

データ型: double

出力引数

すべて折りたたむ

parent に接続された円錐形センサーが行ベクトルとして返されます。

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

バージョン履歴

R2021a で導入

参考

オブジェクト

関数