Thanks for the reply, and for the effort you put into them. Much appreciated.
I also found AN133. Good read.
Now I am diving into learning more about AC analysis (there's a huge amount to learn here
). Meanwhile, I have been playing around with the AC analysis in LTspice, using your model as a starting point.
By random testing, I think I have found a configuration with much higher bandwidth that appears to be stable (from my unexperienced read of the Bode plots). This is probably all obvious to someone in the know, but I'll put it out anyhow.
1. Use a higher bandwidth op-amp
2. Reduce feedback capacitor (what is the proper name here?) from 220pF to 20pF.
3. Remove, or reduce the base resistor to the MOSFET (Downsides?)
4. The changes above cause instability -> Change the compensation by removing the resistor, and reducing the compensation capacitor to 1uF. (This makes the configuration look just like a regular bypass capacitor, which does fill the same role. I am not sure if that's improper in some way in the context of an electronic load. Seems fine.)
With these changes, I can get very clean waveforms, with a bandwidth of ~500kHz, and ~7A/us peak (4 source MOSFETS), even with plenty of lead inductance. Undoubtedly, things may turn out differently when I build this thing. The nice thing is that the architecture seems general enough to allow lots of experimentation with different component values, so if things turn out unstable, there is no need to start over with a new board (as long as the layout is good enough).
One issue I found with the circuit in this thread, is that the square wave reference voltage for pulsed loads has large spikes. The spikes are not present at the oscillator itself, but only after the transistor switching the reference voltage. Some kind of parasitic of the transistor must be to blame here. The spikes cause over/undershoot at the sourced current, which go away when clean pulses are used. Changing transistor has an effect, but I have not been able to get rid of the spikes that way. Ideas?
More questions:
1. What is the point of manually setting up the frequency stepping, and accessing the Bode plots through the error log vs. using a regular .ac command for sweeping the frequency?
2. Any advice on cleaning up the input pulses without overly impacting the rise-times?
I am of course looking into these things myself as well, but any pointers are appreciated.
Best regards
Edit: Ehm. Too quick to celebrate perhaps. Measuring I(R5) as you do, there is ringing with my modified configuration. The current waveform through the load is clean though. I'm not sure how to approach this from a power supply test perspective. Need to do more research..