On 08/07/10 11:43, Chris Radek wrote: > On Thu, Jul 08, 2010 at 10:32:50AM +1000, Jake Anderson wrote: > >> We have converted our mill to CNC and EMC2 and all is fairly well. >> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?JakeAndRussells >> > ... > > >> Unfortunatly when I change that cruise speed (g1 F200 vs G1 F100 say) >> the ferror goes up, and I start either leading or lagging the set point. >> I can tune to hover around 0 error at any given speed, but as the speed >> changes I start getting error again. >> > >> Any tips? >> > Yes but beware they're all half-baked. > > I see you're using bare H bridges which means you don't have a > velocity loop. I think this problem with FF1 is because of that, and > it is a fairly fundamental problem with a torque-mode setup. > > In hand-wavey terms, a full velocity mode servo amp has a commanded > velocity (output of emc's pid in our case) and actual velocity (from a > tachometer) and it uses the difference between the two to determine > the torque/current to apply to the motor. > > It seems like you can fake this up by using the mesa encoder's > velocity output as your pretend velocity feedback. Use sum2 (one gain > negative) to calculate the difference between your pid output and your > velocity feedback. Pick your scales carefully so everything matches > up. Use this resulting difference to drive your pwmgen. > > I haven't tried this and the whole idea came out of a late-night chat > session with Kim K. Unfortunately I can't find the archive of it. > > I'd be thrilled to hear whether this gives you a stable loop and > whether it tunes up better. Please do keep notes and report back if > you try it. > I'll have to catch you up on IRC and see if you can hand hold my way through setting that up lol (I'm Valen there btw) > One step more complicated is to have dual pid loops, a torque loop > inside a velocity. I'm not sure what you'd use for torque/current > feedback, though. Normally that's current sensing in hardware, and > you have no equivalent that I can see. > ok well I have no hope of that lol.
> Simpler is to leave your pid as-is and try using I instead of FF1. If > you can increase your I by a lot and still keep the loop stable, > you'll get correct following at any (steady) speed. The tradeoff is > sloppy settling at speed changes, like at the beginning and ending of > moves. > I can add a bunch of I and get it to be pretty good but things where it plunges then starts cutting wind up with an overshoot and the like. Currently I am running a P of ~3 D of .01 FF1 0 FF2 .03 FF2 .0001 or so (these vary for each axis) ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users