07-16-2009 02:28 PM
I'm using electronic gearing to slave an axis to a master axis. I have the PID settings identical between the two axes, including the Vff parameter for Velocity Feedforward. The Vff seems to be having the expected effect on the master axis, but the slave axis appears to be ignoring the Vff parameter. Since I'm geared to an axis (as opposed to an encoder or ADC channel) I expect that all of the PID parameters should function normally. The other PID parameters do, in fact, behave as expected, but the Vff just doesn't seem to affect the slave axis. Is this expected behavior for some reason, is it a bug, or is there some other setting I need to be aware of to get this to work. I really need the Vff to get decent motion from these axes.
Best Wishes,
Matthew G. Harrison
Systems Engineer
Moore Good Ideas, Inc.
07-20-2009 12:32 AM
Hi Matthew:
I'm not sure whether this will have an impact on the answer to your question, but just in case, is this a stepper motor setup or servo?
07-20-2009 02:10 AM
Hi Matthew,
in general I would expect the control algorithm not to change when switching to geared mode. That's really strange, but anyway. I have seen that you have an open service request with an NI Applications Engineer in Austin and he should be able to clarify this with R&D.
Here are just some ideas for potential workarounds:
When using geared axes, the slave axis is geared to the encoder position of the master axis. Maybe this is the reason why you Vff doesn't seem to work but I'm not sure. In contrast to gearing the 2nd approach that I have described, doesn't provide real gearing but only a setpoint synchronization which might cause issues when the master axis hangs a bit while travelling. Still even in geared mode a similar issue could occurr when the slave axis hangs, as there is no feedback to the master axis about such a situation and you could also run into problems with mechanical torsion. With this said the second approach is not so bad compared to gearing, as long as you keep the maximum allowed following error within reasonable limits.
I hope that helps,
Jochen Klier
National Instruments
07-20-2009 09:29 AM
07-21-2009 01:50 AM
Hi Matthew,
as Vff is only relevant for servos that was quite clear. Any comments about my suggestions?
Thanks,
Jochen
07-21-2009 09:59 AM - edited 07-21-2009 10:03 AM
Jochen;
I apologize for not directly addressing your detailed comments more promptly. I was attempting to respond to the earlier question from "A Person".
I have requested the electrical engineer working on this machine to investigate whether reconfiguring the drive controllers to torque mode is an option he is willing to pursue. It sounds like the NI motion controllers prefer this anyway and regardless of my specific slave-axis problem current mode may give generally better performance. This is my preferred solution at the moment, but it may end up being out of my control.
I have already considered your second suggestion, and I may end up having to do that, but it will complicate my code because these drives make a variety of buffered and unbuffered moves. Also, this software has to run on a few different machines some of which have the dual-drive setup, and some do not, so there would have to be more configuration specific code if I have to do this rather than just dealing with the gearing. Also, I'm concerned that if the drives don't share the same trajectory generated output, even if the following errors remain small, I could see undesirable position differences simply due to different trajectory generation.
Regarding you last comments, I don't think that it is strictly true that "when using geared axes, the slave axis is geared to the encoder position of the master axis." I know that you can configure gearing to an encoder, but you can also gear them to an axis as I am doing in this case. When gearing to an axis, as opposed to an encoder or ADC Channel, my understanding is that the slave axis receives the trajectory generation output from the master, and differences in the positions of the two axes should be limited to the following error. In the case of gearing to an encoder, I would understand why Vff might not work, but I would expect it should be ok when gearing to an axis. My current wild guess is that NI-Motion assumes that you are always geared to an encoder and disables Vff even in the case of gearing to the trajectory where it really should be used. I'm hoping to confirm this with tech support, and in that case, I'm hoping reconfiguring the drives will solve the problem. Failing that, I'll have to add some more code to independently manage the axes.
Again, thank you for your well-reasoned comments.
Best Wishes,
Matt
07-22-2009 04:24 AM
Matt,
you are completely right that axis to axis gearing is based on the trajectory generators and not on the encoders. I have definitely mixed this up. So in this case using independent axes and starting them simultaneously should be the best option in terms of functionality. As the trajectory generators always stay in synchand as they use the same math, the reliabilty of this option should be the same as with gearing but yes, it will require some amount of recoding.
With these facts the issue sounds like a bug and tech support at NIC should file a Corrective Action Request (CAR) to R&D.
Jochen