Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Minimizing PCI-7344 Velocity Error

 
This is from Stefan K., working with Jeff to get the motor working.
 
I now have the motor back and have been working to integrate this with the 7344.  I am having a couple of issues that are likely easily answered, I do not have much experience with the 7344 and motors.  The velocity read from the interactive seems to be off, I have attached the encoder signals into the UMI box (A&B), but when I look at the digital signals directly (both acquired via DAQ and Scope) it verifies that the encoder speed read by the 7344 is incorrect (by a factor of 4), it measures much slower than reality).  Should counts (encoder counts / rev is 4608) be the quadrature count? (Though this was also attempted and did not seem to change things).
 
Also, in trying to get a good step response I get a curve that goes in the opposite direction of the green step (a smooth curve going in the opposite direction and settling with few oscillations)through using small Kp (to eliminate vibration, higher than this results in "buzz" in the motor, 1 or 0 as Kd, Ki=0 and Kv is high (~8000).  What should my step response look like??  Any help tuning this is much appreciate as I only have this motor for a few more days.  Thanks.  -Stefan Kienle
0 Kudos
Message 11 of 15
(1,667 Views)

Stefan,

I am not sure I understand you correctly, but all of our motion boards read 4 counts for every "notch" on a quadrature encoder.  That means there will be 4 counts measured for each set of pulses created by the quadrature encoder.  If you are reading these encoders with a DAQ board as a simple pulse train you will see 1 pulse per set of pulses and thus you can explain your discrepancy.  It has been a while since I supported DAQ, but I remember that some of the boards allowed you to read quadrature encoders the same way the Motion boards do.  I believe there is a shipping example called "Measure Angular Position.vi".  If the VI's mode is set to "X4" you should see 4 counts per "notch".  If you have a 500 count encoder (i.e. 500 "notches" in your encoder) the Motion boards will read 2000 counts per revolution and likewise you need to set your motion board up in MAX for 2000 counts per revolution (not 500).

Regarding your second question...  I have seen that behavior before, but I have not been able to reliably reproduce it.  The strange behavior has always gone away once I was able to get all of the settings correct in MAX.  Try increasing/decreasing your step size and increasing/decreasing your period to see if this has any effect on the behavior.

Lorne Hengst
Application Engineer
NIC

0 Kudos
Message 12 of 15
(1,649 Views)

Just a little comment: In fact every M-Series device and all NI counter/timer devices (e. g. the PCI-6601) support X4 decoding.

Best regards,

Jochen Klier
National Instruments Germany

 
0 Kudos
Message 13 of 15
(1,645 Views)
The best results I have for repeatability in velocity have been with the inverse step response.  This results in a velocity that is very periodic about the control velocity of 40.69 (max 40.9 to min of 40.5), though as one expects there is overshoot when ramping to the velocity.  How can a get rid of the periodic velocity variation?  When I tune using step response I have gotten results that were inconsistent, at one point the orientation of the motor varied its controlability!!  Thanks in advance,  -Stefan
0 Kudos
Message 14 of 15
(1,573 Views)
icebear,
 
I am not sure what to tell you.  There are so many variables that come into play when tuning your controller.  What works for one system, might not work for another system.  All of the discussion in the previous part of thread describes what ended up working for me.
 
My guess is that you can probably get slightly better results, but that I cannot tell you how do it, because I do not have your system in front of me.
 
If you want really accurate velocity control, you will actually want to control the motors velocity directly.  This is different than how the Motion driver works.  The motion driver directly controls the motors position and then commands position moves that will create a certain velocity.  Currently, the motion driver does not allow you to control velocity directly with encoder feedback.
 
I wish I had a canned solution for you, but I cannot provide one without having your system in front of me.
 
If having extremely precise velocity control is your aim, then the PCI/PXI-73xx series boards are not the best solution, because the PCI/PXI-73xx boards are meant for precise position control.
 
Lorne Hengst
Application Engineer
National Instruments
 
 
0 Kudos
Message 15 of 15
(1,550 Views)