Embedded software development and BLDC motors
Brushed, and increasingly, brushless DC motors (BLDC), are everywhere in our lives. Converting electrical energy into mechanical energy for a whole range of uses, like fans, rotors on drones, electric bikes and cars, pumps and more. But how do you ensure optimum performance?
Brushed DC motors v brushless DC motors
There are numerous differences between brushed DC motors and brushless DC motors (sometimes called electronically commutated motor (ECM)). A huge part is that brushless motors don’t have copper or carbon brushes within the motor, hence the name.
Brushed DC motors
Brushed DC motors are usually cheaper, initially, but the brushes within traditional DC motors have drawbacks. The brushes wear and cause particulates to build up within the motor and depending on the material used for brushes they can cause sparking—not something you want near fuel lines. Brushed motors also aren’t that efficient due to the friction caused by the brushes, especially at high speeds, meaning you lose some of the mechanical energy you’re trying to generate. Then there is the reduction in electrical conduction when the brushes start to wear out, reducing overall performance.
The brushes on a brushed motor wear down over time and you must replace them to maintain performance levels, leading to extra downtime and maintenance costs. Though when it comes to controlling the motor, it’s easier to create software to do so, but then becomes complicated if you need the software to take into account wear.
Brushless DC motors
Brushless DC motors don’t have any of the above drawbacks. Without brushes inside them, they aren’t at risk of sparking, there’s no build-up of particulates, there’s far less friction produced and that makes them more efficient and safer. The lack of brushes reduces the variables that can affect the performance of the motor.
Better performance at high speed and no maintenance is great, and software can be used to more precisely control the motor, but there is a lot of mathematics involved, making the software more complex. Though thankfully motor control unit (MCU) manufacturers usually provide a motor control library, so that you avoid developing everything from scratch.
But you do need to decide whether you’re going to have just a brushless DC motor or a brushless DC motor with sensors.
To have sensors or to not have sensors, that is the question
There are advantages and disadvantages to brushless DC motors with or without sensors. A lot of it comes down to what the motor is being used to do and cost.
Sensorless BLDC motors are good when you’re dealing with a situation where having a brief delay to achieving the necessary rotations for the motor’s function isn’t a concern (low torque). At the same time, by going with a sensorless motor you keep down some of the cost for the motor by not having sensors. But you also increase the complexity of the software involved with controlling it and this means that the software must work extra hard to calculate positioning.
BLDC motors with sensors (normally several Hall effect sensors or a rotary encoder) are quicker to start and provide more accurate positioning information for armature or rotors and so on. So, you’ll get not only a quick start, but you’ll also achieve the desired speed or torque instantaneously (high torque). When you have sensors on the motor there is basically no need to prime the motor to initialise position. Having sensors also reduces some of the complexity for the controller’s software as it’s no longer having to do complex arithmetic to calculate the motor’s positioning.
Ensuring optimum performance of BLDC motors through software
Software is one of the ways that BLDC motors can be made even more efficient and precise. Getting to the point that the software is controlling the motor in the most efficient way is an easy journey when using an agile development process, where feedback is frequent, and prototyping can be done efficiently.
Depending on your needs, the software can be used to also help monitor key performance criteria, like number of rotations, energy efficiency and time to start up. So, as well as optimising the performance of the motor it can be monitored as well, though this is a great deal easier in BLDC motors with sensors.
Top 3 things to remember during development of software for BLDC motors
A lot is involved in the development process, but here are three things that it really helps to keep in mind:
- Time to MVP takes longer with a BLDC motor
Working with a software-controlled BLDC motor increases the time needed to have a minimum viable product (MVP) that can be deployed for field or user trials, in comparison to brushed motors, as the software is more complex. Regardless of this time to MVP, your software engineers will be able to help you set up your software so that the motor may be tested under numerous scenarios, which can all benefit from an agile development process.
- Frequent feedback helps
The upside of using an agile process is control strategy and user experience can be tweaked to best match users’ needs.
Taking the time to go through a full agile process where software is worked on in sprints means that you’ll be able to get frequent feedback and act on any new learning that has happened. Being able to adjust thanks to feedback is far easier than when a product has gone into full production.
- The overall efficiency of a motor is not completely down to software
Quality software can do a great deal to optimise a motor and ensure that it is running as efficiently as it can. It also means that the software is habitable, scalable and maintainable, which means that when you do need to go back to it, to make further adjustments or to upgrade due to new compliance needs—it will be easier to do so.
But a lot of the efficiency will come down to the kind of BLDC motor that you choose and whether it has sensors. Choosing the right motor for the job greatly helps with efficiency, enabling software to further bring it along.
Looking for BLDC embedded software development?
Our software engineers and testers are experienced in developing for brushless DC motors across a range of implementations, with knowledge of a range of libraries including the ST Motor Control Library.
Contact us today to see how we can help you with your embedded software needs. Please click here