Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

sim

Simulink 모델 시뮬레이션

설명

Simulink® 모델은 동적 시스템을 표현합니다. 모델을 시뮬레이션하면 시스템의 동작을 시뮬레이션된 시간의 함수로 이해할 수 있습니다. sim 명령은 지정된 모델을 사용하고 모델에 인수를 적용합니다. 시뮬레이션이 끝날 때 sim 명령은 적용한 인수를 모두 되돌립니다.

simOut = sim(model)은 기존 모델 구성 파라미터를 사용하여 지정된 모델을 시뮬레이션하고, 그 결과를 Simulink.SimulationOutput 객체(단일 출력 형식)로 반환합니다.

구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창에는 단일 시뮬레이션 출력이 기본적으로 선택되어 있습니다. 단일 시뮬레이션 출력이 선택되어 있지 않은 경우 시뮬레이션 결과는 시간 벡터로 반환됩니다.

이전 버전과 호환이 가능한 형식(시간 벡터)으로 시뮬레이션 결과를 반환하려면 이전 버전과의 호환성을 위한 구문 항목을 참조하십시오.

simOut = sim(model,Name,Value)는 지정된 모델을 파라미터 이름-값 쌍을 사용하여 시뮬레이션합니다.

simOut = sim(simIn)Simulink.SimulationInput 객체 simIn에 지정된 입력을 사용하여 모델을 시뮬레이션합니다. sim 명령에 SimulationInput 객체로 구성된 배열을 사용하여 여러 시뮬레이션을 연속으로 실행할 수 있습니다. simInSimulink.SimulationInput 객체로 구성된 배열인 경우 출력은 Simulink.SimulationOutput 객체로 구성된 배열로 반환됩니다.

예제

simOut = sim(model,ParameterStruct)는 지정된 모델을 구조체 ParameterStruct에 지정된 파라미터 값을 사용하여 시뮬레이션합니다.

예제

simOut = sim(model,ConfigSet)는 지정된 모델을 모델 구성 세트 ConfigSet에 지정된 구성 설정을 사용하여 시뮬레이션합니다.

예제

모두 축소

이 예제에서는 SimulationInput 객체를 통해 모델의 블록 파라미터를 수정합니다.

모델을 엽니다.

openExample('simulink_general/sldemo_househeatExample')

이 모델의 SimulationInput 객체를 생성합니다.

mdl = 'sldemo_househeat';
in = Simulink.SimulationInput(mdl);

블록 파라미터를 수정합니다.

in = in.setBlockParameter('sldemo_househeat/Set Point','Value','300');

모델을 시뮬레이션합니다.

out = sim(in)

모델을 불러오지 않았든 혹은 모델을 불러왔는데 저장되지 않은 변경 사항이 있든 상관없이 모델 vdp를 현재 상태 그대로 시뮬레이션합니다.

구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창에는 기본적으로 단일 시뮬레이션 출력이 선택되어 있습니다. 따라서 sim은 단일 출력 형식(시뮬레이션 객체)을 사용하여 시뮬레이션 결과를 반환합니다. 이 선택은 신호 기록에 사용되는 Dataset 형식을 무시합니다.

simOut = sim('vdp')

모델 vdp를 시뮬레이션하고, 상태와 출력을 각각 xoutNewyoutNew로 저장합니다.

sim 명령에 이름-값 쌍 구조체 paramNameValStruct를 사용하여 파라미터를 지정합니다.

paramNameValStruct.SaveState      = 'on';
paramNameValStruct.StateSaveName  = 'xoutNew';
paramNameValStruct.SaveOutput     = 'on';
paramNameValStruct.OutputSaveName = 'youtNew';
simOut = sim('vdp',paramNameValStruct)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [64x2 double] 
                youtNew: [64x2 double] 

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

절대 허용오차 1e-5를 지정하여 모델 vdp를 시뮬레이션하고, 상태와 출력을 각각 xoutNewyoutNew에 저장합니다.

sim 명령에 대한 구성 세트 mdl_cs에 파라미터를 이름-값 쌍으로 지정합니다.

mdl = 'vdp';
load_system(mdl)
cs = getActiveConfigSet(mdl);
mdl_cs = cs.copy;
set_param(mdl_cs,'AbsTol','1e-5',...
         'SaveState','on','StateSaveName','xoutNew',...
         'SaveOutput','on','OutputSaveName','youtNew')
simOut = sim(mdl, mdl_cs)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [65x2 double] 
                youtNew: [65x2 double] 

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

입력 인수

모두 축소

시뮬레이션할 모델로, 문자형 벡터로 지정됩니다.

예: simOut = sim('vdp')

시뮬레이션에 사용할 파라미터 설정이 포함된 구조체로, 구조체로 지정됩니다. 구조체의 필드는 구성 파라미터의 이름이고, 대응하는 값은 파라미터 값입니다.

모델의 구성 파라미터 세트로, Simulink.Configset 객체로 지정됩니다. 자세한 내용은 Simulink.ConfigSet 항목을 참조하십시오.

모델의 시뮬레이션 입력 객체로, 모델 이름을 지정하여 생성되는 Simulink.SimulationInput 객체로 지정됩니다. 자세한 내용은 Simulink.SimulationInput 항목을 참조하십시오.

시뮬레이션에 사용할 블록 파라미터, 모델 파라미터, 변수 및 외부 입력을 지정하려면 SimulationInput 객체를 사용하십시오.

예: simIn = Simulink.SimulationInput('vdp')

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'Solver','ode15s','TimeOut','30'은 ode15s 솔버를 사용하여 모델을 시뮬레이션하고 SIimulationTime이 30에 도달하면 시간 초과가 발생하도록 지정합니다.

원하는 모델 파라미터와 해당 값을 sim 명령에 전달할 수 있습니다.

또한 sim 명령은 Configsetset_param에서는 사용 가능하지 않은 다음의 파라미터를 허용합니다.

오류를 SimulationMetadata 객체에 저장하는 옵션으로, 'off' 또는 'on'으로 지정됩니다. 기본적으로 시뮬레이션 중에 오류가 발생하면 sim 명령은 시뮬레이션을 중지하고 MATLAB® 명령 창에 오류를 보고합니다. 'CaptureErrors','on'을 지정하면 sim 명령은 오류를 SimulationMetadata 객체 내 ErrorDiagnostic 구조체에 저장합니다. 오류 메시지는 SimulationOutput 객체의 ErrorMessage 속성에 저장됩니다.

다중 시뮬레이션을 루프로 실행할 때 이 옵션을 사용하면 하나의 시뮬레이션 오류가 발생해도 스크립트나 함수가 계속 실행되는 것을 중지하지 않습니다.

입력 객체로 구성된 배열을 지정하는 경우 sim 명령은 CaptureErrors가 활성화된 상태로 실행됩니다. 오류가 발생하면 시뮬레이션에 대한 Simulink.SimulationMetadata 객체에 오류 메시지와 오류 발생 시점까지의 시뮬레이션 데이터가 포함됩니다.

SIL 모드 및 PIL 모드의 시뮬레이션에는 이 옵션을 사용할 수 없습니다.

예: 'CaptureErrors','on'

시뮬레이션의 디버그 모드 옵션으로, 'off' 또는 'on'으로 지정됩니다. 'Debug' 인수 값을 'on'으로 설정하면 디버그 모드에서 시뮬레이션이 시작됩니다(자세한 내용은 참조). 이 옵션의 값은 디버거가 시작된 후 디버거로 전송될 명령으로 구성된 셀형 배열일 수 있습니다.

예: 'Debug','on'

이 옵션은 고속 액셀러레이터 모드에서만 사용 가능합니다. 시뮬레이션 전에 수행하는 최신 검사로, 'on' 또는 'off'로 지정됩니다. 이 값을 'off'로 설정하면, Simulink는 최신 검사를 수행하지 않습니다. 블록에서 시작/중지 콜백을 건너뜁니다. parfor에서 sim 명령을 호출하는 경우 이 값을 'off'로 설정하십시오.

이 옵션을 'off'로 설정하면, 블록 대화 상자를 사용하거나 set_param 함수를 사용하거나 MATLAB 변수 값을 변경하는 등의 방법으로 모델의 블록 파라미터 값을 변경해도 시뮬레이션에 영향을 주지 않습니다. 새 파라미터 값을 시뮬레이션에 직접 전달하려면 RapidAcceleratorParameterSets를 사용하십시오.

예: 'RapidAcceleratorUpToDateCheck','off'

최대 시뮬레이션 실행 시간으로, 양의 스칼라로 지정됩니다. 시뮬레이션 실행을 허용할 시간을 초 단위로 지정하십시오. 모델을 TimeOut 값보다 더 오래 실행하면 경고가 발생하고 시뮬레이션이 중지됩니다. TimeOut은 시뮬레이션에 소요된 시간을 나타냅니다.

예: 'TimeOut',60

시뮬레이션 추적 기능으로, 다음과 같이 지정됩니다.

  • 'minstep'은 해가 너무 급격하게 변해서 가변 스텝 솔버가 스텝을 수행하지 못하고 허용오차를 충족할 수 없는 경우 시뮬레이션이 중지하도록 지정합니다.

  • 'siminfo'는 시뮬레이션 시작 시 적용되는 시뮬레이션 파라미터에 대한 짧은 개요를 제공합니다.

예: 'Trace','minstep','Trace','siminfo'

시뮬레이션의 빠른 재시작 옵션으로, 'on'으로 지정됩니다. 빠른 재시작을 사용하면, 매번 모델을 컴파일하거나 시뮬레이션을 종료하지 않고 반복 시뮬레이션을 수행할 수 있습니다.

'StopOnError''on'으로 설정할 경우 오류가 발생하면 시뮬레이션 실행이 중지됩니다.

모델에 정의된 MATLAB 표현식을 실행할 작업 공간을 지정합니다. SrcWorkspace를 설정하면 액셀러레이터 모드로 실행되는 참조 모델에는 아무런 영향을 주지 않습니다. parfor 루프 내에서 SrcWorkspace를 current로 설정하면 투명도 위반이 발생합니다.

예: 'SrcWorkspace','current'

출력 인수

모두 축소

기록된 시뮬레이션 결과를 포함하는 시뮬레이션 객체로, 기록된 모든 시뮬레이션 결과를 포함하는 Simulink.SimulationOutput 객체로 반환됩니다.

모든 시뮬레이션 출력(기록된 시간, 상태 및 신호)은 단일 Simulink.SimulationOutput 객체로 반환됩니다. 기록할 데이터(기록된 모델 시간, 상태 및 출력)는 모델 구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창에서 선택할 수 있습니다. To Workspace, Scope 같은 블록을 사용하여 신호를 기록할 수 있습니다. 신호 기록에 대한 자세한 내용은 Signal Logging 항목을 참조하십시오.

세부 정보

모두 축소

이전 버전과의 호환성을 위한 구문

R2009b부터 sim 명령은 병렬 연산과의 더욱 높은 호환성을 제공하도록 강화되었습니다. 향상된 단일 출력 형식은 모든 시뮬레이션 결과를 단일 객체에 저장하기 때문에, 출력 변수 관리를 간소화합니다.

R2009a 이하 릴리스와의 호환성을 위해서는 다음 구문을 사용하십시오.

[T,X,Y] = sim('model',Timespan, Options, UT)
[T,X,Y1,...,Yn] = sim('model',Timespan, Options, UT)

model 인수만 지정하는 경우 Simulink는 지정된 출력 인수에 시간과 상태, 출력을 자동으로 저장합니다.

출력 인수를 지정하지 않으면 Simulink는 구성 파라미터 > 데이터 가져오기/내보내기 창의 설정에 따라 기록할 데이터를 결정합니다. Simulink는 Save simulation output as a single object 파라미터의 설정에 따라 시뮬레이션 출력을 현재 작업 공간 또는 변수 ans에 저장합니다.

이전 버전과의 호환성을 위한 구문의 입력 인수와 출력 인수
인수설명
T

반환되는 시간 벡터.

X

행렬 또는 구조체 형식으로 반환되는 상태. 상태 행렬에는 연속 상태와 이산 상태가 차례로 포함됩니다.

Y

행렬 또는 구조체 형식으로 반환되는 출력. 블록 다이어그램 모델의 경우 이 변수에 모든 루트 수준 블록이 포함됩니다.

Y1,...,Yn

아웃포트로, 다이어그램 모델에만 지정할 수 있습니다. 여기서 n은 루트 수준 블록의 개수여야 합니다. 각 아웃포트는 Y1,...,Yn 변수로 반환됩니다.

'model'

시뮬레이션할 모델의 이름.

Timespan

시간 범위는 TFinal, [TStart TFinal] 또는 [TStart OutputTimes TFinal]일 수 있습니다. 출력 시간은 T로 반환되는 시점이지만, 대개 T에는 추가적인 시점이 포함됩니다.

Options

이름-값 쌍을 사용하는 simset 명령을 통해 구조체로 생성된 선택적 시뮬레이션 파라미터.

UT

선택적 외부 입력. 지원되는 표현식에 대해서는 Load Data to Root-Level Input Ports 항목을 참조하십시오.

Simulink는 model 인수만 필요로 합니다. Simulink는 지정되지 않은 옵션을 포함하여 블록 다이어그램에서 모든 디폴트 값을 가져옵니다. 선택적 인수를 지정할 경우 지정된 설정이 블록 다이어그램의 설정보다 우선합니다.

sim의 입력 인수를 빈 행렬 [ ]로 지정하면 Simulink는 그 인수에 대해 디폴트 값을 사용합니다.

  • sim 명령을 사용하여 지정된 파라미터는 모델 구성 파라미터 대화 상자에 정의된 값보다 우선합니다. 시뮬레이션이 끝날 때 원래 구성 값이 복원됩니다.

  • Model 블록을 사용하는 모델의 경우 파라미터 사양은 최상위 모델에 적용됩니다.

  • 중지 시간을 무한대로 설정하여 모델을 시뮬레이션할 때 시뮬레이션을 중지하려면 Ctrl+C를 눌러야 합니다. Ctrl+C를 누르면 시뮬레이션이 중단되고 시뮬레이션 결과는 MATLAB 작업 공간에 저장되지 않습니다.

  • 시뮬레이션의 시간 범위를 지정하려면 StartTimeStopTime 파라미터를 지정해야 합니다.

  • 모델 시간, 상태 또는 출력을 기록하려면 모델 구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창을 사용하십시오.

  • 신호를 기록하려면, To Workspace 또는 Scope 같은 블록을 사용하거나 신호 기록을 사용하십시오. 자세한 내용은 Export Signal Data Using Signal Logging 항목을 참조하십시오.

  • 모델 vdp의 시뮬레이션 파라미터 목록을 가져오려면 MATLAB 명령 창에서 다음을 입력하십시오.

    configSet = getActiveConfigSet('vdp')
    configSetNames = get_param(configSet, 'ObjectParameters')  

    이 명령은 'StopTime', 'SaveTime', 'SaveState', 'SaveOutput', 'SignalLogging' 같은 시뮬레이션 파라미터를 포함하여 몇몇 객체 파라미터를 나열합니다.

버전 내역

R2006a 이전에 개발됨