Version 4 SHEET 1 1664 908 WIRE 48 144 -48 144 WIRE 176 144 176 96 WIRE 176 144 48 144 WIRE 336 144 176 144 WIRE 480 144 336 144 WIRE 768 144 480 144 WIRE -48 240 -48 144 WIRE 176 240 176 144 WIRE 336 240 336 144 WIRE 480 240 480 144 WIRE 48 256 48 144 WIRE 48 624 -48 624 WIRE 176 624 176 576 WIRE 176 624 48 624 WIRE 336 624 176 624 WIRE 480 624 336 624 WIRE 736 624 480 624 WIRE 768 624 736 624 WIRE -48 720 -48 624 WIRE 176 720 176 624 WIRE 336 720 336 624 WIRE 480 720 480 624 WIRE 736 720 736 624 WIRE 48 736 48 624 FLAG 176 320 0 FLAG 48 320 0 FLAG 336 320 0 FLAG 480 320 0 FLAG 768 144 o FLAG 176 16 0 FLAG -48 320 0 FLAG 176 800 0 FLAG 48 800 0 FLAG 336 800 0 FLAG 480 800 0 FLAG 768 624 o2 FLAG 176 496 0 FLAG -48 800 0 FLAG 736 800 0 SYMBOL cap 32 256 R0 SYMATTR InstName C1 SYMATTR Value {C} SYMBOL ind 160 224 R0 SYMATTR InstName L1 SYMATTR Value {L } SYMBOL res 320 224 R0 SYMATTR InstName R1 SYMATTR Value {R} SYMBOL bi2 480 240 R0 SYMATTR InstName B1 SYMATTR Value I=atan(V(o))/R*G SYMBOL current 176 16 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I1 SYMATTR Value PULSE(0 1m 1n 0.2u 0.2u 0.05u) SYMBOL current -48 320 R180 WINDOW 0 24 88 Left 0 WINDOW 3 24 0 Left 0 WINDOW 123 -58 88 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I2 SYMATTR Value "" SYMATTR Value2 AC 1 SYMBOL cap 32 736 R0 SYMATTR InstName C2 SYMATTR Value {C} SYMBOL ind 160 704 R0 SYMATTR InstName L2 SYMATTR Value {L } SYMBOL res 320 704 R0 SYMATTR InstName R3 SYMATTR Value {R} SYMBOL bi2 480 720 R0 SYMATTR InstName B2 SYMATTR Value I=atan(V(o2))/R*G SYMBOL current 176 496 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I3 SYMATTR Value PULSE(0 1m 1n 0.2u 0.2u 0.05u) SYMBOL current -48 800 R180 WINDOW 0 24 88 Left 0 WINDOW 3 24 0 Left 0 WINDOW 123 -58 88 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName I4 SYMATTR Value "" SYMATTR Value2 AC 1 SYMBOL res 720 704 R0 SYMATTR InstName Rload SYMATTR Value {Rl} TEXT 248 0 Left 0 !.param C=500p f=1e6 L=1/(4*pi*pi*f*f*C) TEXT -64 0 Left 0 !.tran 1000u TEXT 392 -40 Left 0 !.options plotwinsize=0 TEXT 576 32 Left 0 ;I.e.: R=31.831k TEXT 248 32 Left 0 !.param Q=100 R=Q/(2*pi*C*f) TEXT -64 -40 Left 0 ;.ac lin 5000 0.7e6 1.3e6 TEXT 224 360 Left 0 ;I=sgn(V(o))*SQRT(abs(V(o)))/R\n; LTspice won´t calculate the derivative from this at 0\n; -> feedback would be neglected in .AC\n; ( function works when a DC offset is added ) TEXT 848 32 Left 0 !.MEAS tran Vo rms V(o) from 0.8m to 0.9m\n.MEAS tran Vl rms V(o2) from 0.8m to 0.9m\n.MEAS TRAN Ri param (Vo/Vl-1)*Rl TEXT 872 584 Left 0 ;2.) Ri as a measure of output sensitivity to\nload variations (Magnitude of Ri):\n------------------------------------------------------------------\nFrom .TRAN: \n/Ri/=Rl*(V(o)/V(o2) - 1) = 43.03k\n( see Error Log )\nThis considers effective loop gain\nat varying output voltages. For a check by\ncalculation the sensitivity to V(o) of the 1st\nfourier coefficient of the sinewave distorted\nby the nonlinear transfer function would be\nneeded (did not find the integral). TEXT 864 160 Left 0 ;1.) Ri@f from .AC, output fed by I2:\n-------------------------------------------------------------------\nfrom Plot: Ri=V(o)/1A= -21.22k (phase= 180 deg)\nThis results from the linearized loop gain at 0 volts\nusing dATAN(x)/dx = 1/(1-x**2) :\n1/Ri=1/R-dI(B1)/dVo=1/R-G/R ->Ri= -21.22k\nA real oscillator will reach a stable oscillating\nstate due to nonlinearity/finite output swing.\nThen loopgain is 1 and Ri is (negative) infinite.\n-> the above Ri gives the minimum load resistor that\ncan be connected (theoretically) before oscillation\nstops.\nSimulation is correct only if the transfer function\ncan be differentiated at the given OP ! TEXT 40 -96 Left 0 ;Measuring Output Impedance Ri of an LC-Oscillator? G.M. jan-08 TEXT 848 -8 Left 0 !.param Rl=400k TEXT -16 536 Left 0 ;Kick off pulse TEXT 16 856 Left 0 ;Copy of the oscillator, required because .MEAS\ndoes not evaluate across .STEPs TEXT 848 -56 Left 0 !.param G=2.5 ;loopgain at 0V