이 안내서는 시뮬레이션의 속도를 높이고 Simulink® 모델의 성능을 개선하는 데 도움이 됩니다. 아래 단계에서는 상황에 따라 모델의 성능을 수정하거나 분석하는 데 사용할 수 있는 몇 가지 툴을 안내합니다. 이러한 단계를 수행하는 데 문제가 있거나 문제를 해결할 수 없는 경우 기술 지원팀에 문의해 주십시오. 단계를 수행하는 과정에서 여러분은 데이터를 수집하게 될 것입니다. 만약 추가적인 지원이 필요한 경우, 이 데이터를 통해 기술 지원팀이 문제를 더 신속하게 파악할 수 있습니다.
1단계: 최근 변경 사항 고려
모델 변경 또는 MATLAB 릴리스가 성능 문제를 유발했나요?
모델 비교
새 MATLAB® 릴리스로 업그레이드하는 과정에서 모델을 수정한 경우 모델을 원본 버전과 비교하여 성능에 부정적인 영향을 미쳤을 수 있는 변경 사항을 찾을 수 있습니다.
비교를 완료하면 퍼블리시를 클릭하고 리포트를 저장하세요.
업그레이드 어드바이저
새 버전으로 업그레이드했고 비교 툴로 문제를 파악하지 못한 경우 업그레이드 어드바이저를 실행하세요. 업그레이드 어드바이저는 Simulink의 새로운 기능과 설정을 사용하도록 모델을 변경함으로써 이점을 얻을 수 있는 경우를 파악할 수 있습니다.
업그레이드 어드바이저가 검사를 완료하면 리포트를 저장하세요.
모델 비교
모델을 대폭 수정했는데 속도 저하를 유발한 원인을 확신할 수 없는 경우 모델을 원본 버전과 비교하여 성능에 부정적인 영향을 미친 변경 사항을 찾을 수 있습니다.
비교를 완료하면 퍼블리시를 클릭하고 리포트를 저장하세요.
2단계: 성능 어드바이저 실행
성능 어드바이저는 모델에서 시뮬레이션 속도를 저하시킬 수 있는 구성 설정과 모델링 패턴을 분석하고 성능을 개선하기 위한 조치를 제안합니다. 모델을 수정한 후, 성능 어드바이저는 최종 검증을 수행하여 개선 사항을 보여줄 수 있습니다.
성능 어드바이저가 최종 검증을 마치면 리포트를 저장하세요.
성능 개선을 위한 추가적인 기법을 시도해 보려면 3단계로 진행하세요.
3단계: 초기화 프로파일링
최근에 실행한 시뮬레이션의 결과가 포함된 SimulationOutput
객체가 있나요?
다음 명령을 사용하여 모델을 초기화하는 데 필요한 시간을 확인할 수 있습니다. 필요한 경우 out
을 SimulationOutput
객체의 이름으로 바꾸세요.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
초기화 시간이 예상보다 길고 추가 조사가 필요하다고 판단되는 경우 3단계의 다음 부분으로 계속 진행하세요. 잠재적인 시뮬레이션 문제를 집중적으로 살펴보려면 4단계로 진행하세요.
다음 명령을 사용하여 모델을 초기화하는 데 필요한 시간을 확인할 수 있습니다. 필요한 경우 out
을 SimulationOutput
객체의 이름으로 바꾸세요.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
필요한 경우 out
을 SimulationOutput
객체의 이름으로 바꾸세요.
초기화 시간이 예상보다 길고 추가 조사가 필요하다고 판단되는 경우 3단계의 다음 부분으로 계속 진행하세요. 잠재적인 시뮬레이션 문제를 집중적으로 살펴보려면 4단계로 진행하세요.
대부분의 경우 Simulink 시뮬레이션을 실행하면 시뮬레이션에 대한 정보가 포함된 객체가 생성됩니다.
다음 명령을 실행하면 모델에 대한 SimulationOutput
객체를 생성할 수 있는데 여기서 MyModel
은 여러분의 모델 이름으로 바꾸세요.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
이러한 명령은 모델을 초기화하고 시간 0에서 시뮬레이션을 중지합니다. 시뮬레이션에서 생성된 SimulationOutput
객체에는 초기화 시간에 대한 정보가 포함됩니다.
out
이 확보되면 다음 명령을 사용하여 모델을 초기화하는 데 필요한 시간을 확인하세요.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
초기화 시간이 예상보다 길고 추가 조사가 필요하다고 판단되는 경우 3단계의 다음 부분으로 계속 진행하세요. 잠재적인 시뮬레이션 문제를 집중적으로 살펴보려면 4단계로 진행하세요.
대부분의 경우 Simulink 시뮬레이션을 실행하면 시뮬레이션에 대한 정보가 포함된 객체가 생성됩니다. 새 객체 생성을 시도하기 전에 기본 작업 공간에 값이 “1x1 SimulationOutput
”인 기존 객체가 있는지 기본 작업 공간을 확인하세요.
다음 명령을 실행하면 모델에 대한 SimulationOutput
객체를 생성할 수 있는데 여기서 MyModel
은 여러분의 모델 이름으로 바꾸세요.
mdl = "MyModel";
out = sim(mdl,StopTime=“0”,CaptureErrors=“on”);
이러한 명령은 모델을 초기화하고 시간 0에서 시뮬레이션을 중지합니다. 시뮬레이션에서 생성된 SimulationOutput
객체에는 초기화 시간에 대한 정보가 포함됩니다.
out
이 확보되면 다음 명령을 사용하여 모델을 초기화하는 데 필요한 시간을 확인하세요.
out.SimulationMetadata.TimingInfo.InitializationElapsedWallTime
초기화 시간이 예상보다 길고 추가 조사가 필요하다고 판단되는 경우 3단계의 다음 부분으로 계속 진행하세요. 잠재적인 시뮬레이션 문제를 집중적으로 살펴보려면 4단계로 진행하세요.
MATLAB 프로파일러를 사용하여 초기화 속도를 저하시킬 수 있는 코드를 찾습니다.
MATLAB 프로파일러
모델 콜백 또는 초기화 스크립트가 대규모 MATLAB 코드 베이스를 포함하는 경우가 있습니다. MATLAB 프로파일러는 모델과 관련된 MATLAB 코드를 실행하는 데 소요되는 시간을 분석하여 잠재적인 병목 지점을 파악할 수 있습니다.
시뮬레이션을 실행하기 전에 명령 창에서 다음 명령을 실행하세요.
profile clear; profile on;
시뮬레이션이 완료된 후 다음 명령을 실행하세요.
p = profile('info');
MATLAB 프로파일러가 실행된 후 인쇄를 클릭하고 리포트를 PDF로 저장하세요.
프로파일러의 결과를 확인하세요. 예상치 못한 함수 또는 스크립트가 있거나 일부 MATLAB 코드 실행이 예상보다 오래 걸리는 경우 시간을 들여 수정할 수 있습니다.
성능 개선을 위한 추가적인 기법을 시도하려면 4단계로 진행하세요.
4단계: 시뮬레이션 프로파일링
가변 스텝 솔버를 사용하시나요?
확실하지 않은 경우 구성 파라미터 대화 상자에서 솔버 창을 확인할 수 있습니다.
Simulink 프로파일러
Simulink 프로파일러는 모델 시뮬레이션을 실행하는 데 필요한 시간을 컴포넌트별로 세분화하여 분석합니다. 이 정보를 사용하여 기준을 설정하고 모델에서 잠재적으로 문제가 될 수 있는 구조를 식별할 수 있습니다. 자체 시간을 많이 소비하는 모델을 기록해 둡니다.
프로파일이 완료되면 공유 아래에서 리포트 생성을 클릭하고 리포트를 저장하세요.
이러한 단계를 통해 모델 문제가 해결되지 않은 경우 5단계로 진행하세요.
Simulink 프로파일러
Simulink 프로파일러를 실행하세요.
Simulink 프로파일러는 모델 시뮬레이션을 실행하는 데 필요한 시간을 컴포넌트별로 세분화하여 분석합니다. 이 정보를 사용하여 기준을 설정하고 모델에서 잠재적으로 문제가 될 수 있는 구조를 식별할 수 있습니다. 자체 시간을 많이 소비하는 모델을 기록해 둡니다.
프로파일이 완료되면 공유 아래에서 리포트 생성을 클릭하고 리포트를 저장하세요.
솔버 프로파일러
솔버 프로파일러를 실행하세요.
솔버 프로파일러는 모델의 동역학을 분석하며, 과도하게 작은 시간 스텝 또는 주요 시뮬레이션 이벤트(솔버 예외 및 솔버 재설정 포함)로 인해 시뮬레이션 성능이 저하되는 경우를 파악할 수 있습니다.
프로파일링이 완료되면 탭 내보내기를 클릭하고 그래프를 .fig 파일로 저장하세요.
이러한 단계를 통해 모델 문제가 해결되지 않은 경우 5단계로 진행하세요.
5단계: 추가 단계
모델의 성능에 만족하시나요?
Simulink 성능 개선 안내서를 사용해 주셔서 감사합니다!
모델의 원활한 실행을 위해 성능 개선 기법을 살펴볼 수 있는 다음과 같은 추가 자료를 확인해 보세요.
디버깅과 진단 정보 수집에 시간을 투자해 주셔서 감사합니다.
지원팀에 문의하여 이 과정에서 생성된 리포트를 제공해 주시기 바랍니다.