Main Content

시뮬레이션 속도 높이기

시뮬레이션을 늦추는 요인에는 몇 가지가 있습니다. 모델에 대해 다음과 같은 조건을 검사하십시오.

  • 모델에 Interpreted MATLAB Function 블록이 포함되어 있습니다. 모델에 Interpreted MATLAB Function 블록이 포함되어 있으면 MATLAB® 실행 엔진이 매 시간 스텝마다 호출되어 시뮬레이션 속도가 크게 느려집니다. 가능하면 Math Function 블록을 사용하십시오.

  • 모델에 MATLAB 파일 S-Function이 포함되어 있습니다. MATLAB 파일 S-Function도 매 시간 스텝마다 MATLAB 실행 엔진을 호출합니다. S-Function을 서브시스템이나 C-MEX 파일 S-Function으로 변환해 보십시오.

  • 모델에 Memory 블록이 포함되어 있습니다. Memory 블록을 사용하면 가변 차수 솔버(ode15sode113)가 매 시간 스텝마다 차수 1로 재설정됩니다.

  • 최대 스텝 크기가 너무 작습니다. 최대 스텝 크기를 변경했다면 디폴트 값(auto)을 사용하여 시뮬레이션을 다시 실행해 보십시오.

  • 정확도 요구 사항이 너무 높습니다. 일반적으로 디폴트 상대 허용오차(정확도 0.1%)면 충분합니다. 0이 되는 상태를 가진 모델의 경우 절대 허용오차 파라미터가 너무 작으면 시뮬레이션이 0에 가까운 상태 값에서 너무 많은 스텝을 수행할 수 있습니다. 이 오류에 관한 자세한 내용은 Maximum order를 참조하십시오.

  • 시간 스케일이 너무 깁니다. 시간 간격을 줄이십시오.

  • 모델이 경직성 시스템을 나타내지만, 비경직성 솔버를 사용하고 있습니다. ode15s를 사용해 보십시오. 자세한 내용은 Stiffness of System 항목을 참조하십시오.

  • 모델이 서로 배수가 아닌 샘플 시간을 사용합니다. 서로 배수가 아닌 샘플 시간을 혼합하면 솔버가 모든 샘플 시간에 대해 샘플 시간이 적중될 수 있을만큼 작은 스텝을 취하게 됩니다.

  • 모델에 대수 루프가 포함되어 있습니다. 대수 루프의 해는 매 시간 스텝마다 반복적으로 계산됩니다. 따라서 성능을 크게 저하시킵니다. 자세한 내용은 대수 루프 개념 항목을 참조하십시오.

Model 블록에 대해 다음 조건을 검사할 수 있습니다.

  • 모델이 Random Number 블록을 Integrator 블록으로 전달합니다. 연속 시스템의 경우 Sources 라이브러리에 있는 Band-Limited White Noise 블록을 사용하십시오.

  • 모델에 포함되어 있는 Scope 뷰어가 너무 많은 데이터 점을 표시합니다. 성능에 영향을 줄 수 있는 뷰어 속성 설정을 조정해 보십시오. 자세한 내용은 Scope Viewer 항목을 참조하십시오.

  • 모델을 반복적으로 시뮬레이션해야 합니다. 반복마다 조정 가능형 파라미터를 변경하지만 모델을 구조적으로 변경하지는 않습니다. 매 반복마다 모델을 다시 컴파일해야 하므로 전반적인 시뮬레이션 시간이 증가합니다. 빠른 재시작을 사용하여 반복 시뮬레이션을 수행하십시오. 이 워크플로에서는 모델이 한 번만 컴파일되고 반복 시뮬레이션은 단일 컴파일 단계에 연결됩니다. 자세한 내용은 How Fast Restart Improves Iterative Simulations 항목을 참조하십시오.

관련 예제

세부 정보