# Building a PWM circuit to control a 90v DC motor at 20amps. Will this work?

Sharing the load among 4 transistors with ballast resistors -

• Why not use a single MOSFET rated at 20A plus - you will save yourself a ton of power. – Icy Nov 11 '15 at 17:59
• The body of a question should be able to stand by itself. There is no question here, as nothing was ever asked. Even taking the question from the title (-1 for requiring that), there is no way to answer since we don't know what "works" means to you. As for how the transistors are driven, there are definitely some issues, but that's getting ahead of ourselves without a proper question. – Olin Lathrop Nov 11 '15 at 18:00
• You would need more than a 12V PWM to turn on your BD139 properly, as it is configured as an emitter follower. – Icy Nov 11 '15 at 18:07
• @Olin Lathrop - Sorry, I'm new to this site and the directions said to be as detailed as possible in the title. When I say "works" I mean will it function adequately as a PWM speed controller for the motor. I don't know if all the resistor values are correct and I don't know if the BD139 is the optimal transistor for switching all the MJ15015G's on. – John Meiers Nov 11 '15 at 18:48
• An 1800 watt (about 2-1/2 horsepower) motor isn't a trivial beast to deal with, and if your goal is to PWM it, the motor's inductance and the frequency and duty cycle of its PWM drive matter. Can you define them, please? – EM Fields Nov 11 '15 at 20:07

Aggregating all of the good advice so far, you'd wind up with a circuit that looks like the attached schematic.

However, without knowing the inductance of the motor and the frequency and duty cycle of the PWM driving the motor, It'd be impossible to tell if what you want to do is even possible.

Just for grins, I ran an LTspice simulation using an inductance of one millihenry for the motor, and the LTspice circuit list follows, if you want to play with the circuit.

Version 4
SHEET 1 880 680
WIRE 64 -96 -112 -96
WIRE 160 -96 64 -96
WIRE 160 -48 160 -96
WIRE 64 16 64 -96
WIRE 160 64 160 32
WIRE 64 176 64 80
WIRE 160 176 160 144
WIRE 160 176 64 176
WIRE 160 192 160 176
WIRE 112 272 64 272
WIRE -112 320 -112 -96
WIRE 64 320 64 272
WIRE -112 432 -112 400
WIRE 64 432 64 400
WIRE 64 432 -112 432
WIRE 160 432 160 288
WIRE 160 432 64 432
WIRE -112 480 -112 432
FLAG -112 480 0
SYMBOL nmos 112 192 R0
SYMATTR InstName M1
SYMATTR Value IPB065N15N3
SYMBOL res 144 -64 R0
SYMATTR InstName R1
SYMATTR Value 4.5
SYMBOL voltage -112 304 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value 90
SYMBOL voltage 64 304 R0
WINDOW 3 24 96 Invisible 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value PULSE(0 10 1m 100n 100n 1m 2m)
SYMATTR InstName V2
SYMBOL ind 144 48 R0
SYMATTR InstName L1
SYMATTR Value 1m
SYMBOL schottky 80 80 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value MBR20100CT
SYMATTR Description Diode
SYMATTR Type diode
TEXT -104 456 Left 2 !.tran .1


Your diodes are in the wrong place, they should be here: -

You need back-emf protection.

The circuit is marginal, especially the use of the BD139. First, a 20 A motor current implies a roughly 2 amp (total) base current for the output stage - for good saturation a gain of 10 is the normal practice. Also note that saturation voltage will be in the range of 1.1 volts, for a total output stage power dissipation of 5.5 watts per transistor and 7.5 watts per resistor.

Furthermore, 0.5 amps per base implies a voltage drop of 11 volts on the 22 ohm base resistors. If the input PWM voltage is 0 to 5 volts, there is no way the BD139 will provide this, since it's run as an emitter follower. Even worse, assuming a gain of 50 in the BD139, this assumes a base current of 40 mA,, and a drop of 15.6 volts across the base resistor. Finally, the peak current for a BD139 is only 3 amps, with 1.5 nominal, and this is not really sufficient margin for reliable operation.

I'd recommend a different topology, probably using a PNP.

Others have already mentioned the diodes and the insufficient base drive current. Some more problems:

1. The resistor on the base of the BD139 does nothing useful. It only makes the minimum drive voltage requirement even higher.

2. Even if all the transistors were properly fed, this is going to be very slow turning off. You've only got one 10 kΩ pulldown for all the bases.

As someone already pointed out, this would be better done with a FET or maybe two in parallel. Since you're here asking, keep it simple and use a off the shelf FET gate driver. Actually, you'd use one per FET. These things are available in dual packages, so that is still just one IC. In this case, you want a small resistor in series with each FET gate, between the FET and the gate driver output.