Motor (Brushless) Commutation Overview

Commutation is the process of directing electrical current to the motor phases based on the motor position. This process makes sure that the motor produces the maximum torque or force. In brushed motors, mechanical parts switch the current. In brushless and stepper motors, the drive firmware and hardware control the commutation using sensor feedback or open-loop commands.

The Commutation Process

Commutation has two phases: 

  • Initialization: The drive determines the electrical angle of the motor the first time you enable the axis after a controller reset.

  • Update: As the motor moves, the drive continuously updates the commutation angle so that the motor maintains the maximum torque or force. This phase can only occur after initialization.

Commutation Initialization

During initialization, the drive uses sensor data to calculate the electrical angle of the motor. Use the Initialization Method setting based on your hardware in the CommutationInitializationSetup Parameter. Refer to the table that follows.

Table: Initialization Methods

Method Requirements Notes
Absolute Encoder Motor with an absolute encoder

The drive uses the raw absolute position value from the absolute encoder and the CommutationOffset Parameter to determine the electrical angle of the motor immediately after you enable the motor for the first time after a controller reset. Motion is not required for this method.

You can use the Absolute Encoder Alignment Module to help you determine the correct value for the CommutationOffset Parameter.

Hall-Effect Switches Motor with Hall-effect sensors

The drive immediately partially initializes commutation the first time you enable the motor after a controller reset. The drive then starts to commutate the motor in six-step mode. The drive monitors the state of the Hall-effect switches. When the state transitions, the drive uses the electrical angle at which that transition should occur and the CommutationOffset Parameter to determine the electrical angle of the motor. The drive then completes initialization.

You can use the Motor Phasing Module to help you determine the correct value for the CommutationOffset Parameter.

Auto-MSET* The motor must be able to move at least 1.5 electrical cycles when you enable it the first time after a controller reset. It also must be free of external forces (e.g., gravity, springs, etc.).

The drive uses open-loop current commands to determine the electrical angle of the motor. This process can take up to 10 seconds and can cause the motor to move up to 1.5 electrical cycles. Auto-MSET is better than Commutation Search for stages with friction.

See the Automatic Motor Set (Auto-MSET) page for more details.

Commutation Search* The motor must have near-zero friction (e.g., air bearings) and must be free of external forces (e.g., gravity, springs, etc.).

The drive uses open-loop current commands to determine the electrical angle of the motor. This process completes in a few seconds and can cause a small amount of motion.

See the Commutation Search page for more details.

*Precision of commutation can change between controller resets. For consistency, set the CommutationInitializationAngle Parameter, and enable the Override Angle on First Home bit in the CommutationInitializationSetup Parameter. Use these parameters to make sure that the drive commutates the motor consistently, even if the initialization method does not give repeatable results.

The drive typically only has to initialize commutation one time after a controller reset. This occurs the first time that you enable the axis. But, there are some conditions in which the drive must initialize commutation again. These include: 

Commutation Update

After the drive initializes commutation, it updates the commutation angle. Refer to the Update Method setting of the CommutationInitializationSetup Parameter for more information about how the drive uses each method.

Required Parameters

For successful commutation, you must set the parameters that follow: 

Troubleshooting Faults

The faults that follow are related to motor commutation: