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