Re: [Emc-users] torque-velocity questions
The first thing to do is increase the allowable following error to a large enough number you can experiment with the PID values. Then start tweaking P and then D etc per the above protocol. You will be able to adjust for/in either control loop mode. On Apr 5, 2012 11:06 PM, Peter C. Wallace p...@mesanet.com wrote: On Thu, 5 Apr 2012, lloyd wilson wrote: Date: Thu, 05 Apr 2012 20:32:27 -0400 From: lloyd wilson llwilso...@rochester.rr.com Reply-To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net To: Emc mail list emc-users@lists.sourceforge.net Subject: [Emc-users] torque-velocity questions We are investigating using my favorite cnc controller for an application which will require as much stiffness as we can arrange; websearching suggests that torque mode rather than velocity mode is preferrred in such applications. We are using a Pico PPMC interface set to mediate between the computer and a Parker Aries amp/motor combination (+/- 10v control input, 2000 line encoder, vendor rep loaded any requisite motor parameters into the amp). We finally have the system so it doesn't immediately fault on a following error, but only in velocity mode; we've been totally unable to generate a set of PID parameters that are viable when the amp is set to torque mode. Ergo, it's guru time- 1 - is there some inherent incompatibility between Linux CNC and torque mode servos? No, but a torque mode PID loop is also responsible for velocity control. This is handled by a separate high speed loop in your drive when your drive is in velocity mode. A Torque mode PID loop often needs to to run at a higher sample rate than a PID loop controlling a velocity mode drive. That is to say LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode drive (not enough phase margin for the D term). Also because a torque mode PID control loop depends so much on the D term, its helpful if the velocity feedback is a good as possible. I'm pretty sure the PPMC has velocity estimation (as opposed to plain old crunchy dp/dt) in its encoder counter/driver, but you need to connect the velocity estimate to the feedback-deriv pin on the PID component to make use of this better velocity feedback. 2- is there some deeply buried config parameter that needs to be changed? Not that I know of (other that using the velocity estimate instead of the PID comps default dp/dt) but torque mode PID tuning is different and somewhat tougher to do that velocity mode tuning (IMHO). 3- can somebody point us to a strategy specifically oriented to tuning torque mode servos? Well I'm sure there are some good tuning tutorials... But from memory this is what I have done with torque mode drives: first I would do step response plotting and then alternately bump up P till it overshoots on a step and then bump up D till you regain a little less than critical damping and then repeat bumping both up to the point you can no longer make it stable with more D. Then back P and D off a little till its stable for the next step. Next I would adjust FF2 by doing a controlled move at say 1/2 the accel capability of the motor/drive/load and adjust FF2 to null the error during accell/decell. Similarly I would adjust FF1 by doing a long slew at perhaps 1/2 of the machines maximum speed and nulling and error during constant motion. At the end I would add I term until the drive becomes unstable (jog while adjusting to make sure you notice when it becomes unstable) and then reduce the amount of I term to about 1/2 the value that caused instability. 4- any other ideas? as always, thanks in advance - this community never stops astounding me with its knowledge and its willingness to share lloyd -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Peter Wallace Mesa Electronics (\__/) (='.'=) This is Bunny. Copy and paste bunny into your ()_() signature to help him gain world domination. -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- For Developers, A Lot Can Happen In A Second. Boundary
Re: [Emc-users] torque-velocity questions
1 - is there some inherent incompatibility between Linux CNC and torque mode servos? 2- is there some deeply buried config parameter that needs to be changed? 3- can somebody point us to a strategy specifically oriented to tuning torque mode servos? 4- any other ideas? Here are some tuning-graphs I did in 2008. These are for brush DC-servos with Pico PWM drives and a Mesa 5i20 card with 4 kHz (IIRC) servo-thread. If I understand correctly these PWM-drives are voltage-mode which is neither speed nor torque, but the graphs might be instructive anyway... http://www.anderswallin.net/2008/04/pid-tunig/ http://www.anderswallin.net/2008/04/x-axis-test/ Someone should make a PID-tuning utility that makes it super-easy to capture these HALScope screenshots together with the PID-parameters used. I think we might see more logs of these tuning sessions on the interwebs then... Anders -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] torque-velocity questions
lloyd wilson wrote: We are investigating using my favorite cnc controller for an application which will require as much stiffness as we can arrange; websearching suggests that torque mode rather than velocity mode is preferrred in such applications. We are using a Pico PPMC interface set to mediate between the computer and a Parker Aries amp/motor combination (+/- 10v control input, 2000 line encoder, vendor rep loaded any requisite motor parameters into the amp). We finally have the system so it doesn't immediately fault on a following error, but only in velocity mode; we've been totally unable to generate a set of PID parameters that are viable when the amp is set to torque mode. Ergo, it's guru time- What, exactly, is the problem? Is it unstable? Torque mode is going to be less stable that velocity mode, I think. It will require more careful tuning of the P and D parameters, and when you get the P as high as you can go while still having good stability, you then need to use FF1 and FF2 to improve on that. But, that won't improve stiffness against external torque. There may be as much or more tweaking required on the Parker amp as in LinuxCNC to get the best results. I agree with Dave that I don't see any reason why torque mode should be stiffer than velocity mode. Velocity mode moves one more control loop out to the drive, which likely has a higher servo update rate than LinuxCNC, so that can be helpful. Jon -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] torque-velocity questions
Peter C. Wallace wrote: No, but a torque mode PID loop is also responsible for velocity control. This is handled by a separate high speed loop in your drive when your drive is in velocity mode. A Torque mode PID loop often needs to to run at a higher sample rate than a PID loop controlling a velocity mode drive. That is to say LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode drive (not enough phase margin for the D term). It is possible to turn up the servo rate by reducing SERVO_PERIOD in the .ini file. 2 KHz should be easy, 4 KHz should be possible with a PCI plug-in parallel port, but may not work with the on-motherboard port. Also because a torque mode PID control loop depends so much on the D term, its helpful if the velocity feedback is a good as possible. I'm pretty sure the PPMC has velocity estimation (as opposed to plain old crunchy dp/dt) No, it doesn't. The only one of our boards that has this, NOW, is the Universal PWM Controller. I plan to put it into the other boards soon. But, until the release of 2.5, users would have had to run a developer's version of LinuxCNC to use this feature, it was not in the driver for 2.4.x. Jon -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] torque-velocity questions
We are investigating using my favorite cnc controller for an application which will require as much stiffness as we can arrange; websearching suggests that torque mode rather than velocity mode is preferrred in such applications. We are using a Pico PPMC interface set to mediate between the computer and a Parker Aries amp/motor combination (+/- 10v control input, 2000 line encoder, vendor rep loaded any requisite motor parameters into the amp). We finally have the system so it doesn't immediately fault on a following error, but only in velocity mode; we've been totally unable to generate a set of PID parameters that are viable when the amp is set to torque mode. Ergo, it's guru time- 1 - is there some inherent incompatibility between Linux CNC and torque mode servos? 2- is there some deeply buried config parameter that needs to be changed? 3- can somebody point us to a strategy specifically oriented to tuning torque mode servos? 4- any other ideas? as always, thanks in advance - this community never stops astounding me with its knowledge and its willingness to share lloyd -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] torque-velocity questions
You might be making this more difficult than need be. If you tell the drive to go to a position via a path and while executing that path you have very little following error, then how could that be improved upon? The stiffness of your drive system will be more related to the size of your servo drive and motor than whether you control it via torque or velocity mode assuming your pid tuning is good. When you put the drive into velocity mode, the torque/current loop is handled inside the drive itself. Which is probably the best place for it. If you get into the fine details, don't overlook the parameters that your supplier loaded into the Aries drive. Are you sure he did that correctly? The last time I set up an Aries drive the software was available on the web. Dave On 4/5/2012 8:32 PM, lloyd wilson wrote: We are investigating using my favorite cnc controller for an application which will require as much stiffness as we can arrange; websearching suggests that torque mode rather than velocity mode is preferrred in such applications. We are using a Pico PPMC interface set to mediate between the computer and a Parker Aries amp/motor combination (+/- 10v control input, 2000 line encoder, vendor rep loaded any requisite motor parameters into the amp). We finally have the system so it doesn't immediately fault on a following error, but only in velocity mode; we've been totally unable to generate a set of PID parameters that are viable when the amp is set to torque mode. Ergo, it's guru time- 1 - is there some inherent incompatibility between Linux CNC and torque mode servos? 2- is there some deeply buried config parameter that needs to be changed? 3- can somebody point us to a strategy specifically oriented to tuning torque mode servos? 4- any other ideas? as always, thanks in advance - this community never stops astounding me with its knowledge and its willingness to share lloyd -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] torque-velocity questions
On Thu, 5 Apr 2012, lloyd wilson wrote: Date: Thu, 05 Apr 2012 20:32:27 -0400 From: lloyd wilson llwilso...@rochester.rr.com Reply-To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net To: Emc mail list emc-users@lists.sourceforge.net Subject: [Emc-users] torque-velocity questions We are investigating using my favorite cnc controller for an application which will require as much stiffness as we can arrange; websearching suggests that torque mode rather than velocity mode is preferrred in such applications. We are using a Pico PPMC interface set to mediate between the computer and a Parker Aries amp/motor combination (+/- 10v control input, 2000 line encoder, vendor rep loaded any requisite motor parameters into the amp). We finally have the system so it doesn't immediately fault on a following error, but only in velocity mode; we've been totally unable to generate a set of PID parameters that are viable when the amp is set to torque mode. Ergo, it's guru time- 1 - is there some inherent incompatibility between Linux CNC and torque mode servos? No, but a torque mode PID loop is also responsible for velocity control. This is handled by a separate high speed loop in your drive when your drive is in velocity mode. A Torque mode PID loop often needs to to run at a higher sample rate than a PID loop controlling a velocity mode drive. That is to say LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode drive (not enough phase margin for the D term). Also because a torque mode PID control loop depends so much on the D term, its helpful if the velocity feedback is a good as possible. I'm pretty sure the PPMC has velocity estimation (as opposed to plain old crunchy dp/dt) in its encoder counter/driver, but you need to connect the velocity estimate to the feedback-deriv pin on the PID component to make use of this better velocity feedback. 2- is there some deeply buried config parameter that needs to be changed? Not that I know of (other that using the velocity estimate instead of the PID comps default dp/dt) but torque mode PID tuning is different and somewhat tougher to do that velocity mode tuning (IMHO). 3- can somebody point us to a strategy specifically oriented to tuning torque mode servos? Well I'm sure there are some good tuning tutorials... But from memory this is what I have done with torque mode drives: first I would do step response plotting and then alternately bump up P till it overshoots on a step and then bump up D till you regain a little less than critical damping and then repeat bumping both up to the point you can no longer make it stable with more D. Then back P and D off a little till its stable for the next step. Next I would adjust FF2 by doing a controlled move at say 1/2 the accel capability of the motor/drive/load and adjust FF2 to null the error during accell/decell. Similarly I would adjust FF1 by doing a long slew at perhaps 1/2 of the machines maximum speed and nulling and error during constant motion. At the end I would add I term until the drive becomes unstable (jog while adjusting to make sure you notice when it becomes unstable) and then reduce the amount of I term to about 1/2 the value that caused instability. 4- any other ideas? as always, thanks in advance - this community never stops astounding me with its knowledge and its willingness to share lloyd -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users Peter Wallace Mesa Electronics (\__/) (='.'=) This is Bunny. Copy and paste bunny into your ()_() signature to help him gain world domination. -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users