Results 1 to 9 of 9
Thread: Servo tuning: velocity gain
04-08-2009, 10:06 PM #1
Servo tuning: velocity gain
what specific types of performance changes occur when the velocity gain is lowered for a servo motor. I reduced the gain by approximately 1/3 to solve a recurring oscillation problem and want to get some idea of what to expect, performance wise, when i put the machine back together. I changed thrust bearings, not much oil was getting to the ballscrew so i believe that may be the issue. However, it leaves good finishes and can't spend the money dealing with a ballscrew now... so, i decided if this works i'll just go with it.
04-08-2009, 11:24 PM #2
I probably shouldn't even be answering because this is over my head, but isn't that an adjustment for how quickly the servos take off and stop while moving from point to point?
If so, I adjusted this once on my Fadal, and it was much snappier. Seemed real peppy when running from point to point, except the Z axis made a slight clunk when dropping down towards my part, so I adjusted it back to original settings.
04-09-2009, 12:38 AM #3
Well, I'll risk oversimplifying to help. I expect someone with a bit more experience will correct me or add.
Gain is the servo reaction time. When too high the servo is unstable and will react to noise readily, when turned down it doesn't react to velocity changes quickly enough and becomes sluggish, often causing finish problems. This is the P in PID.
I is the stiffness. This controls how much movement the motor makes before countering that movement with a reaction. When this is too high it will sound like the motor is cogging, brrrr. When too low the axis will be sloppy and may not hold tolerance. You can think of this as the holding torque of a non-moving axis. This is the I in PID.
The last parameter is the undershoot/overshoot, or the tolerance to velocity changes. Not all drives will give control over this parameter. It contributes to the ability for the axis to hit a repeatable value every time. If the value is too low, the axis will overshoot the target point and may not repeat very well. When the value is too high, the axis may undershoot the target point because it prematurely halts axis movement; reacts too quickly. This is the D in PID.
The fastest part of the loop is usually the gain, then the I, then the undershoot/overshoot. Often the stifness is set lower than the others, with the u/o set high to ensure accuracy. The gain is adjusted until you get a hum, then back down. On digital drives you adjust until the drive spazes out at the slightest velocity command, then back it down.
On DC drive, you can readily tune them quickly with just your ear. Wait for the hum, dial back 1 to 1.5 steps. For I or Current, adjust it up until you get a rough sound from the motor and back it down until it smooths out. For u/o you need to use a precision dial indicator or take test cuts. Adjust it up until the finish stops improving, then back down to the last setting.
04-09-2009, 01:25 AM #4
Perry is on target for most of what he said, but I would differ with a few points. The velocity part of the feedback loop has the highest bandwidth (fastest). What it does is compare the difference between the rate of change of the setpoint and the velocity of the axis. The difference is used as one part of the PID loop. In PID terms, velocity is D for differential. That is because the controller is electronically taking the derivative of the position input to determine velocity. The P part of the loop (proportional) compares the commanded position to the actual position. The output is proportional to the difference of those two. This part of the loop has the second highest bandwidth (second fastest). Finally, is the integral part of the PID loop. This part integrates the proportional part of the loop (unless you have a two encoder setup). This is the least bandwidth (slowest) in the loop. What it does is force the loop to converge to the commanded position, because the integral of any difference continues to get bigger as long as there is a difference. That drives the loop to converge.
04-09-2009, 01:56 AM #5
My PID naming wasn't for sure, I just know what parms I've seen in various different drives. However, the tuning info is based on observations from actual tuning.
04-09-2009, 02:00 AM #6
Perry - please don't think I was being critical - I think your experience will be valuable to baran3.
To add a point to the original question, the velocity gain parameter helps to stabilize the loop. When this gain is too low, you will experience slow settling or even oscillation. So use care in lowering the velocity gain.
04-09-2009, 06:30 AM #7
I think I'd put the machine back together with existing servo settings.
Then see if changing the mechanicals (thrust bearings etc) make the machine any better.
If no joy, then I'd play with the gain but a little at a time (writing down your EACT settings first!)
04-09-2009, 07:13 AM #8
i did start the machine back up after replacing the thrust bearings. just grabbing the flex coupler and placing rotational force on it, it starts vibrating just as it did before. when machining it didn't vibrate all the time, but it was fairly frequent in my opinion. i don't want to keep chasing a solution and throwing money at it at this point if i live with a tuning adjustment. I actually brought in a maintenence company, thinking that it would be case closed they will solve my problem. Turned out to be a waste of money. So I reduced the velocity gain and now when you apply rotational force to the screw you can feel it correct its location without oscillating. I was just curious how this would affect the performance of the machine and if i should possibly be adjusting a combination of the gains.
04-09-2009, 11:50 AM #9
Not to hijack this thread, but I'll share my recent success in tuning servos on one of my mills. Machine in question has Servo Dynamics drives, with 4 multi-turn pots to be adjusted on each of the drives.
From day one when I bought this used machine the Y axis and sometimes Z have given me fits in tuning. When they're out of tune I get errors in positioning or needing to reset the servos. These errors stop the program. My prior tuning efforts were less than 100% successful. Following the instruction manual from the machine integrator wasn't so easy for me. "Listen for growling" when axis is moving at certain programmed speeds, and so on. Yeah, easy if you aren't hard of hearing. Then we have the "observe motor shaft as it's coming to rest". Great if you can see around corners. Even having a helper wasn't a sure thing.
Okay, so when you've got an axis correctly tuned, "repeat for the other two". Sure...
After another crack at this tuning business a couple weeks ago I called Servo Dynamic for some help. They emailed the thirty-some page instruction manual for my drives. Much more detailed than the prior info I was working from. But, the key piece of information was, "when you've completed one axis" take ohm readings from test points and set the other drives to the same values.
Now why didn't I think of that? Since the X axis has never been a problem I took those reading. Set the other drives per those values and the machine has never performed so well.
Worth noting the final setting values were quite a ways off from the recommended starting values, ie 10 turns CW, etc.