I am using a Darlington Transistor (MFG6388GOS) as the controlling element for a Current Controller. The controller has an oscillation which I have narrowed down to the transistor switching.

I want the transistor to operate as a linear DC current amplifier but it just oscillates on-off, controlling the current with the duty cycle. The transistor has very high DC gain which may be part of the problem.

Is there a circuit configuration that will force the transistor to operate linearly?

If the high DC gain is the problem how would I figure out the correct amount of gain?


Yellow is the control signal to the transistor Base

Blue is Vce. ( low means transistor is sinking current, charging the inductor)

The ramping up-down on the control signal is due to the inductor charge-discharge time.

Yellow is the signal to the transistor Base Blue is Vce

Any help is appreciated

  • \$\begingroup\$ Have you considered just replacing it with an ordinary BJT? \$\endgroup\$ – pjc50 Dec 4 '16 at 20:21
  • \$\begingroup\$ I have not, I will have take one from work tomorrow. But this goes back to the question of how to know what too much gain is. Maybe something to do with the transistor sensitivity vs how much noise inherent in the system? \$\endgroup\$ – Tony Dec 4 '16 at 20:31
  • \$\begingroup\$ Are you sure that your circuit has negative (stable) feedback? "Current feedback controller" is an inverting circuit, the Darlington is an inverter, and the current sensor is non-inverting. So it looks like a positive feedback to me. Did you try to swap the polarity on the current sensor? \$\endgroup\$ – Ale..chenski Dec 4 '16 at 20:32
  • 1
    \$\begingroup\$ Your problem is probably that the darlington is slow, and you also have 3 op-amps in series in the loop. You are probably way out of phase margin, you've built an oscillator. I would try simulating this with LTSpice or similar, with models for those opamps, and the specific transistors you're using. Hoping and poking with hardware is almost guarranteed to keep you stuck in trouble. Generally in a loop you want everything fast, with one slow thing to stabilise it, that's the easy way. You can do it other ways, but then you need to know what you're doing. \$\endgroup\$ – Neil_UK Dec 4 '16 at 20:56
  • 1
    \$\begingroup\$ Yes, when I first put it together it oscillated like crazy. It was because the OPAMPs I was using were slow (.08V/us). When I replaced them with faster ones (22v/us) it worked much better. So, In this system the slow thing is the inductor. I have checked the control signal vs the coil current and they are in phase. My LTspice simulation works except I am not using a darlington in the simulation... Keep in mind the controller DOES work, it just has ~2kHz oscillation that I'm trying to get rid of. \$\endgroup\$ – Tony Dec 4 '16 at 21:22

Put a big capacitor (Cbig) across R41 to slow the feedback way down. This should stabilize the circuit and make it easier to measure the DC gain. If it doesn't stabilize it, maybe the polarity of the feedback is wrong.

To measure the low-frequency gain and the polarity of the feedback, disconnect the left side of R42 and attach R42 to a low-frequency function generator (or an adjustable voltage). The controlled current should follow the voltage. Measure the loop gain at the output of the feedback differential amplifier. The low-frequency (DC) gain of the circuit needs to be low enough that it can all be rolled off by the dominant pole at a frequency low enough that the other parts of the feedback loop are not too slow.

From the values in the circuit, it looks like the inductor sets the dominant pole frequency. This is not totally infeasible, but it can be difficult. If the inductor does not have a stable value, is non-linear, or has a lot of capacitance, it will be difficult to control.

One way to avoid using the inductor as the dominant pole is to set the dominant pole frequency with Cbig. Add a series resistor to Cbig to create a zero. Use this zero to cancel out the pole caused by the load inductor. See Current-Mode Control Theory for details about designing this. This type of zero is used in switching power supplies, and the same concept works in a linear circuit.

| improve this answer | |
  • \$\begingroup\$ +1. I still believe that LTspice should be able to expose all intricacies of this transfer function. I am not sure why OP does not use the tool to its full capacity. Bad feedback through improper ground routing and/or power rails can also contribute a lot. \$\endgroup\$ – Ale..chenski Dec 5 '16 at 20:45
  • \$\begingroup\$ Just to clarify, this current controller IS STABLE and is capable of being modulate totally in phase with ~100Hz control signal. It is part of a working maglev. The problem is that current is choppy due to the transistor not operating linearly. Also, it WORKS PERFECTLY on LTSPICE when using the non-darlington provided with the stock components. Bad ground may possibly be the culprit... I did make sure to separate the high current traces from the control portion when I layed out the board. But on scope you can see the control signal (yellow) jump up when the transistor turns on, clasic symptom \$\endgroup\$ – Tony Dec 6 '16 at 1:06
  • \$\begingroup\$ Slowing down the feedback seemed to make it worse, but I will go through the article to see how and why they used a capacitor to set the dominant pole and not the inductor. I order a non-darlington transistor as well \$\endgroup\$ – Tony Dec 6 '16 at 1:12
  • \$\begingroup\$ For Cbig, I am thinking something huge, for example 100uF. Once the loop is open, it should stop oscillating, and you can check the DC gain. If it oscillates with the loop open, then there is a different problem, such as bad layout leading to transistor instability. \$\endgroup\$ – Tom Anderson Dec 6 '16 at 3:22


One of the OPAMPs were damaged and wasn't behaving correctly.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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