Manual Tuning of the current controller

For a three-phase PM motor, the torque generated in the motor is directly proportional to the RMS value of motor phase currents.

The model-based feed forward controller is configured by motor pharameters such as motor phase resistance and inductance.

There are two main challanges in implementing such controller in real-time systems:

  • model mismatch

  • sensitivity to the measured noise

To compensate model mismatch, an integrator is added to current loop controllers. The controllers are damped to reduce the sensitivity to noise.

Depending on the required bandwidth of the application, the user can change the default tuning configuration of the current loop controllers.

Manual tuning guide

The controller can be tuned similar to a PI controller. Controller constants (Kp and Ki) are of type integer, and their possible range is [0 - 1,000,000].

The default values of controller constants are Kp = 2,500 and Ki = 40,000. In most applications, these default values result in stable (but not sharp) controller behavior. In case the user wants to improve the tuning of current loop controllers, the following steps are suggested:

  • Set Ki = 0 (and Kp = 2,500)

  • Enable the controller in CST mode, and evaluate the torque (or current) controller step response. The current loop step response can be directly evaluated by using a current probe and an oscilloscope. In case OBLAC Drives is available, the torque controller step response can be evaluated by monitoring the “target torque” and “torque” in “tuning” tabs.


In the entire procedure of tuning, the rotor should be blocked (fixed angle).

  • Increase kp by 50% and evaluate the step response. Repeat this step until the response reaches 80% of the reference value.

  • Set Ki = 1,000.

  • Increase Ki by 50% and evaluate the step response. Repeat this step as long as generated overshoot is below 10% of the reference value.

In case monitoring the step response (either by using a current probe and oscilloscope, or by using OBLAC Drives) is not possible, the following rules of thumb can help in fine tuning the current loop controllers:

  • Set Kp = 2,500 and Ki = 40,000

  • Increase Kp by 20%, and send a step torque command with a period of 1 second and amplitude of 5% of rated value.

  • Repeat this step until a vibration is felt in the system.

  • This vibration means that the system is close to its instability margine. At this point reduce the kp by 30%.