6
\$\begingroup\$

I made a simulation of a full wave precision rectifier but I have some difficulties to evaluate its stability.

I would like to evaluate it stability by a Bode plot because it seems that if the input of the circuit is negative it starts to oscillate when I do a transient analysis on LTspice.

enter image description here

As the feedback path used is not the same if the input is positive or negative, I was thinking that it was possible to simplify the circuit and obtain two stage of simple op amp circuit. In this way, I was thinking that I could evaluate the stability of each stage and then get the total stability of the system for different operating point. Nevertheless I do not think that it is so simple and I would probably evaluate the stability of a system that is not representative of the one I want to study...

enter image description here

Do you know what would be the correct method for evaluating the stability of such a system on LTspice ?

Version 4
SHEET 1 1268 980
WIRE -592 -32 -768 -32
WIRE -272 -32 -448 -32
WIRE 128 -32 64 -32
WIRE 320 -32 208 -32
WIRE 368 -32 320 -32
WIRE 496 -32 448 -32
WIRE -768 -16 -768 -32
WIRE -448 -16 -448 -32
WIRE 320 16 320 -32
WIRE 496 64 496 -32
WIRE 560 64 496 64
WIRE 688 64 640 64
WIRE -768 96 -768 64
WIRE -448 96 -448 64
WIRE -64 144 -192 144
WIRE 64 144 64 -32
WIRE 64 144 16 144
WIRE 144 144 64 144
WIRE 320 160 320 80
WIRE 320 160 208 160
WIRE 496 160 496 64
WIRE 528 160 496 160
WIRE 144 176 112 176
WIRE 688 176 688 64
WIRE 688 176 592 176
WIRE 800 176 688 176
WIRE -192 192 -192 144
WIRE 528 192 496 192
WIRE 320 208 320 160
WIRE 112 224 112 176
WIRE 800 224 800 176
WIRE -192 320 -192 272
WIRE 64 320 64 144
WIRE 128 320 64 320
WIRE 320 320 320 272
WIRE 320 320 208 320
WIRE 496 320 496 192
WIRE 496 320 320 320
WIRE 800 352 800 304
WIRE 128 464 64 464
WIRE 320 464 208 464
WIRE 368 464 320 464
WIRE 496 464 448 464
WIRE 320 512 320 464
WIRE 496 560 496 464
WIRE 560 560 496 560
WIRE 688 560 640 560
WIRE -64 640 -192 640
WIRE 64 640 64 464
WIRE 64 640 16 640
WIRE 144 640 64 640
WIRE 320 656 320 576
WIRE 320 656 208 656
WIRE 496 656 496 560
WIRE 528 656 496 656
WIRE 144 672 112 672
WIRE 688 672 688 560
WIRE 688 672 592 672
WIRE 800 672 688 672
WIRE -192 688 -192 640
WIRE 528 688 496 688
WIRE 320 704 320 656
WIRE 112 720 112 672
WIRE 800 720 800 672
WIRE -192 816 -192 768
WIRE 64 816 64 640
WIRE 128 816 64 816
WIRE 320 816 320 768
WIRE 320 816 208 816
WIRE 496 816 496 688
WIRE 496 816 320 816
WIRE 800 848 800 800
FLAG 176 192 -5V
FLAG 176 128 15V
FLAG 112 224 0
FLAG -192 320 0
FLAG 560 208 -5V
FLAG 560 144 15V
FLAG 800 352 0
FLAG -448 96 0
FLAG -272 -32 15V
FLAG -768 96 0
FLAG -592 -32 -5V
FLAG 176 688 -5V
FLAG 176 624 15V
FLAG 112 720 0
FLAG -192 816 0
FLAG 560 704 -5V
FLAG 560 640 15V
FLAG 800 848 0
SYMBOL Opamps\\OPA810 176 160 R0
SYMATTR InstName U1
SYMBOL res 224 -48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 10k
SYMBOL res 32 128 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R2
SYMATTR Value 10k
SYMBOL voltage -192 176 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value PULSE(1 2 10u 1u 1u 10u)
SYMBOL res 224 304 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL Opamps\\OPA810 560 176 R0
SYMATTR InstName U2
SYMBOL res 464 -48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 10k
SYMBOL res 656 48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 10k
SYMBOL res 784 208 R0
SYMATTR InstName R6
SYMATTR Value 100k
SYMBOL voltage -448 -32 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value 15
SYMBOL voltage -768 -32 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V3
SYMATTR Value -5
SYMBOL Opamps\\OPA810 176 656 R0
SYMATTR InstName U3
SYMBOL res 224 448 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R7
SYMATTR Value 10k
SYMBOL res 32 624 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R8
SYMATTR Value 10k
SYMBOL voltage -192 672 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V4
SYMATTR Value PULSE(-1 -2 10u 1u 1u 10u)
SYMBOL res 224 800 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R9
SYMATTR Value 10k
SYMBOL Opamps\\OPA810 560 672 R0
SYMATTR InstName U4
SYMBOL res 464 448 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R10
SYMATTR Value 10k
SYMBOL res 656 544 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R11
SYMATTR Value 10k
SYMBOL res 784 704 R0
SYMATTR InstName R12
SYMATTR Value 100k
SYMBOL diode 304 512 R0
SYMATTR InstName D3
SYMBOL diode 304 704 R0
SYMATTR InstName D4
SYMBOL diode 304 16 R0
SYMATTR InstName D1
SYMBOL diode 304 208 R0
SYMATTR InstName D2
TEXT -226 370 Left 2 !.tran 30u
TEXT 1032 -8 Left 2 !.MODEL BAS16LD D\n+ IS = 6.0289E-9\n+ N = 2.1283\n+ RS = 1.0000E-3\n+ IKF = 37.638E-3\n+ CJO = 5.641E-013\n+ M = 0.05188 \n+ VJ = 0.01571\n+ ISR = 2.0646e-9\n+ NR = 4.9950\n+ BV = 113.60\n+ IBV = 10\n+ TT = 4.5000E-9\n*##\n*

Thank you

\$\endgroup\$
6
  • 2
    \$\begingroup\$ The node numbers in your plots are meaningless; use labels and plot the voltages of the labelled node \$\endgroup\$
    – Andy aka
    Commented Mar 26, 2023 at 15:17
  • \$\begingroup\$ Why have you go asymmetrical op-amp supplies? \$\endgroup\$
    – Andy aka
    Commented Mar 26, 2023 at 15:32
  • \$\begingroup\$ You re right ! :D Thank you for your comment \$\endgroup\$
    – Jess
    Commented Mar 26, 2023 at 15:34
  • \$\begingroup\$ Do you think that it could affect the stability ? That the op-amp supplies are asymertric \$\endgroup\$
    – Jess
    Commented Mar 26, 2023 at 15:37
  • \$\begingroup\$ If I took the "OP113" in the ltspice library it works correctly. But if I use the LT1226 it does not work \$\endgroup\$
    – Jess
    Commented Mar 26, 2023 at 15:46

3 Answers 3

9
\$\begingroup\$

When an AC steady-state analysis is done, a DC .op (operating point) analysis is done first. This determines which bias levels, feedback paths, etc. are active in the circuit. In short, diodes are transformed into resistors or capacitors (some combination), transistors are transformed into those and dependent sources, etc.

To provide this information, simply set a DC parameter for your PULSE source(s), then do the AC analysis. Adjust RC values until the gain is smooth. Usually, instability shows up as a sharp but still finite peak; reducing it to a mildly or non-peaked response should be good enough. Then go back and forth between transient and AC analyses to fine tune the response, getting step overshoot or settling time as desired. (For these transient analyses, check the response to a small step (100mV or less?) at various DC offsets. You may want to increase accuracy (e.g. reduce RELTOL) to get better resolution on these small changes.)

The transient analysis computes the effect of each element at each timestep, so has a more realistic (nonlinear) response, especially near zero where both diodes are switching on/off. But it is harder to do steady state AC analysis with (that said, LTSpice has tools to address these too, now).

Remember to put in realistic component models, and board strays if you can estimate them. At the highest bandwidths (100s MHz?, or less if breadboarded, heh), trace inductances will also become important.

By "RC values", I mean the value of all resistors in the circuit (or some ratios of them, in the case you need gain from this rectifier) with respect to diode junction, op-amp input, or stray node capacitances, or the addition of C or R+C elements in places to reduce gain and phase shift around any given op-amp. For example, in parallel with R5 to reduce U2's loop gain; or with R3; or across U1 directly (OUT to -IN).

A typical issue I have with this circuit is using too large resistors or diodes. For example, BAT54S has relatively high capacitance, and 1N4148 would be better, or BAS70 better still; 10k resistors are probably sufficient for ~3MHz GBW op-amps, but for 20+ MHz you may want to reduce that to 2.2k or less.

As you haven't put in diode or op-amp models, it is impossible for me to give a particular resolution, but a general method was asked so this should suffice.

(As a final note, the asymmetric supplies aren't important, at least in absence of any op-amp model, and not for well-behaved op-amps. Ensure the AC analysis is not done in saturation (op-amp outputs near supply rails). That said, you may also be interested in testing the transient response in this region: i.e. step response into/out of saturation, or recovery from overdrive say with a sine or triangle wave source.)

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for this really Nice answer. If you have any link to send me, do not hésitate :) also when you mean "gain" ? Are you talking of thé gain of the closed loop system which have to be smooth ? I am not used to study stability by looking thé closed loop transfer fonction. I Will try to gèt information on this subject. But it make sense to see thé gain goes to infinity \$\endgroup\$
    – Jess
    Commented Mar 26, 2023 at 16:42
3
\$\begingroup\$

There is a "pitfall" in this conception...

Here's what it should be. (R6 added because Vd2 is "lost" in some cases).

enter image description here

\$\endgroup\$
-3
\$\begingroup\$

Here is a precision full wave rectifier circuit from National Semiconductor: full wave rectifier

\$\endgroup\$
2
  • 3
    \$\begingroup\$ These functions are not equivalent; RHS says "average detector". The input coupling capacitor also makes it an envelope (well, average not peak, but similar idea) detector, not an absolute-value function. Could you explain/address the stability problem asked by the question? \$\endgroup\$ Commented Mar 26, 2023 at 15:33
  • \$\begingroup\$ The stability problem in the original circuit is caused by the opamp having positive feedback causing it to oscillate when the input is negative. \$\endgroup\$
    – Audioguru
    Commented Mar 27, 2023 at 17:42

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.