After my discussion with Peter last night I decided to have a go at 
tweaking PID. I first set it up so maxerrorI and maxerrorD also trigger 
the saturated output. This helped quite a bit. Next I added a function 
that scales all of the maxerror values when the machine has been 
stationary for more than a given time (0.05 seconds works well for me).

The difference is startling. Before I could easily get the X axis to run 
from near one limit to the other limit due to I term buildup without 
faulting. To do this I usually had to give it a tiny nudge with the jog 
wheel to start movement. If you got the nudge just right it would only 
accelerate very slowly so the output didn't saturate. Now with the same 
PID settings the most I can get the axis to move is about 4mm before it 
faults. Scaling the max errors to 20% still leaves plenty of power to 
hold the axis in position.

I think this would be a worthwhile addition to emc. Currently I have it 
as a separate component (called safe_pid) but maybe it is worth 
including the code in the standard pid component. With the default 
parameter settings the only difference in behavior is that maxerrorI and 
maxerrorD also trip the saturated output.

Les

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to