This feature is available since OBLAC Drives 19.0
The general purpose of the velocity control loop auto-tuning is to design controller gains based on user specifications and the identified model of the set-up. The procedure calculates gains for the PI velocity controller.
Before conducting velocity auto-tuning check the following:
The System Identification has been executed successfully
The obtained model corresponds to the current configuration of the system. Otherwise the identification procedure should be repeated
If there is a gearbox in between, the gear ratio should be specified
Make sure that the sensors are mounted properly and calibrated
The procedure uses a linear mathematical model of the system. If there are strong nonlinearities there will be a difference between the actual and the requested performance
Max bandwidth of 100 Hz is specified because of 1 kHz EtherCAT frequency.
The controller gains are updated automatically every time the sliders are dragged and released.
There are 2 sliders that allow users to specify the demanded performance of the control loop:
Damping ratio is a parameter of an oscillatory system that reduces oscillations. In case of the velocity control loop, this parameter controls overshoot and rise time. The damping ratio can be divided into 2 regions:
- Underdamped < 1: overshoot is allowed, sharper responseAn example of velocity control loop step response with damping ratio of 0.4:
- Overdamped > 1 - no overshoot, less sharp response.An example of velocity control loop step response with damping ratio of 2:
Damping ratio higher than 1 may lead to undershoot and non-zero steady state error.
- Bandwidth (also called 3 dB bandwidth) is a characteristic of a control loop that characterizes sharpness of the control loop. Basically, it is a frequency the system may follow while keeping 71% of the amplitude.An example of velocity control loop 10 Hz sine wave tracking with requested bandwidth of 10 Hz:
An example of velocity control loop 10 Hz sine wave tracking with requested bandwidth of 80 Hz:
After tuning your motion control system, you can for example improve performance by using these features:
Removes ripples caused by magnetic interaction between motor rotor and stator.
Digital filters can be used to remove unwanted frequencies such as noise or nonlinear effects.
Applies controller gains which will change dynamically regarding the current speed.
# Do I need to manually adjust controller gains after the auto-tuning?
Usually, sliders provide enough flexibility to achieve demanded performance.
# Can I define other velocity/torque units in the custom firmware?
The auto-tuning will provide gains only for default units.
# What if my encoder has low resolution?
This will definitely result in worse performance compared to higher resolution encoders. Additionally, the velocity signal used in system identification might have multiple zeros that may result in incorrect model.
# Do I have to repeat system identification and tuning after I attached a load to the system?
It is better to repeat both procedures. If it is not possible to repeat the system identification, auto-tuning still can be used. But the resulting settling time will differ from the requested.
# What if the system is unstable after auto-tuning?
Try to input smaller bandwidth
Check the motor and sensor configuration parameters
Check the velocity signal in the playground in the torque control mode. Ensure that it shows correct data during manual rotation of the shaft.
Soften filters in position/velocity control loops. They might introduce delay.
# What if the test signals trigger overcurrent/undervoltage?
Reduce the test signal amplitude or frequency
Check the configuration of the motor and sensor.
Make sure that correct power supply is used.
# How do filters influence the auto-tuning?
Using a velocity filter results in a phase delay based on the filter order and its cutoff frequency. It is recommended to perform a system identification and tuning after filters were configured. Be careful, filters severely reduce stability due to phase delay.