Use two motors to pull on a thread from both sides?

I want to use two odrive motors to pull on a thread from two sides.

The goal is to move a small weight between two tables as fast as possible to a position that will be defined by the user. This requires the motors to accelerate and decellerate at the same time and also keep a constant tension on the wire while going to the next position. Is it possible to operate in position mode while at the same time keep a constant torque?

I know that the trivial solution would be to replace one motor with an idle roller and make a loop with the wire. This would obviosly be much easier/faster/cheaper for most applications. However I can not use a loop, so I require an individual motor on each side of the wire.

I think you’ll need to write a special firmware for this. To maintain constant tension, you need the sum of both torques to be a constant. But in order to move, one needs to be larger than the other. So you’ll need to make a PID loop that controls position using the torque difference.

1 Like

No need for custom firmware. Two ways forward:

  1. Have the one motor in position control and the other one in current control. Set the 2nd motor to the current needed depending on the desired torque. Control position with the first.

  2. Set both motors in position control, but set the difference in position (multiplied with the correct scaling factors) to be a bit larger than the distance of the tables. This will have the effect of both controllers applying opposite torques to reach their positions. Change the positions in tandem, maintaining the set distance between them.

Btw, in equilibrium both torques sum to zero. Non zero net torque produces acceleration of the mass on the string.

1 Like