Typhoon HIL Blog


Continuous Integration with HIL: fully automate power electronics control software testing

Posted by Ivan Celanovic on Dec 9, 2016 10:45:54 AM

Topics: Smart Inverters

CI icon v2.pngContinuous Integration (CI) is a standard software development practice that requires developers to integrate code into a shared repository at least once a day. Each software commit is then automatically built and tested, allowing developers to detect and fix problems early. By integrating developed code regularly, you can detect errors quickly, and fix them in a timely manner.

 

Although this is a standard practice in computer and embedded software development, CI was impossible to apply to power electronics software development until recently.  Indeed, once the control firmware/software developers commit their daily changes to the version management repository (e.g. SVN or a Git) the build needs to be tested in the power lab.

 

Testing daily builds in a power lab is very expensive, and extremely slow (especially compared to software development time constants). Even if we neglect the cost and complexity of testing new software/firmware builds, by the time test results are back from the lab, the software guys have already committed multiple new code revisions. And then you need to fix bugs multiple commits later which disrupts the whole process.

Ultra-high fidelity Hardware in the Loop (HIL) simulation, now for the first time, enables a complete Continuous Integration process for power electronics software.

CI-diagram-v2.jpg

 

CI for power electronics becomes extremely simple and effective thanks to HIL technology: Developers integrate their code into a shared repository for example at the end of the work day. Then the new software commit is then automatically built and ported to HIL simulators comprising of real controller hardware interfaced with HIL simulation.

 

No power, no hassle.

 

This now allows developers to see test reports every morning so they can fix problems early before they continue to develop new code.

 

Again, by integrating developed code regularly, you can detect errors quickly, and fix them in a timely manner.

 

Recent Posts