Simulink.SimulationOutput
시뮬레이션 출력과 메타데이터에 액세스하기
설명
Simulink.SimulationOutput 객체는 시뮬레이션과 연결된 모든 데이터에 단일 액세스 지점을 제공합니다. 객체의 속성에는 시뮬레이션에서 기록된 모든 데이터와 모델 구성 정보, 시뮬레이션 시간 설정, 시뮬레이션 중에 발생한 오류나 경고와 같은 시뮬레이션 메타데이터 전부가 포함됩니다.
시뮬레이션에 액세스하면 다른 작업 공간 데이터에서 시뮬레이션 결과를 구분하는 단일 객체가 생성되고 이 객체를 통해 여러 시뮬레이션의 데이터를 더 쉽게 관리할 수 있습니다. Simulink.SimulationOutput 객체는 시뮬레이션 중에 생성된 각 기록 변수마다 하나의 속성을 가집니다. 예를 들어, 신호 기록을 사용하여 데이터를 기록하는 경우 SimulationOutput 객체는 디폴트 이름이 logsout인 속성을 가지며 그 속성에는 기록된 신호 데이터가 저장됩니다. 시뮬레이션 결과가 단일 SimulationOutput 객체로 반환될 때 기록된 데이터를 액세스하려면 점 표기법을 사용하십시오.
out.logsout
생성
모델을 시뮬레이션하면 다음과 같은 상황에서 하나 이상의 Simulink.SimulationOutput 객체가 생성됩니다.
단일 시뮬레이션 출력 파라미터를 활성화합니다.
기본적으로 모델을 생성할 때 단일 시뮬레이션 출력 파라미터가 활성화되어 있습니다. 구성 파라미터 대화 상자를 사용하여 파라미터를 활성화할 수 있습니다. 모델링 탭의 설정 아래에서 모델 설정을 클릭합니다. 그런 다음, 구성 파라미터 대화 상자에서 데이터 가져오기/내보내기를 선택하고 단일 시뮬레이션 출력을 선택합니다.
하나 이상의
Simulink.SimulationInput객체를 사용하여 프로그래밍 방식으로 모델을 시뮬레이션합니다.sim함수,parsim함수,batchsim함수를 사용하거나Simulation객체를 사용하여 시뮬레이션을 실행하는 경우SimulationInput객체를 사용하여 시뮬레이션을 구성할 수 있습니다.결과를 단일 시뮬레이션 출력으로 반환하는
sim함수 구문을 사용하여 모델을 시뮬레이션합니다.자세한 내용은
sim항목을 참조하십시오.다중 시뮬레이션 창을 사용하여 시뮬레이션 세트를 실행합니다.
속성
기록된 데이터 속성
Simulink.SimulationOutput 객체에는 시뮬레이션에서 생성된 각 기록 변수의 속성이 포함됩니다. 속성의 이름은 기록 변수에 지정한 이름과 일치합니다. 예를 들어, 출력 데이터를 기록하는데 디폴트 변수 이름 yout을 사용하는 경우 기록된 출력 데이터가 Simulink.SimulationOutput 객체의 yout 속성에 포함됩니다.
구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창을 사용하거나 To Workspace 블록과 같은 기록 블록을 모델에 추가하여 기록할 데이터와 변수 이름을 구성합니다. 다음 표에는 일반적으로 사용되는 여러 기록 기법의 디폴트 속성 이름이 요약되어 있습니다.
| 디폴트 속성 이름 | 기록 소스 | 값 |
|---|---|---|
tout | 시간 기록 | 저장 형식 모델 구성 파라미터를 사용하여 지정한 형식. |
yout | 출력 기록 | 저장 형식 모델 구성 파라미터를 사용하여 지정한 형식. |
xout | 상태 기록 | 저장 형식 모델 구성 파라미터를 사용하여 지정한 형식. |
xFinal | 최종 상태 기록 | 최종 동작점 저장을 선택하면 최종 상태는 최종 동작점 저장을 선택하지 않으면 최종 상태는 저장 형식 모델 구성 파라미터의 값에 따라 저장됩니다. 자세한 내용은 Save Block States and Simulation Operating Points 항목을 참조하십시오. |
logsout | 신호 기록 | Simulink.SimulationData.Dataset 객체. |
dsmout | 데이터 저장소 기록 | Simulink.SimulationData.Dataset 객체. |
simout | To Workspace 블록 | 저장 형식 블록 파라미터를 사용하여 지정한 형식. |
recordout | Record 블록 | Simulink.SimulationData.Dataset 객체. |
ScopeData | Scope 블록 | 저장 형식 블록 파라미터에서 지정한 형식. |
To File 블록, Record 블록 또는 데이터를 파일에 기록 파라미터를 사용하여 파일에 기록하는 데이터는 Simulink.SimulationOutput 객체의 속성으로 캡처되지 않습니다.
사용자 지정 속성
Simulink.SimulationOutput 객체에 속성을 추가하여 추가 데이터 또는 메타데이터를 저장할 수 있습니다. 예를 들어, parsim 또는 batchsim을 사용하여 병렬 시뮬레이션을 실행하는 경우 Simulink.SimulationOutput 객체의 속성을 정의하여 병렬 워커에서 클라이언트로 데이터를 전송할 수 있습니다.
Simulink.SimulationOutput 객체에 속성을 추가하는 것은 구조체에 필드를 정의하는 것과 비슷합니다. 예를 들어, 다음 코드는 값이 1인 NewProperty 속성을 Simulink.SimulationOutput 객체인 simout에 추가합니다.
simout.NewProperty = 1;
시뮬레이션 메타데이터 속성
읽기 전용 속성입니다.
시뮬레이션 정보로, Simulink.SimulationMetadata 객체로 반환됩니다. SimulationMetadata 객체에는 다음이 포함됩니다.
모델 버전과 모델 생성에 사용되는 소프트웨어 버전 등 모델에 관한 자세한 정보
시뮬레이션 도중 발생하는 경고 및 오류
시뮬레이션 초기화와 실행 단계에 드는 시간 등의 시간 설정 정보
읽기 전용 속성입니다.
시뮬레이션 오류 메시지로, 문자형 벡터로 반환됩니다. 시뮬레이션이 오류 없이 실행되면 ErrorMessage 속성은 비어 있습니다.
팁
sim 함수를 사용하여 시뮬레이션을 실행하는 경우 ErrorMessage 속성에 오류 메시지가 캡처되도록 CaptureErrors 이름-값 인수를 "on"으로 지정하십시오. 기본적으로 오류는 MATLAB® 명령 창에 보고되고 Simulink.SimulationOutput 객체에 캡처되지 않습니다.
객체 함수
find | Simulink.SimulationOutput 객체의 속성 쿼리 및 액세스 |
get | Simulink.SimulationOutput 객체의 시뮬레이션 결과에 액세스하기 |
plot | Plot data in Simulation Data Inspector |
removeProperty | Remove property from Simulink.SimulationOutput
object |
setUserData | Add data to metadata in Simulink.SimulationOutput
object |
setUserString | Add string to metadata in Simulink.SimulationOutput
object |
who | Get names of editable properties on Simulink.SimulationOutput
object |
예제
이 예제의 모델은 다양한 기록 방법을 사용하여 데이터를 기록합니다.
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는 단일 시뮬레이션 출력 파라미터가 비활성화된 상태로 저장됩니다. 일부 워크플로에서는 모델을 시뮬레이션하면 시뮬레이션 결과를 단일 Simulink.SimulationOutput 객체로 반환하지 않습니다.
모델을 시뮬레이션하기 위해 실행을 클릭합니다. 또는 명령 창에 start 시뮬레이션 명령을 내립니다.
set_param(mdl,SimulationCommand="start")
시뮬레이션이 단일 출력으로 결과를 반환하지 않는 경우에는 각 기록 방법 및 기록 블록의 데이터가 작업 공간에 개별 변수로 저장됩니다. 예를 들어, 최상위 출력 포트에 대해 기록된 데이터는 디폴트 변수 이름 yout로 작업 공간에 저장됩니다.

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

단일 시뮬레이션 출력 파라미터가 비활성화되어 있기 때문에, 이름-값 인수를 지정하지 않고 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
⋮
단일 시뮬레이션 출력으로 반환된 데이터에 액세스하기
시뮬레이션 결과를 하나의 출력값으로 반환하려면 구성 파라미터 대화 상자에서 단일 시뮬레이션 출력을 선택합니다.
Simulink 툴스트립의 모델링 탭에서 모델 설정을 클릭합니다.
구성 파라미터 대화 상자에서 데이터 가져오기/내보내기 창을 선택합니다.
단일 시뮬레이션 출력을 선택합니다.
확인을 클릭합니다.
또는 set_param 함수를 사용하여 프로그래밍 방식으로 단일 시뮬레이션 출력 파라미터를 활성화합니다.
set_param(mdl,ReturnWorkspaceOutputs="on")단일 시뮬레이션 출력 파라미터를 활성화하면 모든 시뮬레이션은 작업 공간에 기록된 데이터를 디폴트 변수 이름 out을 가진 단일 Simulink.SimulationOutput 객체로 반환합니다.
단일 SimulationOutput 객체로 시뮬레이션 데이터를 반환하는 것이 작업 공간에 미치는 영향을 보다 잘 파악하기 위해 작업 공간에서 이전 시뮬레이션의 기록 데이터를 포함하고 있는 변수를 지웁니다.
clear logsout recordout ScopeData simout tout yout
모델을 다시 시뮬레이션합니다. 실행을 클릭하거나 sim 함수를 사용하여 프로그래밍 방식으로 모델을 시뮬레이션합니다.
out = sim(mdl);
이제 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.Dataans = 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
⋮
시뮬레이션 결과를 단일 객체로 반환하는 방식으로 모델을 시뮬레이션하는 경우, Simulink.SimulationOutput 객체를 사용하여 모든 기록된 데이터와 시뮬레이션 메타데이터에 액세스합니다.
이 예제의 모델은 단일 시뮬레이션 출력 파라미터가 활성화되어 있고 여러 다양한 기록 방법을 사용하여 데이터를 기록합니다.
Sine Wave 블록의 출력은 신호 기록을 사용하여 기록됩니다.
Gain 블록의 출력은 To Workspace 블록을 사용하여 기록됩니다.
Gain 블록, Chirp Signal 블록, Square Wave Generator 블록의 출력은 Record 블록을 사용하여 기록됩니다.
Square Wave Generator 블록의 출력은 출력 기록을 사용하여 기록됩니다.
이 모델은 시간 데이터를 기록하도록 구성되어 있기도 합니다.
모델을 엽니다.
mdl = "LoggingBlocks";
open_system(mdl)
Simulink.SimulationInput 객체를 만들어 모델의 시뮬레이션을 구성합니다. setModelParameter 함수를 사용하여 StopTime 파라미터를 20으로 설정합니다.
simin = Simulink.SimulationInput(mdl);
simin = setModelParameter(simin,StopTime="20");모델을 시뮬레이션합니다. sim 함수는 시뮬레이션에서 기록된 모든 데이터가 포함된 Simulink.SimulationOutput 객체를 결과로 반환합니다. 각 블록의 데이터와 각 기록 유형은 속성으로 저장되며 이 속성은 블록이나 모델에 지정된 기록 변수 이름과 일치합니다.
out = sim(simin);
점 표기법, get 함수 또는 find 함수를 사용하여 기록된 데이터에 액세스할 수 있습니다.
점 표기법을 사용하여 To Workspace 블록을 통해 기록된 신호 Big Sine에 액세스합니다.
simout = out.simout
timeseries
Common Properties:
Name: 'Big Sine'
Time: [51x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [51x1 double]
DataInfo: [1x1 tsdata.datametadata]
More properties, Methods
get 함수를 사용하여 신호 기록을 통해 기록된 신호 Sine에 액세스합니다.
logsout = get(out,"logsout")logsout =
Simulink.SimulationData.Dataset 'logsout' with 1 element
Name BlockPath
____ _______________________
1 [1x1 Signal] Sine LoggingBlocks/Sine Wave
- Use braces { } to access, modify, or add elements using index.
find 함수를 사용하여 출력 기록을 통해 기록된 신호 Square Wave에 액세스합니다.
yout = find(out,"yout")yout =
Simulink.SimulationData.Dataset 'yout' with 1 element
Name BlockPath
___________ _____________________
1 [1x1 Signal] Square Wave LoggingBlocks/Outport
- Use braces { } to access, modify, or add elements using index.
SimulationOutput 객체의 SimulationMetadata 속성에서 시뮬레이션 메타데이터에 액세스합니다.
simmetadata = out.SimulationMetadata
simmetadata =
SimulationMetadata with properties:
ModelInfo: [1×1 struct]
TimingInfo: [1×1 struct]
ExecutionInfo: [1×1 struct]
UserString: ''
UserData: []
시뮬레이션 메타데이터는 Simulink.SimulationMetadata 객체로 반환됩니다. SimulationMetadata 객체는 해당 객체 속성의 구조체로 정보를 그룹화합니다.
SimulationMetadata 객체의 ExecutionInfo 속성을 표시합니다. 실행 정보에는 경고나 오류 없이 중지 시간 20으로 실행되는 시뮬레이션이 표시됩니다.
simmetadata.ExecutionInfo
ans = struct with fields:
StopEvent: 'ReachedStopTime'
StopEventSource: []
StopEventDescription: 'Reached stop time of 20'
ErrorDiagnostic: []
WarningDiagnostics: [0×1 struct]
Simulink.SimulationOutput 객체는 시뮬레이션 결과를 나타냅니다. SimulationOutput 객체에는 시뮬레이션 메타데이터와 시뮬레이션에서 기록된 모든 데이터가 포함됩니다. 데이터 기록 및 사용자 지정 속성을 추가하거나 제거하여 Simulink.SimulationOutput 객체의 내용을 수정할 수 있습니다.
모델 LoggingBlocks를 엽니다. 이 모델은 여러 기록 기법을 사용하여 몇 가지 입력 신호를 기록합니다.
Sine Wave 블록의 출력은 신호 기록을 사용하여 기록됩니다.
Gain 블록의 출력은 To Workspace 블록을 사용하여 기록됩니다.
Gain 블록, Chirp Signal 블록, Square Wave Generator 블록의 출력은 Record 블록을 사용하여 기록됩니다.
Square Wave Generator 블록의 출력은 출력 기록을 사용하여 기록됩니다.
이 모델은 시간 데이터를 기록하도록 구성되어 있기도 합니다.
mdl = "LoggingBlocks";
open_system(mdl)
get_param 함수를 사용하여 Sine Wave 블록의 진폭 파라미터와 주파수 파라미터의 값을 저장합니다. 이 값을 sinConfig 구조체에 저장합니다.
sinConfig.sinAmp = get_param(strcat(mdl,"/Sine Wave"),"Amplitude"); sinConfig.sinFreq = get_param(strcat(mdl,"/Sine Wave"),"Frequency");
모델을 시뮬레이션합니다.
out = sim(mdl);
시뮬레이션 결과에는 시뮬레이션에서 생성된 모든 기록 변수가 포함됩니다. who 함수를 사용하여 수정할 수 있는 속성 목록을 가져옵니다.
props = who(out)
props = 5×1 cell
{'logsout' }
{'recordout'}
{'simout' }
{'tout' }
{'yout' }
이 시뮬레이션의 경우 Sine Wave 블록과 관계된 신호 경로의 데이터만 저장하기를 원한다고 가정하겠습니다. removeProperty 함수를 사용하여 recordout 속성과 yout 속성을 제거합니다.
out = removeProperty(out,["recordout" "yout"]); who(out)
This Simulink.SimulationOutput object contains these editable properties:
logsout simout tout
Simulink.SimulationOutput 객체에 자신의 고유한 속성을 추가하거나 setUserData 함수를 사용하는 방식으로 이 객체에 데이터를 추가하여 Simulink.SimulationMetadata 객체에 UserData 속성 값을 지정할 수도 있습니다.
Sine Wave 블록의 파라미터 값을 Simulink.SimulationOutput 객체의 속성으로 저장하기를 원한다고 가정하겠습니다. 구조체에 필드를 추가하는 것과 같은 방법으로 점 표기법을 사용하여 SineWaveParameters 속성을 추가합니다.
out.SineWaveParameters = sinConfig; who(out)
This Simulink.SimulationOutput object contains these editable properties:
SineWaveParameters logsout simout tout
sldiagviewer.reportSimulationMetadataDiagnostics 함수를 사용하여 진단 뷰어로 Simulink.SimulationOutput 객체에 캡처된 오류 메시지와 경고 메시지를 표시할 수 있습니다.
Simulink.SimulationInput 객체를 생성하여 모델 ex_sldemo_bounce의 시뮬레이션을 구성합니다.
mdl = "ex_sldemo_bounce";
simin = Simulink.SimulationInput(mdl);Initial Velocity 블록의 값 파라미터를 정의되지 않은 변수 z로 지정하여, 시뮬레이션할 모델에 오류가 발생하도록 합니다.
blk = mdl + "/Initial Velocity"; simin = setBlockParameter(simin,blk,"Value","z");
오류로 인해 스크립트 실행이 중단되지 않도록 하기 위해, SimulationInput 객체의 CaptureErrors 파라미터를 활성화합니다. CaptureErrors 파라미터가 활성화되어 있으면 시뮬레이션 중에 발생하는 오류와 경고가 SimulationOutput 객체에 캡처되고 명령 창이나 스크립트에는 보고되지 않습니다.
simin = setModelParameter(simin,CaptureErrors="on");모델을 시뮬레이션합니다. 시뮬레이션을 실행하기 위해 sim 함수는 Simulink 편집기에서 모델을 열지 않고 모델을 불러옵니다.
out = sim(simin);
sldiagviewer.reportSimulationMetadataDiagnostics 함수를 사용하여 시뮬레이션에서 발생한 경고와 오류 메시지를 진단 뷰어에 표시합니다.
sldiagviewer.reportSimulationMetadataDiagnostics(out)
버전 내역
R2009b에 개발됨이제는 Simulink.SimulationOutput 객체의 SimulationMetadata 속성을 사용하여 시뮬레이션 메타데이터에 액세스할 수 있습니다. 이전 릴리스에서는 시뮬레이션 메타데이터에 액세스하려면 getSimulationMetadata 함수를 사용해야 했습니다.
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.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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)