주요 콘텐츠

단일 시뮬레이션 출력

시뮬레이션 결과를 단일 Simulink.SimulationOutput 객체로 반환하는 옵션

모델 구성 창: 데이터 가져오기/내보내기

설명

단일 시뮬레이션 출력 파라미터는 모든 시뮬레이션 결과가 포함된 하나의 Simulink.SimulationOutput 객체를 반환하는 옵션을 제공합니다. 단일 출력 형식을 사용하면 여러 시뮬레이션의 결과를 더 쉽게 처리할 수 있고 병렬 시뮬레이션과 배치 시뮬레이션을 위한 더 나은 지원을 제공할 수 있습니다. 단일 시뮬레이션 출력 파라미터를 활성화하면 시뮬레이션을 실행하는 방법에 관계없이 동일한 코드를 사용하여 결과를 처리할 수 있습니다.

단일 시뮬레이션 출력을 비활성화한 경우에도 모델을 시뮬레이션하면 다음과 같은 상황에서 하나 이상의 Simulink.SimulationOutput 객체가 생성됩니다.

  • 하나 이상의 Simulink.SimulationInput 객체를 사용하여 프로그래밍 방식으로 모델을 시뮬레이션합니다.

    sim 함수, parsim 함수, batchsim 함수를 사용하거나 Simulation 객체를 사용하여 시뮬레이션을 실행하는 경우 SimulationInput 객체를 사용하여 시뮬레이션을 구성할 수 있습니다.

  • 결과를 단일 시뮬레이션 출력으로 반환하는 sim 함수 구문을 사용하여 모델을 시뮬레이션합니다.

    자세한 내용은 sim 항목을 참조하십시오.

  • 다중 시뮬레이션 패널을 사용하여 시뮬레이션 세트를 실행합니다.

설정

on (디폴트 값) | off
on

작업 공간에 기록된 모든 시뮬레이션 데이터가 단일 Simulink.SimulationOutput 객체로 반환됩니다. 기본적으로 SimulationOutput 객체를 저장하는 변수의 이름은 out입니다. 다른 변수 이름을 사용하려면 텍스트 상자에 유효한 MATLAB® 변수 이름을 지정하십시오.

프로그래밍 방식으로 모델을 시뮬레이션할 때, 텍스트 상자에 지정한 이름이 SimulationOutput 객체를 저장하는 변수의 이름을 결정하지는 않습니다. SimulationOutput 객체는 사용자가 반환 인수로 할당한 변수에 저장됩니다. 예를 들어 다음 시뮬레이션의 경우 SimulationOutput 객체 변수 이름은 simout입니다.

simout = sim(simin);

off

기록된 시뮬레이션 결과가 모델에 구성된 기록 옵션과 시뮬레이션을 실행하는 방법에 따라 하나 이상의 변수로 반환됩니다.

다른 인수를 지정하지 않고 sim 함수의 모델 이름 구문을 사용하여 모델을 시뮬레이션하면 시뮬레이션은 시간 벡터만 반환합니다. 시뮬레이션이 전체 결과를 반환하도록 하려면 ReturnWorkspaceOutputs 이름-값 인수를 지정하여 시뮬레이션의 단일 시뮬레이션 출력 파라미터를 활성화하십시오.

out = sim(mdl,ReturnWorkspaceOutputs="on");

여러 인수를 반환하는 sim 함수 구문은 권장되지 않습니다. 자세한 내용은 여려 출력 인수를 반환하는 구문은 권장되지 않음 항목을 참조하십시오.

예제

모두 확장

이 예제의 모델은 다양한 기록 방법을 사용하여 데이터를 기록합니다.

  • Sine Wave 블록의 출력은 신호 기록을 사용하여 기록됩니다.

  • Gain 블록의 출력은 To Workspace 블록을 사용하여 기록됩니다.

  • Chirp Signal 블록의 출력은 작업 공간에 데이터를 기록하도록 구성된 Scope 블록에 연결됩니다.

  • Gain 블록, Chirp Signal 블록, Square Wave Generator 블록의 출력은 Record 블록을 사용하여 기록됩니다.

  • Square Wave Generator 블록의 출력은 출력 기록을 사용하여 기록됩니다.

이 모델은 시간 데이터를 기록하도록 구성되어 있기도 합니다.

모델을 엽니다.

mdl = "LoggingBlocks_NotSSO";
open_system(mdl)

LoggingBlocks_NotSSO model

단일 시뮬레이션 출력이 아닌 방식으로 반환된 데이터에 액세스하기

모델 LoggingBlocks_NotSSO단일 시뮬레이션 출력 파라미터가 비활성화된 상태로 저장됩니다. 일부 워크플로에서는 모델을 시뮬레이션하면 시뮬레이션 결과를 단일 Simulink.SimulationOutput 객체로 반환하지 않습니다.

모델을 시뮬레이션하기 위해 실행을 클릭합니다. 또는 명령 창에 start 시뮬레이션 명령을 내립니다.

set_param(mdl,SimulationCommand="start")

시뮬레이션이 단일 출력으로 결과를 반환하지 않는 경우에는 각 기록 방법 및 기록 블록의 데이터가 작업 공간에 개별 변수로 저장됩니다. 예를 들어, 최상위 출력 포트에 대해 기록된 데이터는 디폴트 변수 이름 yout로 작업 공간에 저장됩니다.

The workspace panel contains these variables: logsout, mdl, recordout, ScopeData, simout, tout, and yout.

기록 방법과 연결된 변수의 이름을 사용하면, 기록된 데이터에 프로그래밍 방식으로 액세스할 수 있습니다. 예를 들어, Record 블록을 사용하여 기록된 데이터에 액세스하려면 명령 창에 recordout를 입력합니다.

The Command Window displays the contents of the variable named recordout. The variable contains a Dataset object that contains three signals logged using the Record block: Big Sine, Chirp, and Square Wave.

단일 시뮬레이션 출력 파라미터가 비활성화되어 있기 때문에, 이름-값 인수를 지정하지 않고 sim 함수의 모델-이름 구문을 사용하여 프로그래밍 방식으로 모델을 시뮬레이션하면, 시뮬레이션은 시간 벡터만 반환합니다.

out = sim(mdl)
out = 51×1

         0
    0.2000
    0.4000
    0.6000
    0.8000
    1.0000
    1.2000
    1.4000
    1.6000
    1.8000
    2.0000
    2.2000
    2.4000
    2.6000
    2.8000
      ⋮

단일 시뮬레이션 출력으로 반환된 데이터에 액세스하기

시뮬레이션 결과를 하나의 출력값으로 반환하려면 구성 파라미터 대화 상자에서 단일 시뮬레이션 출력을 선택합니다.

  1. Simulink 툴스트립의 모델링 탭에서 모델 설정을 클릭합니다.

  2. 구성 파라미터 대화 상자에서 데이터 가져오기/내보내기 창을 선택합니다.

  3. 단일 시뮬레이션 출력을 선택합니다.

  4. 확인을 클릭합니다.

또는 set_param 함수를 사용하여 프로그래밍 방식으로 단일 시뮬레이션 출력 파라미터를 활성화합니다.

set_param(mdl,ReturnWorkspaceOutputs="on")

단일 시뮬레이션 출력 파라미터를 활성화하면 모든 시뮬레이션은 작업 공간에 기록된 데이터를 디폴트 변수 이름 out을 가진 단일 Simulink.SimulationOutput 객체로 반환합니다.

단일 SimulationOutput 객체로 시뮬레이션 데이터를 반환하는 것이 작업 공간에 미치는 영향을 보다 잘 파악하기 위해 작업 공간에서 이전 시뮬레이션의 기록 데이터를 포함하고 있는 변수를 지웁니다.

clear logsout recordout ScopeData simout tout yout

모델을 다시 시뮬레이션합니다. 실행을 클릭하거나 sim 함수를 사용하여 프로그래밍 방식으로 모델을 시뮬레이션합니다.

out = sim(mdl);

이제 out이라는 이름의 단일 변수가 작업 공간에 기록된 모든 시뮬레이션 데이터를 포함합니다.

The Workspace panel contains the variables mdl and out.

Simulink.SimulationOutput 객체인 out에는 시뮬레이션에서 사용된 각 기록 방법 및 기록 블록에 대한 속성이 포함됩니다.

out
out = 
  Simulink.SimulationOutput:

              ScopeData: [1x1 Simulink.SimulationData.Dataset] 
                logsout: [1x1 Simulink.SimulationData.Dataset] 
              recordout: [1x1 Simulink.SimulationData.Dataset] 
                 simout: [1x1 timeseries] 
                   tout: [51x1 double] 
                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

점 표기법을 사용하여 기록된 데이터에 액세스할 수 있습니다. 예를 들어, Record 블록을 사용하여 기록된 데이터에 액세스해 보겠습니다.

out.recordout
ans = 
Simulink.SimulationData.Dataset 'Run 2: LoggingBlocks_NotSSO' with 3 elements

                         Name         PropagatedName  BlockPath                   
                         ___________  ______________  ___________________________ 
    1  [1x1 Signal]      Big Sine     Big Sine        LoggingBlocks_NotSSO/Record
    2  [1x1 Signal]      Chirp        Chirp           LoggingBlocks_NotSSO/Record
    3  [1x1 Signal]      Square Wave  Square Wave     LoggingBlocks_NotSSO/Record

  - Use braces { } to access, modify, or add elements using index.

Dataset 객체의 요소에 액세스하려면 중괄호를 사용합니다. 예를 들어, 인덱스 1을 사용하여 신호 Big Sine에 액세스해 보겠습니다.

out.recordout{1}
ans = 
  Simulink.SimulationData.Signal
  Package: Simulink.SimulationData

  Properties:
              Name: 'Big Sine'
    PropagatedName: 'Big Sine'
         BlockPath: [1×1 Simulink.SimulationData.BlockPath]
          PortType: 'outport'
         PortIndex: 1
            Values: [1×1 timeseries]


  Methods, Superclasses

신호 데이터는 Signal 객체의 Values 속성에 timeseries 객체로 저장됩니다.

out.recordout{1}.Values
  timeseries

  Common Properties:
            Name: 'Big Sine'
            Time: [51x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [51x1 double]
        DataInfo: [1x1 tsdata.datametadata]

  More properties, Methods

시간 값은 timeseries 객체의 Time 속성에 있습니다. 신호 값은 Data 속성에 있습니다.

out.recordout{1}.Values.Data
ans = 51×1

         0
    0.3973
    0.7788
    1.1293
    1.4347
    1.6829
    1.8641
    1.9709
    1.9991
    1.9477
    1.8186
    1.6170
    1.3509
    1.0310
    0.6700
      ⋮

  • To File 블록을 사용하여 데이터를 기록하는 경우, 데이터는 지정된 파일에 기록되며 단일 Simulink.SimulationOutput 객체에 나타나지 않습니다.

  • 파일에 데이터 기록을 선택하면 파일에 기록되는 데이터는 단일 Simulink.SimulationOutput 객체에 포함되지 않습니다.

  • 빠른 재시작을 활성화하면 단일 시뮬레이션 출력 파라미터가 활성화됩니다.

  • Simulink.SimulationOutput 객체의 who 함수를 사용하여 객체의 변수 목록을 확인할 수 있습니다.

  • 기록 구간 파라미터를 사용하려면 단일 시뮬레이션 출력을 선택해야 합니다.

프로그래밍 방식의 사용법

파라미터: ReturnWorkspaceOutputs
값: "on" | "off"
디폴트 값: "on"
파라미터: ReturnWorkspaceOutputsName
유형: string형 | 문자형 벡터
값: 유효한 MATLAB 변수 이름
디폴트 값: "out"

버전 내역

R2009b에 개발됨