Explanatory Note: The text below contains some recommendations on how to develop a modern motor controller. It contains some recommendations to help the designer to get the job done relatively quickly without an infinite struggle with doubts and discussions at every possible aspect of the project. The text does not pretend to be academically rigorous, rather it is more about practical ways of solving particular problems. Quoting Captain Barbossa: “This is more a set of guidelines than actual rules.”
Many of us come to this idea at one moment of our lives – to the idea of developing a custom brushless motor controller. It may arise for different reasons: you’re building a high-end vehicle with very specific requirements or you just need a decent controller. There is a certain set of steps that are to be taken to achieve this goal, all of which involve knowledge from different fields. It may be difficult for a single person to be competent in all these fields so this text describes an easier way of completing this challenge successfully. It reduces the skills and competencies needed and also drastically reduces the development time.
Let’s list all the stages of custom ESC development (supposing that high-level requirements like power level, input voltage range etc. have already been put in place):
All these steps, although they may not be that simple, take a finite amount of time. The last ones, however, may take forever and never be completed:
The problem with programming and debugging motor controllers (and power electronics in general) is that they require the developer to be familiar with motor control theory, linear algebra, common electrodynamics and, of course, embedded real-time programming. The means of debugging such systems is very limited too, as the process under control is very fast and involves high-energy transitions. It is impossible to just halt the MCU and inspect its internal state or to use other conventional debugging methods like printing out the variables to the serial output. Besides, if something goes wrong it often causes hardware damage so perfect repair and soldering skills would be helpful.
A few of words about reliability should be made. In many cases, a controller is intended to control a motor mounted on some kind of aerial vehicle. This imposes special reliability requirements because a controller failure may lead to catastrophic consequences, not least the aircraft will be most probably critically damaged. This means that the software must be very reliable which can only be achieved by following standards like MISRA and doing lots of testing.
Conspicuously, the development of a motor controller from scratch is a major effort and one in which results are not guaranteed. But there is a way to avoid most of the challenges involved: use an integrated module for PMSM/BLDC motor control to do all the heavy lifting. This is what Zubax Mitochondrik LV does. Of course, even with this help, the whole development process will be hardly a piece of cake but it does simplify it a lot. The main advantages are:
Therefore, the application of Mitochondrik LV in motor controller development leaves the designer with many fewer problems to solve.
Below is an example of controller development using Mitochondrik LV using a Zubax Komar controller.
The initial requirements of the controller are: