Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Trouble positioning a stepper motor accurately (to one step)

I'm using a PCI-7344 with an MD7506 motor driver from RS. I'm testing angle sensors whose voltage output is proportional to (you've guessed it...) angle.

I'm stepping the motor round by one step, checking that it's got there by reading the encoder, measuring the sensor voltage and repeating.

My problem is that the motor sometimes 'hunts' around the target position. In closed loop (with an encoder associated with a motor) this results in sometimes not being able to reach the target exactly with the pull-in moves.

Using open-loop and reading the encoder directly I get better results because I can loop more times, but the motor will still 'hunt' around a target point, changing direction a few times as it over
shoots by a step.

As there are a million MAX settings for this I won't list them all here, but I'm checking for a move complete when the InPos flag is set and I have a deadband of 0 steps too. I'm only rotating at 120 step/sec with a 10ms pause between steps.

Do I have to accept that stepper motors are only accurate to +/- 1 step or am I doing something wrong?

Thanks,
Mike
Mike Evans
TRW Conekt
N.I. Alliance Member, UK
http://www.Conekt.net
0 Kudos
Message 1 of 3
(3,463 Views)
Mike,

Maybe other people will have better suggestions, but in my case I can advise to either:
1. increase the number of pull-in moves,
2. increase the microstepping of your drive,
2a... together with a higher precision encoder...

Other than that, the accuracy is advertised to +/- 1 step, so maybe you would like to consider a stepper with more steps/rev.

Good luck!, I hope other people will give other suggestions.

Nestor.
Nestor
0 Kudos
Message 2 of 3
(3,462 Views)
It is recommended to use an encoder with a resolution which should be one magnitude higher than the microstep resolution. Remember that microsteps are not necessarily of equal length. When you use an encoder which has same resolution as the microstep resolution, it may happen that the motor does not hit exactly the pitch of the encoder when moving in microstep move. In a digital world this means that the encoder readout will be +/- 1 of the actual position.

Although not all microsteps will be equal, moving the motor the equivalent of one full step will get the drive to proper position since the sum of microsteps will always be equal to one full step.
0 Kudos
Message 3 of 3
(3,462 Views)