Cogging Compensation


Cogging is an effect caused by magnetic interaction between motor rotor and stator. It results in torque ripples over the motor revolution, which leads to uneven motion or generally unsatisfying performance of the motor at low velocities. This phenomena is of particular concern in low-cost motor models, but can be compensated on a software level.

Cogging compensation is a software feature that suppresses torque ripple of electric motors, it is an important measure to overcome vibration problems in precision applications.

When cogging compensation is activated, an additional torque component is generated actively by the motor in order to compensate the cogging torque. The compensation feature makes use of the fact that cogging torque is dependent on the single-turn motor position, so it is identical for each revolution. To find the amount of compensation torque needed at each motor position, a recording procedure has to be performed before the compensation itself can be used.



For executing the cogging torque recording the Motor must not be mechanically blocked and ideally must have no load attached.

The recording procedure performs the following steps:

  • Initiate Auto-Tuning to find controller gains needed for low velocities. These gains are used only for the recording process
  • Rotate the motor for several turns in one direction and then in the other to record a cogging torque table
  • Repeat the procedure one more time to record another table, which is the final table saved to configuration (the first table recorded is used for a better control during the second run, i.e. compensate for possible lower quality of controllers tuning and disturbances)
  • During the recording procedure motor rotates at speed v = 10 / n_motor_pole_pairs
  • The recording takes approximately 2 minutes
  • After the table is created, the initial velocity controller gains are restored


As a first step, the motor configuration must be set, especially the correct number of pole pairs. The commutation offset detection procedure must be executed first.


The cogging compensation recording procedure is started by enabling the manufacturer specific operational mode (COGGING COMPENSATION RECORDING) and setting the status of the Cogging compensation record (0x2008:1) to 1 (SCHEDULED).

After the recording procedure is finished, the cogging compensation table is automatically saved to flash memory.

Using Cogging Compensation during operation

During the start-up of the device it is checked if the cogging table exists in the flash memory and if it exists, the table is communicated to a torque controller. The state is generated accordingly:

  • 0 (no table exists)
  • 5 (table exists)


The algorithm isn’t triggered automatically but must be enabled or disabled by using a record Cogging compensation 0x2008, subindex 2 (cogging compensation enabled).

By enabling the cogging compensation algorithm, the table communicated to the torque controller is added as a set of values to the torque reference value depending on the motor position. If the algorithm is disabled, this is skipped.


1 State

State of the cogging compensation table. Possible values:

0 - NO DATA (there is no cogging table in the memory 1 - IN PROGRESS 2 - SAVING (recording is done and table is being saved to the memory) 3 - DATA EXISTS (cogging table exists and is saved in the memory)

2 Enabled

Enables or disables the cogging compensation feature. Set to 0 to disable or to 1 to enable the feature.

Parameters needed for Cogging Compensation.