Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Following error/mechanical axial clearance->solution: static friction compenastion?

Hello,

Firstly I would like to write something about the motion system which I use:
-PXI 7344;
-UMI 7764;
-NI-Motion 6.0 (May 2003 Edition).
-One of the stepper motor which I use has 1600 counts per revolution and it is connected with encoder which has 4000 counts per revolutions (these are settings which were set up in MAX). Between them is worm gear (gear ratio: 1/360). The encoder was fixed on axis of rotation of long arm and the motor was fixed on the other side of worm gear.

Few days ago, I recorded data which describes current position of the arm (from encoder) and following error. And there is tiny problem which worry me a little bit: sometimes the value of following error is higher during the motion than in other iteration of movement. To describe this effect better I attached fragments of files at the end of this post (first columns describes current position and second column describes current value of following error). Move constraints in these two cases are the same: velocity 200 rpm, acceleration and deceleration 3 rps/s.
I think that the reason for that type of situation is that there is a little mechanical axial clearance. In my opinion the solution for this should be use a static friction compensation (in axis settings->filter settings->enable static friction compensation, am I right? If so might you help me to set the proper values?

With regards

Peter

1st file’s fragment (values of following error are acceptable)

0 0
0 1
1 1
3 4
7 7
26 9
53 10
97 11
133 15
185 16
251 12
325 8
413 10
498 9
586 10
663 18
777 7
925 10
1049 7


2nd file’s fragment (values of following error are not so good as they should be )

0 0
0 0
0 1
0 3
0 5
0 8
0 13
0 17
0 20
0 26
0 34
0 38
0 45
0 56
0 65
10 68
17 76
26 82
52 81

Many thanks
0 Kudos
Message 1 of 3
(2,914 Views)
Hello,

It looks as though your system is experiencing an increasing following error until enough torque is provided to overcome inertia, so using static friction compensation may help your system. The deadzone values determine when the DAC output is enabled. The maximum deadzone position determines the error which must accumulate before the DAC begins generating a signal to reduce the error. The DAC remains active until the error is reduced to the minimum deadzone position or less. At that point, the DAC deactivates again. This is useful in determining a minimum following error before motion begins when starting a move and it also stops the motion when the difference between the current position and the target position is less than the minimum deadzone position value. This prevents your motor from slowly grinding against the static friction, which could result in damage to the motor or overheating.

The offset voltage is a voltage boost that is added to the torque of the system and is used to overcome the inertia of the axis. I would suggest starting with the default values for the deadzone position values (5 and 10) and try a small offset voltage value (i.e. 0.1 V). From there, you can modify the offset incrementally until you achieve a system that does not experience the following errors that you listed.

Try those steps and let me know if you have any additional questions on this issue.

Regards,
Scott R.
Applications Engineer
National Instruments
Scott Romine
Course Development Engineer
National Instruments
Message 2 of 3
(2,902 Views)
Scott's explanations are absolutely valid for servos but as I understand it you are talking about stepper motors. In this case the static friction compensation won't have any effect as correctly described by Scott these settings affect the behavior of the DACs but not the behavior of the step outputs.

In general if you see following errors with stepper motors typically this is caused by either unsufficient torque or too high values for acceleration/deceleration, both causing the motor to loose steps. In rare cases I have seen issues with poorly designed drives that don't output the current accurately enough into the motor's coils when configured for microstepping.
Here are some things you could try:
  • decrease the acceleration/deceleration values
  • increase the motor current (drive setting)
  • try to eliminate any mechanical issues

Best regards,

Jochen Klier
National Instruments Germany
Message 3 of 3
(2,894 Views)