メインコンテンツ

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

satelliteScenario

衛星シナリオ

R2021a 以降

    説明

    satelliteScenario オブジェクトは、衛星、地上局、およびそれらの相互作用から構成される 3D アリーナを表します。このオブジェクトを使用して、衛星コンステレーションをモデル化し、地上局ネットワークをモデル化し、衛星と地上局間のアクセス解析を実行し、結果を可視化します。

    作成

    説明

    sc = satelliteScenario はデフォルトの衛星シナリオ オブジェクトを作成します。

    sc = satelliteScenario(startTime,stopTime,sampleTime) は、StartTimeStopTimeSampleTime プロパティをそれぞれ startTimestopTimesampleTime の値に設定します。

    sc = satelliteScenario(___,'AutoSimulate',false)AutoSimulate プロパティを指定された値に設定します。

    プロパティ

    すべて展開する

    衛星シナリオシミュレーションの開始時刻(UTC)。datetime スカラーとして指定します。

    シナリオに衛星が存在しない場合は、デフォルトの StartTime は現在の UTC 時間になります。それ以外の場合は、

    • 現在の UTC 時間。

    • TLEファイルで定義された元期。

    • SEM ファイルで定義されたGPS週番号から推定された参照時間。

    • GPSと Galileo の RINEX ナビゲーション データから推定された最も早い時間。

    • 時刻表と時系列の最初の時刻。

    StartTimeStopTime、または SampleTime プロパティが明示的に指定されている場合、StartTime プロパティは衛星の追加によって更新されなくなります。

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

    データ型: datetime

    衛星シナリオシミュレーションの終了時刻(UTC)。datetime スカラーとして指定します。デフォルトの StopTime は、シナリオ内の衛星の中で最も長い軌道周期である StartTime になります。シナリオに衛星が追加されていない場合、デフォルトの StopTime はデフォルトの StartTime と同じになります。StartTimeStopTime、または SampleTime プロパティが明示的に指定されている場合、StopTime プロパティは衛星の追加によって更新されなくなります。

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

    データ型: datetime

    衛星シナリオシミュレーションのサンプル時間。実数値のスカラーとして指定されます。デフォルトのサンプル時間は、StartTimeStopTime の間に 100 個のサンプルがあるように設定されています。デフォルトの StartTimeStopTime が同じ場合 (シナリオに衛星が追加されていない場合)、デフォルトの SampleTime は 60 秒になります。StartTimeStopTime、または SampleTime プロパティが明示的に指定されている場合、SampleTime プロパティは衛星の追加によって更新されなくなります。

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

    データ型: double

    この プロパティ は読み取り専用です。

    衛星シナリオシミュレーションの現在のシミュレーション時間(UTC)。datetime スカラーとして指定されます。restart 関数を呼び出して、時間を StartTime にリセットします。

    依存関係

    このプロパティを有効にするには、AutoSimulatefalse に設定します。

    データ型: datetime

    この プロパティ は読み取り専用です。

    衛星シナリオのシミュレーション ステータス。次のいずれかとして指定されます。

    • 'NotStarted'advance関数が呼び出されていません

    • 'InProgress' — シミュレーション実行中

    • 'Completed' — シミュレーションが終了しました

    シミュレーションは、advance 関数が最初に呼び出されたときに開始されます。シミュレーションは、次のいずれかが発生するまで続行されます。

    • シミュレーションは StopTime に到達します。

    • 衛星シナリオに新しいアセットが追加されます。

    • アセットの特定のプロパティ (衛星、地上局、ジンバル、コニカル センサーなど) が変更されました (MountingLocationMountingAngles など)。プロパティを参照して、プロパティを変更するとシミュレーションを停止できるかどうかを判断します。

    restart 関数を呼び出してシミュレーションを再起動し、シミュレーション データを消去し、SimulationStatusNotStarted に設定します。

    依存関係

    このプロパティを有効にするには、AutoSimulatefalse に設定します。

    衛星シナリオを自動的にシミュレートするオプション。数値または論理値のいずれかとして指定します。

    • 1 (true) — statesaccessIntervals などの解析関数を呼び出すたびに、衛星シナリオを自動的にシミュレートします。

    • 0 (false) — advance 関数を呼び出すことによってのみ衛星シナリオをシミュレートします。

    AutoSimulate 値を変更すると、以前のシミュレーション データが消去されます。

    データ型: double

    シナリオ内の衛星。Satellite オブジェクトの行ベクトルとして返されます。Satellite オブジェクトを作成して衛星シナリオに追加するには、satellite オブジェクト関数を使用します。シナリオに衛星を追加すると、このプロパティは読み取り専用になります。

    シナリオ内のプラットフォーム。Platform (Satellite Communications Toolbox) オブジェクトの行ベクトルとして返されます。Platform (Satellite Communications Toolbox) オブジェクトを作成して衛星シナリオに追加するには、platform (Satellite Communications Toolbox) オブジェクト関数を使用します。シナリオにプラットフォームを追加すると、このプロパティは読み取り専用になります。

    シナリオ内の地上局。GroundStation オブジェクトの行ベクトルとして返されます。GroundStation オブジェクトを作成して衛星シナリオに追加するには、groundStation オブジェクト関数を使用します。シナリオに地上局を追加すると、このプロパティは読み取り専用になります。

    論理 1 (true) または 0 (false) として指定された、グラフィックを自動的に表示するオプション。このプロパティは、シナリオに追加されたエンティティが開いている satelliteScenarioViewer ウィンドウに自動的に表示されるかどうかを決定します。

    衛星シナリオで使用される中心体オプション。スカラー Aero.satellitescenario.CentralBodyOptions オブジェクトとして指定されます。このプロパティは読み取り専用です。

    数値軌道プロパゲーターで使用されるオプション。スカラーとして指定します。これらのオプションを変更するには、numericalPropagator 関数を使用します。

    オブジェクト関数

    groundStation衛星シナリオに地上局を追加する
    satellite衛星シナリオに衛星を追加する
    satelliteScenarioViewer衛星シナリオのビューアを作成する
    advanceシミュレーションを1サンプル時間分進める
    restartシミュレーションを最初からやり直す
    play衛星シナリオシミュレーション結果をビューアで再生する
    walkerDelta衛星シナリオで Walker-Delta コンステレーションを作成する
    walkerStar衛星シナリオで Walker-Star コンステレーションを作成する
    numericalPropagatorAdd or modify satellite scenario numerical orbit propagator options
    centralBodyOptionsModify central body options used in satellite scenario

    すべて折りたたむ

    現在のタイムゾーンでの開始時刻を昨日として指定します。シミュレーションは半日続きます。

    startTime = datetime("yesterday","TimeZone","local");
    stopTime = startTime + days(0.5);

    サンプル時間を 60 秒に指定します。開始時間、終了時間、サンプル時間を指定して、衛星シナリオ オブジェクトを作成します。

    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime)
    sc = 
      satelliteScenario with properties:
    
                 StartTime: 31-Jan-2025 05:00:00
                  StopTime: 31-Jan-2025 17:00:00
                SampleTime: 60
              AutoSimulate: 1
        CentralBodyOptions: [1×1 Aero.satellitescenario.CentralBodyOptions]
                Satellites: [1×0 matlabshared.satellitescenario.Satellite]
            GroundStations: [1×0 matlabshared.satellitescenario.GroundStation]
                 Platforms: [1×0 matlabshared.satellitescenario.Platform]
                   Viewers: [0×0 matlabshared.satellitescenario.Viewer]
                  AutoShow: 1
    
    

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

    衛星シナリオ オブジェクトを作成し、AutoSimulate プロパティを false に設定して、衛星シナリオの手動シミュレーションを有効にします。

    sc = satelliteScenario('AutoSimulate',false);

    シナリオに GPS 衛星コンステレーションを追加します。

    sat = satellite(sc,"gpsAlmanac.txt");

    advance 関数を使用してシナリオをシミュレートします。

    while advance(sc)
    end

    衛星の位置履歴を取得します。

    p = states(sat);

    AutoSimulatefalse なので、地上局を追加する前にシナリオを再起動してください。

    restart(sc);

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

    gs = groundStation(sc);

    各衛星と地上局間のアクセス解析を追加します。

    ac = access(sat,gs);

    シナリオをシミュレートし、アクセス間隔を決定します。

    while advance(sc)
    end
    intvls1 = accessIntervals(ac)
    intvls1=35×8 table
         Source           Target           IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        ________    ___________________    ______________    ____________________    ____________________    ________    __________    ________
    
        "PRN:1"     "Ground station 32"          1           11-Jan-2020 23:20:25    12-Jan-2020 05:15:47      21322        NaN          NaN   
        "PRN:2"     "Ground station 32"          1           12-Jan-2020 04:03:16    12-Jan-2020 07:48:06      13490        NaN          NaN   
        "PRN:3"     "Ground station 32"          1           11-Jan-2020 19:50:06    11-Jan-2020 21:38:53     6527.3        NaN          NaN   
        "PRN:3"     "Ground station 32"          2           12-Jan-2020 01:52:43    12-Jan-2020 06:42:49      17406        NaN          NaN   
        "PRN:4"     "Ground station 32"          1           11-Jan-2020 19:50:06    12-Jan-2020 00:11:11      15665        NaN          NaN   
        "PRN:4"     "Ground station 32"          2           12-Jan-2020 04:54:02    12-Jan-2020 07:48:06      10444        NaN          NaN   
        "PRN:5"     "Ground station 32"          1           12-Jan-2020 05:52:03    12-Jan-2020 07:48:06     6962.4        NaN          NaN   
        "PRN:6"     "Ground station 32"          1           12-Jan-2020 02:43:29    12-Jan-2020 07:48:06      18276        NaN          NaN   
        "PRN:7"     "Ground station 32"          1           11-Jan-2020 21:09:52    12-Jan-2020 03:27:00      22628        NaN          NaN   
        "PRN:8"     "Ground station 32"          1           11-Jan-2020 20:33:36    12-Jan-2020 03:19:45      24369        NaN          NaN   
        "PRN:9"     "Ground station 32"          1           11-Jan-2020 19:50:06    12-Jan-2020 00:47:27      17841        NaN          NaN   
        "PRN:9"     "Ground station 32"          2           12-Jan-2020 05:08:32    12-Jan-2020 07:48:06     9573.3        NaN          NaN   
        "PRN:10"    "Ground station 32"          1           12-Jan-2020 00:32:56    12-Jan-2020 01:59:58     5221.8        NaN          NaN   
        "PRN:11"    "Ground station 32"          1           11-Jan-2020 22:15:09    12-Jan-2020 04:39:32      23063        NaN          NaN   
        "PRN:12"    "Ground station 32"          1           12-Jan-2020 04:32:16    12-Jan-2020 07:48:06      11749        NaN          NaN   
        "PRN:13"    "Ground station 32"          1           12-Jan-2020 00:03:56    12-Jan-2020 02:50:44      10008        NaN          NaN   
          ⋮
    
    

    シミュレーション結果を可視化します。

    v = satelliteScenarioViewer(sc,'ShowDetails',false);
    play(sc);

    AutoSimulate プロパティを true に設定した場合、アクセス間隔が同じであることを確認します。

    sc.AutoSimulate = true;
    intvls2 = accessIntervals(ac)
    intvls2=35×8 table
         Source           Target           IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
        ________    ___________________    ______________    ____________________    ____________________    ________    __________    ________
    
        "PRN:1"     "Ground station 32"          1           11-Jan-2020 23:20:25    12-Jan-2020 05:15:47      21322        NaN          NaN   
        "PRN:2"     "Ground station 32"          1           12-Jan-2020 04:03:16    12-Jan-2020 07:48:06      13490        NaN          NaN   
        "PRN:3"     "Ground station 32"          1           11-Jan-2020 19:50:06    11-Jan-2020 21:38:53     6527.3        NaN          NaN   
        "PRN:3"     "Ground station 32"          2           12-Jan-2020 01:52:43    12-Jan-2020 06:42:49      17406        NaN          NaN   
        "PRN:4"     "Ground station 32"          1           11-Jan-2020 19:50:06    12-Jan-2020 00:11:11      15665        NaN          NaN   
        "PRN:4"     "Ground station 32"          2           12-Jan-2020 04:54:02    12-Jan-2020 07:48:06      10444        NaN          NaN   
        "PRN:5"     "Ground station 32"          1           12-Jan-2020 05:52:03    12-Jan-2020 07:48:06     6962.4        NaN          NaN   
        "PRN:6"     "Ground station 32"          1           12-Jan-2020 02:43:29    12-Jan-2020 07:48:06      18276        NaN          NaN   
        "PRN:7"     "Ground station 32"          1           11-Jan-2020 21:09:52    12-Jan-2020 03:27:00      22628        NaN          NaN   
        "PRN:8"     "Ground station 32"          1           11-Jan-2020 20:33:36    12-Jan-2020 03:19:45      24369        NaN          NaN   
        "PRN:9"     "Ground station 32"          1           11-Jan-2020 19:50:06    12-Jan-2020 00:47:27      17841        NaN          NaN   
        "PRN:9"     "Ground station 32"          2           12-Jan-2020 05:08:32    12-Jan-2020 07:48:06     9573.3        NaN          NaN   
        "PRN:10"    "Ground station 32"          1           12-Jan-2020 00:32:56    12-Jan-2020 01:59:58     5221.8        NaN          NaN   
        "PRN:11"    "Ground station 32"          1           11-Jan-2020 22:15:09    12-Jan-2020 04:39:32      23063        NaN          NaN   
        "PRN:12"    "Ground station 32"          1           12-Jan-2020 04:32:16    12-Jan-2020 07:48:06      11749        NaN          NaN   
        "PRN:13"    "Ground station 32"          1           12-Jan-2020 00:03:56    12-Jan-2020 02:50:44      10008        NaN          NaN   
          ⋮
    
    

    シナリオを可視化します。

    play(sc);

    ヒント

    • 衛星シナリオを保存するときは、シナリオ オブジェクトを含むワークスペース全体を保存するか、シナリオ オブジェクト自体を保存します。

    バージョン履歴

    R2021a で導入

    すべて展開する