Version 4 SHEET 1 1820 680 WIRE -112 -528 -144 -528 WIRE -32 -528 -64 -528 WIRE 128 -528 112 -528 WIRE -144 -512 -144 -528 WIRE 224 -480 208 -480 WIRE 336 -480 304 -480 WIRE 432 -480 336 -480 WIRE 480 -480 432 -480 WIRE 640 -480 592 -480 WIRE 784 -480 720 -480 WIRE 864 -480 784 -480 WIRE 960 -480 864 -480 WIRE 128 -464 112 -464 WIRE 432 -448 432 -480 WIRE 592 -448 592 -480 WIRE 960 -448 960 -480 WIRE 336 -432 336 -480 WIRE -144 -416 -144 -432 WIRE 960 -336 960 -368 WIRE -192 -288 -192 -448 WIRE 608 -288 592 -288 WIRE 752 -288 688 -288 WIRE 864 -288 752 -288 WIRE 960 -288 864 -288 WIRE 192 -272 144 -272 WIRE 592 -256 592 -288 WIRE 960 -256 960 -288 WIRE -64 -208 -64 -528 WIRE -16 -208 -64 -208 WIRE 960 -144 960 -176 WIRE -128 -128 -128 -144 WIRE -128 -112 -128 -128 WIRE -64 -112 -64 -208 WIRE -64 -112 -128 -112 WIRE 720 -48 640 -48 WIRE 784 -48 720 -48 WIRE 1024 0 960 0 WIRE 704 16 640 16 WIRE 784 16 704 16 FLAG -112 -528 o IOPIN -112 -528 Out FLAG -144 -416 0 FLAG 432 -368 0 FLAG 336 -368 0 FLAG -128 -128 f FLAG 480 -480 fu FLAG -192 -496 S FLAG 592 -368 0 FLAG 784 -480 pd FLAG 592 -176 0 FLAG 752 -288 pfu FLAG 560 -48 0 FLAG 336 -192 0 FLAG 336 -272 vf FLAG 208 -480 o IOPIN 208 -480 In FLAG 720 -48 THDx FLAG 192 -272 S FLAG 960 -336 0 FLAG 864 -336 0 FLAG 960 -144 0 FLAG 864 -144 0 FLAG 1024 0 THD IOPIN 1024 0 Out FLAG 560 16 0 FLAG 704 96 0 SYMBOL e -144 -528 R0 WINDOW 0 40 47 Left 0 WINDOW 3 37 75 Left 0 SYMATTR InstName E1 SYMATTR Value 1 SYMBOL SpecialFunctions\\modulate2 -128 -144 M270 WINDOW 3 -113 112 VLeft 0 WINDOW 123 -58 106 VLeft 0 WINDOW 39 -84 111 VLeft 0 WINDOW 0 51 29 Left 0 SYMATTR Value space=0 mark={2*f2} SYMATTR Value2 Vhigh={percnt/100} SYMATTR SpiceLine Vlow={-percnt/100} SYMATTR InstName A1 SYMBOL ind 416 -464 R0 WINDOW 39 37 40 Left 0 WINDOW 3 -40 80 Left 0 WINDOW 0 33 18 Left 0 SYMATTR SpiceLine Rser=0 SYMATTR Value Flux=x/V(vf)*{Lo} SYMATTR InstName L1 SYMBOL cap 320 -432 R0 WINDOW 3 -24 101 Left 0 SYMATTR Value Q=x/V(vf)*{Co} SYMATTR InstName C1 SYMBOL res 320 -496 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R1 SYMATTR Value {Rq} SYMBOL bv 592 -464 R0 SYMATTR InstName B1 SYMATTR Value V=(V(o)-V(fu))**2 SYMBOL res 624 -464 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 0 56 VBottom 0 SYMATTR InstName R2 SYMATTR Value 1k SYMBOL bv 592 -272 R0 WINDOW 0 29 43 Left 0 SYMATTR InstName B2 SYMATTR Value V=V(fu)**2 SYMBOL res 592 -272 R270 WINDOW 0 32 56 VTop 0 WINDOW 3 0 56 VBottom 0 SYMATTR InstName R3 SYMATTR Value 1k SYMBOL bv 656 -48 R90 WINDOW 3 19 34 VTop 0 WINDOW 0 -14 14 VBottom 0 SYMATTR Value V=100*sqrt( V(pd)/V(pfu) ) SYMATTR InstName B3 SYMBOL bv 336 -288 R0 WINDOW 0 27 38 Left 0 SYMATTR InstName B4 SYMATTR Value V=V(f)*f2/1k SYMBOL SpecialFunctions\\modulate2 -32 -528 R0 WINDOW 3 0 112 Left 0 WINDOW 123 0 130 Left 0 WINDOW 39 0 148 Left 0 WINDOW 0 53 -10 Left 0 SYMATTR Value space=0 mark={40*f2} SYMATTR Value2 Vhigh=1 SYMATTR SpiceLine Vlow=-1 SYMATTR InstName A3 SYMBOL bi 960 -448 R0 WINDOW 3 13 86 Left 0 SYMATTR Value I=1/V(vf)*I(Vs)-I(Vs) SYMATTR InstName Bc1 SYMBOL cap 848 -480 R0 WINDOW 3 23 53 Left 0 WINDOW 0 35 20 Left 0 SYMATTR Value {Cf/2} SYMATTR InstName Cref1 SYMBOL voltage 864 -432 R0 WINDOW 0 -52 17 Left 0 WINDOW 3 -53 52 Left 0 SYMATTR InstName Vs SYMATTR Value 0 SYMBOL bi 960 -256 R0 WINDOW 3 13 86 Left 0 SYMATTR Value I=1/V(vf)*I(Vs1)-I(Vs1) SYMATTR InstName Bc2 SYMBOL cap 848 -288 R0 WINDOW 3 23 53 Left 0 WINDOW 0 35 20 Left 0 SYMATTR Value {Cf} SYMATTR InstName Cref2 SYMBOL voltage 864 -240 R0 WINDOW 0 -52 17 Left 0 WINDOW 3 -53 52 Left 0 SYMATTR InstName Vs1 SYMATTR Value 0 SYMBOL Stepped_Sine1 64 -240 R0 WINDOW 0 0 0 Left 0 WINDOW 39 -106 87 Left 0 SYMATTR InstName X1 SYMATTR SpiceLine f1={f1} f2={f2} cycles={cycles} kd={kd} fmul=SQRT(2) SYMBOL SpecialFunctions\\sample 864 -16 R0 SYMATTR InstName A2 SYMBOL bi 560 16 R270 WINDOW 0 32 40 VTop 0 WINDOW 3 -32 40 VBottom 0 SYMATTR InstName B5 SYMATTR Value I=u(ddt(V(f))) SYMBOL voltage 704 0 R0 WINDOW 0 26 37 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 -106 92 Left 0 WINDOW 3 20 103 Left 0 SYMATTR InstName V1 SYMATTR SpiceLine Rser=1 SYMATTR Value PULSE(0 1 {To-1/f2} 2n 2n 2n) TEXT -232 -576 Left 0 !.param percnt=0 TEXT -224 -632 Left 0 ;Enter\n2f-Distortion %: TEXT 32 -648 Left 0 !.param fo=1k*(1+eps)\n.param Zo=1k Lo=Zo/2/pi/fo Q=5\n.param Co=1/4/pi**2/fo**2/Lo Rq=Zo*Q TEXT -220 -684 Left 0 !.tran 0 {To} {0.89*kd} TEXT 600 -552 Left 0 !.param Cf=3u TEXT 336 -528 Left 0 ;fundamental\nvoltage TEXT 352 -288 Left 0 ;V=kHz TEXT 664 -240 Left 0 !.ic V(pfu)=1 TEXT 400 -648 Left 0 !.param eps=2u ;130u for 5*f2 in A3 TEXT 288 -704 Left 0 ;Trick: eps can be used to adjust "virtual"\nresonance frequency at big tmaxstep! TEXT -40 -496 Left 0 ;sample forcing TEXT -16 -744 Left 0 ;THD-meter using a tracking filter, stepped frequencies: fn+1/fn=sqrt(2) =fmul TEXT 112 -104 Left 0 !.param f1=100 f2=10k TEXT 112 -40 Left 0 !.param cycles=30 TEXT 112 -72 Left 0 !.param k1=f1/f2 TEXT 104 0 Left 0 !.param To=(cycles*2.4118/f1)+kd TEXT 112 48 Left 0 !.param kd=(cycles+4)/f1 TEXT 1040 -280 Left 0 ;distorsion\npower TEXT 1032 -472 Left 0 ;fundamental\npower TEXT 832 -584 Left 0 ;non charge preserving\ncontrolled caps for low\nglitches