Main Content

시뮬레이션 데이터 인스펙터

데이터와 시뮬레이션 결과를 검사하고 비교하여 모델 설계 검증 및 반복

설명

시뮬레이션 데이터 인스펙터는 다양한 종류의 데이터를 시각화하고 비교합니다.

시뮬레이션 데이터 인스펙터를 사용하면 시계열 데이터를 워크플로의 다양한 단계에서 검사하고 비교할 수 있습니다. 다음 예제 워크플로에서는 시뮬레이션 데이터 인스펙터가 설계 주기의 전체 단계를 어떻게 지원하는지를 보여줍니다.

  1. View Simulation Data in Simulation Data Inspector 또는 Import Data from Workspace or File into Simulation Data Inspector

    시뮬레이션 데이터 인스펙터에 데이터를 기록하도록 구성된 모델에서 시뮬레이션을 실행하거나, 작업 공간 또는 파일에서 데이터를 가져옵니다. 모델 다이어그램, 파라미터 값 또는 모델 구성을 반복적으로 수정하는 동안 모델 입력 데이터를 보고 확인하거나 기록된 시뮬레이션 데이터를 검사할 수 있습니다.

  2. Inspect Simulation Data

    여러 서브플롯에 신호를 플로팅하고, 지정된 플롯 좌표축을 확대하고 축소하며, 데이터 커서를 사용하여 데이터를 파악하고 평가합니다. 시간, 배열, 맵, 스파크라인, XY 플롯과 같은 여러 시각화 중에서 선택할 수 있습니다. 데이터를 효과적으로 나타내는 방법에 대한 자세한 내용은 Create Plots Using the Simulation Data Inspector 항목을 참조하십시오.

  3. Compare Simulation Data

    개별 신호 또는 시뮬레이션 실행을 비교하고, 상대 허용오차, 절대 허용오차 및 시간 허용오차를 사용하여 비교 결과를 분석합니다. 시뮬레이션 데이터 인스펙터의 비교 툴을 사용하면 반복 설계를 보다 쉽게 수행하고, 허용오차 요건을 충족하지 않는 신호를 강조 표시할 수 있습니다. 비교 작업에 대한 자세한 내용은 How the Simulation Data Inspector Compares Data 항목을 참조하십시오.

  4. Save and Share Simulation Data Inspector Data and Views

    시뮬레이션 데이터 인스펙터의 데이터와 보기를 저장하여 결과를 다른 사람과 공유합니다.

명령줄에서 시뮬레이션 데이터 인스펙터의 기능을 이용할 수도 있습니다. 자세한 내용은 Inspect and Compare Data Programmatically 항목을 참조하십시오.

The Inspect pane of the Simulation Data Inspector shows three subplots. The subplots show time plots of data gathered from three runs of the model sldemo_autotrans. The first subplot shows the EngineRPM signals from all three runs. The second subplot shows the ShiftLogic signals from all three runs. The third subplot shows the VehicleSpeed signal from all three runs.

시뮬레이션 데이터 인스펙터 열기

  • Simulink® 툴스트립: 시뮬레이션 탭의 결과 검토에서 데이터 인스펙터를 클릭합니다.

  • 모델에서: 신호에서 스트리밍 배지를 클릭하여 시뮬레이션 데이터 인스펙터를 열고 신호를 플로팅합니다.

  • MATLAB® 명령 프롬프트:

    • Simulink.sdi.view를 입력하여 시뮬레이션 데이터 인스펙터를 엽니다.

    • Simulink.sdi.plot을 사용하여 시뮬레이션 데이터 인스펙터와 플롯 데이터를 엽니다.

예제

모두 확장

Run 객체를 만들고 Run 객체에 데이터를 추가한 후 시뮬레이션 데이터 인스펙터에서 데이터를 봅니다.

Run 객체에 대한 데이터 만들기

timeseries 객체를 만들어 사인 신호와 코사인 신호의 데이터를 포함합니다. 각 timeseries 객체에 설명적 이름을 지정합니다.

time = linspace(0,20,100);

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = "Sine, T=5";

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = "Cosine, T=8";

Run 객체 만들기 및 데이터 추가하기

Simulink.sdi.view 함수를 사용하여 시뮬레이션 데이터 인스펙터를 엽니다.

Simulink.sdi.view

작업 공간에서 시뮬레이션 데이터 인스펙터로 데이터를 가져오기 위해 Simulink.sdi.Run.create 함수를 사용하여 Simulink.sdi.Run 객체를 만듭니다. Run 객체의 Name 속성 및 Description 속성을 사용하여 실행에 대한 정보를 메타데이터에 추가합니다.

sinusoidsRun = Simulink.sdi.Run.create;
sinusoidsRun.Name = "Sinusoids";
sinusoidsRun.Description = "Sine and cosine signals with different frequencies";

add 함수를 사용하여 작업 공간에서 만든 데이터를 빈 Run 객체에 추가합니다.

add(sinusoidsRun,"vars",sine_ts,cos_ts);

시뮬레이션 데이터 인스펙터에 데이터 플로팅하기

getSignalByIndex 함수를 사용하여 신호 데이터가 포함된 Simulink.sdi.Signal 객체에 액세스합니다. Simulink.sdi.Signal 객체 속성을 사용하여 신호의 선 스타일과 색을 지정하고 시뮬레이션 데이터 인스펙터에서 신호를 플로팅할 수 있습니다. 각 신호에 LineColor 속성과 LineDashed 속성을 지정합니다.

sine_sig = getSignalByIndex(sinusoidsRun,1);
sine_sig.LineColor = [0 0 1];
sine_sig.LineDashed = "-.";

cos_sig = sinusoidsRun.getSignalByIndex(2);
cos_sig.LineColor = [1 0 0];
cos_sig.LineDashed = "--";

Simulink.sdi.setSubPlotLayout 함수를 사용하여 시뮬레이션 데이터 인스펙터 플로팅 영역에서 2×1 서브플롯 레이아웃을 구성합니다. 그런 다음 plotOnSubplot 함수를 사용하여 상단 서브플롯에 사인 신호를 플로팅하고 하단 서브플롯에 코사인 신호를 플로팅합니다.

Simulink.sdi.setSubPlotLayout(2,1);

plotOnSubPlot(sine_sig,1,1,true);
plotOnSubPlot(cos_sig,2,1,true);

시뮬레이션 데이터 인스펙터 닫기 및 데이터 저장하기

플로팅된 신호 데이터의 검사가 끝나면 시뮬레이션 데이터 인스펙터를 닫고 세션을 MLDATX 파일에 저장할 수 있습니다.

Simulink.sdi.close("sinusoids.mldatx")

Simulink.sdi.plot 함수를 사용하여 시뮬레이션 데이터 인스펙터에서 시뮬레이션 결과를 플로팅할 수 있습니다. 2계 반데르폴 미분 방정식을 모델링하는 모델 vdp를 엽니다. 이 모델에 대한 자세한 내용은 Van der Pol Oscillator 항목을 참조하십시오.

mdl = "vdp";
open_system(mdl)

The vdp model

모델을 시뮬레이션합니다. 이 모델은 x1x2의 두 가지 신호를 기록합니다. 시뮬레이션 결과는 out이라는 단일 SimulationOutput 객체에 저장됩니다.

out = sim(mdl);

Simulink.sdi.plot 함수를 사용하여 시뮬레이션 데이터 인스펙터를 열고 결과를 플로팅합니다.

Simulink.sdi.plot(out);

Simulation results are plotted on two vertically aligned subplots in the Simulation Data Inspector. The x1 signal is plotted in the upper subplot. The x2 signal is plotted in the lower subplot.

시뮬레이션 데이터 인스펙터의 프로그래밍 인터페이스를 사용하여, 여러 번의 실행에서 동일한 신호에 대한 파라미터를 수정할 수 있습니다. 이 예제에서는 4번의 데이터 실행에서 모두 절대 허용오차 0.1을 신호에 추가합니다.

먼저, 작업 공간을 지우고 데이터와 함께 시뮬레이션 데이터 인스펙터 세션을 불러옵니다. 이 세션에는 항공기의 종방향 제어기(longitudinal controller)를 Simulink® 모델로 만들어 4차례 시뮬레이션한 데이터가 포함되어 있습니다.

Simulink.sdi.clear
Simulink.sdi.load('AircraftExample.mldatx');

Simulink.sdi.getRunCount 함수를 사용하여 시뮬레이션 데이터 인스펙터의 실행 횟수를 가져옵니다. 이 숫자를 각 실행마다 연산을 수행하는 for 루프의 인덱스로 사용할 수 있습니다.

count = Simulink.sdi.getRunCount;

그런 다음, for 루프를 사용하여 각 실행에서 절대 허용오차 0.1을 첫 번째 신호에 할당합니다.

for a = 1:count
    runID = Simulink.sdi.getRunIDByIndex(a);
    aircraftRun = Simulink.sdi.getRun(runID);
    sig = getSignalByIndex(aircraftRun,1);
    sig.AbsTol = 0.1;
end

관련 예제

프로그래밍 방식으로 사용

모두 확장

Simulink.sdi.view는 MATLAB 명령줄에서 시뮬레이션 데이터 인스펙터를 엽니다.

버전 내역

R2010b에 개발됨