Main Content

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

시뮬레이션 동작점 저장 및 복원하기

참고

R2019a에서 SimState 객체의 이름이 ModelOperatingPoint로 변경되었습니다.

시스템을 효과적으로 설계하기 위해 사용자는 모델을 반복적으로 시뮬레이션하며, 이를 통해 서로 다른 입력값, 경계 조건 또는 동작 조건을 기반으로 시스템을 분석할 수 있습니다. 많은 응용 사례에서, 여러 번의 시뮬레이션을 수행할 때 중요한 동적 동작이 포함된 시작 단계가 공통적일 수 있습니다. 예를 들어, 가스 터빈 엔진의 냉간 기동(cold start) 이륙은 실험하려는 각각의 항공기 조작에 앞서 공통적으로 발생합니다. 이상적으로는 여러 번의 시뮬레이션에서 사용자가 다음과 같은 작업을 수행합니다.

  1. 시작 단계를 한 번 시뮬레이션합니다.

  2. 시작 단계가 끝날 때 시뮬레이션 스냅샷을 저장합니다.

  3. 이 스냅샷을 각 조건 또는 조작 세트의 초기 상태로 사용합니다.

시뮬레이션의 스냅샷은 ModelOperatingPoint 객체를 사용하여 저장합니다. 스냅샷을 저장한 후에는 추가 시뮬레이션에서 ModelOperatingPoint 객체를 복원하여 초기 조건을 설정하는 데 사용합니다.

ModelOperatingPoint 객체는 다음에 관한 정보를 포함합니다.

  • 기록된 상태

  • 솔버 및 실행 엔진의 상태

  • 영점교차를 등록하는 블록에 대한 영점교차 신호

  • 모델에 포함된 특정 블록의 출력값

    Simulink®는 블록 연결 및 기타 정보를 분석하여 출력값을 상태 정보로서 효과적으로 사용하고 있는지 확인합니다.

ModelOperatingPoint 객체는 다음 블록의 은닉 상태도 저장합니다.

  • Transport Delay

  • Variable Transport Delay

  • From Workspace

  • For Each Subsystem

  • 조건부 실행 서브시스템

  • Stateflow

  • MATLAB System

  • Simscape™ Multibody™ Second Generation

ModelOperatingPoint 객체는 이러한 정보를 저장함으로써 동작점에서 시작하는 시뮬레이션의 결과가 처음부터 실행되는 시뮬레이션과 같아지도록 합니다.

동작점을 사용하는 것의 이점

  • ModelOperatingPoint 객체는 시뮬레이션의 스냅샷을 저장할 때 모델의 기록된 상태와 더불어 정보도 저장합니다. 시뮬레이션이 중단되지 않은 시뮬레이션과 일치하도록 하려면 이러한 정보를 모두 복원해야 합니다. 예를 들어, 시뮬레이션에 솔버 정보가 영향을 주었다면 ModelOperatingPoint를 사용하지 않고 블록의 상태를 변경할 경우 다른 결과가 생성될 수 있습니다.

  • 시뮬레이션을 진행할 때 동작점을 여러 개 저장해 둔 다음 이러한 동작점 중 하나에서 시뮬레이션을 재개할 수 있습니다.

  • ModelOperatingPoint 객체는 Transport Delay 블록과 같이 보통은 특정 상태로 복원하기 어려운 블록의 상태를 복원합니다. 최종 상태 구성 파라미터를 사용하여 데이터를 기록하면 Transport Delay 블록의 상태가 구조체 형식이나 배열 형식으로 저장되지 않습니다.

구성 파라미터 데이터 가져오기/내보내기 창의 최종 상태 옵션을 사용하여 시뮬레이션 상태를 저장할 수도 있습니다. 그러나 이 옵션은 기록된 상태, 즉 블록의 연속 상태와 이산 상태만 저장합니다. 이러한 상태는 모델의 완전한 시뮬레이션 상태의 일부에 불과합니다. 블록의 올바른 실행에 필요한 은닉 상태에 관한 정보는 포함하지 않습니다.

동작점 저장하기

다음 옵션 중 하나를 사용하여 마지막 단계가 시작되는 시점에 동작점을 저장합니다.

  • 마지막 중지 시간에.

  • 일시 중지 또는 중지 버튼을 사용하여 시뮬레이션을 중단할 때. 시뮬레이션을 일시 중지할 때 get_param('modelName','CurrentOperatingPoint')를 사용하여 동작점을 저장할 수도 있습니다.

  • set_param 또는 블록(예: Stop 블록)을 사용하여 시뮬레이션을 중지할 때.

대화형 방식 저장

  1. 구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창에서 최종 상태 체크박스를 선택합니다. 최종 동작점 저장 체크박스를 사용할 수 있게 됩니다.

  2. 최종 동작점 저장 체크박스를 선택합니다.

  3. 최종 상태 텍스트 상자에 ModelOperatingPoint 객체에 대한 변수 이름을 입력합니다.

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

동작점 저장 및 복원하기

sim 명령을 set_param과 함께 사용합니다. SaveOperatingPoint 파라미터를 'on'으로 설정합니다.

sldemo_tonegen
set_param('sldemo_tonegen','SaveFinalState','on','FinalStateName',...
'myOperPoint','SaveOperatingPoint','on');
simOut = sim('sldemo_tonegen','StopTime','10');
myOperPoint = simOut.myOperPoint;

시뮬레이션이 기존에 저장해 둔 동작점을 복원하도록 구성하려면 LoadInitialState. 를 사용하십시오. 모델을 시뮬레이션할 때 Simulink®가 ModelOperatingPoint 객체를 복원합니다.

set_param('sldemo_tonegen','LoadInitialState','on','InitialState',...
'myOperPoint');
myOperPoint = simOut.myOperPoint;

동작점을 저장하기 전에 구성 설정 > 시뮬레이션 타깃 > 고급 파라미터에서 블록 축소 파라미터를 비활성화하십시오.

동작점 복원하기

모델을 수정한 후에 ModelOperatingPoint 객체를 사용하여 시뮬레이션 스냅샷을 복원합니다. 시작 시간은 동작점을 생성한 시뮬레이션의 값에서 변경되지 않습니다. 시작 시간은 원래 시뮬레이션과 현재 시뮬레이션에서 모든 시간 변수와 시간 종속 변수의 기준값이 됩니다. 예를 들어, 블록은 시뮬레이션을 시작한 후에 발생한 샘플 시간 적중의 개수를 ModelOperatingPoint 객체로 저장하고 복원할 수 있습니다.

0초부터 100초까지 실행한 모델을 이제 100초부터 200초까지 실행하려 한다고 가정하겠습니다. 시작 시간은 원래 시뮬레이션과 현재 시뮬레이션에 대해 모두 0입니다. 현재 시뮬레이션의 초기 시간은 100초입니다. 또한, 블록에 원래 시뮬레이션 동안의 샘플 시간 적중 개수가 10개 있었다면 Simulink는 100초가 아닌 0초를 기준으로 다음번 샘플 시간 적중이 11번째라는 사실을 인식합니다.

참고

ModelOperatingPoint를 복원하기 전에 시작 시간을 변경할 경우 Simulink는 시작 시간ModelOperatingPoint에 저장된 값으로 덮어씁니다.

대화형 방식 복원

  1. 구성 파라미터 대화 상자의 데이터 가져오기/내보내기 창의 작업 공간에서 불러오기 아래에서 초기 상태 체크박스를 선택합니다. 텍스트 상자를 사용할 수 있게 됩니다.

  2. 텍스트 상자에 ModelOperatingPoint를 포함하는 변수의 이름을 입력합니다.

  3. 중지 시간을 동작점이 저장된 시간보다 큰 값으로 설정합니다.

여러 Simulink 버전으로부터 복원하기

R2010a 이상의 릴리스에서 저장된 ModelOperatingPoint 객체를 사용하여 모델의 ModelOperatingPoint를 복원할 수 있습니다. 단, 이 옵션은 모델의 기록된 상태만 복원합니다. ModelOperatingPoint를 저장하는 데 사용된 Simulink 버전을 보려면 ModelOperatingPoint 객체의 version 파라미터를 확인하십시오.

Simulink는 초기 상태로 제공된 ModelOperatingPoint 객체가 현재 릴리스에서 저장되었는지 여부를 감지합니다. 기본적으로 Simulink는 ModelOperatingPoint가 현재 릴리스에서 저장되지 않은 경우 오류 메시지를 표시합니다. Simulink가 이 메시지를 경고로 표시하도록 진단을 구성하고 가능한 한 많은 값의 복원을 시도할 수 있습니다. 이와 같은 최선의 복원을 가능하게 하려면 구성 파라미터 대화 상자에서 Operating Point object from earlier release 메시지를 경고로 설정하십시오. 19a에서는 이전에 명명된 SimState 객체를 ModelOperatingPoint 객체로 불러옵니다.

관련 항목