Hardware in the Loop

You may have heard of Hardware In the Loop (HIL), but at first glance it looks like something that is just reserved for fancy math nerds or engineers in big companies with access to Matlab and the crazy expensive packages that are required to do HIL.

So what is it exactly?

Hardware in the loop is quite literally putting your controller inside another control loop. This allows an external system to adjust and stimulate your control to optimize it’s performance. Say you have some sort of PID loop that needs a lot of finicky manual calibration that often needs to be done by a human. Once this device is able to be automatically controlled by an external system with more resources, that system can find those calibration constants to give you the best response possible. This can often be done by trying hundreds or thousands of combinations of variables to find the right ones.

Why should I bother to implement it?

Of course this path not be the way to go for every project… One offs or things that are primarily digital like a display may not be terribly useful to put into an outer control loop. But even if you have a moderate volume on a device that may have lots of different systems it could be deployed on, you could certainly save some significant time and effort by getting an HIL system up and running.

Getting started

  • Setup and interface

Override your control system

Send a stimulus

  • Change an output on the controller

Monitor feedback

Hardware in the loop or HIL is a great feedback setup that allows you to directly control your hardware and verify functionality without having to write a ton of low level code to get things going.