Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

66%
+2 −0
Q&A MOSFET drain current ringing in saturation region

Your controller is too fast compared to the plant (the thing being controlled), thereby causing instability. The most obvious culprit is the 50 kΩ resistor between the controller output and the FE...

posted 8mo ago by Olin Lathrop‭  ·  edited 8mo ago by Olin Lathrop‭

Answer
#2: Post edited by user avatar Olin Lathrop‭ · 2024-03-10T19:32:41Z (8 months ago)
  • Your controller is too fast compared to the plant (the thing being controlled), thereby causing instability.
  • The most obvious culprit is the 50 k&Omega; resistor between the controller output and the FET gate. The resistor and the gate capacitance low pass filter the control signal, which effectively makes the FET act slow.
  • To fix this, stop slowing down the plant, and give yourself a way to slow down the controller as needed to attain stability. The first part is easy. Get rid of R6. Replace it with a direct connection. I frankly can't even guess what logic led you to put it there in the first place, let alone such an absurdly large value.
  • The easiest way to provide a means to slow down the controller is with a "compensation capacitor" around the opamp. This is a small cap from the output directly back to the negative input. This also means the negative input needs to be driven with a finite impedance for the cap to work against. That can be accomplished with a resistor in series with the feedback signal.
  • Here is the overall topology:
  • <img src="https://electrical.codidact.com/uploads/2cpxzg575zukujvrp8gf412ei13s">
  • C1 is the compensation capacitor around the opamp, and R1 provides the guaranteed finite impedance for it to work against. The easiest way to find the value of C1 is by experimentation. Too low, and the system is unstable. Too high, and the response is slower than needed.
  • I'd drive the system with a square wave and watch the resulting step responses on R2 with a scope. Find the value of C1 where the ringing stops or is below the level you care about. Then use 50% to 100% higher value to account for part variations.
  • The main point is that R1-C1 should be the dominant pole around the loop. Knowing the frequency response from the gate to source of the FET is difficult, which is why you need to experiment.
  • Depending on the particular opamp, C1 may not be needed at all. I didn't look up your opamp, but a unity-gain stable 1 MHz gain&sdot;bandwidth opamp may already slower than the FET gate to source response.
  • It is a good idea to leave pads for C1 anyway unless you are really tight on space. You don't have to populate C1, but it might save your butt some day when a problem is discovered with a new lot of chips, an unexpected operating point, you want to use a different opamp without respinning the board, etc.
  • Your controller is too fast compared to the plant (the thing being controlled), thereby causing instability.
  • The most obvious culprit is the 50 k&Omega; resistor between the controller output and the FET gate. The resistor and the gate capacitance low pass filter the control signal, which effectively makes the FET act slow.
  • To fix this, stop slowing down the plant, and give yourself a way to slow down the controller as needed to attain stability. The first part is easy. Get rid of R6. Replace it with a direct connection. I frankly can't even guess what logic led you to put it there in the first place, let alone such an absurdly large value.
  • The easiest way to provide a means to slow down the controller is with a "compensation capacitor" around the opamp. This is a small cap from the output directly back to the negative input. This also means the negative input needs to be driven with a finite impedance for the cap to work against. That can be accomplished with a resistor in series with the feedback signal.
  • Here is the overall topology:
  • <img src="https://electrical.codidact.com/uploads/2cpxzg575zukujvrp8gf412ei13s">
  • C1 is the compensation capacitor around the opamp, and R1 provides the guaranteed finite impedance for it to work against. The easiest way to find the value of C1 is by experimentation. Too low, and the system is unstable. Too high, and the response is slower than needed.
  • I'd drive the system with a square wave and watch the resulting step responses on R2 with a scope. Find the value of C1 where the ringing stops or is below the level you care about. Then use 50% to 100% higher value to account for part variations.
  • The main point is that R1-C1 should be the dominant pole around the loop. Knowing the frequency response from the gate to source of the FET is difficult, which is why you need to experiment.
  • Depending on the particular opamp, C1 may not be needed at all. I didn't look up your opamp, but a unity-gain stable 1 MHz gain&sdot;bandwidth opamp may already be slower than the FET gate to source response.
  • It is a good idea to leave pads for C1 anyway unless you are really tight on space. You don't have to populate C1, but it might save your butt some day when a problem is discovered with a new lot of chips, an unexpected operating point, you want to use a different opamp without respinning the board, etc.
  • <blockquote>will putting C1 provide faster feedback path for high speed changes at the op amp's output and hence stabilize it faster ?</blockquote>
  • Yes. Think of C1 as providing negative feedback of the derivative of the opamp output signal. When the opamp tries to slew rapidly, C1 causes larger negative feedback, thereby slowing the opamp response to something the plant can realize.
#1: Initial revision by user avatar Olin Lathrop‭ · 2024-03-10T14:25:01Z (8 months ago)
Your controller is too fast compared to the plant (the thing being controlled), thereby causing instability.

The most obvious culprit is the 50 k&Omega; resistor between the controller output and the FET gate.  The resistor and the gate capacitance low pass filter the control signal, which effectively makes the FET act slow.

To fix this, stop slowing down the plant, and give yourself a way to slow down the controller as needed to attain stability.  The first part is easy.  Get rid of R6.  Replace it with a direct connection.  I frankly can't even guess what logic led you to put it there in the first place, let alone such an absurdly large value.

The easiest way to provide a means to slow down the controller is with a "compensation capacitor" around the opamp.  This is a small cap from the output directly back to the negative input.  This also means the negative input needs to be driven with a finite impedance for the cap to work against.  That can be accomplished with a resistor in series with the feedback signal.

Here is the overall topology:

<img src="https://electrical.codidact.com/uploads/2cpxzg575zukujvrp8gf412ei13s">

C1 is the compensation capacitor around the opamp, and R1 provides the guaranteed finite impedance for it to work against.  The easiest way to find the value of C1 is by experimentation.  Too low, and the system is unstable.  Too high, and the response is slower than needed.

I'd drive the system with a square wave and watch the resulting step responses on R2 with a scope.  Find the value of C1 where the ringing stops or is below the level you care about.  Then use 50% to 100% higher value to account for part variations.

The main point is that R1-C1 should be the dominant pole around the loop.  Knowing the frequency response from the gate to source of the FET is difficult, which is why you need to experiment.

Depending on the particular opamp, C1 may not be needed at all.  I didn't look up your opamp, but a unity-gain stable 1 MHz gain&sdot;bandwidth opamp may already slower than the FET gate to source response.

It is a good idea to leave pads for C1 anyway unless you are really tight on space.  You don't have to populate C1, but it might save your butt some day when a problem is discovered with a new lot of chips, an unexpected operating point, you want to use a different opamp without respinning the board, etc.