주요 콘텐츠

satelliteScenario

위성 시나리오

R2021a 이후

    설명

    satelliteScenario 객체는 위성과 지상국을 포함하여 이들 간의 상호 작용으로 구성된 3차원 환경을 나타냅니다. 이 객체를 사용하면 위성군을 모델링하고, 지상국 네트워크를 모델링하고, 위성과 지상국 간의 액세스 분석을 수행하고, 결과를 시각화할 수 있습니다.

    생성

    설명

    sc = satelliteScenario는 디폴트 satellite scenario 객체를 만듭니다.

    예제

    sc = satelliteScenario(startTime,stopTime,sampleTime)StartTime 속성, StopTime 속성, SampleTime 속성을 각각 startTime, stopTime, sampleTime의 값으로 설정합니다.

    예제

    sc = satelliteScenario(___,'AutoSimulate',false)AutoSimulate 속성을 지정된 값으로 설정합니다.

    예제

    속성

    모두 확장

    위성 시나리오 시뮬레이션의 시작 시간(UTC)으로, datetime 스칼라로 지정됩니다.

    디폴트 StartTime은 시나리오에 위성이 없는 경우 현재 UTC 시간입니다. 그렇지 않으면 다음 중 가장 빠른 값입니다.

    • 현재 UTC 시간.

    • TLE 파일에 정의된 Epoch.

    • SEM 파일에 정의된 GPS 주 숫자 값에서 추론한 참조 시간.

    • GPS와 갈릴레오에 대한 RINEX 내비게이션 데이터에서 추론한 가장 빠른 시간.

    • 타임테이블과 시계열의 초기 시간.

    StartTime 속성, StopTime 속성 또는 SampleTime 속성이 명시적으로 지정된 경우 StartTime 속성은 위성이 더 추가되어도 더 이상 업데이트되지 않습니다.

    AutoSimulate 속성이 false인 경우 SimulationStatusNotStarted인 경우에만 StartTime 속성을 수정할 수 있습니다. restart 함수를 사용하여 SimulationStatusNotStarted로 재설정할 수 있지만, 이렇게 하면 시뮬레이션 데이터가 지워집니다.

    데이터형: datetime

    위성 시나리오 시뮬레이션의 중지 시간(UTC)으로, datetime 스칼라로 지정됩니다. 디폴트 StopTimeStartTime에 시나리오의 위성 중 가장 긴 궤도 주기를 더한 값입니다. 시나리오에 위성이 추가되지 않은 경우 디폴트 StopTime은 디폴트 StartTime과 동일합니다. StartTime 속성, StopTime 속성 또는 SampleTime 속성이 명시적으로 지정된 경우 StopTime 속성은 위성이 더 추가되어도 더 이상 업데이트되지 않습니다.

    AutoSimulate 속성이 false인 경우 SimulationStatusNotStarted인 경우에만 StopTime 속성을 수정할 수 있습니다. restart 함수를 사용하여 SimulationStatusNotStarted로 재설정할 수 있지만, 이렇게 하면 시뮬레이션 데이터가 지워집니다.

    데이터형: datetime

    위성 시나리오 시뮬레이션의 샘플 시간으로, 실수 값 스칼라로 지정됩니다. 디폴트 샘플 시간은 StartTimeStopTime 사이에 100개의 샘플이 있도록 설정됩니다. 시나리오에 위성이 추가되지 않은 경우처럼 디폴트 StartTimeStopTime이 동일한 경우, 디폴트 SampleTime은 60초입니다. StartTime 속성, StopTime 속성 또는 SampleTime 속성이 명시적으로 지정된 경우 SampleTime 속성은 위성이 더 추가되어도 더 이상 업데이트되지 않습니다.

    AutoSimulate 속성이 false인 경우 SimulationStatusNotStarted인 경우에만 SampleTime 속성을 수정할 수 있습니다. restart 함수를 사용하여 SimulationStatusNotStarted로 재설정할 수 있지만, 이렇게 하면 시뮬레이션 데이터가 지워집니다.

    데이터형: double

    읽기 전용 속성입니다.

    위성 시나리오 시뮬레이션의 현재 시뮬레이션 시간(UTC)으로, datetime 스칼라로 지정됩니다. StartTime으로 시간을 재설정하려면 restart 함수를 호출하십시오.

    종속성

    이 속성을 활성화하려면 AutoSimulatefalse로 설정하십시오.

    데이터형: datetime

    읽기 전용 속성입니다.

    위성 시나리오의 시뮬레이션 상태로, 다음 중 하나로 지정됩니다.

    • 'NotStarted'advance 함수에 대한 호출이 이루어지지 않음

    • 'InProgress' — 시뮬레이션 실행 중

    • 'Completed' — 시뮬레이션 완료됨

    시뮬레이션은 advance 함수가 처음 호출될 때 시작됩니다. 시뮬레이션은 다음 중 하나가 발생할 때까지 계속됩니다.

    • 시뮬레이션이 StopTime에 도달합니다.

    • 위성 시나리오에 새 에셋이 추가됩니다.

    • 에셋(위성, 지상국, 짐벌, 원뿔형 센서 등)의 특정 속성이 수정되었습니다(예: MountingLocation 또는 MountingAngles). 속성을 참조하여 수정 시 시뮬레이션이 중지되는지 확인하십시오.

    시뮬레이션을 다시 시작하고, 시뮬레이션 데이터를 지우고, SimulationStatusNotStarted로 설정하려면 restart 함수를 호출하십시오.

    종속성

    이 속성을 활성화하려면 AutoSimulatefalse로 설정하십시오.

    위성 시나리오를 자동으로 시뮬레이션하는 옵션으로, 다음 숫자 또는 논리값 중 하나로 지정됩니다.

    • 1(true) — statesaccessIntervals와 같은 분석 함수를 호출할 때마다 위성 시나리오를 자동으로 시뮬레이션합니다.

    • 0(false) — advance 함수를 호출해야만 위성 시나리오를 시뮬레이션합니다.

    AutoSimulate 값을 변경하면 이전 시뮬레이션 데이터가 지워집니다.

    데이터형: double

    시나리오의 위성으로, Satellite 객체로 구성된 행 벡터로 반환됩니다. Satellite 객체를 만들어 위성 시나리오에 추가하려면 satellite 객체 함수를 사용하십시오. 시나리오에 위성을 추가한 후에는 이 속성은 읽기 전용입니다.

    시나리오의 플랫폼으로, Platform 객체로 구성된 행 벡터로 반환됩니다. Platform 객체를 만들어 위성 시나리오에 추가하려면 platform 객체 함수를 사용하십시오. 시나리오에 플랫폼을 추가한 후에는 이 속성은 읽기 전용입니다.

    시나리오의 지상국으로, GroundStation 객체로 구성된 행 벡터로 반환됩니다. GroundStation 객체를 만들어 위성 시나리오에 추가하려면 groundStation 객체 함수를 사용하십시오. 시나리오에 지상국을 추가한 후에는 이 속성은 읽기 전용입니다.

    자동으로 그래픽을 표시하는 옵션으로, 논리값 1(true) 또는 0(false)으로 지정됩니다. 이 속성은 시나리오에 추가된 엔터티가 열려 있는 satelliteScenarioViewer 창에 자동으로 표시되는지 여부를 결정합니다.

    위성 시나리오가 사용하는 중심체 옵션으로, 스칼라 Aero.satellitescenario.CentralBodyOptions (Aerospace Toolbox) 객체로 지정됩니다. 이 속성은 읽기 전용입니다.

    객체 함수

    groundStationAdd ground station to satellite scenario
    satelliteAdd satellites to satellite scenario
    satelliteScenarioViewer위성 시나리오에 대한 뷰어 만들기
    platformAdd platforms to satellite scenario
    advanceMove simulation forward by one sample time
    restartRestart simulation from beginning
    playPlay satellite scenario simulation results on viewer
    centralBodyOptions (Aerospace Toolbox)Modify central body options used in satellite scenario

    예제

    모두 축소

    현재 표준 시간대의 시작 시간을 어제로 지정합니다. 시뮬레이션은 반나절 동안 지속됩니다.

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

    샘플 시간을 60초로 지정합니다. 시작 시간, 중지 시간, 샘플 시간을 지정하여 satellite scenario 객체를 만듭니다.

    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime)
    sc = 
      satelliteScenario with properties:
    
                 StartTime: 12-Jul-2025 04:00:00
                  StopTime: 12-Jul-2025 16: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:00 UTC로 설정하고 종료 시간을 하루 뒤로 설정한 위성 시나리오를 만듭니다. 시뮬레이션 샘플 시간을 60초로 지정합니다.

    startTime = datetime(2020,6,02,8,23,0);
    stopTime = startTime + days(1);
    sampleTime = 60;
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    케플러 요소를 사용하여 시나리오에 두 개의 위성을 추가합니다.

    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
    
    

    궤도에 있는 위성과 지상 궤적을 한 시간 동안 봅니다.

    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)

    satellite scenario 객체를 만들고 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에 개발됨

    모두 확장

    R2024b: 위성 시나리오: Revisiting Spacetrack Report #3으로 SGP4/SDP4에 부합하도록 수정됨