Sorry Peter, I have respect for you (great products!) but I *COMPLETELY* disagree w/ this. I have my masters degree in power electronics and control and have lots of experience in on and off road traction drives (aka electric vehicles.)
P first I next then increase them as a PAIR. The P term forms a zero that cancels the pole the integrator put at the origin. You often place the zero ontop of the pole from the next outer loop (due to torque or velocity mode drive and the mass of the system) but thats getting ahead of ourselves. They should be able to get the whole system up and running and large input stable w/ *JUST* P&I. When tuned properly together they can both get very large. MUCH higher than if you do one than the other. The ratio determines the frequency of the zero you are adding. Look up bode plots and gain/phase margin in the internet to get a better understanding of this stuff. Once tuning it almost finished, look at the output of the integrator during a steady state move. Use that to compute your FF1 term (I output/input = FF1 gain needed.) Now during moves, the integrator will be almost zero during steady state. But its STILL just as stable and ready to correct for any errors (workpiece mass added to the table or cutting forces as examples.) Then tune FF2 to reduce accel/decel output from the loop. The PI will have almost zero output now. But they are ready to spring into action when conditions change and your FF1/FF2 aren't perfect (again workpiece mass, cutting forces, etc.) If you don't have backlash problems and have high enough servo loop rate and encoder resolution, D is completely unnecessary and its actually destabilizing. Its adding another zero at even higher frequency which is driving loop gain and phase BOTH in the wrong direction. This causes WORSE phase and gain margins. This all works very well if the drive (which is part of the inner loop you are controlling) is tuned correctly. You have to use bandaids like D if the inner drive loop is poorly tuned (its poles are low in frequency) or you got your zero in the wrong place to begin with. This is my first time reading details about the mesa ac driver card and it sounds like its running in voltage control mode. That doesn't decouple the poles from the motors inductance and system mass. A current loop control does. Though, you'll likely get lucky in your system is the moving mass and inductance are so far apart the poles dont interact much but it still won't move the system poles higher like a current/torque loop would. System tuning and stability is very misunderstood on the internet. Though its actually quite easy if you can learn bode plots and what it is thats really happening. Its not voodoo. It can even be calculated w/o even touching the machine w/ enough part information. There is equipment called a gain/phase analyzer that can directly measure the bode plot (some network analyzers can go low enough in freq to be useful for motion control apps.) LinuxCNC has the power to actually measure it (brainstorming: this would be an interesting and very helpful addition.) If you can add a swept sine stimulus to the output to the drive and measure the position variation back from the encoder. Add a little bit of gain and phase measurement and voila, you can plot bode diagrams of the loop (inner or outer!) The code can't do the gain+phase measurement now but it has all of the other parts. Most of the solution is already in place. None of this fixes your commutation hall issues, when when you get to tuning the above is the proper way to do it. If you're searching the internet the terms to look for (and understand!) are pole, zero, bode plot, gain margin, phase margin. Stephen On Sat, Dec 22, 2012 at 11:20 AM, Peter C. Wallace <[email protected]> wrote: > > You use different motions to tune different PID parameters > > > For an HBridge (and all this advice is for an HBridge) I would first tune > FF1. > This sets the output voltage to a voltage proportional to velocity, > counteracting the motors back EMF. > > > This is done by setting a small P term and then doing long slews at say 1/2 > full speed and adjusting FF1 for minimum PID error with halscope > (too much FF1 will cause motion to lead the trajectory, too little will > cause > motion to lag the trajectory) > > Next I would tune P and D (this must be done with motors coupled to the > load > the machine) > > For tuning P and D I would start with the small P from above and gradually > increase D until you get high frequency oscillations, then back of D to > about > 1/2 of this value. Then I would gradually increase P while jogging back and > forth until it again becomes unstable (with a low frequency oscillation > this > time) Then back off the P term again to about 1/2 of this value > > This should be an fairly good tuning at ths point. The next step is to add > a > very little bit of FF2 to correct the error during > accelration/decceleration > FF2 is like FF1 but only applies during accelration and deccelration. Too > much > FF2 will cause motion to lead during acceleration and too much FF2 will > cause > motion to lead during acceleration) > > > At this point (and only this point), you can start adding some I term > > The I term will improve the static accuracy against fixed or slowly varying > loads. The I term can bw increased until (very low frequency) oscillations > start and again us about 1/2 of this value > > The I Term should be tuned last (it will make things worse if the tuning is > not almost perfect to begin with) and should be temporarily set to 0 when > tuning other PID parameters as it will mask the effects of changes in the > other parameters. > > ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
