I am trying to design a voltage-controlled current source supplying 0 -> +/-2Adc into a 20Ohm, 100mH load from a +/-100Vdc supply. I need at least 3kHz bandwidth for small signals, but my current circuit lags well below this point and I am struggling to find out why. Here is the circuit : enter image description here Note that the opamp is supplied with +/-120V even though it is impossible - I need to get that circuit to work before getting to how to drive the gates of the transistors.

Transients for 1kHz control (Green: output of MOSFETs, light blue: output of opamp, dark blue: sense, red: control): enter image description here I do not know why the voltage is so slow to decrease. Where could it come from?

Edit: I've tried with a LT1226 for example and it works very well (10kHz bandwidth)... Why?

My second problem is how to drive the gates of the transistors (which, looking at the simulation, require a higher voltage than Vds): a) if I buy lab supplies to supply rails higher than the +/-100V, or b) if I make do with the lab supplies I have. Any suggestions are welcome... enter image description here

Edit: Dissipation, cost and space is not design drivers, but speed and stability are.

  • \$\begingroup\$ Why does the op-amp output not go to -120V? \$\endgroup\$
    – Phil Frost
    Sep 11, 2017 at 13:01
  • \$\begingroup\$ Excellent question, that's exactly what I am asking! No idea... \$\endgroup\$ Sep 11, 2017 at 13:14
  • \$\begingroup\$ Maybe it has something to do with a +/- 120V supply to the op-amp? While the simulator doesn't necessarily simulate smoke, it doesn't necessarily guarantee the models can be extrapolated to voltages 10x outside the device's specifications, either. \$\endgroup\$
    – Phil Frost
    Sep 11, 2017 at 13:20
  • \$\begingroup\$ I've tried with a LT1226 and it works like a charm. I don't know why though. Even if I ignore this (which I rather wouldn't), I still don't know how to amplify the +/-15V from the opamp to +/-110V or so required at the gate of the MOSFET. Any ideas? \$\endgroup\$ Sep 11, 2017 at 13:41
  • \$\begingroup\$ Probably because the LT1226 model is different, and for irrelevant reasons, it works at +/- 120. Since 120V is far outside the maximum supply voltage for either device, that sounds like exactly the sort of thing you should ignore. \$\endgroup\$
    – Phil Frost
    Sep 11, 2017 at 13:46

2 Answers 2


Design review:

If you can tolerate the ripple, a class-D solution would provide much lower dissipation. I suggest a Class-D audio amplifier. For 100V you need a 600WRMS/8ohm amp.

I suggest getting an IRS2092 amp kit and hacking the feedback (by putting an opamp around it) to achieve current mode.

If you can tolerate high distortion, a simple hysteretic scheme can work very well: a comparator monitors the current across the current sense, then drives either the top or bottom FET to increase/decrease the current and keep it close to target. This gives high distortion, but it's quite simple.

In this case, you need fast switching FETs of course.

I would suggest hacking a uCD but getting the feedback loop to work in current mode will be a problem.

Now, this can be done in Class D and would be an elegant solution, but if you're looking for a quick and dirty solution, going linear with a huge heatsink will most likely be a faster option. It will also produce much less EMI and distortion unless you're a class D guru.

  • Thermal

DC mode: With 20R resistive load, maximum MOSFET dissipation is 125W which is excessive for TO-247 if a thermal silpad is used. Bolted & greased on a watercooled heatsink, maybe, but then your heatsink sits at 100V which is not finger-friendly. The PMOS is TO-220, so at 125W it becomes a puff of smoke in about 1-2 seconds. TO-220 will not handle this kind of power. Also, you want to spread the thermal power on your heatsink, not heat just one point and hope the heat spreads laterally. This needs at least two pairs of TO-247 FETs.

AC mode: The load has high inductance (100mH) so current and voltage will be out of phase. This increases dissipation in the FETs, and may exceed their safe operating area (SOA). Calculating peak dissipation can be done with a bit of math or spice, your choice. Most likely you'll end up with 3-4 pairs of FETs.

  • FET selection

Your FETs are wrong: you don't need ultra low RdsON. 0.2R would be good, even 1R, since you're going to have 4 FETs per side. Problem is, for 80V rails, IRFP240/IRFP9240 are excellent, low capacitance, fast, huge safe operating area, but they're 200V parts, and for 100V rails we need 240V VDS FETs and the offering isn't that good. IRFP244 or IRFP240 have very high capacitance. I guess FQA9P25 would be nice for the PMOS.

You could also use bipolars but the SOA restrictions are going to be a real problem. At 200V, for 50ms, max current is only 500mA to avoid second breakdown, so you'd need 4 pairs. They're 2-3€ each, so why not.

However, if we use 4 pairs, then the average dissipation will be low enough to be back into TO220 territory. I went to check mouser search engine. We need to avoid modern FETs like Trench/OptiMos and the like which are designed for switching and will have hotspots in linear mode, which is basically the same as second breakdown, and results in smoke. So we need old FETs, with highish RdsON, like planar stripe DMOS and relatives.

And now, we have candidates: NMOS FQP3N30 FQP9N30, PMOS FQP9P25

What you're looking for is a reasonable RdsON (like 2 ohms or less) and a low RthJC for optimum cooling. The FQP9 (9 amps) look good. Also they are cheap so you can parallel them without spending too much.

So let's go with 4x FQP9N30/FQP9P25, you'll need to do the thermal calculations here (I feel a bit lazy) but it should be alright. Don't forget the thermal resistance of the silpad, it's what gets you. But these should have no trouble.

  • Schematic

This one's gonna be easy: everything is wrong with the schematic.

I suggest you start with an audio amplifier, aim for 1kW/8R as this will be the correct voltage, something like that:

This one. (check out the number of FETs: 80V supplies and a 3-4R load really stretches the safe operating area! For 20R load you need less FETs of course)

I like this one better, but it uses bipolars, so it should be adapted. I don't know if you'd be able to tune the compensation etc.

Another option would be a junk cheap used PA amp, and then you'd mess with the feedback to make it current mode. This would require schematics, though.

Now, keep in mind that capacitors charged to +/- 100V are far into the "kill yourself" zone, that any piece of metal that makes a short will be vaporized and spray your safety glasses (and face) with molten metal, etc.


Let's lower the supply to +/-15V for now so the opamp works.

  • Bias the FETs

The way you connected the output FETs creates a class-B amplifier: only one conducts at a time. When output current changes sign, one FET has to turn off and the other has to turn on. However, they'll have a few volts Vgs threshold, so the opamp's output needs to move by several volts in a very short time to do this (it will slew limit).

So, the output FETs need to be biased, by applying a voltage betwen the gates that is "just right" to make them both conduct some idle current (like 50mA). Just visualize a voltage source between te gates.

Since gate threshold voltage has a temperature coefficient of about -4..-6 mV/°C for vertical FETs, this voltage needs to be temperature-compensated, and the simplest is to generate it with a Vbe-multiplier:

enter image description here

(just pretend Qn and Qp are MOSFETs).

Since Vbe of Q1 has a tempco of -2mV/°C, multiplying it by about 5-6 by adjusting resistor values gives about 3.6V with the right temperature compensation. For MOSFETs you'd need a few extra volts, perhaps 6-8V so if you look up the schematic of your poweramp in the datasheet you'll see they added a zener.

If you want to it in the simulator, just use voltage sources of 3-4V between the opa's output and the gates, and adjust for idle current around 50mA.

  • Adjust compensation

As it is the circuit will oscillate because the inductor adds 90° phase lag in the open loop response. Thus the feedback network needs to be adjusted.

You will also need to do this will the power opamp you're going to buy.

  • Shifting the OPA's output voltage

There are various schemes to do this (most are more annoying than using a discrete input stage...)

enter image description here

The idea is to turn the opamp's ouput voltage into a current, then shift this with transistors and use it to drive the output stage.

Note this schematic is a bit crappy, as Q1/Q2 work in class B and the outptu stage is driven from a current source instead of push pull, but well, it's the general idea.

  • \$\begingroup\$ Thanks a lot peufeu for taking the time to analyse all this. I am indeed looking for a quick and dirty circuit , even if it ends up being more efficient as a radiator, or even if it costs me an arm and a leg. I am well aware though that the design is definitely going up in smoke as-is, this is simply to solve the concept, the architecture, before going into the details of how many FETs and what they are. Your comments will go a long way to speeding up the next phases, but I still don't know what to put between the opamp and the MOSFETs (I'd like to avoid an "all-discrete" approach). Any idea? \$\endgroup\$ Sep 11, 2017 at 15:38
  • \$\begingroup\$ Weeeelll, it's basically an audio amp (minus the hi-fi features which I presume you don't care about). Can you change the load? Like rewire it for 50V/4A instead of 100V/2A? The closest you get it to a 8 ohm loudspeaker, the closest you get to an off-the-shelf, cheap audio amp... If you can't change the load, then we'll see about this opamp. \$\endgroup\$
    – bobflux
    Sep 11, 2017 at 16:13
  • \$\begingroup\$ Unfortunately I can't change the load, the load (a motor) is the system I need to test (this is just a test setup) :) \$\endgroup\$ Sep 11, 2017 at 16:37
  • \$\begingroup\$ Do you need high accuracy/low distortion, or will a hack job hysteretic buck DC-DC which keeps the current on target with say 20mA of ripple work? \$\endgroup\$
    – bobflux
    Sep 11, 2017 at 16:40
  • \$\begingroup\$ I chose linear over chopping because it will degrade the measurements of the unit under test - high accuracy and low distortion it is! \$\endgroup\$ Sep 11, 2017 at 17:26

Put a current sensor on the ground side of the bottom MOSFET. I believe you will find that both MOSFETS are turned on and there is a significant current flowing through the two mosfets. You circuit does not appear to address the biasing requirements for the mosfets.

Depending on what your requirements are for efficiency, distortion and EMI you might look at a class D switching solution instead. You could also use something close to what you have using bipolar transistors instead, they are a little easier to bias in this configuration.

  • \$\begingroup\$ Thank you for your answer. Sorry, I edited my post because the lower MOSFET was upside-down... Which makes it a different problem. +1 though for the suggestions. In this new circuit, the Ids is quite low (100mA max). I've tried motor drivers available in the market, all featuring 40kHz PWM, and the closed-loop bandwidth was very low (600Hz). So I would like to design something clunky but that does the job instead. \$\endgroup\$ Sep 11, 2017 at 11:44
  • \$\begingroup\$ Current sense in the bottom FET won't work in class-AB which is required here. \$\endgroup\$
    – bobflux
    Sep 11, 2017 at 13:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.