선박 전력 시스템의 HIL 배포
이 예제에서는 멀티레이트 HIL(Hardware-In-the-Loop) 배포에 적합한 선박 전력 시스템 모델을 보여줍니다. 이 예제는 Simscape™ Network Couplers 라이브러리를 사용하여 서로 다른 샘플 레이트로 배포할 수 있는 개별 Simulink® 서브시스템으로 모델을 분할합니다. 이를 통해 시스템의 일부(예를 들어, 여기서는 터빈)를 더 낮은 샘플 시간으로 실행할 수 있으며 전체 계산 비용을 줄일 수 있습니다.
1단계: 모델 설계하기
다음 그림은 최상위 설계 모델을 보여줍니다. 전력 시스템은 두 개의 개별 전기 구역으로 구성되며, 각 구역은 자체 증기 발생기, 제어기 및 로컬 부하를 가집니다. 이 모델에서는 전기, 기계 및 제어기 부분이 이미 서로 다른 샘플 시간을 가지고 있습니다. 하지만, 이 모델은 데스크탑 시뮬레이션 또는 실시간 타깃 배포를 수행할 때 단일 시뮬레이션 스레드로 실행되도록 구성되어 있습니다.

이제 수정되지 않은 모델을 사용하여 검증 데이터를 생성하기 위해 시뮬레이션을 실행합니다.
Simulating MarineHIL

이와 같은 대규모 모델은 실시간 하드웨어 성능에 따라 사용 가능한 프레임 시간 내에 실행되지 못할 수 있습니다. 이 경우, 모델을 더 작은 부분으로 분리하여 여러 프로세서에 분산할 수 있습니다. 여기에서는 모델을 4개의 개별 태스크로 분할하여 서로 다른 코어에서 실행할 수 있도록 합니다.
2단계: 전기 네트워크 분할하기
다음 그림은 Network Coupler (Capacitor) 블록이 커패시터 적분기를 사용해 전압에 대한 대수 제약 조건을 분리함으로써 두 구역을 어떻게 분리하는지 보여줍니다. 이 모델에서 가능한 또 다른 해결 방법은 Network Coupler (Voltage-Voltage) 블록을 사용하는 것으로, 이 블록은 마지막 샘플 시간에서 확보한 전압 측정값을 사용하여 두 네트워크를 동기화 상태로 유지합니다. 이는 각 전압원의 내부 임피던스를 신중하게 선택함으로써 수치적 안정성을 유지합니다.
물리 네트워크를 분할할 때는 커플러 블록의 초기 조건을 신중하게 설정해야 합니다. 그 이유는 분리된 네트워크가 Simscape에 의해 각각 개별적으로 초기화되기 때문입니다. 따라서 1단계에서 얻은 초기 전압과 전류를 사용하여 각 Network Coupler 블록의 초기 조건을 설정합니다.

3단계: 그룹 해제 및 재구성
이 단계에서는 먼저 Simscape Network Coupler 라이브러리의 모든 블록을 마스크 해제한 다음, 마우스 오른쪽 버튼을 클릭하여 나타나는 상황별 메뉴에서 서브시스템 및 모델 참조 -> 서브시스템 확장 옵션을 선택하여 해당 내용을 상위 계층으로 이동합니다. 그러면 Rate Transition 블록과 함께 Simulink 연결이 최상위 수준에서 보이게 됩니다. 그런 다음 샘플링 시간을 기준으로 블록과 서브시스템을 함께 그룹화할 수 있습니다.

4단계: 배포 모델
이 마지막 단계에서는 서브시스템을 모델 참조 블록으로 변환하고 6개의 주기적 태스크를 정의합니다. 이제 다중 코어를 사용하거나 여러 마이크로프로세서에 배포하여 모델을 시뮬레이션할 수 있습니다.

다음 그림은 메인 추진 시스템이 시작될 때 두 발전기의 응답을 보여줍니다. 1단계에서 생성된 동일한 결과와 비교하면 배포 단계가 동작을 크게 변화시키지 않음을 확인할 수 있습니다.
Simulating MarineHILStep4
