이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Simulink 편집기를 사용하여 시뮬레이션을 순차적으로 실행하기
이 예제에서는 시뮬레이션을 순차적으로 실행하는 방법을 보여줍니다. Simulink 편집기의 컨트롤을 사용하여 한 개 또는 여러 개의 시간 스텝 단위로 시뮬레이션을 진행하거나 블록별로(블록마다) 시뮬레이션을 진행하여 시간 스텝을 순차적으로 실행할 수 있습니다.
이 예제에서는 시뮬레이션 순차 실행과 관련된 기능과 옵션만 보여줍니다. 시뮬레이션을 순차적으로 실행하면서 조사하려는 지점에서 일시 중지하려면 신호 중단점을 사용하십시오. 자세한 내용은 Debug Simulation Using Signal Breakpoints 항목을 참조하십시오.
스크립트로 작성된 시뮬레이션에서 한 개 또는 여러 개의 시간 스텝 단위로 앞으로 이동하려면 Simulation
객체를 사용하십시오.
모델 열기 및 디버그 툴 설정하기
반데르폴 방정식을 구현하는 모델 vdp
를 엽니다. 이 모델에 대한 자세한 내용은 반데르폴 발진기 항목을 참조하십시오.
openExample("simulink_general/VanDerPolOscillatorExample",... supportingFile="vdp")
시뮬레이션을 시작하기 전에 관련 디버그 툴을 설정하십시오.
블록별로 시간 스텝을 순차적으로 실행하려면 모델에서 시뮬레이션 모드가
표준
으로 설정되어 있고 로우 레벨 디버그가 활성화되어 있는지 확인합니다.Simulink® 툴스트립에서 다음을 수행합니다.
시뮬레이션 탭 또는 디버그 탭의 시뮬레이션 섹션에서 시뮬레이션 모드 목록 선택이
표준
인지 확인합니다.디버그 탭의 중단점 섹션에서 중단점 목록을 클릭합니다. 중단점 목록에서 시간 스텝 내 일시 중지가 선택되어 있는지 확인합니다.
반복 디버그 시뮬레이션에서 시간을 절약하려면 빠른 재시작을 활성화합니다.
Simulink 툴스트립의 시뮬레이션 탭에서 빠른 재시작을 클릭하십시오.
시뮬레이션을 순차적으로 실행하면서 블록 다이어그램에서 신호 값을 확인하려면 포트 값 레이블을 추가합니다.
캔버스 왼쪽 상단의 빈 영역을 클릭하고 끌어서 블록 다이어그램의 모든 항목을 선택합니다. 그런 다음 디버그 탭, 툴 섹션, 포트 값 버튼 그룹에서 "선택한 신호에 포트 값 레이블을 표시합니다"
를 클릭합니다. 포트 값 레이블을 추가한 후 시뮬레이션이 포트 값 레이블에 새 값을 제공하는 지점까지 진행될 때까지 각 신호에는
no data yet
이 표시됩니다.블록별로 스텝을 이동하면서 실행 순서를 확인하려면 실행 순서 뷰어를 엽니다.
중단점 목록에서 "실행 순서 뷰어를 엽니다"
를 클릭합니다.
팁
MATLAB Function 블록과 Stateflow® 차트로 스텝 이동을 활성화하려면 디버그 시뮬레이션을 시작하기 전에 시뮬레이션 중에 중단점 설정 허용을 선택하십시오.
시뮬레이션 시간 스텝을 앞으로 이동시키기
모델 vdp
의 시뮬레이션을 시작하려면 Simulink 툴스트립의 시뮬레이션 탭에서 스텝 앞으로를 클릭하십시오. 시뮬레이션이 시작되고 시뮬레이션 시작 시간에 해당하는 시뮬레이션의 첫 번째 시간 스텝의 값을 계산한 후 시뮬레이션이 일시 중지됩니다.
시뮬레이션 상태 및 시뮬레이션 시간을 모니터링하려면 Simulink 편집기 하단에 있는 상태 표시줄을 사용하십시오. 시뮬레이션이 일시 중지된 동안 진행률 표시줄은 시뮬레이션 상태를 나타냅니다. 상태 표시줄에는 가장 최근에 계산된 출력값에 대응되는 시간 스텝의 시뮬레이션 시간이 표시됩니다. 시뮬레이션 시간에 표시된 별표는 시뮬레이션의 내부 상태에서 시뮬레이션 시간이 상태 표시줄에 표시된 시간보다 앞선다는 것을 나타냅니다.
기본적으로 스텝 앞으로를 클릭할 때마다 시뮬레이션이 하나의 시간 스텝씩 진행됩니다. 상태 표시줄의 시간이 업데이트되고 포트 값 레이블이 업데이트되어 새 신호 값이 표시됩니다.
스텝 앞으로를 클릭할 때마다 여러 시간 스텝씩 시뮬레이션을 진행하려면 시뮬레이션 스텝 옵션을 구성하십시오. 시뮬레이션 스텝 옵션 대화 상자를 열려면 스텝 뒤로 버튼 화살표를 클릭한 다음 시뮬레이션 스텝 구성을 선택합니다. 시뮬레이션 스텝 옵션 대화 상자에서 뒤로/앞으로 이동 간격을 5
로 지정합니다. 그런 다음 확인을 클릭합니다.
이제 스텝 앞으로를 클릭하면 시뮬레이션이 5개 시간 스텝씩 진행됩니다. 상태 표시줄에서 전체 시뮬레이션 진행률을 볼 수 있으며 앞으로 나아갈 때 시간이 더 큰 증분으로 변경되는 것을 볼 수 있습니다.
Scope 블록을 더블 클릭합니다. 시뮬레이션이 진행됨에 따라 플롯이 업데이트되어 신호 x1
및 x2
에 대한 데이터를 표시합니다. 스텝 앞으로를 클릭하여 5개 시간 스텝의 데이터를 더 표시하도록 Scope 블록이 업데이트되었는지 확인합니다.
블록별로 시간 스텝을 순차적으로 실행하기
시뮬레이션이 모델의 신호 값을 계산하는 방법을 분석하려면 블록별로 시간 스텝을 순차적으로 실행해 볼 수 있습니다. 블록별로 실행하면 시뮬레이션의 초기화 단계 중에 결정된 실행 순서에 따라 한 번에 한 블록씩 시뮬레이션이 진행됩니다. 소프트웨어가 실행 순서를 결정하는 방법에 대한 자세한 내용은 Control and Display Execution Order 항목을 참조하십시오.
실행 순서상에서 그리고 블록 다이어그램에서 시뮬레이션이 일시 중지된 위치를 쉽게 추적해 보려면 블록별로 실행하는 동안 실행 순서 뷰어를 사용합니다. 모델 vdp
의 실행 순서를 확인하려면 실행 순서 뷰어에서 태스크 0을 선택합니다. 실행 순서 뷰어는 실행 순서를 목록으로 표시하고, 태스크 0에서 실행되는 블록의 실행 순서대로 블록 다이어그램에 주석을 추가합니다. 실행 순서 뷰어의 블록 목록에는 블록 다이어그램에 표시되지 않는, 소프트웨어에서 추가한 숨겨진 블록이 포함됩니다.
블록별로 시뮬레이션의 순차적 실행을 시작하려면 Simulink 툴스트립의 디버그 탭에서 스텝 오버를 클릭합니다. 태스크 0의 실행 순서에서 첫 번째 블록을 실행하기 직전에 시뮬레이션이 일시 중지됩니다. 이름이 x1
인 Integrator 블록의 녹색 강조 표시는 블록 다이어그램에서 시뮬레이션이 일시 중지된 위치를 나타냅니다. 실행 순서 뷰어는 태스크 0의 실행 목록에서 해당하는 행을 강조 표시하여 시뮬레이션이 일시 중지된 위치를 나타냅니다.
상태 표시줄 왼쪽의 상태 문자열에는 시뮬레이션이 일시 중지된 위치를 나타내는, x1
블록에 대한 경로가 포함되어 있습니다.
이름이 x1
인 블록을 실행하기 위해 스텝 오버를 다시 클릭합니다. 시뮬레이션이 진행되고 실행 순서에서 다음 블록을 실행하기 직전에 일시 중지됩니다. 이름이 Out1
인 Outport 블록으로 녹색 강조 표시가 이동합니다. 실행 순서 뷰어는 이름이 Out1
인 블록의 행을 강조 표시합니다. 이름이 x1
인 신호의 포트 값 레이블이 업데이트되어 현재 시간 스텝에 대해 계산된 새 값을 표시합니다.
스텝 오버를 클릭하여 시간 스텝을 순차적으로 계속 실행합니다. 실행하면서 각 블록의 출력값이 어떻게 변하는지 볼 수 있으며 각 블록이 스텝의 출력값을 계산하는 데 사용하는 입력값을 볼 수 있습니다.
Scope 블록이 실행된 후 시뮬레이션은 숨겨진 블록에서 일시 중지됩니다. 소프트웨어는 특정 모델링 문제를 자동으로 해결하고 시뮬레이션 데이터를 기록하는 등 여러 가지 이유로 숨겨진 블록을 추가합니다. 숨겨진 블록은 블록 다이어그램에 표시되지 않으므로 블록 다이어그램은 시뮬레이션이 일시 중지된 위치를 나타내는 녹색 강조 표시를 블록에 표시하지 않습니다. 실행 순서 뷰어는 숨겨진 블록의 행을 강조 표시하며, 상태 문자열은 시뮬레이션이 숨겨진 블록에서 일시 중지되었음을 나타냅니다.
Sum 블록에서 시뮬레이션이 일시 중지될 때까지 스텝 오버를 클릭하여 블록별로 시뮬레이션을 계속 진행합니다. 스텝 오버를 클릭하여 Sum 블록을 실행하면 시뮬레이션이 다음 시간 스텝으로 진행되고 실행 순서에서 첫 번째 블록인 이름이 x1
인 블록을 실행하기 직전에 일시 중지됩니다.
현재 시간 스텝을 통해 시뮬레이션을 진행하고 다음 시간 스텝을 평가하기 전에 일시 중지하려면 스텝 앞으로를 클릭합니다.
참고
시간 스텝 내에서 일시 중지된 동안 sldebug
프로그래밍 인터페이스의 일부 함수를 사용하여 시뮬레이션에 대한 추가 정보를 얻을 수 있습니다. 예를 들어, probe
함수를 사용하여 지정된 블록에 대한 정보를 확인할 수 있습니다. sldebug
프로그래밍 인터페이스의 함수가 표시하는 값은 포트 값 레이블이 표시하는 값과 다를 수 있습니다. sldebug
프로그래밍 인터페이스의 함수는 보조 시간 스텝과 주 시간 스텝 모두에 대해 계산된 값을 표시합니다. 포트 값 레이블은 주 시간 스텝에 대한 값만 표시합니다. 자세한 내용은 Simulink Debugging Programmatic Interface 항목을 참조하십시오.
시간 스텝을 뒤로 이동시키기
시간 스텝 단위로 또는 블록별로 시뮬레이션을 앞으로 진행하는 것뿐만 아니라 한 개 또는 여러 개의 시간 스텝 단위로 시뮬레이션을 뒤로 이동할 수도 있습니다. 시뮬레이션에서 스텝 뒤로 이동하기를 지원하기 위해 소프트웨어는 시뮬레이션을 진행하는 동안 모델 동작점의 스냅샷을 캡처합니다. 이러한 스냅샷을 캡처하는 작업에는 메모리가 필요하며 이에 따라 시뮬레이션 성능에 영향을 미칠 수 있으므로, 시뮬레이션 스텝 뒤로 이동하기는 기본적으로 비활성화되어 있습니다. 자세한 내용은 How Stepping Through Simulations Works 항목을 참조하십시오.
시뮬레이션에서 스텝 뒤로 이동하기를 활성화하려면 다음을 수행하십시오.
시뮬레이션 스텝 옵션 대화 상자를 엽니다.
Simulink 툴스트립의 시뮬레이션 탭이나 디버그 탭에서 스텝 뒤로 버튼 화살표를 클릭한 다음 시뮬레이션 스텝 구성을 선택합니다.
시뮬레이션 스텝 옵션 대화 상자에서 스텝 뒤로 이동하기 사용을 선택합니다.
확인을 클릭합니다.
시뮬레이션 시작 시에는 스텝 뒤로 이동하기가 활성화되어 있지 않았기 때문에 소프트웨어에는 시뮬레이션의 이전 시간 스텝에 대한 스냅샷이 없습니다. 스텝을 뒤로 이동하려면 먼저 스텝을 앞으로 이동해야 합니다. 스텝을 앞으로 이동한 후에도 시뮬레이션에서 뒤로 이동하기를 활성화한 시뮬레이션 시간 스텝보다 더 뒤로 이동할 수 없습니다.
스텝 앞으로를 두 번 클릭합니다. 그런 다음 스텝 뒤로를 클릭합니다. 상태 표시줄에서 스텝 뒤로 이동이 반영되도록 시뮬레이션 시간이 업데이트됩니다. 포트 값 레이블도 업데이트되어 스텝을 뒤로 이동한 시간의 값이 표시됩니다.
스텝 뒤로를 한 번 더 클릭하면 이 시뮬레이션에서는 더 이상 스텝을 뒤로 이동할 수 없기 때문에 스텝 뒤로 버튼이 비활성화됩니다.
시뮬레이션 완료 또는 중지하기
시뮬레이션을 순차적으로 실행한 후에는 시뮬레이션을 끝까지 계속하거나 현재 시간 스텝에서 시뮬레이션을 중지할 수 있습니다.
시뮬레이션 중지 시간까지 시뮬레이션을 실행하려면 Simulink 툴스트립의 시뮬레이션 탭이나 디버그 탭에서 계속을 클릭하십시오.
현재 시간 스텝에서 시뮬레이션을 중지하려면 Simulink 툴스트립의 시뮬레이션 탭이나 디버그 탭에서 중지를 클릭하십시오.