Help with a linear position system

Status
Not open for further replies.

tomreynolds93

New Member
Hi Guys,

I'm currently in the process of updating a motorised arm system we use in the lab for inserting and withdrawing samples from a furnace. The current design and old software has the arm extending all the way to the left waiting for a pre-defined time and then withdrawing waiting and then repeating.

I am planning to change it so the arm will move a pre-determined amount (will actually be moving to a specific temperature range in the furnace) wait there and then move to another position wait there etc... However I am at a bit of a loss in how to go about it, I've been toying with the idea of using a magnetic linear encoder such as the AS5306 from AMS however this I feel may be a bit overkill and the sensor needs to be within 0.4 mm of the magnet which I don't think will be achievable. I am trying to avoid motor timing options as it does slip sometimes and this needs to reliably make around 1000 repeats.
I have included a schematic of the rig being used it is controlled at the moment using an Arduino Uno and a H-bridge to drive the motor all controlled through labview to provide user input of number of cycles and times etc.

 
I would use the same method used in printers, 2400 dpi optical page scanners and old ST-506 stepper motor hard disk drives, which is driven by a stepper motor with enough torque and slew the arm with an acceleration profile to prevent slip. The arm must have an optical sensor for the home datum position that is convenient enough to recalibrate the stepper position in case of slip or overshoot back to "home". This is the same method used in all floppy disk and old stepper HDD actuators with 0.001" resolution. Some use micro-steps with viscous wheel dampers to maximum performance with max acceleration ramp and minimum settling time. In your case arm inertia is high on changing position with a linear actuator.

The stepper motor shaft may be a nylon cog belt or a steel foil band or chain or some other stiff flexible coupler. A viscous damper wheel with oil filled brass in a plastic wheel is a great advantage for stiff resonant actuators.

For higher torque arms, one can also consider pneumatic valves with a rotary optical encoder which offer greater speed, torque in a smaller package but more expense. The control algorithm can be tuned with temperature feedback rather than guestimated dwell times using a thermocouple feedback. then you have the optimal thermal profile and minimum time for the operation.

Self checks for sensor feedback are essential for any possible failure mode.

My guess ... you used a stepper motor with slips caused by accelerating too fast in the past. With an understanding of inertia, and motor torque and commutation rates, you can improve the performance greatly.
 
Last edited:
Cheers for the detailed reply.

It currently uses just a DC motor with two limit switches on either end which the trolley presses when it reaches the end of the track. My hope is to not change the motor as that and the screw are an assembled unit.
I do like the idea of having a reference position which I was planning to use the original switches for. (i.e. drive backwards / forwards until switch).
 
An alternative to using a stepper motor would be to put an optical rotary quadrature encoder on the motor. You would still need to initially drive the motor to a limit switch or mechanical stop as a reference position. The encoder would increment and decrement a counter in the software to the value of the count would represent the position. I slightly cruder system is used to move satellite dishes. The motor that drives the jack screw just has a magnet an reed switch on it. when the motor is being driven in one direction the pulses increment a counter. When driven in the opposite direction they decrement a counter. I have used this system and I may still have a copy of the code to run on a Z80 micro. (Written in Nascom Zeep assembler.) I now use this method to control a roller blind to save the need for limit switches. It initially had to be taught the count that represents the closed and open positions. This has been working for years without loosing the positions. I still have the code for this which runs on a PIC16F84. This only uses an 8 bit counter so it would need changing as you would need a better resolution than 256 positions.

Les.
 
Your drawing reflects what looks t be a motor driving a lead screw, did you wish to stay with that scheme or go to a different motor scheme? What is the existing throw or travel? What is the normal speed of travel? How deep into the furnace are you moving the load sample to be heated). Moving through the furnace zone(s) how accurate does the load placement need to be?

I would maybe go with what we called a yoyo or string pot to sense position only assuming it can be configured so as not to be toasted by the furnace. I also like optical encoders.

Convert the temperatures to an nice analog like 0 to 5 or 0 to 10 Volts and use a few analog channels of an A/D converter for position and temperature. Then write some software telling the motor what to do and use an H Bridge to FWD & REV the motor. A DIO. Leave the limit switches to tell the software if the motor reaches end of travel. There is no shortage of ways to go about doing what you want to do or upgrading the existing system.

Ron
 
Another method is the quadrature linear scale, this is the same principle as the rotary encoder except in a linear mode.
They can be obtained in glass or inductive reading methods.
Max.
 
A limit switch can be at other places besides the ends of travel. The carriage can depress one as it passes by. Multiple limit switches spaced apart to match the different temperature zones inside the furnace?

ak
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…