본문 바로가기
임베디드 개발/펌웨어

MIL, SIL, PIL and HIL

by eteo 2023. 7. 11.

 

 

 

 

 

Summary

 

“M”, “S”, “P” and “H” are all referring to the Controller status. They represent how real the controller is.

 

MIL uses the Controller Model

SIL uses the C code converted from Model

PIL uses the Controller Processor only (no I/O connectivity)

HIL uses the full Controller Hardware, including I/O.

 

 

 

 

Terms

 

These terms are used in the context of control systems development which means that typically you are building control software to interact with a mechatronic system.

 

'Control systems' are referred to as the 'controller'.

'Mechatronic systems'  are referred to as the 'plant'.

 

 

 

 

 

 

Model In Loop, MIL

 

This is a case where you are using a model of the control to work with a model of the plant. The model of the control is probably in SImulink and is connected directly to a physical model of the system within the same Simulink diagram. Extremely fast development occurs at this stage as you can make small changes to the control model and immediately test the system.

 

 

 

https://www.youtube.com/watch?v=EZthOn4_0rw

 

 

 

 

 

Software In Loop, SIL

 

This is a case where the control model is slightly more "real" in the sense that you are no longer executing the model but rather you have probably coded the model into C or C++ and then inserted this coded model back into your overall plan simulation. This is essentially a test of your coding system (whether autocoded or human coded). Design iteration slows down slightly from MIL but coding failures start to become evident.

 

 

https://www.youtube.com/watch?v=EZthOn4_0rw

 

 

 

 

 

 

 

 

 

Processor In Loop, PIL

 

This is a case where you no longer run your coded system in simulation but rather deploy it to a representative microprocessor. While the code is running on the microprocessor, the IO to the plant model is probably connected to your plant simulation via a JTAG or similar high speed bus. This test is designed to expose problems with execution in the embedded environment. For instance, does your control loop fit within the execution time available on the embedded processor. Design iteration slows noticeably at this point as you must both code a and deploy changes to your control system. However, exposing execution issues on the embedded processor are easy to find and fix at this stage.

 

 

 

 

 

 

 

 

 

Hardware In Loop, HIL

 

This is a case where your control system is fully installed into the final control system and can only interact with the plant through the proper IO of the controller. The plant is running on a real-time computer with IO simulations to fool the controller into believing that it is installed on the real plant. In this case, the only difference between the final application and the HIL environment is the fidelity of the plant model and the test vectors that you are using. HIL is often used only for software validation rather than development as the design iteration is very slow at this point. However, this test is closest to the final application and therefore exposes most of the problems that will be seen.

 

 

 

 

 

 

 

 

 

 

 

 

 

Reference : https://kr.mathworks.com/matlabcentral/answers/440277-what-are-mil-sil-pil-and-hil-and-how-do-they-integrate-with-the-model-based-design-approach

https://www.linkedin.com/groups/Difference-between-MIL-SIL-PIL-109866.S.167229094/

 

'임베디드 개발 > 펌웨어' 카테고리의 다른 글

Difference between Cold Reset and Warm Reset  (0) 2023.08.14
Types of IC Packages  (0) 2023.07.24
CAN FD Bus Load Calculator  (0) 2023.06.25
readelf 명령어와 elf 파일 구조  (0) 2023.06.25
JTAG, SWD  (0) 2023.06.25