The generalized algorithm first calculates a field excitation vector which is necessary to magnetize the rotor in a particular direction. The more general version is doing the same without the assumption of permanent magnets, for example in an induction motor. And if you’re up for a real challenge, why not 3D print the motor too?įOC is a special case of a vector control algorithm which forms a proper rotating magnetic field instead of simply switching the currents on and off.
If BLDC motor control has your interest piqued, have a look through our archive for other BLDC motor control projects, including motor/controller hybrids, anti-cogging control schemes, and other low-speed position controllers. With a healthy community emerging around the project, we’ll keep our eyes peeled for more projects that build off of this fantastic reference design. While the project kicked off last year, it’s undergoing continuous improvements including added support for current sensing and torque control in addition to position control.
Best of all, the source code has been offered for your enjoyment under a generous MIT License. And if you’re looking to share your project or ask questions, you can pop into the community forum for some high-fives and tips. For implementation details, theory, and setup, there’s a healthy set of documentation to reference. From there, you’ve got a pretty wide range of micros to choose from as the library has been extended to work on the Arduino, Teensy, STM32, and a few other microcontroller families. While you can certainly design your own control board, you can also start with the SimpleFOC motor shield for a single motor pulling up to 5 A of current. SimpleFOC has been implemented to extend to a variety of possible implementations. With the library at your fingertips, you don’t have to! And with that, the hardest part of brushless motor control has been made simpler with a solution that’s almost plug-in-and-play.
Implementing the algorithm, though, can get a bit tricky since it touches bits of linear algebra, motor physics, and control theory. Doing so requires that your processor measure both motor current (think: shunt resistor) and rotor position (think: encoder). The sum of their efforts is captured into the SimpleFOC Project in the aim of bringing precision BLDC control to a wide community of new hackers.įield-Oriented Control is a BLDC motor control scheme that involves using a microprocessor to control the stator winding current in such a way that it always applies torque to the rotor. They’ve taken the field-oriented control algorithm and encapsulated it into a compact Arduino library, added a host of examples, and minted a stackable BLDC motor control shield to boot. The control schemes needed to run them slowly or precisely go deep into motor theory and might put these motors out of reach for your next homebrew robot project. Brushless DC (BLDC) motors are standard fare in low-precision, speedy RC applications.