PWM based simple DC motor controller - torque is lost

Discussion in 'The Projects Forum' started by eimix, Sep 15, 2008.

  1. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    Hi

    i build some sort of DC motor speed controller:
    [​IMG]

    It works fine,
    soft-start works, reverse works, forward and turbo modes also works ;)
    but problem is that torque is lost (somehow) no more wheel spinning in toy car. Stall torque is low :(
    But top speed looks the same.

    U can say that's because of soft-start, but even if i let wheels spin (not touching ground at all) and after that i put it on ground - it stops after short time.

    Earlier it was with IRF540N mosfet in use, but i changed it to IRLZ34N (lower turn-on Vgs), but almost nothing changed.

    As R1 resistor (potentiometer) is variable i tried to make duty cycle of 555 timer 100% (upper side 10K oms, lower 0 oms) and in that case torque becomes as it was before adding new controller. (wheel spinning, almost good for drifting)

    But as soon i set R1 to about 95% duty cycle (upper side 9.5K oms, lower - 0.5K oms) torque is lost :( It looks like half (50% or more) of torque is away :(

    I tried C1 1uF and 100nF, almost no difference in torque - only sound of motor changes :) about 100Hz and 1Khz, sounds funny, but it does not matters, or should i go for higher frequencies? 10Khz? 20Khz 100Khz? (motor is similar to Speed 400 6V)

    I hope that my description is clear, if not please let me know i'll try to clarify it.

    Thanks for ideas
     
  2. mik3

    Senior Member

    Feb 4, 2008
    4,846
    63
    Lets say your relay contacts are numbered from 1 to 4 starting from top to bottom as in your schematic. You have to connect a diode between contacts 2 and 4 with its anode on contact 4. Also, you have to connect another diode between contacts 1 and 2 with its anode on contact 1. This will increase your torque because you increase the average current through the motor and it will minimize sparks across the contacts which shorten your relay's life. If you put the diodes, i think a 100KHz frequency will be fine. If the car does not move with a duty cycle of 50% (for example) when it is stopped and you try to start it then try to start it with full duty cycle until it speeds up and then reduce it to control the speed.
     
  3. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    Is it all about those diodes?
    When i was googling for H bridge some time ago, i remember such ones, they were named as "free wheeling diodes" (not sure) are your suggestion the same? can i find anything more to read about this issue?

    I tried to understand what does your suggestion change:
    car is going forward (relay is switched off),
    a) if 555 output is high, mosfet is open, motor starts turning, diode does nothing.
    b) if 555 output is low, mosfet is off, motor keeps turning, producing electricity in same polarity and diode also does nothing.

    and why two diodes? they would be in pararel?

    i think i messed up and missing a point. :(
     
  4. mikeh

    New Member

    Sep 15, 2008
    1
    0
    what gauge wire are you using dc motors use large current?
    i use pwm but with a inductor and cap hand wind core about 20mm outside with 2mm enamled copper cap high ripple about 100-200 uf 40 v
    this cleans up the pwm ripple and is more dc
    use this on final drive after relay
    higher the pwm the better
    hope this helps
     
  5. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    current of stall motor directly connected to battery ~ 6A. if connected to controller - current ~4.5-5A (on 95% duty cycle) but i'm not sure if my tester shows truth while measuring PWM circuit.

    wires from battery to controller ~30cm long, ~18 small threads of copper (i do not know the diameter) but wires are like in PC for older HDD/CRROM power up cables. from controller to motor ~20cm.

    but big inductor and cap near motor would make PWM to DC conversion, is this necessary?

    for now i will try diodes, higher frequency, if that does not help - i will try big inductor and cap combination.
     
  6. n9352527

    AAC Fanatic!

    Oct 14, 2005
    1,198
    4
    Is the torque the same on forward and reverse? Either way, in one case (either forward or reverse) the MOSFET would not be saturated.

    I also think that 10K is too high a value to drive the MOSFET. Try a lower value resistor.
     
  7. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    i'm testing torque in "turbo" mode 95% duty cycle, simple forward and revers is ~50% duty cycle, and seems to have same torque, and even smaller then it is in turbo mode.

    there was resistor (10k driving mosfet) before - without it i burned 3 555 timers :D so i added 10k, 1k would be enouth? or more smaller?
     
  8. mik3

    Senior Member

    Feb 4, 2008
    4,846
    63
    When the MOSFET is off the motos keeps rotating and producing a voltage but in opposite polarity than the applied voltage (when mosfet is on) thus the diode contacts and current flows through the motor. You have to use two diodes because you reverse the motor too. Just connect then as i told you in post #2.
    What is the threshold voltage of the mosfet?
    Maybe the output voltage of the 555 is not enough to fully turn on the mos. Does it get very hot?
     
  9. scubasteve_911

    Senior Member

    Dec 27, 2007
    1,202
    1
    Engineers always make this mistake! Mosfets have a gate charge, you must charge / discharge this quickly with sufficient current in order to keep the mosfet out of the linear region.

    Steve
     
  10. mik3

    Senior Member

    Feb 4, 2008
    4,846
    63
    Yes, your right, but the gate charge discharges through the output of the 555 when it is low.
    But eimix, to be sure you have to connect a resistor across the gate-source terminals of the mos. A 10K will be fine.
     
  11. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    if i understand your pin numbering correctly - 1 and 4 pins are connected to each other directly. 2 and 3 are also connected together (on left side of relay). So it seems that only one diode is needed- i will put 1N4007 (have some on table).

    Mosfet Threshold is ~2V, it is 13amps @5V Vgs (motor takes only 6Amps stall current) http://alpha.octopart.com/International_Rectifier__IRLZ34N.pdf

    Mosfet has heatsink (~10cm² plain plate) and if car is running freely (without aditional load) it does not get worm. If car is running forward/backward many times (for 10minutes) -heatsink warms up to ~50C°
     
  12. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    Do u want to say that 10K is too much (between 555 timer output and mosfet?) max timer output is 6.4V, and it can sink/source upto 100-200mA, so that resistor should be 50-100Ohms? right?
     
    Last edited: Sep 16, 2008
  13. eimix

    Thread Starter Active Member

    Sep 2, 2008
    32
    0
    Last modified circuit (running in reality)
    [​IMG]

    It still works :)
    But no significant increase in torque :(

    MOSFET gate resistor reduced (R3), and grounded with (R4)

    D2 diode added.

    What else should i try?
    Increasing frequency?
     
  14. scubasteve_911

    Senior Member

    Dec 27, 2007
    1,202
    1
    I would either calculate the values from first principals, or play with values around that range.

    Steve
     
  15. mik3

    Senior Member

    Feb 4, 2008
    4,846
    63
    Calculate the inductance of the motor coils to find the appropriate frequency to control it. Put a 1K resistor in series with tha motor and then stall it. Then apply a 9V AC voltage across the resistor in series with the motor and measure the current through the circuit and the voltage across the motor. If you assume the motor as a pure inductor (because the resistance of the winding is very small), then divide the measured voltage by the measured current to find the reactance of the motor.

    Because X=2*3.14*f*L

    where
    X=reactance
    f=frequency of the applied AC voltage
    L=inductance

    Then L=X/(2*3.14*f)

    Finally, you have to calculate what switching frequency you need to reduce the current ripple to a low level as to increase the torque.
     
    Last edited: Sep 17, 2008
  16. Bernard

    AAC Fanatic!

    Aug 7, 2008
    4,172
    397
    Here's my 2 c/.One fast recovery, schottkey or gold doped,diode with current rating = to motor rating is sufficent. Adding 10 k gate to source will drop drive 50%. Some DC motors not rated for forward/reverse may run slower in reverse if brush position is optimized for forward. " current of stall motor ",I assume stall is not locked rotor current which might be as high as 60 A. Has the 555 output wave form been observed as well as calculated ?
     
Loading...