Servo Motor Drift

Hello community,

I have an application using a servo motor, and I’m experiencing a position drift issue. The servo motor drifts approximately 2 mm after 3–4 hours of continuous running.

Hardware:

  • Servo Drive: ACOPOS P3: 8EI8X8HWD10.xxxx-1

  • Servo Motor: 8LSA44.DB030S000-3

AS Settings:

  • Rotary-to-linear transformation: 207.65 mm

  • Gearbox ratio: 8:1

  • Measurement resolution: 0.01 mm

Motion Details:

  • Axis moves forward and backwards continuously.

  • Velocity: 700 mm/s

  • Acceleration: 700 mm/s

  • Deceleration: 500 mm/s

  • Load: 40kg

Observations:

  • Drift accumulates over time (~2 mm after 3–4 hours).

Does anyone have any idea what could be causing this drifting issue? Please let me know if more information is required.

Thank you in advance!

Best regards,
Alvin

Belts or Gearboxes involved? With belts you could have stretching/compression due the belt elasticity. I’ve seen this where the motor is in position according to your accuracy, but the load at the other end of the belt is heavy enough that it’s a few units off where it should be because the belt stretches before the static/dynamic friction is overcome. If there are gearboxes, you might need to make sure you are approaching your measurements from the same direction to compensate for backlash in the gearbox.

Or just direct coupling? How elastic is your coupling?

You can try calculation via gearbox info/belt info, how much backlash/elasticity is in your transformation from motor to load to see if this 2 mm of accuracy falls within the accuracy of the system.

Based on your DB encoder you should have 19 bits single turn and 12 bits/4096 revolutions of multi turn accuracy. If you make your measurement resolution 10x or 100x more precise do you find a smaller amount of drift because motor is measuring a finer resolition of movement?

1 Like

I think you have faulty encoder is a common when the servo have a 5 years of working or more also can be an electric parasite coming from spindle (if your system have one then check the cables)

1 Like

Since the encoder is one using EnDat 2.2 protocol and the transfer of everything there is checked internally using checksums, where exactly could some “electric parasite” cost him 2 mm of accuracy after a while?
A fauly encoder will pretty much present itself as a faulty encoder, not just randomly give you a wrong position.

1 Like

Hello Matt,

Yes the mechanism is using belt.
Servo motor - gearbox - coupling - belt.

I have a question on this “You can try calculation via gearbox info/belt info, how much backlash/elasticity is in your transformation from motor to load to see if this 2 mm of accuracy falls within the accuracy of the system.” Can you please explain this in more detail on how I can do this or provide a simple example on this?

After discussion with my team, we are considering a 2-encoder control setup, where an additional position encoder is mounted at the belt/load side to compensate for these errors. Something like this:

Are there alternative solutions/workarounds you would recommend?

Thanks in advance for any insights!

Regards,
Alvin

the reading of position didn’t change at all but the real position was changed by few mm.

This sounds like it could be a mechanical issue to me

Could a pulley be slipping on the shaft?

Can you mark the shaft ends and pulleys to see if a pulley is slipping? Maybe a scribe line across the shaft end onto the pulley

I assume toothed belt, so is it jumping teeth?

Move to a reference position, mark both pulleys with vertical lines using a square, take a photo and check again later at the reference position

Brian

Hy there,

i only had this when slipping issues occurs or belt jump over or teeth of the belt are lost

or

lag error is set to high - so please have a look at lag error when positioning is complete

or

it is a encoder issue.

So when you can figure out that it is not a issue of slipping of mechanical devices once i had two issues in the past

  1. Encoder: Encoder is damaged or is not fixed to the motor shaft as it should be (slip at the encoder to shaft)
  2. Modulo axis - your application is a linear so it will not touch you. To explain: The drive can only integer numbers for move not Real numbers. So when you put real number e.g. 100.03 inkrements acopos will only move 100 inkrements. the 0.03 will be lost and will cumulate a certain positioning error. there are possibilities to get rid of this problem

So in order to find i would open the shelter in order to see the mecanical devices. Reset all and put a mark to a certain position to wheels and belts. This marks must all the time come back to their origin position in linear systems. if not all marks come back to their origing position you have there a mechanical issue

Good luck

Hi Alvin,

Accumulation of position error is typical in vertical-axis applications (even with rigid couplings) when no integral action is present in the controller, resulting in a non-zero steady-state error. I can imagine the same occurring for horizontal-axis applications as well. If that’s the case, simply add some integral action and test it..

Michal

HI @alvin.lim, have you found solution for your issue, can you update us?