Topic:
Autotuning leads to stable control parameters in most cases, but for some specific application requirements it may sometimes be desired to further optimize these results.
- Are there any "best practice" hints present how the automatically determined control parameters can be further optimized, e.g. to achieve a higher dynamic (= more aggressive control behavior) or to better suppress oscillation tendencies in case of varying load or friction?
General remarks:
- Velocity and position control parameters depend on the motor's load.
- Especially in case of a direct drive (i.e. a motor without a gear) or no high gear ratio, the velocity and position tuning should be processed with the load attached to the motor's resp. gear's output shaft.
- In case of motor combinations with high gear ratio's (above 100:1 and equal or more than 3 stages) the load will have no remarkable impact and tuning without the load attached will provide control parameters which still fit quite well independent of the load in most cases.
- There is no simple "Yes" or "No" possible what are best control parameters?
Finally this also depends on an application's focused motion requirements:- In same cases a fast dynamic reaction is mainly focused and some overshoot can be accepted.
- In other cases an overshoot has to be avoided and the motor should hit the "Target position" quite precisely almost without any overshoot or oscillation.
- Sometimes audible noise due to mechanics (or resonance frequency) might be a topic which has to be optimized. In this case smooth but less dynamic parameters might be focused (i.e. the P gain might have to be reduced strongly).
Solution:
I.) Current control
In general, the current controller does not need to be modified when manually tuning the velocity or position controller.
- In case of slotted motors and especially with EC-i motors the aggressiveness of the autotuned current controller may be relatively low. In this case, if the user wants to increase the gains of the position and/or velocity controller, then it is recommended that they increase the current control gains (move the tuning slider to the right) beforehand.
II.) Single loop velocity control with lowpass filter
Initial action:
If observer was initially chosen, then switch to lowpass filter.
Next action steps:
1. Execute autotuning initially.
2. Feedforward parameter modification (during manual tuning):
- Write down feedforward values
= keep the autotuned feedforward values in mind to set the identical values after manual tuning is finished later on. - Set feedforward values to zero
3. Select your "manual tuning" strategy depending of your aim:
- If the controller is not aggressive enough (e.g. low frequency oscillations, large following error), define scaling factor “k” larger than 1 (suggestion: 2)
- If the controller is too aggressive (e.g. high frequency oscillations),
define scaling factor “k” between 0 and 1 (suggestion: 0.5)
4. Modify the autotuned parameters
- Multiply P-gain by k
- Multiply I-gain by k^2
- Multiply lowpass "Filter cutoff frequency" by k
(This value is just present and can be adjusted by FW >= 0x170 only!)
5. If control performance is not yet satisfying, return to step 3.
Otherwise restore values of feedforward gains and stop.
III.) Single loop position control
1. Execute autotuning initially.
2. Feedforward parameter modification (during manual tuning):
- Write down feedforward values
= keep the autotuned feedforward values in mind to set the identical values after manual tuning is finished later on. - Set feedforward values to zero
3. Select your "manual tuning" strategy depending of your aim:
- If the controller is not aggressive enough (e.g. low frequency oscillations, large following error), define scaling factor “k” larger than 1
Initial suggestion: k = 2 - If the controller is too aggressive (e.g. high frequency oscillations),
define scaling factor “k” between 0 and 1
Initial suggestion: k = 0.5 - Remark:
'k' is no EPOS4 parameter but a multiplication factor in use by the following manual "P-Gain", "I-Gain", and "D-Gain" adjustment formulas.
4. Modify the autotuned parameters
- Multiply P-gain by k^2
- Multiply I-gain by k^3
- Multiply D-gain by k
5. If control performance is not yet satisfying, return to step 3.
Otherwise restore values of feedforward gains and stop.
Additional notes:
- In general, the roles of the PID control gains may be described as follows:
- Proportional gain: The main workhorse.
- Integral gain: Compensates constant too low-frequency disturbances, but causes overshoot and oscillations if too large.
- Derivative gains: Compensates high-frequency disturbances, but causes vibrations if too large.
- In general, the feedforward gains do not need to be modified after autotuning.
- During manual tuning it is recommended to set the feedforward gains to zero because, in this way, the effect of the manual modifications is much easier to evaluate.
- Finally the initially autotuned (and kept in mind) feedforward values have to be set again after manual tuning are finished.
- By multiplying the gains by different powers of the scaling factor “k”, the balance between the gains is maintained.
-
It is possible to right-click into the graphics (present after tuning) to ...
-
... activate a cursor.
The cursor gives a better chance to check the concrete values of the recorded data. -
... save the recorded data as a *.csv file (which can be checked by Excel or loaded by EPOS Studio's "Data Recorder" tool) later on again.
If you want to share tuning results or generally any EPOS Studio "Data Recording" with us, we prefer to get these .csv files plus the EPOS4 resulting *.dcf configuration file (-> EPOS / IDX: Export of parameter configuration in a *.dcf file).
-
Special cases:
- In case of a high inertia and some quite specific mechanical system designs tending to strong oscillation during tuning and operation, the P gain might have to be strongly reduced finally (e.g. even by a factor of 100 or more).
- If autotuning fails and the user does not have an initial set of gains to work with, then they may follow a manual tuning algorithm like the one by Ziegler and Nichols.
Example:
EC45flat (P/N: 251601) + gear GP23C (P/N: 166931) plus some conveyor belt with strongly differing friction.
- Initial state after autotuning. The conveyor belt has some unsteady friction resulting in some unsteady oscillation.
If you want to reduce this oscillation, the gains have to be increased. - Applying some scaling of k = 2 to the gains based on the rules of "Single loop velocity control" above, i.e. P-gain = P-gain * 2, I-gain = I-gain x 4)
- Applying a scaling factor of k = 2 once more again:
The control error has become even smaller but now the system oscillates at a speed value of 0 rpm. Finally it will be the decision of the system designer whether the oscillation at 0 rpm can be tolerated (e.g. because the control might be disabled at 0 rpm anyway) or the control parameters of the manual tuning step before are satisfying for the application.
Cross reference:
If you are looking for some hints about manual optimization of maxon ESCON's control parameters, please check this linked Support Center document:
-> ESCON: Hints about manual control parameter tuning
Comments
0 comments
Article is closed for comments.