メインコンテンツ

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

geoTrajectory

測地経緯度におけるウェイポイントの軌跡

R2024a 以降

説明

geoTrajectory System object™ は測地経緯度のウェイポイントに基づいて軌跡を生成します。System object を作成するときに、各ウェイポイントの到着時刻、速度、および方向を指定できます。geoTrajectory System object には 3 つの座標系が関係します。詳細については、Geo Trajectory の座標系を参照してください。

測地経緯度で地球中心のウェイポイント軌跡を生成するには:

  1. geoTrajectory オブジェクトを作成して、そのプロパティを設定します。

  2. 関数と同様に、オブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

trajectory = geoTrajectory(Waypoints,TimeOfArrival) は、指定された測地ウェイポイントWaypoints と対応する時間 TimeOfArrival に基づいて、geoTrajectory System object、trajectory を返します。

trajectory = geoTrajectory(Waypoints,TimeOfArrival,Name,Value) は、各作成引数またはプロパティ Name を指定された Value に設定します。指定されていないプロパティと作成引数には、既定値または推定値が設定されます。

例: trajectory = geoTrajectory([10,10,1000;10,11,1100],[0,3600]) は、1 時間で経度 1 度、高度100 メートル移動する測地ウェイポイント軌跡System object、geojectory を作成します。

作成引数

作成引数は、 System object の作成中に設定され、後で変更できないプロパティです。作成引数の値を明示的に設定しない場合は、プロパティ値が推測されます。

WaypointsTimeOfArrival は、値のみの引数または名前と値のペアとして指定できます。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトを呼び出した後にプロパティ値を変更することはできません。オブジェクトは呼び出し時にロックされ、関数 release でロック解除されます。

プロパティが "調整可能" な場合は、いつでも値を変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

軌跡のサンプル レート (Hz 単位)。正のスカラーとして指定します。

調整可能: Yes

データ型: double

出力フレームあたりのサンプル数。正の整数として指定します。

調整可能: Yes

データ型: double

測地経緯度での位置。N 行 3 列の行列として指定されます。N はウェイポイントの数です。各行の 3 つの要素は、測地ウェイポイントの緯度 (度)、経度 (度)、および WGS84 参照楕円体からの高度(メートル) を表します。N = 1 の場合、軌跡は静止位置にあります。

依存関係

このプロパティを設定するには、TimeOfArrival プロパティにも有効な値を設定する必要があります。

データ型: double

各ウェイポイントでの時間(秒単位)。N 要素の列ベクトルとして指定されます。サンプル数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。軌跡が静止している場合 (Waypoints プロパティに指定されたウェイポイントが1 つだけの場合)、TimeOfArrival に指定されたプロパティ値は無視され、デフォルト値の Inf が使用されます。

依存関係

このプロパティを設定するには、Waypoints プロパティにも有効な値を設定する必要があります。

データ型: double

各ウェイポイントにおけるローカル基準座標系の速度(メートル/秒)。N 行 3 列の行列として指定されます。サンプル数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。

  • 速度を指定しない場合は、オブジェクトはウェイポイントから速度を推測します。

  • 速度をゼロ以外の値に指定すると、オブジェクトはそれに応じて軌跡のコースを取得します。

データ型: double

速度方向と北方向の間の角度。度単位のスカラーの N 要素ベクトルとして指定します。サンプル数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。VelocitiesCourse も指定されていない場合、コースはウェイポイントから推定されます。

依存関係

このプロパティを設定するには、オブジェクトの作成時に Velocities プロパティを指定しないでください。

データ型: double

各ウェイポイントにおける対地速度。m/s 単位の N 要素の実数ベクトルとして指定します。プロパティを指定しない場合は、ウェイポイントから推測されます。サンプル数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。

依存関係

このプロパティを設定するには、オブジェクトの作成時に Velocities プロパティを指定しないでください。

データ型: double

各ウェイポイントでの上昇率。度単位の N 要素の実数ベクトルとして指定します。サンプル数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。VelocitiesCourse も指定されていない場合、上昇率はウェイポイントから推定されます。

依存関係

このプロパティを設定するには、オブジェクトの作成時に Velocities プロパティを指定しないでください。

データ型: double

各ウェイポイントでの方向。N 要素の quaternion 列ベクトル、または 3 x 3 x N の実数配列(各 3 x 3 配列は回転行列)として指定します。四元数または回転行列の数 N は、Waypoints で定義されたサンプル (行) 数と同じでなければなりません。

各四元数または回転行列は、ウェイポイントのローカル基準座標系 (NED または ENU) から軌道上のプラットフォームのボディ座標系への座標系回転です。

データ型: quaternion | double

ピッチ角を運動方向に合わせるかどうか。true または false として指定します。true として指定すると、ピッチ角度は動作の方向と一致します。false と指定すると、ピッチ角度はゼロに設定されます。

依存関係

このプロパティを設定するには、オブジェクトの作成時に Orientation プロパティを指定しないでください。

ロール角度を調整して求心力を打ち消します。true または false として指定します。true に指定すると、ロール角が自動的に向心力に抗します。false に指定すると、ロール角はゼロ (フラット方向) に設定されます。

依存関係

このプロパティを設定するには、オブジェクトの作成時に Orientation プロパティを指定しないでください。

軌道のローカル基準座標系。'NED' (北東下) または 'ENU' (東北上) として指定されます。ローカル基準座標系は、軌道の現在のウェイポイントに対応します。プラットフォームの速度、加速度、および方向は、ローカル基準座標系で報告されます。詳細については、Geo Trajectory の座標系を参照してください。

使用法

説明

[positionLLA,orientation,velocity,acceleration,angularVelocity,ecef2ref] = trajectory() は、指定された作成引数とプロパティに基づいて軌跡データのフレームを出力します。ここで、trajectorygeoTrajectory オブジェクトです。

出力引数

すべて展開する

緯度、経度、高度の測地位置が、M 行 3 列の行列として返されます。各行の 3 つの要素は、測地ウェイポイントの緯度 (度)、経度 (度)、および WGS84 参照楕円体からの高度(メートル) を表します。

MSamplesPerFrame プロパティで指定します。

データ型: double

ローカル参照座標系での方向。M 行 1 列の quaternion 列ベクトル、または 3 行 3 列の配列それぞれが回転行列である 3 行 3 列の M 実数配列として返されます。

各四元数または回転行列は、ローカル基準座標系 (NED または ENU) からボディ座標系への座標系回転です。

MSamplesPerFrame プロパティで指定します。

データ型: double

ローカル参照座標系での速度(メートル/秒)が、M 行 3 列の行列として返されます。

MSamplesPerFrame プロパティで指定します。

データ型: double

ローカル参照座標系での加速度(メートル毎秒毎秒)が、M 行 3 列の行列として返されます。

MSamplesPerFrame プロパティで指定します。

データ型: double

ローカル参照座標系での角速度(ラジアン/秒)が、M 行 3 列の行列として返されます。

MSamplesPerFrame プロパティで指定します。

データ型: double

ECEF (地球中心地球固定) フレームに対するローカル基準座標系の方向。M 行 1 列の quaternion 列ベクトルとして返されるか、または各 3 行 3 列の配列が回転行列である 3 行 3 列の M 実数配列として返されます。

各四元数または 3 行 3 列の回転行列は、ECEF フレームから現在のウェイポイントに対応するローカル基準座標系 (NED または ENU) へのフレーム回転です。

MSamplesPerFrame プロパティで指定します。

データ型: double

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、以下の構文を使用します。

release(obj)

すべて展開する

lookupPose特定の時間における測地軌跡の姿勢を取得する
perturbationsオブジェクトに定義された摂動
perturb摂動をオブジェクトに適用する
cloneSystem object の複製
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット
isDoneデータ終了ステータス

すべて折りたたむ

開始LLAが[15 15 0]で終了LLAが[75 75 100]であるgeoTrajectoryを作成します。飛行時間を10時間に設定します。1000 秒ごとに軌跡をサンプリングします。

startLLA = [15 15 0];
endLLA = [75 75 100];
timeOfTravel = [0 3600*10];
sampleRate  = 0.001;

trajectory = geoTrajectory([startLLA;endLLA],timeOfTravel,'SampleRate',sampleRate);

軌跡の LLAウェイポイントを出力します。

positionsLLA = startLLA;
while ~isDone(trajectory)
    positionsLLA = [positionsLLA;trajectory()];  
end
positionsLLA
positionsLLA = 37×3

   15.0000   15.0000         0
   16.6667   16.6667    2.7778
   18.3333   18.3333    5.5556
   20.0000   20.0000    8.3333
   21.6667   21.6667   11.1111
   23.3333   23.3333   13.8889
   25.0000   25.0000   16.6667
   26.6667   26.6667   19.4444
   28.3333   28.3333   22.2222
   30.0000   30.0000   25.0000
   31.6667   31.6667   27.7778
   33.3333   33.3333   30.5556
   35.0000   35.0000   33.3333
   36.6667   36.6667   36.1111
   38.3333   38.3333   38.8889
      ⋮

lookupPose 関数を使用して、ECEF フレーム内の軌跡の直交ウェイポイントを検索します。

sampleTimes = 0:1000:3600*10;
n = length(sampleTimes);
positionsCart = lookupPose(trajectory,sampleTimes,'ECEF');

ECEF フレームで結果を可視化します。

figure()
km = 1000;
plot3(positionsCart(1,1)/km,positionsCart(1,2)/km,positionsCart(1,3)/km, 'b*');
hold on;
plot3(positionsCart(end,1)/km,positionsCart(end,2)/km,positionsCart(end,3)/km, 'bo');
plot3(positionsCart(:,1)/km,positionsCart(:,2)/km,positionsCart(:,3)/km,'b');

plot3([0 positionsCart(1,1)]/km,[0 positionsCart(1,2)]/km,[0 positionsCart(1,3)]/km,'k:');
plot3([0 positionsCart(end,1)]/km,[0 positionsCart(end,2)]/km,[0 positionsCart(end,3)]/km,'k:');
xlabel('x (km)'); ylabel('y (km)'); zlabel('z (km)');
legend('Start position','End position', 'Trajectory')

Figure contains an axes object. The axes object with xlabel x (km), ylabel y (km) contains 5 objects of type line. One or more of the lines displays its values using only markers These objects represent Start position, End position, Trajectory.

アルゴリズム

すべて展開する

拡張機能

すべて展開する

バージョン履歴

R2024a で導入