Reference

The article introduces the Arduino_FOC library, a powerful tool for controlling BLDC motors using field-oriented control (FOC), emphasizing its benefits in precise torque and speed control, noise reduction, and smooth commutation.

Library

Download the Arduino_FOC library. This library includes open- and closed-loop control of the position, speed, and torque of a BLDC motor. It supports both the Arduino and ESP32 development boards. You need to adjust the parameters in the code based on the motor parameters.

Principle

What is FOC?
Field-Oriented Control (FOC), also known as vector control (VC), is currently one of the most effective methods for efficient control of brushless DC motors (BLDC) and permanent magnet synchronous motors (PMSM). FOC aims to precisely control the magnitude and direction of the magnetic field, resulting in smooth torque, low noise, high efficiency, and fast dynamic response.

Advantages of FOC:

  1. Low-Speed Control
    Due to differences in control principles, brushless ESCs can only control the motor at high speeds and are difficult to control at low speeds. FOC controllers, on the other hand, have no such limitations and can achieve precise control at any speed.
  2. Motor Commutation
    For the same reasons as above, sensorless ESCs lack rotor position feedback, making it difficult to achieve forward and reverse commutation. However, FOC drives offer exceptional commutation performance, enabling very smooth forward and reverse switching at maximum speeds. Furthermore, FOC can also provide braking control through energy recovery.
  3. Torque Control
    While conventional ESCs can only control motor speed, FOCs offer closed-loop control of current (torque), speed, and position.
  4. Noise
    FOC drives are significantly quieter than ESCs because conventional ESCs use square wave drive, while FOCs use sinusoidal wave drive.

Other Supplementary Information

Was this article helpful?

TOP