このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
satellite
構文
説明
satellite( は、地心天体基準座標系 (GCRF) で定義されたケプラー要素からの scenario,semimajoraxis,eccentricity,inclination,RAAN,argofperiapsis,trueanomaly)Satellite オブジェクトを衛星シナリオに追加します。
satellite( は、scenario,positiontable)positiontable で指定された位置データ (timetable オブジェクト) から Satellite オブジェクトをシナリオに追加します。この関数は、OrbitPropagator="ephemeris" を使用して Satellite を作成します。
satellite( は、scenario,positiontable,velocitytable)positiontable で指定された位置データ (timetable オブジェクト) と velocitytable で指定された速度データ (timetable オブジェクト) から Satellite オブジェクトをシナリオに追加します。この関数は、OrbitPropagator="ephemeris" を使用して Satellite を作成します。
satellite( は、scenario,positiontimeseries)positiontimeseries で指定された位置データから Satellite オブジェクトを scenario に追加します。この関数は、OrbitPropagator="ephemeris" を使用して Satellite を作成します。
satellite( は、scenario,positiontimeseries,velocitytimeseries)positiontimeseries (timeseries オブジェクト) で指定された位置 (メートル単位) データと、velocitytimeseries (timeseries オブジェクト) で指定された速度 (メートル/秒単位) データから、Satellite オブジェクトを scenario に追加します。この関数は、OrbitPropagator="ephemeris" を使用して Satellite を作成します。
satellite(___, は、以前の構文の任意の入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。 Name,Value)
は、追加された衛星へのハンドルのベクトルを返します。前の構文からの任意の入力引数の組み合わせを指定します。sat = satellite(___)
メモ
satelliteScenario の AutoSimulate プロパティが false の場合、SimulationStatus が NotStarted の場合にのみ satellite を変更できます。restart 関数を使用して SimulationStatus を NotStarted にリセットできますが、これを行うとシミュレーション データが消去されます。
例
衛星シナリオ オブジェクトを作成します。
sc = satelliteScenario;
地球中心地球固定 (ECEF) 座標系で衛星エフェメリス時刻表を読み込みます。
load("timetableSatelliteTrajectory.mat","positionTT","velocityTT");
シナリオに 4 つの衛星を追加します。
sat = satellite(sc,positionTT,velocityTT,"CoordinateFrame","ecef");
衛星の軌道を可視化します。
play(sc);

衛星シナリオを作成し、緯度と経度から地上局を追加します。
startTime = datetime(2020,5,1,11,36,0); stopTime = startTime + days(1); sampleTime = 60; sc = satelliteScenario(startTime,stopTime,sampleTime); lat = 10; lon = -30; gs = groundStation(sc,lat,lon);
ケプラーの要素を使用して衛星を追加します。
semiMajorAxis = 10000000;
eccentricity = 0;
inclination = 10;
rightAscensionOfAscendingNode = 0;
argumentOfPeriapsis = 0;
trueAnomaly = 0;
sat = satellite(sc,semiMajorAxis,eccentricity,inclination, ...
rightAscensionOfAscendingNode,argumentOfPeriapsis,trueAnomaly);シナリオにアクセス解析を追加し、衛星と地上局間のアクセス間隔の表を取得します。
ac = access(sat,gs); intvls = accessIntervals(ac)
intvls=8×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_____________ __________________ ______________ ____________________ ____________________ ________ __________ ________
"Satellite 2" "Ground station 1" 1 01-May-2020 11:36:00 01-May-2020 12:04:00 1680 1 1
"Satellite 2" "Ground station 1" 2 01-May-2020 14:20:00 01-May-2020 15:11:00 3060 1 2
"Satellite 2" "Ground station 1" 3 01-May-2020 17:27:00 01-May-2020 18:18:00 3060 3 3
"Satellite 2" "Ground station 1" 4 01-May-2020 20:34:00 01-May-2020 21:25:00 3060 4 4
"Satellite 2" "Ground station 1" 5 01-May-2020 23:41:00 02-May-2020 00:31:00 3000 5 5
"Satellite 2" "Ground station 1" 6 02-May-2020 02:50:00 02-May-2020 03:39:00 2940 6 6
"Satellite 2" "Ground station 1" 7 02-May-2020 05:58:00 02-May-2020 06:47:00 2940 7 7
"Satellite 2" "Ground station 1" 8 02-May-2020 09:06:00 02-May-2020 09:56:00 3000 8 9
シナリオを再生して地上局を可視化します。
play(sc)

開始時刻を 2020 年 6 月 2 日午前 8 時 23 分 UTC に設定し、終了時刻を 1 日後に設定した衛星シナリオを作成します。シミュレーションのサンプル時間を 60 秒に設定します。
startTime = datetime(2020,6,02,8,23,0); stopTime = startTime + days(1); sampleTime = 60; sc = satelliteScenario(startTime,stopTime,sampleTime);
ケプラーの要素を使用して、シナリオに 2 つの衛星を追加します。
semiMajorAxis = [10000000;15000000];
eccentricity = [0.01;0.02];
inclination = [0;10];
rightAscensionOfAscendingNode = [0;15];
argumentOfPeriapsis = [0;30];
trueAnomaly = [0;20];
sat = satellite(sc,semiMajorAxis,eccentricity,inclination, ...
rightAscensionOfAscendingNode,argumentOfPeriapsis,trueAnomaly)sat =
1x2 Satellite array with properties:
Name
ID
ConicalSensors
Gimbals
Transmitters
Receivers
Accesses
GroundTrack
Orbit
OrbitPropagator
MarkerColor
MarkerSize
ShowLabel
LabelFontColor
LabelFontSize
軌道上の衛星とグラウンド トラックを1 時間にわたって表示します。
show(sat) groundTrack(sat,LeadTime=3600)
ans=1×2 object
1×2 GroundTrack array with properties:
LeadTime
TrailTime
LineWidth
LeadLineColor
TrailLineColor
VisibilityMode
シナリオを再生し、シミュレーションのアニメーション速度を 40 に設定します。
play(sc,PlaybackSpeedMultiplier=40)

衛星シナリオを設定します。
startTime = datetime(2021,8,5);
stopTime = startTime + days(1);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime);SEMアルマナックファイルからシナリオに衛星を追加します。
sat = satellite(sc,"gpsAlmanac.txt","OrbitPropagator","gps");
GPS コンステレーションを可視化します。
v = satelliteScenarioViewer(sc);

宇宙データシステム諮問委員会 ( CCSDS ) の軌道平均要素メッセージ (OMM) ファイルから衛星シナリオに衛星を追加します。
衛星シナリオを作成します。OMM ファイルで定義された元期をシナリオの開始時間として使用します (デフォルトの動作)。
startTime = datetime(2020,5,10,0,0,0);
stopTime = startTime + days(1);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime);OMM ファイル eccentricOrbitSatellite.xml の衛星をシナリオ sc に追加します。OMM メタデータで提供されるデフォルト名を使用します。
sat1 = satellite(sc, "eccentricOrbitSatellite.xml")sat1 =
Satellite with properties:
Name: Satellite 41
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]
Eclipse: [1x0 Aero.satellitescenario.Eclipse]
GroundTrack: [1x1 matlabshared.satellitescenario.GroundTrack]
Orbit: [1x1 matlabshared.satellitescenario.Orbit]
CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes]
OrbitPropagator: sdp4
MarkerColor: [0.059 1 1]
MarkerSize: 6
ShowLabel: true
LabelFontColor: [1 1 1]
LabelFontSize: 15
Visual3DModel:
Visual3DModelScale: 1
衛星を可視化します。
v = satelliteScenarioViewer(sc);

シナリオを再生します。
play(sc);
入力引数
satelliteScenario オブジェクトとして指定された衛星シナリオ。
2 行要素 (TLE)、軌道平均要素メッセージ (OMM) (.xml または .json)、または SEMアルマナックファイル。文字ベクトルまたは文字列スカラーとして指定されます。ファイルは現在のフォルダー、MATLAB® パス上のフォルダー内に存在するか、ファイルへの完全パスまたは相対パスを含んでいる必要があります。
TLEファイルの詳細については、2 行要素 (TLE) ファイル を参照してください。SEM アルマナックファイルおよび OMM ファイルの詳細については、「軌道平均要素メッセージ (OMM) ファイル」を参照してください。
データ型: char | string
メモ
この引数には Navigation Toolbox™ が必要です。
GCRF で定義されたケプラー要素。コンマ区切りのベクトルのリストとして指定されます。ケプラーの要素は次のとおりです。
semimajoraxis– このベクトルは衛星の軌道の長半径を定義します。それぞれの値は、軌道の最長直径の半分に等しくなります。eccentricity– このベクトルは衛星の軌道の形状を定義します。inclination– このベクトルは、各衛星の軌道面とGCRFのxy平面との間の角度を[0,180]の範囲で定義します。RAAN(昇交点赤経) – この要素は、GCRF の xy 平面と昇交点の方向との間の角度を定義します。角度は、各衛星の地球の質量の中心から見たもので、範囲は [0,360) です。昇交点とは、軌道が GCRF の xy 平面を横切り、その平面より上になる場所です。argofperiapsis(近点引数) – このベクトルは、地球の重心から見た昇交点の方向と 近点 の間の角度を [0,360) の範囲で定義します。近点とは、各衛星にとって地球の重心に最も近い軌道上の位置です。trueanomaly– このベクトルは、地球の質量の中心から見た各衛星の近点方向と衛星の現在の位置の間の角度を [0,360) の範囲で定義します。
楕円軌道の場合、semimajoraxis を正に設定し、eccentricity を [0,1) の範囲に設定します。
放物線軌道と双曲線軌道の場合、semimajoraxis を負に設定し、放物線軌道の場合は eccentricity を 1 に設定し、双曲線の場合は 1 より大きい値に設定します。
これら3種類の軌道すべてにおいて、inclination を [0,180] の範囲に設定し、その他のすべての角度を [0,360) の範囲に設定します。
メモ
指定された範囲外で定義されたすべての角度は、許容範囲内の対応する値に自動的に変換されます。
ケプラーの要素の詳細については、軌道要素 を参照してください。
timetable 関数または table 関数を使用して作成されたタイムテーブルとして指定された、メートル単位の位置データ。positiontable には、単調に増加する rowTimes (datetime または duration) の列が 1 つだけあり、次のいずれかになります。
1 つ以上の変数の列。各列には、時間の経過に伴う個々の衛星のデータが含まれます。
2D データの 1 列。1 つの次元の長さは 3 に等しく、残りの次元はエフェメリス内の衛星の数を定義します。
3D データの 1 列。1 つの次元の長さは 3 に等しく、1 つの次元はシングルトンであり、残りの次元はエフェメリス内の衛星の数を定義します。
rowTimes 値が duration タイプの場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。入力として名前が指定されていない場合は、デフォルトでタイムテーブルの VariableNames プロパティが使用されます。CoordinateFrame 名前値引数が指定されていない限り、衛星状態は GCRF 内にあると想定されます。GCRF では、positiontable の時間範囲外のシナリオ タイムステップでは状態が一定に保持されます。
データ型: table | timetable
timetable 関数または table 関数を使用して作成されたタイムテーブルとして指定された、メートル/秒単位の速度データ。velocitytable には、単調に増加する rowTimes (datetime または duration) の列が 1 つだけあり、次のいずれかになります。
1 つ以上の変数の列。各列には、時間の経過に伴う個々の衛星のデータが含まれます。
2D データの 1 列。1 つの次元の長さは 3 に等しく、残りの次元はエフェメリス内の衛星の数を定義します。
3D データの 1 列。1 つの次元の長さは 3 に等しく、1 つの次元はシングルトンであり、残りの次元はエフェメリス内の衛星の数を定義します。
rowTimes 値が duration タイプの場合、時間値は現在のシナリオの StartTime プロパティを基準にして測定されます。入力として名前が指定されていない場合は、デフォルトで時刻表 VariableNames が使用されます。CoordinateFrame 名前値引数が指定されていない限り、衛星状態は GCRF 内にあると想定されます。GCRF では、velocitytable の時間範囲外のシナリオ タイムステップでは状態が一定に保持されます。
データ型: table | timetable
位置データ(メートル単位)。timeseries オブジェクトまたは tscollection オブジェクトとして指定されます。
timeseriesまたはtscollectionオブジェクトのDataプロパティに 2 つの次元がある場合、1 つの次元は 3 に等しく、もう 1 つの次元は時間ベクトルの方向と一致する必要があります。timeseriesまたはtscollectionのDataプロパティが 3 次元の場合、1 つの次元は 3 に等しく、最初または最後の次元のいずれかが時間ベクトルの方向と一致する必要があり、残りの次元はエフェメリス内の衛星の数を定義します。timeseries.TimeInfo.StartDateが空の場合、時間値は現在のシナリオのStartTimeプロパティを基準にして測定されます。入力として名前が指定されていない場合は、timeseriesNameプロパティ (定義されている場合) がデフォルトで使用されます。CoordinateFrameの名前と値のペアが提供されない限り、衛星状態は GCRF 内にあると想定されます。GCRF では、positiontimeseriesの時間範囲外のシナリオ タイムステップでは状態が一定に保持されます。
データ型: timeseries | tscollection
速度データ (メートル/秒単位)。timeseries オブジェクトまたは tscollection オブジェクトとして指定されます。
timeseriesまたはtscollectionオブジェクトのDataプロパティに 2 つの次元がある場合、1 つの次元は 3 に等しく、もう 1 つの次元は時間ベクトルの方向と一致する必要があります。timeseriesまたはtscollectionのDataプロパティが 3 次元の場合、1 つの次元は 3 に等しく、最初または最後の次元のいずれかが時間ベクトルの方向と一致する必要があり、残りの次元はエフェメリス内の衛星の数を定義します。timeseries.TimeInfo.StartDateが空の場合、時間値は現在のシナリオのStartTimeプロパティを基準にして測定されます。入力として名前が指定されていない場合は、timeseriesNameプロパティ (定義されている場合) がデフォルトで使用されます。CoordinateFrameの名前と値のペアが提供されない限り、衛星状態は GCRF 内にあると想定されます。GCRF では、velocitytimeseriesの時間範囲外のシナリオ タイムステップでは状態が一定に保持されます。
データ型: timeseries | tscollection
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: Name = 'MySatellite' は衛星名を 'MySatellite' に設定します。
衛星状態座標系。'CoordinateFrame' と次のいずれかの値で構成されるコンマ区切りのペアとして指定されます。
"inertial"—timeseriesまたはtimetableデータの場合、この値を指定すると、GCRF フレーム内の位置と速度が受け入れられます。"ecef"—timeseriesまたはtimetableデータの場合、この値を指定すると、ECEF フレーム内の位置と速度が受け入れられます。"geographic"—timeseriesまたはtimetableデータの場合、この値を指定すると位置 [lat、lon、altitude] が受け入れられます。ここで、lat と lon は度単位の緯度と経度、altitude はメートル単位のWorld Geodetic System84 (WGS 84) 楕円体からの高さです。速度はローカル NED フレーム内にあります。
依存関係
この名前値引数を有効にするには、エフェメリスデータ入力 (
timetableまたはtimeseries) が必要です。fileが OMM ファイルの場合、この引数は無視されます。
データ型: string | char
GPS週元期。日付文字列として「dd-Mmm-yyyy」または「dd-Mmm-yyyy」形式で指定します。GPS週番号は、SEMアルマナックファイルで定義された週をカウントするときに関数が使用する参照日を指定します。GPSweekepoch を指定しない場合、関数は開始時刻の前の最新のGPS週番号ロールオーバー日付と一致する日付を使用します。
この引数は、SEMアルマナックファイルを使用する場合にのみ適用されます。GPSweekepoch を指定し、SEMアルマナックファイルを使用していない場合、関数は引数値を無視します。
依存関係
file が OMM ファイルの場合、この引数は無視されます。
データ型: string | char
衛星シナリオ ビューアー。スカラー、ベクトル、または satelliteScenarioViewer オブジェクトの配列として指定されます。シナリオの AutoSimulate プロパティが false の場合、シナリオに衛星を追加すると、以前使用可能だったタイムラインおよび再生ウィジェットがすべて無効になります。
このプロパティは、satellite 関数を呼び出すときにのみ設定できます。satellite 関数を呼び出した後、このプロパティは読み取り専用になります。
衛星名。'Name' と文字列スカラー、文字列ベクトル、文字ベクトル、または文字ベクトルのセル配列で構成されるコンマ区切りのペアとして指定されます。
衛星を 1 つだけ追加する場合は、
Nameを文字列スカラーまたは文字ベクトルとして指定します。複数の衛星を追加する場合は、
Nameを文字列スカラー、文字ベクトル、文字列ベクトル、または文字ベクトルのセル配列として指定します。文字列スカラーまたは文字ベクトルとして追加されたすべての衛星には、同じ指定された名前が割り当てられます。文字列ベクトルまたは文字ベクトルのセル配列内の要素数は、追加される衛星の数と等しくなければなりません。各衛星には、ベクトルまたはセル配列から対応する名前が割り当てられます。
衛星シナリオに衛星を追加した場合のデフォルト値は、
ケプラーの軌道要素、 TLEファイル - 「衛星ID」。ここで、
IDは衛星シナリオによって割り当てられます。SEMアルマナックファイルまたは RINEX GPSナビゲーション データ - 「PRN:prnValue」。ここで、prnValue は、SEMアルマナックファイルで指定されている衛星の疑似ランダム ノイズ コードを示す整数です。
RINEX Galileo ナビゲーション データ - 「GAL Sat IF: id」。ここで、「id」は RINEX ナビゲーション データで定義された Galileo衛星の衛星ID です。
タイムテーブル - タイムテーブルオブジェクトの変数名
Timeseries - 入力されている場合は Timeseries オブジェクトの名前、そうでない場合は「衛星 ID」。ID は衛星シナリオによって割り当てられます。
データ型: string
このプロパティは、satellite オブジェクトの作成時に設定することができ、その後このプロパティは読み取り専用になります。
衛星の位置と速度を伝播するために使用される軌道プロパゲーターの名前。次のいずれかのオプションとして指定します。
timetable、table、
timeseries、またはtscollectionを使用して衛星を指定する場合、OrbitPropagatorの値は"ephemeris"になります。SEMアルマナックファイルまたはGPSナビゲーション メッセージを含む RINEX データを使用して衛星を指定する場合、
OrbitPropagator値は次のいずれかのオプションを取ることができます。"gps"(既定)"sgp4""sdp4""two-body-keplerian""numerical"
Galileo ナビゲーション メッセージを含む RINEX データを使用して衛星を指定する場合、
OrbitPropagator値は次のいずれかのオプションを取ることができます。"galileo"(既定)"sgp4""sdp4""two-body-keplerian""numerical"
ケプラー要素を使用して衛星を追加するように指定する場合、
OrbitPropagator値はこれらのオプションのいずれかを取ることができます。"two-body-keplerian""sgp4""sdp4""numerical"
さらに、長半径が負の場合、
OrbitPropagatorの値は"numerical"のみになります。長半径が正の場合、デフォルト値は、周期が 225 分未満の場合は"sgp4"、周期が 225 分以上の場合は"sdp4"になります。TLEまたは OMM ファイルを使用して衛星を指定する場合、
OrbitPropagator値はこれらのオプションのいずれかを取ることができます。"two-body-keplerian""sgp4""sdp4""numerical"
軌道周期が 225 分未満の場合、デフォルトの
OrbitPropagator値は"sgp4"になります。それ以外の場合、デフォルトのOrbitPropagator値は"sdp4"になります。Keplerian要素を使用して衛星を指定する場合、OrbitPropagator値はこれらのオプションのいずれかを取ることができます。"two-body-keplerian""sgp4""sdp4"
RINEX データに有効なGPSと Galileo ナビゲーション メッセージの両方が含まれている場合、名前値引数を使用して OrbitPropagator を "gps" または "galileo" として指定することはできません。ただし、"two-body-keplerian"、"sgp4"、"sdp4"、または "numerical" として指定することもできます。
ビューアーでレンダリングするビジュアル 3D モデル ファイルの名前。拡張子が .GLTF、.GLB、または .STL の文字文字列として指定します。GLB および GLTF モデルの場合、gITF は右手座標系を使用します。gITF は、+Y を上、+Z を前、-X を右と定義します。gITF アセットは +Z に面しています。詳細については、https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units を参照してください。GLB のメッシュはメートル単位です。

データ型: string
ビューアでレンダリングされるビジュアル 3D モデルの線形スケーリング。負でない整数として指定します。スケーリングでは、GLB モデルがメートル単位であることを前提としています。
データ型: double
出力引数
バージョン履歴
R2021a で導入file 入力引数を使用して、OMM ファイル経由で衛星をシナリオに追加できるようになりました。
RINEXdata 入力引数を使用して、RINEX ナビゲーション データ経由で衛星をシナリオに追加できるようになりました。
file 入力引数を使用して、SEMアルマナックファイル経由で衛星をシナリオに追加できるようになりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)