빠른 전기 시뮬레이션 개요
Simscape Electrical™ 모델로 작업할 때는 시뮬레이션이 최적의 성능으로 실행되는지 고려하는 것이 중요합니다. 시뮬레이션의 목적에 따라 다른 기법과 모범 사례를 사용해 모델을 진단하고 병목 지점을 식별하며 시뮬레이션 성능을 개선할 수 있습니다.
이 안내서에서는 정확도를 유지하고 여러분의 구체적인 시뮬레이션 요구사항을 충족하는 동시에 최적의 시뮬레이션 성능을 달성할 수 있도록 도와주는 최적화 모범 사례를 적용하기 위해 따라야 하는 단계에 대해 설명합니다.
더 알아보기
- 빠른 시뮬레이션을 위한 Simscape Electrical 모델링 사례 - 비디오
- 빠른 전기 시뮬레이션 예제 - File Exchange
준비: 시뮬레이션 시간 및 신호 샘플 시간 진단
기록된 시뮬레이션 메타데이터를 사용해 후속 단계에서 시뮬레이션 시간을 분석하고 비교할 수 있습니다. 이 정보는 Simulink.SimulationOutput 객체 내의 SimulationMetaData 객체를 통해 볼 수 있습니다.
솔버 성능 분석과 관련된 또 다른 정보는 블록 샘플링 시간입니다. 솔버 및 블록 설정에 따라, 모델에서 다양한 이산 샘플 시간과 연속 샘플 시간을 확인할 수 있습니다. 이로 인해 예기치 않은 동작을 초래할 수 있습니다. Simulink® 툴스트립의 디버그 탭으로 이동한 다음 정보 오버레이 > 샘플 시간 > 색으로 이동하여 샘플 시간 표시를 활성화합니다. 이렇게 하면 모델이 업데이트되고, 모든 신호의 샘플 시간이 여러 색으로 구분되어 표시됩니다.
Simulink 프로파일러는 모델의 실행 시간에 대한 자세한 인사이트를 제공합니다. 전체 시뮬레이션 시간을 포착하고 블록 실행 타이밍을 식별하여 모델에서 어느 부분이 실행하는 데 시간이 더 오래 걸리는지 파악할 수 있습니다.
Simulink 프로파일러를 사용한 블록 또는 서브시스템별 런타임 분석
이 비디오에서는 Simulink 프로파일러를 사용하여 블록당 필요한 시뮬레이션 시간을 알아내는 방법을 보여줍니다.
솔버 프로파일러 리포트에는 모델의 다양한 블록이 실행되는 빈도와 실행에 소요되는 시간이 표시됩니다. 이렇게 하면 모델에서 더 계산 집약적인 부분을 파악할 수 있습니다. Simscape™ 네트워크의 실행 시간은 Solver Configuration 블록 아래에 요약됩니다. 모델에 많은 스코프가 포함된 경우 시뮬레이션 데이터 인스펙터를 대신 사용하는 것을 고려해 볼 수 있습니다.
다음으로, 시뮬레이션의 목적 및 그것이 성능과 설정에 미치는 영향에 대해 알아보겠습니다.
올바른 시뮬레이션 접근법 선택하기
모델의 성능은 사용 목적에 따라 달라집니다. 목적에 따라 이에 맞는 특정 기법과 설정이 필요합니다. 이 섹션에서는 데스크탑 시뮬레이션과 Hardware-in-the-Loop 시뮬레이션이라는 두 가지 시뮬레이션 유형에 대해 살펴볼 것입니다.
데스크탑 시뮬레이션
데스크탑 시뮬레이션의 주된 목적은 제어 알고리즘을 개발하고 이를 실제 플랜트 모델에 대한 폐루프 시뮬레이션에서 테스트하는 것인 경우가 많습니다. 플랜트 모델은 Simscape 네트워크며, 알고리즘은 Simulink에서 모델링됩니다. 이 경우, 가변 스텝 솔버를 사용하는 플랜트 모델이 필요합니다. 즉, 이 솔버는 모델 동역학에 따라 허용되는 범위 내에서 큰 시뮬레이션 시간 스텝을 사용할 수 있습니다. 이 알고리즘은 플랜트 모델과 함께 실행되며 가변 시간 스텝에서 실행되거나 필요한 경우 고정 시간 스텝에서 실행될 수 있습니다.
이 방식이 여러분의 활용 사례에 알맞은 경우 아래의 데스크탑 시뮬레이션 관련 고려 사항 섹션으로 이동하세요.
Hardware-in-the-Loop 시뮬레이션
HIL(Hardware-in-the-Loop) 시뮬레이션은 실시간으로 제어기 하드웨어에서 실행되는 제어기 알고리즘을 테스트하는 데 사용되는 실시간 시뮬레이션입니다. HIL 시뮬레이션의 경우 실시간 컴퓨터를 사용해 플랜트 모델을 표현합니다. 이러한 목적을 위해 실시간 하드웨어에 배포하기 전에 Simscape 네트워크가 고정 스텝 솔버를 사용하도록 구성해야 합니다.
이 방식이 여러분의 활용 사례에 알맞은 경우 아래의 Hardware-in-the-Loop 시뮬레이션 관련 고려 사항 섹션으로 이동하세요.
데스크탑 시뮬레이션 관련 고려 사항
Simscape 물리 네트워크(가변 스텝 솔버 플랜트)에 대한 솔버 관련 고려 사항
제어 알고리즘을 설계하고 전기 Simscape 네트워크에 대해 테스트하려면 가변 스텝 솔버로 실행 중인 물리 모델부터 시작하는 것이 좋습니다. 이렇게 하면 솔버가 모델 동역학에 따라 더 작은 시간 스텝을 사용하고, 가능한 경우 더 큰 시간 스텝을 선택할 수도 있습니다. 그러면 사전에 정해진 고정 시간 스텝이 없는 경우에도 전반적인 성능 개선을 기대할 수 있습니다.
Simscape 네트워크에서 가변 스텝 솔버를 사용하려면 Solver Configuration 블록에서 로컬 솔버 사용 옵션을 비활성화하십시오. 그러면 모델 설정에서 선택한 전역 솔버를 이용할 수 있습니다. 일반적으로 Simscape 네트워크에는 daessc, odes23t 또는 ode15s 같은 음함수 솔버가 권장됩니다.
더 알아보기
- 고성능 시뮬레이션을 위한 솔버 선택하기 (10:55) - 비디오
- 가변 시간 스텝으로 시뮬레이션하기 - 문서
고정 스텝 샘플 시간을 활용한 알고리즘 구성
샘플 시간 색상은 특정 블록이 어떤 솔버 시간 스텝에서 실행되는지를 나타냅니다. 알고리즘을 설계하는 경우 통상적으로 제어 루프의 샘플 시간에 대한 구체적인 요구사항이 있습니다. 가변 스텝 솔버의 장점을 활용하려면 플랜트 모델을 가변 스텝으로 실행하고 알고리즘을 고정 스텝으로 실행하면 됩니다. 이를 위해서는 전역 솔버(모델 설정에서 설정)는 가변 스텝 유형이어야 하고, 모델의 블록은 특정 (고정 스텝) 샘플 레이트에서만 실행되도록 구성하면 됩니다.
블록에 샘플 시간이 명시적으로 정의되지 않으면 샘플 시간을 상속받는 경우가 많으며 이로 인해 예기치 않은 동작이 발생할 수 있습니다. 이를 예방하려면 관련 블록에 고정 스텝 샘플 레이트를 지정하십시오. 올바른 실행 타이밍을 보장하기 위해 적용 가능한 경우 샘플 시간 설정을 사용하십시오. 샘플 시간 지정하기 항목을 참조하십시오.
적절한 모델 충실도 선택
올바른 모델 충실도를 선택하는 것은 최적의 시뮬레이션 성능을 달성하기 위한 중요한 단계입니다. Simscape Electrical 기술과 그 컴포넌트를 통해 작업 목적에 따라 다양한 모델링 및 파라미터화 옵션을 선택할 수 있습니다.
예를 들어, 전력 손실 분석에는 상세한 스위칭 모델이 필요할 수 있으며 고조파 분석에는 이상적 스위칭이 사용될 수 있습니다. 제어 설계의 경우 평균 모델로 충분한 경우가 많습니다.
더 알아보기
다양한 충실도에서 컴포넌트를 모델링하는 예제를 살펴볼 수 잇습니다.
PWM의 모델링 기법
통상적으로 전력전자 모델에는 PWM 신호가 포함됩니다. 이는 인버터의 모델 충실도와 결합하여 최적화할 수 있습니다.
모델에 PWM 신호가 포함된 경우 이는 성능 향상의 또 다른 기회가 될 수 있습니다.
빠른 시뮬레이션을 위한 Simscape Electrical 모델링 사례: 더욱 빠른 컨버터 시뮬레이션을 위해 다양한 PWM 구현 사용하기
빠른 PWM 스위칭을 위한 모델을 구축할 때 고려해야 할 사항을 알아볼 수 있습니다.
진단에 솔버 프로파일러 사용하기
가변 스텝 솔버로 모델을 시뮬레이션할 때 솔버 프로파일러를 통해 작은 시간 스텝이나 시뮬레이션 이벤트(예: 솔버 예외 또는 영점교차)로 인해 시뮬레이션 성능이 저하되는 시점을 파악할 수 있습니다. 모델의 Simscape 네트워크에 솔버 프로파일러를 사용하면 다양한 물리량이 시뮬레이션 성능 저하에 미치는 영향을 확인할 수 있습니다.
이 비디오에서는 솔버 프로파일러로 가변 스텝 솔버를 사용하는 모델의 성능 병목 현상을 파악하는 방법을 다룹니다.
추가 진단 툴
변수 뷰어를 활용한 모델 초기화 검증
Simscape 물리 네트워크에 대한 시뮬레이션을 실행하는 경우 솔버는 시뮬레이션 시작 시점인 \(t=0\)에서 초기 조건을 계산합니다. Simscape 네트워크의 초기 조건은 통상적으로 블록 수준에서 구성되지만, 이전에 기록된 데이터에서 가져올 수도 있습니다. 자세한 내용은 변수 초기화 항목을 참조하십시오.
솔버는 이러한 설정을 사용해 적합한 초기 조건을 결정합니다. 이 과정은 시간이 많이 걸리고 경고나 오류가 발생할 수 있습니다. 변수 뷰어를 사용해 Simscape 네트워크의 초기 조건 계산 결과를 확인하고 검증할 수 있습니다. 이는 초기화가 느리거나 수렴되지 않는 잠재적 근본 원인을 파악하는 데 유용한 정보를 제공합니다.
이 비디오에서는 Simscape를 사용하는 모델의 초기화 결과를 변수 뷰어를 사용하여 확인하는 방법을 다룹니다.
Simscape 변수 크기 분석을 통한 적절한 스케일링 값 정의하기
Simscape 변수의 공칭 값을 정의하면 변수의 예상 크기를 지정할 수 있습니다. 자세한 내용은 공칭 값을 활용한 시스템 스케일링 항목을 참조하십시오. 시뮬레이션 중에 솔버는 이러한 스케일링된, 단위 없는 값으로 연산을 수행합니다. 모든 변수에 적절한 스케일링 값을 지정하면 시뮬레이션의 강인성과 성능이 모두 향상됩니다. 더 나은 성능을 위해 변수 크기가 비슷한 크기로 유지되도록 하십시오.
이 비디오에서는 변수 스케일링 분석기를 사용해 Simscape 변수를 스케일링하여 시뮬레이션의 견고성 및 성능을 높이는 방법을 보여줍니다.
자동화된 검사를 사용한 최적의 모델 설정
다음 툴은 주로 Simulink 블록으로 구성된 모델을 위해 설계되었으며, Simscape 네트워크를 포함하는 모델에는 일부 진단 기능만 제공됩니다.
모델 어드바이저를 통해 모델 및 서브시스템의 구성 또는 모델링 기능을 확인하여 특정 모델링 표준을 충족하고 부정확하거나 비효율적인 시뮬레이션을 방지할 수 있습니다. 모델 어드바이저에는 달성할 작업(예: 성능 또는 정확도)에 맞게 설정할 수 있는 내장된 검사 기능이 있습니다.
모델 어드바이저는 검사를 실행하고 실행 가능한 권장 사항이 포함된 상세 리포트를 제공하며, 이런 수정 사항을 자동으로 구현할 수도 있습니다.
성능 어드바이저는 모델 어드바이저 프레임워크 내에 구축되어 있으며, 여기에는 시뮬레이션 속도를 저하시킬 수 있는 구성을 찾는 미리 정의된 일련의 검사가 포함되어 있습니다.
이 비디오에서는 모델 어드바이저를 사용하여 비최적 모델 설정 또는 블록과 관련하여 특정 모델에 대한 성능 검사를 수행하는 방법을 다룹니다.
변수 통계량 뷰어로 모델 복잡도 살펴보기
통계량 뷰어는 주어진 모델과 해당 솔버 구성에 대한 Simscape 모델 통계량을 집계합니다. 통계량을 살펴보는 것은 시뮬레이션을 실행하기 전에 Simscape 블록이 포함된 모델의 복잡성을 평가할 수 있는 방법입니다.
이 비디오에서는 특정 솔버 구성을 갖는 주어진 모델에 대한 Simscape 모델 통계량을 통계량 뷰어로 집계하는 방법을 다룹니다.
모델 최적화 후의 추가 제안 사항
시뮬레이션 모드 및 빠른 재시작
시뮬레이션 모드는 시뮬레이션 속도에 영향을 미칠 수 있으며, 특히 빠른 재시작과 결합된 경우에 더욱 그렇습니다. 모델은 기본적으로 표준 모드에서 작동합니다. 그러나 사용자는 액셀러레이터 모드와 고속 액셀러레이터 모드를 활용할 수 있습니다.
이러한 모드는 성능 향상을 제공하지만, 모델 유연성, 상호작용성, 진단 세분성의 측면에서 단점이 있습니다. 시뮬레이션 모드 선택 항목을 참조하십시오. Simscape 모델을 활용하는 경우 액셀러레이터 모드 및 고속 액셀러레이터 모드를 통해 얻은 성능상의 이득은 순수 Simulink 모델과 비교했을 때 그다지 크지 않을 수 있습니다.
실행 사이에 구조를 변경하지 않고 모델을 반복적으로 실행하는 경우(예: 파라미터 스윕 중) 빠른 재시작 기능을 통해 컴파일 단계를 건너뛰어 시간을 절약할 수 있습니다. 자세한 내용은 MATLAB 도움말 센터의 빠른 재시작 시작하기 항목을 참조하십시오. 시뮬레이션 실행 간 Simscape 파라미터를 변경하려면 해당 파라미터를 Simscape 런타임 파라미터로 구성하십시오.
이 비디오에서는 다양한 시뮬레이션 모드가 전기 시스템 모델의 실행 속도에 미치는 영향을 보여줍니다. 이러한 모드에는 표준 모드, 액셀러레이터 모드 및 고속 액셀러레이터 모드가 있습니다.
병렬 연산
여러 개의 독립적인 시뮬레이션을 실행할 때 시간을 절약하려면 해당 시뮬레이션을 여러 코어나 클러스터로 분산하는 것을 고려할 수 있습니다. 활용 사례로는 파라미터 스윕, 몬테카를로 분석, 최적화 문제에 대한 병렬 계산 또는 Simulink Test™를 사용한 모델 테스트 등이 있습니다.
일반 모드 또는 액셀러레이터 모드에서 병렬 연산을 사용하여 전기 시뮬레이션을 가속화하는 방법을 알아볼 수 있습니다.
Hardware-in-the-Loop 시뮬레이션 관련 고려 사항
Hardware-in-the-Loop 시뮬레이션에 대해 고정 스텝으로 Simscape 네트워크를 실행하는 것이 목표인 경우라도 가변 스텝 솔버를 사용해 모델을 디버그하고 검증하며 개선하는 것이 좋습니다. 이를 달성하려면 “데스크탑 시뮬레이션 관련 고려 사항”부터 시작하는 단계를 따를 수 있습니다. 고정 스텝 솔버 시뮬레이션에서는 가변 스텝 시뮬레이션에서만 발견할 수 있는 근본적인 문제가 드러나지 않을 수도 있습니다.
물리 시스템의 시뮬레이션에서 솔버 및 모델 관련 고려 사항에 대해 자세히 알아볼 수 있습니다.
고정 스텝 솔버로 변환하는 경우 Simscape 로컬 솔버 또는 Simulink 전역 고정 스텝 솔버를 사용할 수 있습니다. 최상의 성능을 위해서는 일반적으로 Simscape 로컬 솔버를 선택하는 것이 권장됩니다. 로컬 솔버 및 관련 설정에 대한 자세한 내용은 고정 시간 스텝을 활용한 시뮬레이션 — 로컬 및 전역 고정 스텝 솔버 항목의 문서에서 확인할 수 있습니다.
하드웨어 배포를 위해 고정 스텝 솔버로 Simscape 모델을 구성하는 데 있어 중요한 단계는 허용 가능한 시뮬레이션 결과로 실시간 실행 가능성을 달성하기 위해 시간 스텝 설정에서 올바른 솔버를 반복적으로 결정하는 것입니다. 이 워크플로는 실시간 시뮬레이션 항목에서 전체적으로 설명되어 있습니다.
Simscape에서 HDL로 변환하기
실시간 시뮬레이션을 위해 Simscape 모델은 C 코드로 변환됩니다. 더 빠른 샘플링 레이트를 달성하려면 FPGA 기술과 HDL 코드를 활용할 수 있습니다. Simscape에서 전기 네트워크 모델을 이 워크플로에 맞게 활용하려면 물리 모델을 Simulink의 상태공간 표현으로 변환해야 합니다. 이것이 Simscape HDL Workflow Advisor의 주요 목표입니다.
이 예제에서는 선형화된 스위치 근사법을 사용하여 HDL 코드 생성 및 합성을 위해 Simscape 모터 모델을 HDL 구현 모델로 변환하는 방법을 알아볼 수 있습니다.
결론
이 안내서에서는 데스크탑 알고리즘 개발에서 Hardware-in-the-Loop 테스트 및 FPGA 구현에 이르는 다양한 응용 사례에서 Simscape Electrical 시뮬레이션 성능을 최적화하기 위한 방법론을 제시합니다. 진단 분석부터 시작하여 목적별 최적화 전략을 거쳐 고급 성능 개선으로 이어지는 이 워크플로를 따라 엔지니어는 정확성과 신뢰성을 유지하면서 시뮬레이션 속도를 대폭 향상할 수 있습니다.
이 안내서를 따르고 MATLAB 및 Simulink에서 제공되는 진단 툴을 활용하면 계산 집약적인 전기 시뮬레이션을 효율적이고 정확하며 신뢰할 수 있는 모델링 워크플로로 변환할 수 있습니다.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)