メインコンテンツ

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

pointAt

衛星をターゲットに向ける

R2021a 以降

    説明

    衛星オブジェクト

    pointAt(sat,coordinates) はベクトル sat 内の衛星を coordinates で指定された地理座標 [緯度、経度、高度] に向けます。

    pointAt(sat,target) は、sat で指定された衛星を、指定された target の方向に向けます。入力 target は別の衛星または地上局にすることができます。

    pointAt(sat,'nadir') は、行ベクトル sat で指定された衛星を天底方向に向けます。'nadir' はデフォルトの指向方向です。

    pointAt(sat,attitudetable) は、衛星sat の姿勢を、MATLAB® timetable オブジェクトである attitudetable で指定された姿勢に従うように設定します。

    pointAt(sat,attitudetable,Name=Value) は、以前の attitudetable 構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、提供された姿勢値を地心天体基準座標系 (GCRF) からボディ座標系への回転として解釈するには、CoordinateFrameinertial に設定します。

    pointAt(sat,attitudetimeseries) は、衛星sat の姿勢を、MATLAB timeseries オブジェクトである attitudetimeseries で指定された姿勢に従うように設定します。

    pointAt(sat,attitudetimeseries,Name=Value) は、以前の attitudetimeseries 構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、提供された姿勢値を GCRF からボディ座標系への回転として解釈するには、CoordinateFrameinertial に設定します。

    ジンバルオブジェクト

    pointAt(gimbal,'none') は、ベクトル gimbal 内のジンバルのジンバル角度 (ジンバル方位角とジンバル仰角) をゼロに設定します。この設定はデフォルトです。

    pointAt(gimbal,coordinates) は、coordinates で指定された地理座標 [緯度、経度、高度] に向かって、ベクトル gimbal 内のジンバルを操縦します。

    pointAt(gimbal,target) は、ベクトル gimbal 内のジンバルを指定された target に向けて操縦します。

    pointAt(gimbal,'nadir') は、行ベクトル gimbal で指定されたジンバルを親の天底方向、つまり親の緯度、経度、および 0 メートル高度に向けます。

    pointAt(gimbal,steeringtable) は、ジンバルの向きを、MATLAB timetable オブジェクトである steeringtable で指定された方位角仰角に合わせるように設定します。

    pointAt(gimbal,steeringtimeseries) は、ジンバルの向きを、MATLAB timeseries オブジェクトである steeringtimeseries で指定された方位角仰角に合わせるように設定します。

    すべて折りたたむ

    衛星シナリオ オブジェクトを作成します。

    startTime = datetime(2021,6,10);                      % 10 June 2021, 12:00 AM UTC
    stopTime = datetime(2021,6,11);                       % 11 June 2021, 12:00 AM UTC
    sampleTime = 60;                                      % seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    シナリオに衛星を追加します。

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

    シナリオに地上局を追加します。

    latitude = 42.3501;                         % degrees
    longitude = -71.3504;                       % degrees
    gs = groundStation(sc,latitude,longitude);

    地上局にジンバルを追加します。

    g = gimbal(gs,MountingLocation=[0; 0; -1],MountingAngles=[0; 180; 0]);

    ジンバルにコニカル センサーを追加します。

    c = conicalSensor(g,MountingLocation=[0; 0; 0.5]);

    ジンバルを衛星に向けます。

    pointAt(g,sat);

    衛星シナリオ ビューアーを使用してシナリオを可視化します。

    v = satelliteScenarioViewer(sc);

    シナリオを再生します。

    play(sc);

    地上局をカメラのターゲットとして設定します。

    camtarget(v,gs);

    円錐形センサーの視野を可視化し、円錐形センサーの向きの変化を観察します。

    fieldOfView(c);

    入力引数

    すべて折りたたむ

    スカラーまたはベクトルとして指定された衛星オブジェクト。

    スカラーまたはベクトルとして指定されるジンバルオブジェクト。

    衛星またはジンバルターゲットの地理座標。3 要素のベクトルまたは 2 次元配列として指定されます。

    • 座標が 3 要素ベクトルの場合、ベクトルの要素は、緯度、経度、高度の順に対応し、すべての衛星またはジンバルがこの位置を指すように操縦されます。

    • 座標が 2 次元配列の場合、行数は 3 で、列数は satellite の衛星数または gimbal のジンバル数と等しくなければなりません。行は、緯度、経度、高度の順に対応し、各列はベクトル satellite 内の対応する衛星またはベクトル gimbal 内のジンバルの指向座標を表します。緯度と経度は度で指定され、高度は地球の表面からの高さを表すメートルで指定されます。

    入力 satellite または gimbal が指すターゲット。スカラーまたはベクトルとして指定されます。入力 target は別の衛星または地上局になります。

    • target がスカラーの場合、すべての衛星またはジンバルは指定された target を指します。

    • target がベクトルの場合、target の長さは sat の衛星の数、または gimbal のジンバルの数と等しくなければなりません。target の各要素は、sat の衛星または gimbal のジンバルの指向ターゲットを表します。

    MATLAB timetable には、rowTimes (日付時刻または期間) の単調に増加する列が 1 つだけあります。

    • sat に単一の衛星が含まれる場合、テーブルにはスカラー第一四元数[1 行 4 列] または ZYX オイラー角 [1 行 3 列] のデータ列が 1 つ含まれている必要があります。

    • sat が衛星の配列である場合、各データ行には次のいずれかが含まれている必要があります。

      • 複数の列があり、各列には時間の経過に伴う個々の衛星のデータが含まれます。

      • 2D データの 1 列。1 つの次元の長さは、オイラー角または四元数のどちらが使用されているかに応じて 3 または 4 に等しく、残りの次元の長さは sat の衛星の数に等しくなければなりません。

      • 3D データの 1 列。オイラー角または四元数が使用されているかどうかに応じて、1 つの次元の長さは 3 または 4 に等しく、1 つの次元はシングルトンであり、残りの次元の長さは sat の衛星の数に等しくなければなりません。

    オイラー角は、ZYX 回転順序を使用して、受動的な固有の回転を度単位で表します。提供された rowTimesduration タイプの場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。

    この関数は、CoordinateFrame 名前値引数を指定しない限り、衛星の姿勢が GCRF からボディ座標系への変換を表すものと想定します。attitudetable の時間範囲外のシナリオ タイムステップの場合、ExtrapolationMethod 名前値引数を指定しない限り、関数はデフォルトで nadir を使用します。

    MATLAB timeseries にはスカラー第一四元数または ZYX オイラー角が含まれます。

    • timeseriesData プロパティに 2 つの次元がある場合、オイラー角または四元数が使用されているかどうかに応じて、1 つの次元の長さは 3 または 4 に等しくなければならず、もう 1 つの次元は時間ベクトルの方向と揃っている必要があります。

    • sat が衛星の配列である場合、timeseriesData プロパティは 3 次元でなければなりません。1 つの次元の長さは、オイラー角または四元数のどちらが使用されているかに応じて 3 または 4 に等しくなければならず、最初または最後の次元のいずれかが時間ベクトルの方向と揃う必要があり、残りの次元は sat の衛星の数と揃う必要があります。

    オイラー角は、ZYX 回転順序を使用して、受動的な固有の回転を度単位で表します。timeseries.TimeInfo.StartDate が空の場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。

    この関数は、CoordinateFrame 名前値引数を指定しない限り、衛星の姿勢が地心天体基準座標系 (GCRF) からボディ座標系への変換を表すものと想定します。attitudetable の時間範囲外のシナリオ タイムステップの場合、ExtrapolationMethod 名前値引数を指定しない限り、関数はデフォルトで nadir を使用します。

    MATLAB timetable には、rowTimes (日付時刻または期間) の単調に増加する列が 1 つだけあります。

    • gimbal にジンバルが1 つだけ含まれている場合、テーブルには方位角と仰角(度単位 [1 行 2 列]) のデータ列が 1 つ含まれている必要があります。

    • gimbal がジンバルの配列である場合、各データ行には次のいずれかが含まれている必要があります。

      • 複数の列があり、各列には時間の経過に伴う個々のジンバルのデータが含まれています。

      • 2D データの 1 列。1 つの次元の長さは 2 に等しく、残りの次元の長さは gimbal のジンバルの数に等しくなければなりません。

      • 3D データの 1 列。1 つの次元の長さは 2 に等しく、1 つの次元はシングルトンであり、残りの次元の長さは gimbal のジンバルの数に等しくなければなりません。

    方位角と仰角を度単位で指定します。提供された rowTimesduration タイプの場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。

    方位角と仰角を度単位で含むMATLAB timeseries時系列[1行2列]。

    • timeseriesData プロパティに 2 つの次元がある場合、1 つの次元の長さは 2 に等しく、もう 1 つの次元は時間ベクトルの方向と一致する必要があります。

    • gimbal がジンバルの配列である場合、timeseriesData プロパティは次の 3 つの次元を持つ必要があります。

      • 1 つの次元の長さは 2 に等しくなければなりません。

      • 最初の次元または最後の次元のいずれかが時間ベクトルの方向と一致する必要があります。

      • 残りの寸法は、gimbal のジンバルの数と一致する必要があります。

    timeseries.TimeInfo.StartDate が空の場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。

    名前と値の引数

    すべて折りたたむ

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

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

    例: pointAt(sat,attTT,CoordinateFrame="inertial") は、提供された姿勢値を、地心天体基準座標系 (GCRF) からボディ座標系への回転として解釈します。

    カスタム姿勢入力の座標系。次のいずれかのオプションとして指定されます。

    • inertial — 提供された姿勢値を GCRF からボディ座標系への回転として解釈します。

    • ecef — 提供された姿勢値を、地球中心地球固定 (ECEF) 座標系からボディ座標系への回転として解釈します。

    • ned — 指定された姿勢値を、北東下 (NED) 座標系からボディ座標系への回転として解釈します。

    データ型: char | string

    姿勢のデフォルトの動作は次のように指定されます:

    • nadir —ヨー軸が天底の方向を向くように衛星sat の姿勢を設定します。

    • fixed — カスタム姿勢データでデータが提供される最も近い時間値で、GCRF に対して姿勢を一定に保ちます。

    シナリオでは、指定されたカスタム姿勢時間範囲外にあるシナリオ時間ステップにこの設定が使用されます。ExtrapolationMethod を指定しない場合、シナリオ時間がカスタム姿勢時間範囲の範囲外になると、関数は警告を返します。

    データ型: char | string

    提供される姿勢データの形式。次のいずれかのオプションとして指定されます。

    • quaternion — 提供された姿勢値をスカラー第一四元数として解釈します。クォータニオンは、CoordinateFrame からボディ座標系への受動的な回転を表します。

    • euler — 指定された姿勢値をオイラー角(度)として解釈します。オイラー角は、ZYX 回転順序を使用して CoordinateFrame からボディ座標系への受動的な固有の回転を表し、その順序で提供されます。

    データ型: char | string

    メモ

    衛星シナリオの AutoSimulate プロパティが false の場合、SimulationStatusNotStarted または InProgress である限り、pointAt 関数を呼び出すことができます。

    バージョン履歴

    R2021a で導入