Go Down

Topic: coil unwinder with tension control (Read 8940 times) previous topic - next topic

jpk

May 21, 2017, 02:02 pm Last Edit: Jun 27, 2017, 01:30 am by jpk Reason: updated diagram
Hi!

This is my first post. I have some limited experience with Arduino, and now I am planning a project as shown here:


The goal is to unwind the wire from the coil with constant tension as soon as I pull the wire in the direction of the red arrow. I want to move the coil so that I have a constant wire tension regardless of pulling speed, coil size etc.

The spring loaded pulley will bring the magnet closer to the hall sensor (A1319) which gives me linear output at any analog pin: the smaller the gap between magnet and sensor the higher the value will be at the pin. This I can translate into RPM of the stepper. As the coil is heavy and in many cases the wire will be pulled rather slow I decided to go with a stepper. I can ramp up and down the stepper with simple ramps using this modified pwm library.

I studied various sources on winders, tension control, dancers etc., and most state that it's possible without measuring the coil diameter, although the diameter changes during unwinding. But in this case I would need to use PID control. I looked into the PID library which seems useful. I understood that winding / unwinding processes are less simple than they look...

What do you think: which approach is most simple and will fill my bill? Should I continue with PID? Is it theoretical possible with such a simple device to get the wire off the coil without breaking it? The coil is up to 8kg, the wire is 0.12mm and breaks at a load of 0.4kg!

(I will provide some code snippets in the following post)

EDIT: check here for improved versions of the diagram.

jpk

1.) The hall sensor connects direcly to a pin and can be read as follows:
Code: [Select]
Serial.println(analogRead(A0));


2.) The stepper is controlled like this:
Code: [Select]
#include <pwm01.h>

uint32_t  pwm_duty = 32767;  // 50% duty cycle
uint32_t  pwm_freq = 1000;   // 1000 steps per second

void setup() {
  pwm_set_resolution(16);
  pwm_setup(6, pwm_freq, 1);   // Pin 6 freq on clock A
  pwm_write_duty(6, pwm_duty); // Pin 6 duty cycle
}

void loop() {
  pwm_set_clockA_freq(x); // change freq to x
}


3.) My basic ramps change the RPM of the stepper. Here acceleration:
Code: [Select]
while (newspeed < maxspeed) {
  newspeed = startspeed + rampvalue;
  pwm_set_clockA_freq(newspeed);
  delayMicroseconds(x);  // replace this line if non-blocking is needed
  rampvalue++; }


4.) The PID library I use like this:
Code: [Select]
Input = analogRead(A0);
myPID.Compute();
newspeed = Output * factor;

mikb55

An 8kg coil is going to have a great deal of inertia and bearing stiction thus making it difficult to control.
Steppers run at low speed have a lumpy torque profile which will make your job even harder.

Your problem is similar to the old reel to reel tape recorders that have to maintain a constant tension to avoid breaking the tape. Perhaps look for equipment teardowns on youtube, or consider buying a second hand recorder and pulling it apart to see how it works. My guess is that the tension arm is connected to a potentiometer which is used to drive a DC motor.

jpk

Your problem is similar to the old reel to reel tape recorders that have to maintain a constant tension to avoid breaking the tape. Perhaps look for equipment teardowns on youtube, or consider buying a second hand recorder and pulling it apart to see how it works. My guess is that the tension arm is connected to a potentiometer which is used to drive a DC motor.
Many thanks for your input! I looked into reel2reel tape machines: most pro machines have an inductive distance sensor. The control is only to compensate the reel diameter changing during wind / unwind. So no PID involved: the gauge arm is mounted in a way that it detects the angle of the incoming tape and thus "reads" the diameter of the reel...

An 8kg coil is going to have a great deal of inertia and bearing stiction thus making it difficult to control. Steppers run at low speed have a lumpy torque profile which will make your job even harder.
I can manage to have enough torque by using a geared stepper. Also there are some really strong steppers available. And if the weight still is too much I will install a rotating flyer which collects the wire off the then static coil like shown here

avr_fred

#4
May 21, 2017, 03:54 pm Last Edit: May 21, 2017, 03:56 pm by avr_fred
First things first: This is an unwinder, not a winder, right?

If so, your chosen path will fail. Plain and simple. How do know? The physics of unwinding.

You cannot control this by way of speed of the stepper - unless you know exactly how fast the material is pulled off the spool. Only knowing the speed, with a lot of luck could, you do this with a stepper. But I seriously doubt it. A stepper is the worst possible choice for the design you show, especially for low speed since a stepper moves in discrete steps. I'm not saying you couldn't make it work with a stepper, I'm simply stating it will not work in the scenario you propose.

To do what you propose - with no "line speed" signal and your spring dancer, you don't want a motor, you want a brake. You want to provide a "hold back" tension against the spool/wire so it doesn't uncoil in a mess when pulled. What you really want to control is negative torque (braking action), not positive torque (motoring action).

You can do this with a permanent magnet motor and an analog circuit driving a power mosfet dumping the motor energy into a load resistor or the fet itself (with a big heatsink), much like the constant current electronic loads. Very simple stuff, the motor acts a generator and the fet brake sets the hold-back torque.

To calculate required braking torque, you need to know the speed and the tension limits. Then it is a simple matter to calculate power.

Sidebar: you'll have to forgive me here, I work with LARGE systems and this is core stuff i know from memory. We can change the units to something more relevant later but the equations remain.

Force (pounds) * speed (feet per minute) / 33,000 = HP

That gives you the maximum system power to dissipate, this sizes your motor, along with the speed range.

Next, you have to get your dancer to function in the force range you want to run. Spring tension along with dancer wrap angle sets the force. You know the desired force and can calculate the wrap angle to guide your spring selection.

Forcewire = Forcespring / (2 * sin * wrap-angle)

Where your best case is 50% of the spring force is imparted to the wire tension with 180 degrees of dancer pulley wrap.

Next step is to set your PID setpoint to 50% and feedback to the spring position hall sensor. PID output needs to increase as dancer rises.

The PID output controls your brake tension which is just the amount of load placed on the motor armature. 

Running out of time here, that's the 20,000 foot view.

I can revisit this later and finish up the sizing calcs if you want to pursue.

jpk

First things first: This is an unwinder, not a winder, right?
Correct! My first attempt was passive: I just pulled off the wire like here. It worked, but the wire got twisted. Not a big deal, but in the future I want to unwind the wire without twisting it.

To do what you propose - with no "line speed" signal and your spring dancer, you don't want a motor, you want a brake. You want to provide a "hold back" tension against the spool/wire so it doesn't uncoil in a mess when pulled.
The coil is too heavy to rotate it by just pulling the wire: thats why I need the motor... Apart from that I understood what you explained, also I can scale the formulas to my needs. Many thanks!!!

Robin2

Image from Original Post so we don't have to download it. See this  Image Guide



...R
Two or three hours spent thinking and reading documentation solves most programming problems.

avr_fred

I'm guilty of having failed to fully grasp the the problem you presented:

Quote
The coil is up to 8kg, the wire is 0.12mm and breaks at a load of 0.4kg!
I'll say again that steppers as a pay-out are problematic. They are non-linear devices.

Just what is the speed range of unwind do you need to achieve? And what is a reasonable tension to maintain in the wire to prevent stretch or breakage, whichever comes first...

Looking further down the wire, what will be done with it? Consumed in a linear fashion or in discrete lengths?

Robin2

#8
May 21, 2017, 05:05 pm Last Edit: May 21, 2017, 05:11 pm by Robin2
If you need to actively rotate the coil then what about a two-stage process. On the one hand there is the motor to cause the coil to rotate. Then the wire passes through a brake mechanism - perhaps a pair of pinch rollers that apply the appropriate tension at the bottom pulley iin your diagram. The braking force at the pinch roller could perhaps be provided by a small DC motor powered gently in reverse with PID control based on the tensioning system in your diagram. However, as the tension would be independent of the coil diameter it may be possible to set it with a simple spring tensioner as is done in a sewing machine.

That would mean that the tensioning process was independent of the diameter of the coil.

You might need a second jockey device between the coil and the pinch rollers (but just as ON/OFF) to tell the unwind motor that more wire is needed. That would mean that the pay-out motor would not need great accuracy and that the fluctuations of a stepper motor would not be a problem. Equally a small low-geared DC motor should suffice.

Nice diagram, by the way.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

avr_fred

#9
May 21, 2017, 05:39 pm Last Edit: May 21, 2017, 05:44 pm by avr_fred
Robin -

Your post just kicked my brain to the easy solution. I started thinking you have the classic problem of  mass in (MI) is not equal to mass out (MO), which always results in failure. In the case of a stepper driving the pay-out, wire comes out in discrete steps. Unless the wire is taken up in the exact same way, you violate the immutable rule of MI = MO, either breaking the wire or accumulating excess.

The solution to this problem is as old as automation - a multi-pass, spring loaded accumulator between the pay-out and the take-up. The accumulator achieves two things. One, it maintains the correct tension in the wire and Two, it provides storage that can either pay-out or take-up to adjust to the error in MI/MO.

It is really nothing more than your existing dancer with an extended distance range or extending the concept to multiple pulleys to get to a reasonable storage length as dictated by the behaviors of the pay-out and take-up ends. 

Your take-up speed is then controlled to maintain the dancer/accumulator at the center point of travel. You obviously need to synchronize the speeds of pay-out/take-up but any errors are absorbed by the accumulation of the wire between the tensioned pulleys.




cattledog

Quote
And if the weight still is too much I will install a rotating flyer which collects the wire off the then static coil like shown here
Why not go with the rotating flyer implementation. It's an obviously proven method, and by the time you work out the details of the alternative methods of tension control it may not be more complex.

If you can't implement the flyer approach on the stationary vertical spool,  I think that if the spool can be mounted horizontally on two bearings and rotate, it may simplify things.  Eight kg does not seem too heavy to manually load.

jpk

Looking further down the wire, what will be done with it? Consumed in a linear fashion or in discrete lengths?
Depends on what I have in mind: sometimes rewind to a small spool. I have now added more pulleys to the diagram of the unwinder and also a brake (marked in yellow) as suggested:


But I can't adjust take-up by the PID, I need to have the take-up processes run independently. I do think if I ramp up the take-up slow enough the large coil could move passively by just pulling the wire: if that is possible I could use a DC motor in place of the stepper to adjust braking force. Unfortunately I think that such slow ramps would not meet my needs. Also I would like to avoid the wire to pass too many pulleys as every bending will change the wire properties a tiny little bit.

Actually I don't even need constant wire tension between pay-out and take-up: I am fine if I can unwind without mess and without damaging the wire (and without twisting as I also want to use wires with non-round diameters in the future). My take-up winding machine does control the wire tension by it's own, but mechanically with a magnetic brake just before the wire is wound: so I can't read data from there to adjust pay-out.

avr_fred

#12
May 21, 2017, 08:18 pm Last Edit: May 21, 2017, 08:19 pm by avr_fred
You do not want to place a brake in position #8, there is no brake required in your latest drawing.

Tension in the wire is controlled by the spring force of #3. The position of the moving carriage (the one with 4 pulleys) depends upon the differential in speed between the wire coming out of the pay-out versus what is being pulled in by the take-up. When the speeds match, the carriage is stationary. When pay-out exceeds take-up, the pulleys move further apart, accumulating additional wire. When take-up is faster than pay-out, the pulleys move closer together, the excess taken up by... the take-up.

Two additional thoughts:

1) I'm fairly certain that the friction in the pulleys is cumulative, adding to the overall tension in the wire. So, bearing choice here would be important.

2) Since the overall tension is so low, it would most likely be far easier to offset the weight of the carriage and the desired tension force by dead weight rather than using spring force. Fishing sinkers (salt water types are available up to 500g or more) make for handy, cheap counter-weights.


Robin2

#13
May 21, 2017, 08:33 pm Last Edit: May 21, 2017, 08:36 pm by Robin2
I certainly don't have any experience with this type problem whereas @avr_fred appears to. Nevertheless the idea I was trying to convey is (I think) somewhat different from the concept in the diagram in Reply #9. From what I can see there is a common system that manages the outflow from the spool and the tension required. I have in mind to separate those completely.

This diagram may help to explain. The idea is that the pulley A can rise and fall between positions A1 and A2 to maintain just sufficient tension on the spool to prevent tangles. There could be upper and lower limit switches. When the upper switch is triggered the spool will feed out more wire until the lower switch is triggered.

Quite separately the tensioner will govern the tautness of the wire being fed into the rest of the system.



...R
Two or three hours spent thinking and reading documentation solves most programming problems.

ballscrewbob

#14
May 21, 2017, 08:52 pm Last Edit: May 21, 2017, 09:34 pm by ballscrewbob
Most of the systems I have seen in industry use a simple clutch mechanism on a very large lazy susan turntable and engage the clutch fully on last coil out.
Similar to this one

Or something as simple as this under a turntable   they come in around the $20-30 range


That is quite a simple process to achieve and doable with something simple like a three stage actuator.
A servo or stepper would be pretty good in that application as you could set the hold back force in software.

One of my prev employers used to de-coil 7/8 and 1" steel wire to process into smaller sections and as a millwright we were the only ones allowed in for a new coil start up for safety reasons.

As it came off the coils it was passed through a tensioner in the horizontal plane that also acted as a straightener before it got the the bulb process (placing a bulb shape into the steel wire by gripping it and pushing the two gripper parts together) after which if fed to the cut off machine.

If your wire is all a standard size or a few small variations in size.

Ours used roler over roller rather than stepped rollers in these applications

You could use a MIG wire feeder for your pull off as they are often lower voltage and include rollers for multiple size wires and also allow varied output speeds and are quite well priced too.

It would keep the whole process a lot more simple and includes pressure tensioners.

The one above also does some of the straightening too having dual rollers. Most just use one main roller.
Those roller are meant for a very long lifespan too !

It looks like you are flattening the wire as well which you could incorporate some of that function into a mig wire feeder to help speed up your process.

On Ebay they start at around $24 us WHICH CONSIDERING WHAT THEY DO IS A STEAL !
It may not be the answer you were looking for but its the one I am giving based on either experience, educated guess, google (who would have thunk it ! ) or the fact that you gave nothing to go with in the first place so I used my wonky crystal ball.

Go Up