Vector Control, also known as Field Oriented Control (FOC), is an AC motor control scheme that enables fine-grained control over a connected motor through the precise management of its phases. This approach allows for smooth and efficient motor operation, making it a popular choice in various applications.
In a recent video, [Excessive Overkill] walks through the basics of FOC, diving into the finer details of how it works and how to implement it effectively. Typically, these controllers use a proportional-integral (PI) loop capable of measuring and integrating the position of the connected motor. This allows for precise adjustments of the applied vector, ensuring optimal motor performance.
If this controller sounds familiar, it might be because it was previously featured in the context of reviving old industrial robotic arms. Whether you’re driving large motors on an industrial robot or much smaller permanent magnet AC (PMAC) motors, FOC is very likely the control mechanism you want to use for the best results.
It’s worth noting that most brushless DC (BLDC) motors are actually a type of PMAC motor, with an ESC (Electronic Speed Controller) providing a DC interface. The actual driving of these motors is handled using two MOSFETs per phase, forming a half-bridge that switches between two rails to create the required PWM signal for each phase.
Choosing the right type of MOSFET was somewhat challenging, especially due to the high switching currents and the high switching frequency set at 25 kHz. This frequency was selected to prevent audible noise during robot operation. In the end, SiC MOSFETs were chosen, specifically the GeneSiC G3R30MT12K.
An interesting feature of these MOSFETs is their four terminals, including a fourth Kelvin Source pin. This addition helps address potential gate drive issues, a topic explained in detail in the video.
With the hardware in place — whether you follow the [Excessive Overkill] GitHub projects or not — what truly makes it all work is the software. This is where the microcontroller plays a crucial role, as it handles the heavy lifting of calculating the optimal vector and determining the current levels for each phase.
In this particular controller, an STM32F413 microcontroller is used. It generates the PWM signals to drive the half-bridges while reading measurements from the motors via its ADC, providing precise control over the motor’s behavior.
By leveraging FOC and the right combination of hardware and software, you can achieve smooth, efficient, and highly responsive motor control for a wide range of applications.
https://hackaday.com/2025/10/20/high-performance-motor-control-with-foc-from-the-ground-up/