How to tune the current direct/quadrature loops outside of the Configuration Wizard
Problem
When working with Electrical Identification step of the Configuration Wizard, in the majority of the cases there should be not problems and you should get a great result but there are some cases in which you can run into issues:
- Low inductance motors
- Motor with which the default parameters of the identification algorithm do not work well
- Improper setting of option codes and motion limits
- Improper setting of rated/peak/max currents
- External power supply with insufficient output current capacity
In these cases, you might want to consider tuning the current direct/quadrature loops outside of the Wizard (since this is what the Electrical Identification does also) so that you can move on to the next step. This tutorial explains exactly how to do this.
Solution
In order to tune the current direct/quadrature loops outside of the configuration Wizard, the first that needs to be done is to change the following parameters (either in the Drive Explorer or the Control):
- Set the commutation feedback sensor and reference feedback sensor to the internal generator → write a value of "3" to 0x151 and 0x153 key addresses
- Set the generator mode to constant → write a value of "0" to 0x380 key address
The second change is especially important since this will halt the motor in a position so that you can perform the tuning of the current loops without the motor moving. In addition to these changes, there are a couple of changes that we recommend doing in some cases:
- Low inductance motors → when dealing with low inductance motors, you should change the default PWM frequency of 20 kHz to either the 50 or 100 kHz option in order to have better controllability of the current: https://novantamotion.atlassian.net/wiki/spaces/TSD/pages/283803777
- Motors with rated current significantly below the rated current of the drive → if your motor has rated/peak currents below ~10-20 A it might be advisable to adjust the current sensing gain to get a higher resolution in your current sensing: How to change the current sensing resistor gain of my Everest in MotionLab3?
These last 2 changes are not mandatory but highly recommended for getting the best results in your systems. In some systems (low current & inductance) they might be completely necessary.
After doing this, you can proceed to open the Tune workspace of either current direct or quadrature and start tuning the loops. An easy approach to do this is the following (assuming you start from 0 gains or with gains with a very small value):
- Start by increasing the proportional gain until the steady value does not get any closer to the target (this is the same as saying that the steady-state error does not decrease anymore). Do not increase Kp beyond this point or you will only be adding oscillations and unstable behavior into the loop.
- Start increasing the integral gain until the steady error between the actual value and the reference/target value becomes 0 (both signals overlap). Do not increase Ki further or you might introduce overshoot or steady oscillations once the target value is reached.
Before beginning with the tuning
In the case that the identification has given gains that look abnormally large (Kp > ~30-40 and/or Ki > ~15000/20000), we recommend to reduce the values of Kp and Ki to 0 and start from the beginning. This is because trying to tune one of the loops while the other has these large gains might give abnormal results that are not desired.
A note on Kr
Remember that tuning the current direct/quadrature loops also includes setting the value of parameter Kr. Kr is a gain that ranges from 0 to 1 and that is used to change the scheme of the controller. Kr = 0 means an I+P controller and Kr = 1 means a PI controller. Understand also that the same Kp and Ki gains will not give the same tuning if you change Kr.
Closed-loop estimated bandwidth
For those concerned about bandwidths, even though you can tuned the PI gains of the current loops outside of the Wizard, it does not mean that you can get an estimation of what closed-loop bandwidth you should achieve for such PI gains. In order to get this, you just have to go to the Electrical Identification step of the Wizard and do the whole process but skipping the "Controller Design" section. Instead, go directly to verification and once you succeed in that you will get the estimated closed-loop bandwidth for your tuning shown in the Terminal.
After successfully tuning the current direct and quadrature loops you can return to the Feedbacks step of the Configuration Wizard to configure all the feedback sensors that you have in your system. It is important to have a proper tuning in these loops since they will be used to perform all the sensor calibration and phasing tests performed for each feedback sensor.