Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

How does a servo drive control motion?

Servo Loops & observers

How does a servo drive control motion?

by  mikekilroy  Posted    (Edited  )
Velocity Observers are used in new servo drives to help tune the servo systems. Tuning is often considered 'black magic' or an 'art.' To help understand servo tuning, it is best to understand the servo basic system.

Good Servo systems have 3 control loops:

1) Current loop
2) Velocity loop
3) position loop

The position loop compares a projected position move to actual position move via position feedback such as encoder, resolver, scale. Its output is a position error, which is also called a velocity command that goes to the next inner loop, the velocity loop. The larger the position error, the larger the velocity command sent to next inner loop.

The velocity loop compares this velocity command to the actual speed feedback from a device like a tachometer or dv/dt derivative of the position feedback device. If the speeds to not match, this loop outputs a velocity error, also known as a current command. The larger the velocity error, the larger the current command sent to next inner loop.

The current loop compares this current command to actual current in the motor. Any difference is called the current error and then commands more or less current into the motor itself to satisfy the error.

Tuning is done in each of these three loops. Typically the hardest loop to tune is the velocity loop.

The current loop tuning is totally a function of the output voltage, current, and motor inductance. Nothing else. So machine design has little effect on proper tuning here. So this is easily calculable by the motor/drive manufacturer and should not need adjustment by the end user.

Position loops often have simply a proportional gain term that sets how much error signal is generated for a given position error. Today such terms as feedforward are also added here to reduce steady state error, but these terms do not effect the actual tuning - unless set too large.

The velocity loop is often the heart of a servo system, accounting for majority of total system performance. This loop has typically PID gains; proportional, integral, and sometimes derivative terms. These gains are all effected by machine design and parameters. For instance, a major limiter to performance is compliance and backlash, both of which limit maximum P & I values.

In comes the velocity observer loop. This was first patented I believe by Danaher's Kollmorgen servo group as a Luenberger observer. What is unique about it is that it is another software velocity loop running inside the drive, along side the 'real' velocity loop. It has the same PID gains, and so runs as if a perfect mechanical system exists. But since it does not, the resulting responce to the PID gains will not be ideal but effected by the machines frictions, inertias, compliances, resonances, and backlash. The Observer's function is to show what an ideal loop should look like compared to the real loop. The differences between both loops are then used to correct the PID gains in the real loop to try to better match the ideal loop. The result is often higher performance and higher velocity loop bandwidth that will result in higher position loop bandwidth and response capability. I have seen 50hz velocity loop bandwidths turn in 75hz bandwidths with the addition of the observer. This translates into better servo performance overall.
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)
Back
Top