Field-Oriented Control, or FOC, is a motor control method that makes a brushless DC motor or permanent magnet synchronous motor act like a smooth, fast torque source. Instead of switching phases in large steps, the controller continuously shapes the stator magnetic field so it stays at the best angle to the rotor field. This is important in robotics because joints, wheels, gimbals, and grippers need quiet motion, strong low-speed torque, and precise response.
FOC helps a motor produce controlled torque with less ripple, less vibration, and better efficiency than simple six-step commutation.
FOC works by measuring phase currents and rotor angle, then transforming the three phase currents into a rotating d-q coordinate frame attached to the rotor. In that frame, the q-axis current mainly controls torque and the d-axis current mainly controls magnetic flux. Current controllers adjust motor voltages so the actual d-axis and q-axis currents track commanded values, then inverse transforms convert those commands back into three phase PWM signals.
This lets a robot controller request torque directly while the FOC loop handles the fast electrical details.
Understanding Robotics: Field-Oriented Control (FOC)
A brushless motor has three coils in its stator and permanent magnets on its rotor. An inverter connects the battery to those coils through fast electronic switches. It does not simply choose a voltage and leave it there.
It uses pulse width modulation, which sends many short voltage pulses each second. The fraction of time each switch is on controls the average voltage. Motor inductance smooths the changing current, so current cannot jump instantly.
This matters because torque follows current much more closely than it follows voltage. A battery voltage command by itself gives inconsistent results when the load, speed, or battery level changes.
The fast inner loop in an FOC controller is usually a current feedback loop. Sensors measure current in two or three motor wires. Software estimates the third current when needed, since the currents must balance in a motor without a neutral wire.
The controller compares measured current with the requested current, then corrects the inverter output every cycle. Many controllers use proportional and integral control for this job. The proportional part reacts to an immediate error.
The integral part removes small errors that would otherwise remain. A slower outer loop can turn a position or speed error into a torque request. This layered structure helps a robot arm hold a target without making the motor control loop slow.
Accurate rotor angle is one of the hardest practical parts. An encoder gives detailed angle information and works well at zero speed. Hall sensors are cheaper, but their angle resolution is limited and can cause rougher motion.
Sensorless control estimates angle from motor voltages and currents. It can work very well once a motor is moving, but it is less certain at startup or near zero speed because the electrical signals are weak. An angle estimate that is late or early makes some current push in the wrong direction.
The motor then loses torque, heats up, and may vibrate. The electrical angle changes faster than the shaft angle when a motor has multiple magnetic pole pairs, so using the wrong pole count creates a serious control error.
Motor limits still apply even with excellent control software. High current can overheat coil windings, magnets, switches, or wires. At high speed, the motor creates a back voltage that leaves less battery voltage available to force current through the coils.
Torque therefore falls as speed rises. Some drives use field weakening at high speed by applying current that reduces effective magnetic flux. This can extend speed range, but it wastes power and must stay within safe current limits.
Students should pay attention to current sensor offset, encoder alignment, switching frequency, and control loop timing. A robot that shakes at low speed may have poor tuning, noisy measurements, mechanical backlash, or an incorrect motor model rather than a bad motor.
Key Facts
- Three phase currents satisfy ia + ib + ic = 0 for a balanced motor with no neutral current.
- Clarke transform maps phase currents to stationary axes: i_alpha = ia and i_beta = (ia + 2ib) / sqrt(3).
- Park transform rotates into the rotor frame: id = i_alpha cos(theta) + i_beta sin(theta), iq = -i_alpha sin(theta) + i_beta cos(theta).
- For a surface PMSM, torque is approximately T = (3/2) p lambda_m iq, where p is pole pairs and lambda_m is magnet flux linkage.
- In many robotics motors, the usual torque command is id = 0 and iq set by the desired torque.
- FOC needs rotor electrical angle: theta_e = p theta_m, where theta_m is mechanical rotor angle.
Vocabulary
- Field-Oriented Control
- A control method that regulates motor currents in a rotor-aligned coordinate frame to control torque and flux separately.
- Clarke Transform
- A mathematical transform that converts three phase motor currents into two stationary components called alpha and beta.
- Park Transform
- A mathematical transform that rotates alpha-beta currents into d-q currents aligned with the rotor magnetic field.
- q-axis current
- The current component perpendicular to the rotor flux that primarily produces torque in a permanent magnet motor.
- d-axis current
- The current component aligned with the rotor flux that primarily affects magnetic flux and is often commanded to zero in surface permanent magnet motors.
Common Mistakes to Avoid
- Using mechanical angle directly as electrical angle is wrong because electrical angle must be multiplied by the number of pole pairs. This causes the controller field to point in the wrong direction.
- Thinking all current makes torque is wrong because only the properly aligned q-axis component produces useful torque in a surface PMSM. Unwanted d-axis current can waste power and heat the motor.
- Skipping current sensing calibration is wrong because offsets make the Clarke and Park transforms report false currents. This can create torque ripple even when the command is steady.
- Tuning the speed loop before the current loop is wrong because FOC depends on fast, stable current regulation. A slow or unstable current loop makes the outer robot control loop unreliable.
Practice Questions
- 1 A balanced three phase motor has ia = 2.0 A and ib = -0.5 A. Find ic, i_alpha, and i_beta using ia + ib + ic = 0, i_alpha = ia, and i_beta = (ia + 2ib) / sqrt(3).
- 2 A surface PMSM has p = 7 pole pairs and lambda_m = 0.020 Wb. If iq = 8.0 A and id = 0, estimate torque using T = (3/2) p lambda_m iq.
- 3 Explain why commanding a steady q-axis current in FOC can produce smoother low-speed torque than energizing motor phases in six large commutation steps.