Main Content

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

가속 모델 소개

Simulink® Accelerator™는 C 코드를 생성하고 컴파일하여 모델의 실행 속도를 높여줍니다. 이 C 코드는 Simulink가 표준 모드에서(즉, Simulink®가 액셀러레이터 모드에 있지 않을 때) 사용하는 인터프리터 방식의 코드를 대체합니다. Simulink Accelerator는 Simulink 모델에서 C 코드를 생성한 다음 MATLAB® mex 함수를 호출하여 생성된 코드를 컴파일하고 Simulink에 동적으로 링크합니다. 이 코드 생성 및 컴파일 과정은 모델을 처음으로 가속화할 때와 모델 변경 사항이 재생성이 필요할 정도로 많을 때마다(예: 블록이 추가된 경우) 수행됩니다.

다음 예제에서는 slAccelDemoF14 모델을 사용하여 Simulink Accelerator의 사용법을 보여줍니다.

가속하지 않을 때의 시간 측정하기

slAccelDemoF14 모델을 열고 중지 시간을 3000초로 설정합니다. 모델을 시뮬레이션하고 TIC/TOC을 사용하여 소요 시간을 측정합니다.

modelName = 'slAccelDemoF14';
open_system(modelName)
set_param(modelName,'stoptime','3000')
tic
sim(modelName);
toc
Elapsed time is 13.247162 seconds.

액셀러레이터 켜기

Simulink® Accelerator를 활성화하려면 Simulink 편집기의 시뮬레이션 탭에 있는 시뮬레이션 아래에서 Accelerator를 선택합니다. MATLAB® 명령 프롬프트에서 set_param 명령을 실행할 수도 있습니다.

set_param(modelName,'SimulationMode','Accelerator')

임시 작업 디렉터리 만들기

가속화된 모드로 실행하면 파일이 몇 개 만들어지므로 먼저 임시 영역으로 이동합니다.

originalDir = pwd;
tempDir = tempname;
mkdir(tempDir)
cd(tempDir)

가속화된 모델 빌드하기

가속화된 모델을 빌드하고 시뮬레이션합니다. 액셀러레이터 모드로 실행 중일 때는 시뮬레이션 탭에서 실행을 선택하거나 MATLAB 프롬프트에서 다음 명령을 실행하여

    sim(modelName)

모델을 시작할 수 있습니다. 어떤 방법을 사용하든 MATLAB 명령 창에 코드 생성 과정이 표시됩니다. 이 표시를 없애려면 sim 명령을 evalc 안에 래핑합니다.

evalc('sim(modelName);');

가속화된 모델 시뮬레이션하기

모델을 다시 시뮬레이션합니다. 후속 실행에서 모델 시뮬레이션이 훨씬 빠르게 실행되는 것을 볼 수 있습니다.

tic
sim(modelName);
toc
Elapsed time is 2.664699 seconds.

조정 가능형 파라미터를 변경하고 가속화된 모델 시뮬레이션하기

모델에서 조정 가능형 파라미터 중 하나의 값을 변경하고 모델을 다시 시뮬레이션합니다. 모델의 가속화된 버전은 다시 생성할 필요가 없으며, 따라서 시뮬레이션이 여전히 표준 모드보다 가속화된 모드에서 더 빠르게 실행되는 것을 볼 수 있습니다.

modelWorkspace = get_param(modelName,'ModelWorkspace');
evalin(modelWorkspace,'Mw=Mw*2;')
tic
sim(modelName);
toc
Elapsed time is 2.666988 seconds.

정리하기

모델을 닫고 생성된 파일을 제거합니다.

bdclose(modelName)
clear([modelName,'_acc'])
cd(originalDir)
rmdir(tempDir,'s')

관련 항목