Field Weakening¶
Background¶
moteus controllers are used to operate permanent magnet synchronous motors (PMSM). In normal operation, the maximum no-load speed that can be achieved by a PMSM is determined by:
With moteus, there are two further constants that are multiplied in, the space vector modulation constant, and the maximum modulation factor constant. As of 2026, these combine to roughly:
This limit occurs because the controller can only apply torque when the supply voltage is greater than the back-EMF generated by the motor while it is in motion. It is possible to apply current in the non-torque generating axis (the D axis) to reduce the effective back-EMF constant and thus increase the effective Kv constant. This effect is called "field weakening". The magnitude of this effect depends upon motor construction. Typically, interior permanent magnet synchronous motors (IPMSM) are capable of relatively large amounts of field weakening at moderate power expenditure. Most hobby and low-cost brushless motors are surface permanent magnet synchronous motors (SPMSM) for which field weakening is sometimes possible at reasonable power budget and sometimes not.
moteus has support for operating in the field weakening regime and thus extending the maximum achievable speed a motor can achieve for a given supply voltage. This has several caveats:
- Power: The power required to operate a motor will be the same or larger when field weakening is enabled. When field weakening is used, additional power will start to be used slightly before the no-load speed so that maximum torque can be achieved. At higher speeds, the power consumed by the supply and dissipated as thermal energy in the motor and controller can be very large. The amount used is also proportional to the maximum configured current, so if the full amount is not required for your application, lowering
servo.max_current_Amay be helpful. - Calibration: Field weakening relies on the specific value of the D axis inductance. For many motors, this value can change significantly at different values of D axis current. In order to operate stably, moteus requires a longer calibration step to measure this D axis inductance saturation scale effect.
- Stability: For some motors, moteus must be calibrated at a higher
--cal-bw-hzto operate at a speed in the field weakening regime than would be necessary if the supply voltage were high enough to not require field weakening. Calibrating at a higher--cal-bw-hzwill result in increased audible noise at all speeds. - Hardware Limits: Even when field weakening is enabled, moteus will restrict the maximum speed to be no more than what could be achieved if the used moteus controller was supplied with its maximum rated input voltage. Thus if you are already operating your controller near the maximum rated board voltage, there may be minimal or no gains in speed achievable through field weakening.
The moteus performance analysis tool can be used to estimate the power required and performance when field weakening is enabled or disabled for a given system.
Usage¶
Using field weakening with moteus requires calibration procedures and configuration values to be set. Additionally, there are diagnostic values which can be monitored.
Calibration¶
When calibrating, it is recommended to perform the D axis inductance scale procedure.
This will require several minutes of operation and may require active cooling of the motor or controller in order to succeed.
The calibrated L_d scale will be nearly the same for all copies of a single motor design, so this parameter can be copied from controller to controller so that the calibration only needs to occur once across multiple instances.
Configuration¶
To enable field weakening operation, use this configuration:
servo.bemf_feedforward should be set to 1 when field weakening is used so that the controller can properly anticipate the back-EMF voltage and maintain stable operation at high speeds.
Monitoring¶
When in operation, there are some diagnostic values that can be monitored:
servo_stats.motor_base_velocity: This is the speed at which field weakening begins. Above this speed, additional power will be applied to the motor, increasing with speed, to enable operation above the no-load speed.
servo_stats.motor_max_velocity: This is the maximum speed moteus will permit. Note that this is not a continuous rated speed, as temperature of the board or motor may rapidly exceed configured limits when operating at large levels of field weakening.
servo_stats.fw.id_A: The amount of D axis current currently being used to decrease the back EMF constant.
Limitations¶
- Board maximum voltage: moteus limits field weakening speed such that the back EMF produced by the motor never exceeds
servo.max_voltageminus an appropriate margin - Maximum D axis current:
servo.fw.max_current_ratiois multiplied byservo.max_current_Ato determine the maximum D axis current that can be used for field weakening - Thermal performance: Field weakening operates by applying more power to the motor. This means it will increase in temperature faster, reducing thermal performance.