We all know software is a difficult skill to master and there are tremendous differences in developping software for:
- PC/desktop applications
- mobile/tablet applications
- … and real-time embedded control applications such as power electronics applications
While in all cases a software bug may lead to important financial and human losses (directly or indirectly), the case of embedded software for power electronics application is special since it is meant to directly control the flow of energy from a source (battery, solar, etc.) to a load (electric motor, power network, etc.), not a flow of informations/signals/data is in a typical software application.
Impact #1: System component destruction
It means that a software bug may lead in the bad management of the flow of energy which can itself cause the destruction of components such as power stage (“shoot-through” faults), electric motor (“overcurrent” faults) or electric motor load (pump damage caused by cavitation for example).
Of course, proper installation of electrical equipement protection (i.e. fuses) can prevent most of the damage that may happen on the system components in case of a bug (overcurrent), but not all of them. For example, noise in a transducer may lead to torque ripple which may lead over time into electric motor bearing problems. This is the whole idea of electric motor “condition monitoring”, i.e. tracking over time the state of healt of the motor in order to : (1) detect faults (is there a fault, what component ?) and (2) diagnose faults (what is the cause of the fault, how severe the fault is). Those further interested in the subject may read this article.
Impact #2: Unique embedded motor control software development process
Hence, the development of motor control software needs not only software programming and digital signal processing skills, but it also needs deep “domain knowledge” experience related to power electronics, electric motors, transducers and the type of application where the software is going to run (in a home appliance or in an electric vehicle ?). More on this in a previous blog article. This point is not unique to power electronics software, the same could be same for embedded computer vision software (i.e. smart camera).
However, since motor control software bug may lead to component destruction, this has an impact on how the motor control software development and testing process is going to be made. Blowing a power stage is expensive and takes time to repair : it means you cannot afford to simply “develop some code and test” just like you would while developping a PC/mobile software application. It means you need to be sure that when you are going to turn the power switch on, you are not going to destroy your system.
How can you do that ? Well, you know my pitch on this.