Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Two DC-motors acting against eachother

  1. Jun 25, 2014 #1
    Hello guys!

    I'm trying to model two shafts connected to each other by gears. I have two servo-controlled DC-motors, one on each shaft and I want them to work against each other.

    1) I want to keep the angular velocity of Motor1 constant, so that the angular velocities of the two shafts are constant. This will result in the torque being close to 0 due to the formula:

    torque = (angular acceleration)x(inertia).

    2) Once I get a constant angular velocity, I want Motor2 to apply a braking torque without changing the constant angular velocity. This will lead to internal torque on the two shaft but the total torque will still be close to zero due to the formula above.

    How do I apply a breaking torque from Motor2 on the shafts without changing the angular velocities of the shafts? Motor2 is speed-controlled?

    This is a simple illustration of the coupling I have between the two motors and shafts:


    The formulas I've been looking at are as follows:

    1) T1*w1 = T2*w2, T is torque and w1 is angular velocity (power is being conserved through the gears)
    2) T = J*w, J is moment of inertia
    3) w1 = n*w2, n is the gear ratio
    4) M1 = M2/n

    Thanks in advance!
  2. jcsd
  3. Jun 25, 2014 #2


    User Avatar
    Science Advisor
    Gold Member

    Have you considered PID controllers? This seems like a dynamic situation, and so you will need to provide controls to govern the system.
  4. Jun 30, 2014 #3


    User Avatar
    Science Advisor

    DC motor torque is proportional to current. Where backlash is a problem, two DC motors can be operated driving the one shaft through two gear trains. It is normal to control the motors with currents, but one is given a positive bias current, the other a negative bias current. To control the position or speed, the current to both motors are tracked together, still with the same bias difference. That way the gear trains are always free of backlash, when it needs to accelerate both motors are available to work together.

    I do not know how your servo controllers are configured. You will need to have control of the motor currents to control torque. Since you only have one rotor you should be able to do it with only one speed / position sensor.

    If the servo controllers use a phase modulated H-bridge to drive the motors, then you will be unable to control the motor bias current directly. You will have to program the controllers somehow, maybe throw one of them out.
  5. Jul 1, 2014 #4
    First of all, thanks for answering, despite the poor description. To make things clear, this is an already existing system that I want to model and be able to simulate. I'm using Simulink to do that.

    UltrafastPED: yes I have two PID-controllers, one for each motor, i.e. one of them controls the angular velocity of the shaft and the other one the torque of the shaft.

    Baluncore: I think both PID-controllers are controlled by voltage. The PID that controls the angular velocity is directly controlled by the voltage (since the voltage is proportional to the angular velocity). The PID that controls the torque is indirectly controlled by the voltage, since the voltage controls the current (V = R*I).

    My biggest concern is the transferfunctions. I'm quite sure I've got the right transferfunction for the single motor, but I'm not completely sure if it's correct when both motors are connected. I'll give you an illustration below
    Last edited: Jul 1, 2014
  6. Jul 1, 2014 #5
    https://imagizer.imageshack.us/v2/524x338q90/840/t1ds.png [Broken]

    So this is the first DC-motor, attached to a shaft with inertia L.
    b is a frictional constant, k_T is a scaling factor between current and torque. k_w is a scaling factor between voltage and angular velocity. T_L is load torque and T_m is the torque produced by the motor

    With the help of fourier transforming I eventually get the following transferfunction:

    https://imagizer.imageshack.us/v2/1023x333q90/853/697s.png [Broken]

    This is now the complete system with the two motors and two shafts (coupled with gears with exchange ratio n).

    https://imagizer.imageshack.us/v2/906x406q90/829/yhz4.png [Broken]

    My questions are now

    1. How will the two motors depend on each other when they are coupled?
    2. Motor1 controls angular velocity,w. Does that mean that the angular velocity of motor2 will be the same as for motor1 (after the scaling of the gears of course)?
    3. In the same way, does it imply that motor2 has the same torque (but scaled) as motor1? Because motor1 controls the torque.

    4. And furthermore, should i consider L_1 and L_2 as the total load for motor2 ? or should I still use L_1 for motor1 and L_2 for motor2 ?

    Thanks in advance!
    Last edited by a moderator: May 6, 2017
  7. Jul 2, 2014 #6


    User Avatar
    Science Advisor

    Energy from motor1 travels through motor1, L1, L2 and motor2. As it travels along that line it must overcome friction losses and finally provide sufficient torque to counter the controlled torque of motor2.

    They can be treated as tightly coupled except when there is backlash in the gear-train.
    If motor1 accelerates L1 and motor2 does not produce enough torque to accelerate it's side of the gear-train = L2, then backlash will become apparent which will probably appear as a non-linear high frequency effect in your model. If motor2 produces sufficient torque to prevent backlash then motor1 will have to counter the motor2 torque.

    Yes, they must have the same angular velocity, except when there is backlash, then there will be phase noise.

    The motor1 controller will vary motor1 torque to maintain the angular velocity specified.
    The motor2 controller will vary motor2 torque to that specified.
    Motor1 must generate an additional component of torque to counter the torque applied by motor2.
    Ignoring losses and acceleration, they must have opposite torques to prevent change of angular velocity.

    You missed the third option. Motor1 does all the work, and more to counter motor2.
    L1 and L2 are separate only while there is backlash. Any torque produced by motor1 to accelerate motor1, L1, L2 and motor2 must come from the speed control motor. The energy flows along the chain to motor2 that generates a torque back through the system to be countered by motor1.

    All work is done and all loads accelerated by motor1. Motor2 just prevents backlash.
    Motor1 has to do additional work to counter moror2.
  8. Jul 2, 2014 #7
    Baluncore my friend, thank you for taking your time to answer my questions! I can't describe how thankful I am, you totally made my day :). This is my first big modelling project and I had big doubts in my model, but now that I got your answers I'm more confident about it.

    Altough I've modeled it this way, I never thought of it like that. Makes it much easier to understand how the system actually works. Thanks a lot for that!

    I have one more question guys:

    Do you have any idea about how I should choose the parameters of the motor? I.e approximately how should I choose Ra and La in the first figure in my last post.
    This is the information I've got about the motor:

    Motor data:
    Rated torque MN: 190Nm
    Rated power PN: >49kW
    Rated current IN: 113A
    Rated speed nN: 2500 rpm
    Key speed n1: 2000 rpm
    Maximum torque Mmax: 432Nm
    Maximum output Pmax: 102kW
    Maximum current Imax: 214.9A
    Maximum speed nmax: 7500 rpm
    Continuous torque at standstill Mn1: 200 Nm
    Continuous current at standstill In1: 113A
    Moment of inertia Jrot: 0.151kgm²
    Mass m: 147 kg
    Acceleration time 0 to 7500 rpm: 0.446sec
    Cooling type: Water cooling

    Thanks in advance. /cristian
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook