Main Content

프로그래밍 방식으로 시뮬레이션 실행하기

프로그래밍 방식으로 시뮬레이션을 실행하려면 스크립트를 작성하거나 MATLAB® 명령 창에서 명령을 실행합니다. 여러 인터페이스에서 프로그래밍 방식의 시뮬레이션 기능을 제공합니다. 각 인터페이스마다 서로 다른 기능을 제공하여 시뮬레이션 동작을 구성하고 시뮬레이션 실행 시에 시뮬레이션과 상호 작용합니다.

프로그래밍 인터페이스일반 사용 사례
sim 함수

시뮬레이션을 구성하고 실행합니다.

Simulation 객체

시뮬레이션을 구성 및 실행하고, 시뮬레이션 중에 변수 및 파라미터 값을 조정하고, 시뮬레이션 실행을 제어하는 스크립트를 작성합니다.

SimulationCommand 이름-값 인수를 갖는 set_param 함수

MATLAB 명령 창과 Simulink 편집기를 모두 사용하여 시뮬레이션과 상호 작용합니다.

sim 함수, Simulation 객체 또는 set_param 함수를 사용하여 프로그래밍 방식으로 실행하는 시뮬레이션은 한 번에 하나씩 직렬로 실행됩니다. 병렬 또는 배치 시뮬레이션을 실행하려면 parsim 함수 또는 batchsim 함수를 사용하십시오.

프로그래밍 방식 시뮬레이션의 실행 또는 스크립트 작성 방법 결정하기

시뮬레이션 중에 모델과 상호 작용하는 경우를 제외하면, sim 함수는 대체로 프로그래밍 방식의 개별 및 직렬 시뮬레이션을 실행하고 스크립트를 작성하는데 필요한 대부분의 요구 사항을 지원합니다.

시뮬레이션 중에 프로그래밍 방식으로 시뮬레이션과 상호 작용하려는 경우 Simulation 객체를 사용합니다. Simulation 객체를 사용하면 시뮬레이션 실행을 제어하고 시뮬레이션 중에 파라미터 및 변수 값을 조정할 수 있습니다. 시뮬레이션에서 계산된 결과와 값을 기반으로 파라미터나 변수 값을 수정하는 MATLAB 스크립트를 작성할 수 있습니다.

Simulation 객체를 사용하여 실행하는 시뮬레이션과 프로그래밍 방식으로 상호 작용할 수 있지만, 시뮬레이션 상태가 inactive가 아닌 동안에는 Simulink 편집기를 사용하여 Simulation 객체와 연결된 모델 또는 시뮬레이션과 상호 작용할 수 없습니다. set_param 함수를 사용하여 시뮬레이션 명령을 실행하면 MATLAB 명령 프롬프트에서 프로그래밍 방식으로 모델과 상호 작용할 수 있고 Simulink 편집기를 사용하여 대화형 방식으로 모델과 상호 작용할 수도 있습니다. 시뮬레이션 명령은 Simulink 편집기에서 실행을 클릭하거나 start 시뮬레이션 명령을 실행해 시작하는 시뮬레이션에서 지원됩니다.

다음 표에는 sim 함수를 사용하는 프로그래밍 방식의 시뮬레이션 스크립트 작성과 Simulation 객체를 사용하는 시뮬레이션에 사용할 수 있는 기능이 요약되어 있습니다.

동작 또는 옵션sim 함수Simulation 객체
모델을 직접 수정하지 않고 시뮬레이션 구성

Simulink.SimulationInput 객체, 구조체, Simulink.ConfigSet 객체 또는 이름-값 인수를 사용하여 모델에 저장된 값을 재정의하기 위해 파라미터 및 변수 값을 지정할 수 있습니다.

여기서 지정한 재정의 값은 시뮬레이션에 적용되고 시뮬레이션이 완료되면 되돌려집니다.

기존 Simulink.SimulationInput 객체에서 Simulation 객체를 생성하거나 Simulation 객체에 재정의 값을 지정하여 모델에 저장된 값을 재정의하는 파라미터 및 변수 값을 지정할 수 있습니다.

여기서 지정한 재정의 값은 시뮬레이션에 적용되고 시뮬레이션이 완료되면 되돌려집니다.

시뮬레이션 중에 파라미터 및 변수 값 조정지원되지 않습니다.

setVariable, setModelParameter, setBlockParameter 함수를 사용하여 시뮬레이션 중에 파라미터 값을 조정합니다.

시뮬레이션 중지

MATLAB 명령 창에서 Ctrl+C를 누릅니다.

stop 함수 또는 terminate 함수를 호출합니다.
시뮬레이션을 일시 중지합니다.

지원되지 않습니다.

pause 함수를 호출합니다.

step 함수를 사용하여 일시 중지되기 전까지 시뮬레이션을 얼마만큼 진행할지 지정합니다.

MATLAB 명령 창에서 명령 실행

지원되지 않습니다.

시뮬레이션 중에는 MATLAB 명령 프롬프트를 사용할 수 없습니다.

지원됩니다.

MATLAB 명령 프롬프트는 step 함수를 호출하여 시뮬레이션을 진행하는 경우를 제외하고 시뮬레이션이 실행되는 동안 사용할 수 있습니다.

Scope 블록과 같은 시각화 블록을 사용하여 시뮬레이션 결과 보기

표준 모드 및 액셀러레이터 모드 시뮬레이션에서 지원됩니다.

고속 액셀러레이터 시뮬레이션에서는 지원되지 않습니다.

지원되지 않습니다.
포트 값 레이블지원되지 않습니다.지원되지 않습니다.
시뮬레이션을 순차적으로 실행하기

지원되지 않습니다.

시뮬레이션을 진행하려면 step 함수를 사용합니다.

스텝 뒤로 이동은 지원되지 않습니다.

신호 중단점

지원되지 않습니다.

지원되지 않습니다.
지정된 시간 또는 그 후에 일시 중지

지원되지 않습니다.

PauseTime 이름-값 인수와 함께 step 함수를 사용합니다.
예외를 발생시키는 대신 시뮬레이션 출력에서 시뮬레이션 오류에 대한 정보 캡처

CaptureErrors 이름-값 인수를 "on"으로 지정합니다.

setModelParameter를 사용하여 CaptureErorrs 파라미터를 "on"으로 지정합니다.

빠른 재시작지원됩니다.지원됩니다.
시뮬레이션 속도 조절지원됩니다.지원됩니다.
시뮬레이션 제한 시간

Timeout 이름-값 인수를 사용하여 sim 함수를 실행할 수 있는 최대 시간을 지정합니다.

지원되지 않습니다.
시뮬레이션 상태 쿼리

지원되지 않습니다.

시뮬레이션 실행은 MATLAB 스레드를 차단합니다.

Simulation 객체의 Status 속성은 현재 시뮬레이션 상태를 나타냅니다.
matlab (macOS) 또는 matlab (Linux)-nodesktop 또는 -nodisplay 옵션을 사용하여 시작된 MATLAB 세션에서 시뮬레이션 실행지원됩니다.지원되지 않습니다.

sim 함수를 사용하여 시뮬레이션 실행 및 스크립트 작성하기

sim 함수에는 프로그래밍 방식으로 시뮬레이션을 실행하고 구성하는 데 사용할 수 있는 여러 구문이 있습니다. 모든 모델 구성 파라미터 값, 블록 파라미터 값, 변수 값 등에 대해 그 현재 값을 사용하여 모델을 시뮬레이션하려는 경우 모델 이름만을 입력 인수로 지정하는 가장 기본적인 구문을 사용합니다.

out = sim("ModelName");

이 구문은 단일 시뮬레이션 출력 파라미터가 비활성화된 경우를 제외하고 모든 시뮬레이션 결과가 포함된 하나의 Simulink.SimulationOutput 객체를 반환합니다. 프로그래밍 방식으로 실행하는 모든 시뮬레이션에 대해 일관된 코드를 작성하려면 단일 시뮬레이션 출력 파라미터를 활성화하십시오.

모델 구성 파라미터 값, 블록 파라미터 값 및 변수 값에 대해 값을 지정하는 식으로 시뮬레이션을 구성하려면 Simulink.SimulationInput 객체를 사용하여 시뮬레이션 구성을 지정합니다. 이 명령은 SimulationInput 객체를 사용하기 위한 기본 구문을 보여줍니다. simin이라는 변수에 저장된 SimulationInput 객체는 유일한 입력 인수입니다. 시뮬레이션 결과는 항상 단일 Simulink.SimulationOutput 객체로 반환됩니다.

out = sim(simin);

다음 표는 구성할 수 있는 옵션과 각 구문의 활용 사례를 요약합니다.

sim 구문시뮬레이션 구성 옵션
out = sim("ModelName");

구성 파라미터, 블록 파라미터 및 변수 값의 현재 값을 사용하여 모델을 시뮬레이션합니다.

out = sim(simin);

다음에 대한 재정의 값을 갖는 Simulink.SimulationInput 객체를 사용하여 시뮬레이션 구성을 지정합니다.

  • 모델 구성 파라미터

  • 변수

  • 외부 입력

  • 초기 상태

  • 블록 파라미터

추가 옵션을 구성하기 위해 이름-값 인수를 사용합니다. 다음과 같은 옵션을 구성할 수 있습니다.

  • 빠른 재시작을 사용하여 시뮬레이션을 실행합니다.

  • 시뮬레이션 출력에서 오류를 캡처하거나 MATLAB 예외를 표시합니다.

  • 시뮬레이션 관리자를 엽니다.

out = sim("ModelName",Name=Value);

이름-값 인수를 사용하여 다음과 같은 시뮬레이션 옵션을 구성합니다.

  • 모델 구성 파라미터

  • 시뮬레이션 속도 조절 옵션

  • 빠른 재시작을 사용하여 시뮬레이션할지 여부

  • 시뮬레이션 출력에서 오류를 캡처할지 아니면 MATLAB 예외를 표시할지

out = sim("ModelName",paramstruct);

각 파라미터 이름과 일치하는 필드 이름과 각 파라미터에 사용할 값을 지정하는 필드 값을 가진 구조체를 사용하여 모델 구성 파라미터 값과 시뮬레이션 옵션을 지정합니다.

예를 들어, StopTime 파라미터 값을 20으로 지정하려면 필드 이름이 StopTime이고 값이 "20"인 필드를 가진 구조체를 만듭니다.

paramStruct.StopTime = "20";
out = sim("ModelName",configset);

Simulink.ConfigSet 객체를 사용하여 모델 구성 파라미터 값을 지정합니다.

Simulation 객체를 사용하여 시뮬레이션 실행 및 스크립트 작성하기

Simulation 객체는 모델의 시뮬레이션을 나타내며 시뮬레이션 실행 시 시뮬레이션을 제어하고 시뮬레이션과 상호 작용하기 위한 인터페이스를 제공합니다 sim 함수를 사용하여 실행하는 시뮬레이션과는 달리 시뮬레이션이 실행되는 동안 MATLAB 명령 프롬프트를 사용할 수 있습니다. Simulation 객체를 사용하여 다음을 수행할 수 있습니다.

  • 런타임 중에 액세스할 수 있는 시뮬레이션 결과를 기반으로 MATLAB 코드의 로직을 사용하여 시뮬레이션을 제어하고 시뮬레이션과 상호 작용하는 스크립트를 작성합니다.

  • 시뮬레이션에서 주 시간 스텝을 앞으로 이동시킵니다.

  • 시뮬레이션 중에 파라미터 및 변수 값을 조정합니다.

  • 앱 디자이너를 사용하여 시뮬레이션을 제어 및 모니터링하고 시뮬레이션과 상호 작용하는 앱을 빌드합니다.

  • Simulink® Compiler™를 사용하여 시뮬레이션 스크립트와 앱을 배포합니다.

다음 표에는 시뮬레이션 실행을 제어하는 데 사용할 수 있는 Simulation 객체 함수가 요약되어 있습니다.

함수설명세부 정보
initialize

시뮬레이션을 초기화합니다.

MATLAB 명령 프롬프트는 초기화가 완료될 때까지 사용할 수 없습니다.

start

시뮬레이션을 시작합니다.

초기화되지 않은 시뮬레이션을 시작하면 start 함수는 시뮬레이션을 시작하기 전에 먼저 초기화합니다 MATLAB 명령 프롬프트는 초기화가 완료될 때까지 사용할 수 없으며, 초기화가 완료되면 시뮬레이션이 시작되고 MATLAB 명령 프롬프트를 사용할 수 있게 됩니다.

step

지정된 정도만큼 시뮬레이션을 진행한 다음 일시 중지합니다.

단일 주 시간 스텝만큼, 지정된 주 시간 스텝 수만큼, 지정된 시뮬레이션 시간까지 또는 그 이후로 시뮬레이션을 진행할 수 있습니다. 지정된 정도만큼 진행된 후 시뮬레이션이 일시 중지됩니다.

MATLAB 명령 프롬프트는 시뮬레이션이 진행되는 동안 사용할 수 없습니다.

pause활성 시뮬레이션을 일시 중지합니다.

pause 함수는 시뮬레이션을 일시 중지하라는 즉각적인 요청을 보냅니다. 중단 없이 마쳐야 하는 프로세스가 완료된 후 시뮬레이션이 일시 중지됩니다.

MATLAB 명령 프롬프트는 시뮬레이션이 일시 중지된 동안 사용할 수 없습니다.

resume일시 중지된 시뮬레이션을 계속합니다.

MATLAB 명령 프롬프트는 시뮬레이션을 재개하는 동안에는 사용할 수 없으며 시뮬레이션 실행이 시작되면 사용할 수 있게 됩니다.

stop시뮬레이션 중지 시간 전에 활성 시뮬레이션을 중지합니다.

stop 함수는 시뮬레이션을 중지하라는 즉각적인 요청을 보냅니다. 중단 없이 마쳐야 하는 프로세스가 완료된 후 시뮬레이션이 중지됩니다.

시뮬레이션이 시뮬레이션 중지 시간에 도달하면 시뮬레이션이 자체적으로 중지됩니다. 단, step 함수를 사용하여 표준 모드 또는 액셀러레이터 모드 시뮬레이션을 마지막 시간 스텝까지 전부 진행하는 경우는 예외입니다. 이 경우, 마지막 시간 스텝 이후에 시뮬레이션이 일시 중지됩니다.

terminate시뮬레이션을 종료합니다.

빠른 재시작이 활성화되지 않은 시뮬레이션은 중지되면 종료됩니다. 빠른 재시작 시뮬레이션은 중지 후에도 컴파일된 상태로 유지되므로 이후 시뮬레이션을 초기화할 필요가 없습니다. 종료 후 실행되는 시뮬레이션은 초기화가 필요합니다.

시뮬레이션에 사용할 초기 상태, 외부 입력, 모델 파라미터, 블록 파라미터 및 변수 값을 지정하여 시뮬레이션을 구성할 수 있습니다 여기서 지정한 값은 시뮬레이션 중에 모델에 저장된 값을 재정의하고 시뮬레이션이 완료되면 되돌려집니다. 시뮬레이션 중에 조정 가능형 파라미터 값과 변수 값을 수정할 수도 있습니다. 다음 표에는 시뮬레이션 구성에 사용할 수 있는 Simulation 객체 함수가 요약되어 있습니다.

함수설명세부 정보
setInitialState시뮬레이션을 위한 초기 상태나 동작점을 지정합니다.초기 상태는 시뮬레이션 간에만 조정 가능하고 시뮬레이션 중에는 조정할 수 없습니다.
setExternalInput최상위 입력 포트를 사용하여 불러올 외부 입력 데이터를 지정합니다.외부 입력 데이터는 시뮬레이션 간에만 조정 가능하고 시뮬레이션 중에는 조정할 수 없습니다.
setModelParameter시뮬레이션에 사용할 모델 구성 파라미터의 값을 지정합니다.대부분의 구성 파라미터는 시뮬레이션 간에만 조정 가능하고 시뮬레이션 중에는 조정할 수 없습니다.
setVariable시뮬레이션에 사용할 변수 값을 지정합니다.시뮬레이션에 사용할 초기 변수 값을 구성하고 시뮬레이션 중에 변수 값을 조정할 수 있습니다.
setBlockParameter시뮬레이션에 사용할 블록 파라미터 값을 지정합니다.

일부 블록 파라미터는 시뮬레이션 간에만 조정 가능하고 시뮬레이션 중에는 조정할 수 없습니다.

배포된 시뮬레이션에서는 블록 파라미터 값을 조정하는 것이 지원되지 않습니다. 배포된 시뮬레이션에서 블록 파라미터 값을 조정하려면 블록 파라미터 값을 변수로 지정한 다음 변수 값을 대신 조정하십시오.

시뮬레이션 명령을 통해 시뮬레이션과 상호 작용하기

set_param 함수를 사용해 시뮬레이션 명령을 실행하여 시뮬레이션을 시작하는 것은 Simulink 편집기에서 실행을 클릭하는 경우와 같이 사용자 인터페이스에서 시뮬레이션을 시작하는 것과 동일합니다. 시뮬레이션 명령은 Simulink 편집기와 같은 사용자 인터페이스를 사용하여 시작할 수 있는 것과 동일한 동작을 프로그래밍 방식으로 시작합니다. MATLAB 명령 창과 Simulink 편집기 또는 다른 사용자 인터페이스를 번갈아 사용하는 워크플로에서는 시뮬레이션 명령을 사용하는 것이 편리합니다.

시뮬레이션 명령을 실행하려면 set_param 함수에 대한 SimulationCommand 이름-값 인수를 지정하십시오. 예를 들어, 이 명령은 MyModel이라는 모델에 대해 start 시뮬레이션 명령을 실행합니다.

set_param("MyModel",SimulationCommand="start")

start 시뮬레이션 명령을 실행하면 사용자 인터페이스에서 시뮬레이션을 시작하는 것과 동일한 동작이 수행되므로, 사용자 인터페이스에서 시작하거나 start 시뮬레이션 명령을 실행하여 시작한 시뮬레이션을 시뮬레이션 명령을 실행하여 제어하고 상호 작용할 수 있습니다. start 시뮬레이션 명령을 실행하여 시작하는 시뮬레이션은 다음과 같이 사용자 인터페이스에서 시작하는 시뮬레이션과 동일한 기능 및 지원을 제공합니다.

  • 사용자 인터페이스 또는 set_param 함수를 사용하여 시뮬레이션 중에 파라미터 값 조정

  • 포트 값 레이블과 시각화 블록(예: Scope 블록)을 사용하여 블록 다이어그램에서 신호 값 및 시뮬레이션 결과 확인

  • 일시 중지, 스텝 앞으로, 스텝 뒤로 버튼을 사용하여 일시 중지하거나 스텝을 뒤로 또는 앞으로 이동하여 시뮬레이션 실행 제어

  • 디버그 툴(예: 신호 중단점)

시뮬레이션 명령을 실행한 결과로 발생한 오류 또는 start 시뮬레이션 명령을 실행하여 시작한 시뮬레이션 중에 발생한 오류는 진단 뷰어에 보고됩니다. 단, update 시뮬레이션 명령을 실행하는 동안 발생한 오류는 보고되지 않습니다.

시뮬레이션 중에 시뮬레이션 명령을 입력하면 명령이 즉시 실행되지 않습니다. 현재 실행 중이지만 중단할 수 없는 프로세스가 완료된 후에만 명령이 실행됩니다. 예를 들어, 솔버가 다음 시간 스텝을 결정하는 중에 사용자가 시뮬레이션 명령을 입력하면 솔버가 다음 시간 스텝을 전파하고 나서야 시뮬레이션 명령이 실행됩니다.

Simulink 편집기에서 사용할 수 있는 모든 작업에 대응하는 시뮬레이션 명령이 있는 것은 아닙니다. 다음 표에서는 각 시뮬레이션 명령과 이에 대응하는 사용자 인터페이스 동작, 바로 가기 키에 대해 설명합니다.

시뮬레이션 명령 설명상응하는 사용자 인터페이스 동작바로 가기 키
set_param(mdl,SimulationCommand="start")

시뮬레이션을 시작합니다.

실행을 클릭합니다.

Ctrl+T 또는 F5

set_param(mdl,SimulationCommand="stop")

시뮬레이션을 중지합니다.

중지를 클릭합니다.

Ctrl+Shift+T

set_param(mdl,SimulationCommand="pause")

시뮬레이션을 일시 중지합니다.

일시 중지를 클릭합니다.

Ctrl+T 또는 F5

set_param(mdl,SimulationCommand="continue")

일시 중지된 시뮬레이션을 재개합니다.

계속을 클릭합니다.

Ctrl+T 또는 F5

set_param(mdl,SimulationCommand="update")

다이어그램을 업데이트합니다.

Simulink 툴스트립의 준비 섹션에서 모델 업데이트를 클릭합니다.Ctrl+D
set_param(mdl,SimulationCommand="writedatalogs")

작업 공간에 데이터 기록 변수를 씁니다.

지원되지 않습니다.지원되지 않습니다.

사용자 인터페이스에서 시뮬레이션을 시작하거나 시뮬레이션 명령을 실행하여 시뮬레이션을 시작하는 경우 get_param 함수를 사용하여 시뮬레이션 상태를 쿼리할 수 있습니다. 예를 들어, 다음 명령은 MyModel이라는 모델에 대한 시뮬레이션 상태를 쿼리합니다.

simstatus = get_param("MyModel","SimulationStatus")

다음 표에서는 SimulationStatus 인수의 각 반환 값에 대응하는 시뮬레이션 상태를 설명합니다.

SimulationStatus설명
stopped시뮬레이션이 중지되었습니다.
initializing초기화 단계를 실행하는 중입니다.
running실행 단계에 있습니다.
paused실행 단계에서 일시 중지되었습니다.
compiled모델이 컴파일되었습니다.
updating다이어그램을 업데이트하는 중입니다.
terminating종료 단계를 실행하는 중입니다.
externalSimulink Coder™로 시뮬레이션하는 중입니다.

참고 항목

함수

객체

관련 항목