How to control motor relative position/speed

Thread Starter

strantor

Joined Oct 3, 2010
6,875
I don' know the capabilities of a PLC so I don't know if you could implement this idea.
Each motor would have an encoder with the same number of pulses per rev.
From the 342 rpm motor we would divide the pulses by 200. From the other motor we would divide the pulses by 177. (The smallest integers to get a ratio of 88.5%) The outputs of the dividers would clock a counter. one would clock it up the other would clock it down. For example if we made this an 8 bit counter and initialised it to a value of 128 when the motor speeds were in the correct ratio it would would remain within 1 count of that value. If the speed ratio was wrong it would increase or decrease from the value of 128. The value of this counter would be the error signal with 128 being zero error. The value from this counter could be fed into a DAC and used to adjust the control voltage to the slave VFD.

Les.
Very clever sir! Unfortunately it won't always be the same ratio. The ratio will change as the bobbin fills with cable. I would need to be constantly computing new integers for the changing ratio and I think that would probably add a layer of complexity that would undermine the elegance of your solution.

It's actually easy (too easy) to multiply floating point numbers in the PLC. I try avoid using floating point when I can, as (I think) it's costly in terms of cycle time, but the PLC's processor is no slouch and in this case I think it's called for.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,875
I like the idea proposed by @LesJones.

Here is my modification using PLL concept.

Motor A -> encoder -> divide by 200
Motor B -> encoder -> divide by 177
Feed the two signals into the DATA and CLOCK of a D-type flip-flop.
D-type flip-flop -> low-pass filter -> error voltage output -> VFD

You can also use an XOR gate or CD4046 phase detector.
The PLC's programming environment is quite a bit different than this. Unless you're suggesting to build a physical circuit? I would rather do it in the PLC.
 

LesJones

Joined Jan 8, 2017
4,509
I was thinking of doing the division by 200 and 177 in software so it could even be changed on the fly. I tend to think in terms of assembler programing and this would be quite easy. the counting would be done in the interrupt service routine. the pulses from each encoder would cause an interrupt that would increment it's own counter (Which with the above numbers only needs to be one byte.) The counter would then be compared with 177 (Or the value required at that point in time.) If there was a match the count would be set back to zero. At that point in the program it would increment or decrement the byte that holds the error value. The same sort of thing would happen with the pulse from the other encoder. I don't know if it is possible to do this sort of thing with a PLC.
Another suggestion would be to control the takeup drum motor from the tension in the cable. Pass the cable over two fixed pulleys wit a spring loaded third pulley between them. Also have a position sensor on this pulley that controlled the speed of the takeup motor. (This servo system would aim to keep the third pulley in the same position.)

Les.
 

MrChips

Joined Oct 2, 2009
34,958
I think Les is on to something here. You don't need to know the speed of the motors.
You need to know the feed rate of the two cables.
 

MrSalts

Joined Apr 2, 2020
2,767
Set it up to count rotations (total integration) of the master motor. Then the slaves PID is to achieve 88.3% of master motor's total rotations. I'd leave a 1 to 5-second window of old data in the P and D terms to avoid too much gain and overshoot but keep all integration data until a direction change or stop occurs. Once the slave meets its target, as a direction change or stop occurs. Reset the integration term to zero.
 

GetDeviceInfo

Joined Jun 7, 2009
2,275
Sorry that was over my head. Are you asking me to divulge the application? If so it's like the first piece if equipment shown in this video:
the two coordinated axes are the bobbin in the center and the cage ("flyer") that spins around the outside of it.
Which two drives are you referring?
 

LesJones

Joined Jan 8, 2017
4,509
Another way to think about it is it is a phase lock loop with part of the feedback loop being mechanical. You are creating a different frequency that is some ratio of a master frequency. The two frequencies being the output of the encoders. It was thinking of it this way that resulted in my suggestion. Will the speed ratio just change at the end of each layer of cable on the takeup drum ? Or is is more complex ?
If you could use a DC (PM or shunt.) motor you could control the torque by limiting the armature current. The speed would then be what was required to keep the cable tensioned.

Les.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,875
Another way to think about it is it is a phase lock loop with part of the feedback loop being mechanical. You are creating a different frequency that is some ratio of a master frequency. The two frequencies being the output of the encoders. It was thinking of it this way that resulted in my suggestion. Will the speed ratio just change at the end of each layer of cable on the takeup drum ? Or is is more complex ?
If you could use a DC (PM or shunt.) motor you could control the torque by limiting the armature current. The speed would then be what was required to keep the cable tensioned.

Les.
The way the thing works is that the flyer spins a ratio to line speed to establish the lay length (twist rate) and the bobbin spins inside the flyer, same RPM as the flyer plus a few RPM to generate the line speed upon which the flyer's RPM is based. It's not a simple take-up where you can use (as you described) a dancer to control tension. This thing might be spinning several hundred RPM and only moving cable a few feet per minute. I think of it as being analogous to the Smokey & the Bandit stunt of driving the Trans Am up into the back of an 18-wheeler while driving down the highway. The video I posted earlier was of an extremely slow operation, so folks can get an idea how it works. In real life it's much faster.
 
Last edited:

Thread Starter

strantor

Joined Oct 3, 2010
6,875
I just worked through the night implementing the new speed feedback loop. It works, but just barely. I think I have found the extreme limit of what VFDs and induction motors can do.There is not much room for error at all. The application is more demanding than I thought. You can see in the screen picture below, just a snapshot I took during the early phase of tuning it, the bobbin has a negative error of -0.03438 revs (12.38 degrees) and the flyer has a positive error of 0.03918 revs (14.1 degrees) and this results in a lay length of 2.497 inches, when the setpoint is 1.77 inches, so an error of 41%.

20210719_062331.jpg

If that were a video instead of a snapshot, you'd see that the error goes positive to negative and back very fast, but the distance of cable between the gathering die and the flyer serves to dampen the effects and resultant cable has a very accurate lay length. It was very tricky at low speeds though.

Here's a video from my last visit, when I was just using speed control, no position/error compensation. The cable is actually moving, but appears stationary as it's sort of a "standing wave."


When I pinch it and the area that I'm pinching starts to shift to the right, that is the lay length changing (bad news) and the result of position error between the bobbin and flyer. That error is corrected now.
 
Top