Gain scheduling for servo drive optimization
What is gain scheduling?
Gain scheduling is a control technique in which the PID controller parameters are dynamically adjusted to the current operating situation—typically depending on the motor speed. Instead of a single fixed set of parameters, the controller switches between different gain sets depending on whether the axis is moving slowly or quickly.
Why is this important?
Real mechanical systems are nonlinear. A robot joint behaves differently at low speeds (where static friction dominates) than at high speeds (where inertia and viscous friction dominate). A single set of PID parameters optimized for one speed range will often perform poorly in the other:
- Gains optimized for high speeds may be too sluggish at low speeds and cause poor tracking performance.
- Gains optimized for low speeds may be too aggressive at high speeds and cause oscillation or instability.
Gain scheduling solves this problem by assigning the appropriate parameters to the controller in each operating range.
How does it work?
The SOMANET implementation uses two sets of controller parameters:
- Low-velocity gains — optimized for behavior close to standstill (static friction, friction effects). Typically higher gains for faster response.
- High-velocity gains — optimized for dynamic movement. Typically lower gains for system stability.
Two speed thresholds define the transition:
- Below the low velocity limit: Low velocity gains active
- Above the high-velocity limit: High-velocity gains active
- Between the limits: linear interpolation between both parameter sets
This ensures a smooth transition without any jumps in the control behavior.
Tuning sequence:
- First, tune the high-velocity gains (standard auto-tuning or manual).
- Then tune the low-velocity gains separately.
- Set speed thresholds to define the transition range
The parameters are stored in the Object Dictionary under 0x2013 with 18 sub-indices.
How does SOMANET implement this?
Gain scheduling is available on all SOMANET drives within the cascaded position controller. The function is currently configurable as an experimental feature via direct EtherCAT parameter access. The position controller must be set to Cascaded PID Mode (0x2002).
This feature is particularly valuable for:
- Robot joints with high transmission ratios (significant friction variation across the speed range)
- Linear axes with changing load conditions
- Applications that require both precise low-speed positioning and fast traversing movements
Further links: