Why Is My Servo Motor Not Reaching the Maximum Velocity I Have Set in the Axis Settings?Primary Software: Driver Software>>NI-Motion/FlexMotionPrimary Software Version: 6.1.2 Primary Software Fixed Version: 6.1.2 Secondary Software: N/A Hardware: Motion Control>>Controllers>>PCI-7344
Problem: I have a servo motor and I am controlling it using an NI Motion Control board (PCI-7344). I have setup the following trajectory parameters: Acceleration: 1.2 revs/sec/secMy encoder outputs 4000 counts/revolution. When I try to make a velocity move, I only reach about 590 RPM. Why is the motor not reaching the velocity I specified? Solution: The reason for this behavior has to do with the way the trajectory generator works on the controllers. There is some good documentation on this behavior in the Load Velocity VI help in LabVIEW. Basically, the velocity is limited in by the following equation: velocity < (32,767 x deceleration) - acceleration , wherethe units are in counts/sample and counts/sample^2.Because of those units, you must take into account your PID rate, which is in units of microseconds/sample.The most important thing about this equation is the high dependency on the deceleration. This is because the trajectory generator has to be able to produce sufficient data to decelerate the motor at the specified rate, which has to be placed in memory and is thus a hardware limitation of the controller. A small increase in the deceleration can have a dramatic affect on the maximum velocity attainable. Attached is a LabVIEW 6.1 VI that will calculate the maximum velocity you can achieve with various acceleration/deceleration settings. Related Links: Attachments:
Report Date: 10/07/2004 Last Updated: 10/08/2004 Document ID: 3E6FEOI3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
