본문 바로가기
자동차 관련

자동차 개발에서의 Model Based Design(MBD) & MIL, SIL, HIL

by Tanya 탄야 2024. 10. 11.

1. Model Based Design (MBD) 

- 시스템을 개발할 때, HW랑 SW를 수학적 모델링을 하고, 시뮬레이션을 통해 테스트 / 검증 방식을 거치면서 설계하는 방법론이다. 

 

MBD의 특징은 다음과 같다.

 

(1) 모델링 - 시스템의 동작을 수학적 모델로 표현 

- 이는 물리적인 시스템 (엔진, 서스펜션)이 될 수도 있고, 소프트웨어 제어 로직(ABS 등) 이 될 수도 있다. 

 

(2) 시뮬레이션 - 만든 모델을 바탕으로, 실제 시스템처럼 동작하도록 시뮬레이션

- 물리적 장비 없이 여러 시나리오 상에서 시뮬레이션이 가능하다

 

(3) 자동 코드 생성 

- 구현에 필요한 코드를 모델을 바탕으로 자동 생성이 된다. 

 

(4) 검증 및 테스트

 - 개발 초기 단계부터 각 테스트 단계에 맞게 MIL, SIL, HIL 등을 통해 현실적인 환경에서의 동작을 확인할 수 있다.

 

(5) 재사용성

 

**

 

- 기존의 MBD가 아닌 전통적인 설계 방식으로는,

요구사항 명세서 -> 디자인 -> 구현(코드) -> integration & testing 의 단계였다.

문제는 이 과정에서 (1) 디자인 / 구현 단계에서 integrated system의 테스트가 불가능했고, (2) 개발자가 수동으로 작성하는 코드의 오류 가능성/재사용성 (3) 요구사항 확인의 어려움 등의 문제가 있었다. 

 

반면 MBD에서는 통합된 시뮬레이션 환경에서의 설계가 가능하고, 자동 코드 생성이 가능하므로 이러한 기존의 단점들이 보완된다. 

 

 

이때 MBD의 검증 및 테스트 단계에서는 MIL, HIL, SIL등 다양한 테스트가 가능한데, 이에 대해서는 다음과 같이 설명할 수 있다.

 

2. MIL, SIL, HIL testing 

 

(1) MIL (Model-in-the-Loop)

 

개발 초기 단계에 수행되는 테스트로, 시스템의 모델을 시뮬레이션한다. 

이때는 SW(코드), Hardware 모두 없이 시스템의 동작을 모델로만 검증한다. 

제어 시스템이 예상대로 동작하는지 확인하는 것이 목적

 

(2) SIL (Software-in-the-Loop)

 

MBD를 통해 자동으로 생성된 SW코드를 테스트하는 단계이다.

실제 HW 없이 가상환경에서만 실행하며, SW(코드)가 시스템 모델과 올바르게 작동하는지 확인한다.

 

(3) HIL (Hardware-in-the-loop)

 

실제 하드웨어와 결합하여 MBD로 설계한 모델을 테스트한다. 

ECU와 시스템 모델을 연결하여, 실제 환경을 시뮬레이션하며 ECU 를 검증한다. 

 

(4) VIL(Vehicle-in-the-loop)

 

실차와 가상환경을 결합한 테스트다. 

MBD로 설계한 모델을 실차와 결합하여 도로 상황 등 가상 시나리오에서 테스트한다. 

이를 통해 자율주행과 같은 복잡한 환경에서 미리 검증할 수 있다. 

 

 

https://builtin.com/software-engineering-perspectives/v-model

 

자동차 개발은 일반적으로 위와 같은 V -cycle의 모델을 따르는데,  V cycle의 각 phase에 대응되는 test는 아래와 같다. 

 

https://www.researchgate.net/figure/V-cycle-of-model-based-software-development-process-with-the-test-phases_fig1_358524352

 

 

 

*PIL test는 ECU 테스트 (processor in the loop) 

 

 

 

 

reference

https://kr.mathworks.com/videos/overview-to-model-based-design-for-embedded-system-1585851033700.html

 

 

**추가 용어 정리 

Closed-Loop Simulation (폐루프 시뮬레이션) : 시스템 출력(피드백 신호)를 통해 입력을 조정한다. 즉, 시스템의 상태나 성능이 실시간으로 반영되며 제어 동작이 수정된다. 

시스템이 외부 환경에 맞춰 스스로 조정되기 때문에, 실제 환경에서처럼 유사하게 동작한다. 

(예: 자율주행 등에 사용되는데, 자율주행차는 주변 환경에 대한 데이터를 지속적으로 입력받고, 그에 맞춰 차량의 움직임을 조정한다) 

 

<-> Open-loop simulation : 입력 신호가 미리 결정되어 있으며, 시뮬레이션 중에 출력이 입력에 영향을 미치지 않는다. 즉, 출력값이 입력으로 피드백되지 않는다는 것. 

 

 

 

* 자동차 관련 공부를 하고 있는 학생으로,해당 포스팅 내용은 틀릴 수 있는 점 참고 바랍니다

 

 

 

반응형

'자동차 관련' 카테고리의 다른 글

Software-Defined Vehicle (SDV)  (1) 2024.10.20
240925 Automotive News  (0) 2024.09.25
240920 뉴스  (7) 2024.09.21