MIL - SIL - PIL Simulation(시뮬레이션)
앞서서 MBD(Model Based Development / Model Based Design)이야기를 할 때 Simulation기반으로 진행한다고 하였습니다. 그래서 각 simulation에 대해서 간단하게 기술을 하고자 합니다.
MIL(Model in the Loop) Simulation
MIL Simulation의 경우, float값을 바탕으로 시뮬레이션을 하여, 로직의 구동의 유효성을 보는 것입니다. 즉, 0을 입력하였을 때 10.999가 나오는 로직이 과연 0을 넣었을 때 10.999가 나오는지에 대해서 확인하는 시뮬레이션입니다. 이 단계에서는 로직의 정상 여부를 가장 많이 보는 단계입니다.
SIL(Software in the Loop) simulation
SIL simulation의 경우 MICOM의 데이터 타입 흔히 말하는 Embedded Board에 다운로드 할 때 MICOM에서 인식하는 데이터 타입을 사용하는 시뮬레이션입니다. 이 때는 MIL Simulation 과 비교 하였을 경우 편차가 발생합니다. MIL의 경우 Float값으로 10.999가 표현할 수 있지만, SIL 의 경우 이 부분에 대해 표현하는 것에 대해 매우 제약적입니다. 따라서, 이 시뮬레이션을 바탕으로 나오는 편차를 최소화하는 것을 목적으로 하고 있습니다. 관련해서는 Computation Scaling이라는 별도의 포스팅에서 별도로 추가 설명하도록 하겠습니다.
PIL(Process in the Loop) simulation
PIL 이라고도 합니다. 이 경우에는 SIL에서 시뮬레이션한 결과를 보드에 다운로드하여 정상 여부를 확인하는 시뮬레이션입니다. SIL에서 최적의 데이터 타입을 사용하면, 이를 토대로 EVM Board에 다운로드 하여 정상 여부를 확인하는 것입니다. 실제 SIL / PIL 의 값의 편차는 나오지 않는 것이 정상입니다. 아마도 RAM 리소스등을 확인하는 것에 목적을 많이 두고 있습니다.
Model기반의 개발하는 방식을 사용 하신다면 다음과 같은 시뮬레이션등은 필수적입니다. 이를 토대로 많은 문제들에 대해서 사전에 해결할 수 있다고 생각합니다.
많은 MBD를 지원하는 솔루션들이 다음과 같은 MIL - SIL - PIL 에 대해서 지원하고 있습니다. 또한, 이 부분에 대해서 많은 표준등에서 요구 하고 있습니다. 간단하게 오늘은 MIL - SIL - PIL Simulation에 대해서 이야기 해봤습니다.