Dual-loop position control with two encoders
What is dual-loop position control?
Dual-loop position control is a controller architecture that uses two encoders—one on the motor side and one on the load side—to actively compensate for gear backlash and mechanical compliance. The load position is measured directly rather than calculated from the motor position.
Why is this important?
In every drive train with a gearbox, belt, ball screw drive, or flexible coupling, there is a mechanical decoupling between the motor and the load. A conventional controller with only one motor encoder cannot "see" what is actually happening on the load side:
- Gear backlash — the dead zone between the tooth flanks leads to position errors that the motor encoder does not detect.
- Mechanical compliance — elastic couplings and gearboxes cause oscillations between the motor and load sides.
- Chattering and hunting — the controller can become unstable when it responds to the motor encoder while the load exhibits completely different behavior.
How does it work?
The architecture uses the same cascaded structure, but assigns a specific function to each encoder:
- Motor encoder → Commutation and speed control (inner control loop)
- Load encoder → Position control (outer control loop)
The outer position control loop compares the target position with the actual load position (from the load encoder) and outputs a target speed. The inner speed control loop compares this with the motor speed (from the motor encoder) and generates the torque command.
The decisive advantage: the inner control loop stabilizes the motor quickly and rigidly, while the outer control loop corrects everything that happens after the motor—gear play, deflection, compliance.
Important prerequisite: The transmission ratio (0x6091) must be configured correctly, as all speed values are specified in the reference frame of the output shaft.
How does SOMANET implement this?
SOMANET Circulo servo drives support up to two integrated absolute encoders (up to 20-bit resolution) without additional cabling — ideal for dual-loop applications in robotics. The encoder assignment (commutation, speed, position) is configured via the Object Dictionary (0x2012:9 for the position encoder, 0x2011:5 for the speed encoder).
This feature is particularly valuable for:
- Robot joints with harmonic drives
- Linear axes with ball screw drive
- Applications that require maximum load positioning accuracy
Further links: