CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

Ensuring accuracy on stepper motors

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
arunb



Joined: 08 Sep 2003
Posts: 492
Location: India

View user's profile Send private message Send e-mail

Ensuring accuracy on stepper motors
PostPosted: Sat Jul 31, 2004 10:28 pm     Reply with quote

Hi,

How can one ensure a stepper motor moves accurately over long distances.

arun
mkent



Joined: 09 Sep 2003
Posts: 37
Location: TN, USA

View user's profile Send private message

PostPosted: Sun Aug 01, 2004 9:35 am     Reply with quote


Attach an optical or magnetic absolute encoder to your load and use a closed loup system.
arunb



Joined: 08 Sep 2003
Posts: 492
Location: India

View user's profile Send private message Send e-mail

RE:
PostPosted: Mon Aug 02, 2004 7:13 am     Reply with quote

Hi,

I would like to avoid extra hardware, is it possible to use the software to calibrate the system.

thanks
arun
Guest








Re: RE:
PostPosted: Mon Aug 02, 2004 7:33 am     Reply with quote

arunb wrote:
Hi,

I would like to avoid extra hardware, is it possible to use the software to calibrate the system.

thanks
arun

It really depends what you mean. A stepper, will be perfectly happy, and repeatable, _provided_ you drive it correctly, and it is not overloaded. The 'point' about adding a sensor system, is that it allows you to verify that the motor has moved correctly, and compensate for this. In general, if you want to step a motor quickly, you must use current limited drivers. A stepper has a rated voltage (say 12v), which can be applied to any coil continuously. It then has a maximum voltage (limited by the insulation), that is typically a dozen times higher. When power is applied to a coil, the rate at which the magnetic field builds, is limited by the end point voltage of the drive loop, and the inductance. Hence, a 12v motor, that is driven off 12v, may have perhaps 500mNm torque, when still. However driven at 1000 steps/sec, this will probably halve. Drive the same motor of 72v, but add a current limited PWM driver, so that when still, the coil still dissipates the same heat as when connected to 12v, and the available torque when moving rises. Then arrange to ramp the actual rate at which the motor is driven, according to the expected inertia of the system, and you have a potentially faster system, with better overall performance.
Stepper driving, ranges from the poor (simple transistors switching the rated voltage), through simple (similar system, but using high voltage drive, with the current limited by resistors), through 'self correcting' (add just one sense pulse/rev, and slow down, and restart from the last pulse, if the motor does not reach the next pulse when expected), to servo systems, using steppers as the drive elements (full opto encoders, pwm 'microstepping' etc.).
The 'accuracy' of the step size of the motor, if not overloaded, is down to the manufacturers specification.

Best Wishes
rnielsen



Joined: 23 Sep 2003
Posts: 852
Location: Utah

View user's profile Send private message

PostPosted: Mon Aug 02, 2004 8:56 am     Reply with quote

If you tell a stepper motor to move one step, and then want to know if you've moved that one step, the only way to really know is to have some sort of feedback from the shaft that it has actually moved that one step. The only way, that I know of, is to have an encoder attatched to the shaft of the stepper or device that is being turned. Steppers are really rather dumb animals. If you tell it to move a certain amount of steps it will go there, providing it's not overloaded or bound up some how. If it is overloaded it will 'try' to move with each pulse it receives but will slip due to it not being able to move. The driver device will have no idea that a position error has occurred unless it has feedback from something to indicate a position. A servo, on the other hand, needs feedback and will ensure that it is where it's supposed to be even if the forces on it change.

Ronald
arunb



Joined: 08 Sep 2003
Posts: 492
Location: India

View user's profile Send private message Send e-mail

RE: Stepper motor accuracy
PostPosted: Tue Aug 03, 2004 12:07 am     Reply with quote

Hi,

Thank you for the reply.

The system I am using has a timing belt and a pulley with a diameter such that one step of the stepper causes the belt to move by 1 mm.

The problem occurs when the pulley dimension is not accurate.

At present I am calculating the error by moving the stepper by a certain number of pulses and then cross checking with the actual distance moved .

This way the errors are minimised ( to about 1- 1.5 mm ) but remains nevertheless.

I thought there moght be a standard algorithm to calibrate the movement ,
but I do agree that an external system is required to verify the distance moved , and also to correct the error.


thanks a lot,
arun
Ttelmah
Guest







Re: RE: Stepper motor accuracy
PostPosted: Tue Aug 03, 2004 2:36 am     Reply with quote

arunb wrote:
Hi,

Thank you for the reply.

The system I am using has a timing belt and a pulley with a diameter such that one step of the stepper causes the belt to move by 1 mm.

The problem occurs when the pulley dimension is not accurate.

At present I am calculating the error by moving the stepper by a certain number of pulses and then cross checking with the actual distance moved .

This way the errors are minimised ( to about 1- 1.5 mm ) but remains nevertheless.

I thought there moght be a standard algorithm to calibrate the movement ,
but I do agree that an external system is required to verify the distance moved , and also to correct the error.


thanks a lot,
arun

If your 'step size', is 1mm, there is not much correction you are going to be able to do, without resorting to sinusoidal drives to the coils... If the mechanical accuracy of the gears is such, that there is more than 1 tooth 'error', in any measurable distance, I'd look at going to a different mechanical supplier!. Normally toothed belt systems of this sort, have accuracies measured in tiny fractions of a mm. That being said, working at this crude level, for detection, look at linear optical encoder strips. You can print these with reasonable accuracy on a laser printer, or buy accurate versions. Use an HP2705, and you get a linear system with a resolution of about .5mm, for a cost of only a very few dollars, and only needing connection to perhaps the CTC inputs of the processor.

Best Wishes
argosy



Joined: 07 Sep 2003
Posts: 5
Location: Scotland

View user's profile Send private message

Off Topic What's an HP2705?
PostPosted: Wed Aug 04, 2004 9:58 am     Reply with quote

After reading the last post in this series of posts I tried to get some information on the HP2705 mentioned. I have tried Google and the Hewlett-Packard web site (I am of course assuming that this is one of their components) and drew a blank. I am interested in trying to make a home-made linear encoder, so if anyone has a link to the data for this component could you please post it. Thanks
Kenny



Joined: 07 Sep 2003
Posts: 173
Location: Australia

View user's profile Send private message

PostPosted: Wed Aug 04, 2004 5:36 pm     Reply with quote

Discarded HP Deskjet printers are a source of linear encoders for hobby use.
The later ones have a 150 marks/inch linear encoder that with four times multiplication, achieved through full decoding of all edges, gives 600 counts/inch.
Ttelmah
Guest







Re: Off Topic What's an HP2705?
PostPosted: Thu Aug 05, 2004 2:55 am     Reply with quote

argosy wrote:
After reading the last post in this series of posts I tried to get some information on the HP2705 mentioned. I have tried Google and the Hewlett-Packard web site (I am of course assuming that this is one of their components) and drew a blank. I am interested in trying to make a home-made linear encoder, so if anyone has a link to the data for this component could you please post it. Thanks

Sorry, the 'part number' of the HP encoder, is HLC2705, not 'hp'. There are two basc versions. One the HLC2701, just has two photodetectors, in a package, with the outputs directly fed out. The other (the 2705), has the same two detectors, and the decoding logic to decode two of the four quadrature edges. They both require a slit pattern spaced at about 0.914mm (they work OK, with slightly greater spacings, this is the minimum). The 2701, will (if all four quadrature edges are decoded), give a resolution of (potentially) 0.229mm, while the 2705, gives a resolution of 0.457mm on the same pitch. They are designed to be used with the SEP8506 or 8706 LED's.
These detectors are cheap. The slit 'strip' to use with them, can be made on a laser printer, or the complete strip assembly, and detector, can often be found in old HP inkjet printers.

Best Wishes
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group