initial commit
This commit is contained in:
59
examples/Educational/FRA/Eg1.asc
Normal file
59
examples/Educational/FRA/Eg1.asc
Normal file
@@ -0,0 +1,59 @@
|
||||
Version 4
|
||||
SHEET 1 4156 1252
|
||||
WIRE 1424 544 1392 544
|
||||
WIRE 1520 544 1504 544
|
||||
WIRE 1696 544 1520 544
|
||||
WIRE 1856 544 1776 544
|
||||
WIRE 1936 576 1936 560
|
||||
WIRE 2032 576 2032 560
|
||||
WIRE 1520 640 1520 544
|
||||
WIRE 1552 640 1520 640
|
||||
WIRE 1584 640 1552 640
|
||||
WIRE 1696 640 1664 640
|
||||
WIRE 1760 640 1696 640
|
||||
WIRE 1856 656 1856 544
|
||||
WIRE 1856 656 1824 656
|
||||
WIRE 1760 672 1744 672
|
||||
WIRE 1936 672 1936 656
|
||||
WIRE 2032 672 2032 656
|
||||
FLAG 1552 640 A
|
||||
FLAG 1696 640 B
|
||||
FLAG 1936 672 0
|
||||
FLAG 2032 672 0
|
||||
FLAG 1936 560 +V
|
||||
FLAG 1792 624 +V
|
||||
FLAG 2032 560 -V
|
||||
FLAG 1792 688 -V
|
||||
FLAG 1744 672 0
|
||||
FLAG 1392 544 0
|
||||
SYMBOL VOLTAGE 1568 640 M90
|
||||
WINDOW 0 -32 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
SYMATTR InstName V3
|
||||
SYMATTR Value SINE(0 10m {Freq})
|
||||
SYMATTR Value2 ac 1
|
||||
SYMBOL Opamps\\UniversalOpamp2 1792 656 R0
|
||||
SYMATTR InstName U1
|
||||
SYMBOL voltage 1936 560 R0
|
||||
SYMATTR InstName V1
|
||||
SYMATTR Value 5
|
||||
SYMBOL voltage 2032 560 R0
|
||||
SYMATTR InstName V2
|
||||
SYMATTR Value -5
|
||||
SYMBOL res 1792 528 R90
|
||||
WINDOW 0 0 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
SYMATTR InstName R1
|
||||
SYMATTR Value 10K
|
||||
SYMBOL res 1520 528 R90
|
||||
WINDOW 0 0 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
SYMATTR InstName R2
|
||||
SYMATTR Value 1K
|
||||
TEXT 2200 560 Left 2 !.tran 0 {5/Freq+.1m} .1m\n.step oct param Freq .1 10Meg 3
|
||||
TEXT 1504 752 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
|
||||
TEXT 2200 448 Left 2 !.save V(a) V(b)\n.option nomarch\n.option plotwinsize=0 numdgt=15
|
||||
TEXT 2200 648 Left 2 ;.ac oct 10 .1 10Meg\n.param freq=0
|
||||
TEXT 1856 248 Center 2 ;This example shows the basic principle of extracting\nthe small signal AC characteristics from time domain simulation.\n \nAfter running the simulation, execute menu command\nView=>SPICE Error Log. Then right click and select\n"Plot .step'ed .meas data". Press "yes" to the dialog\nasking if it should combine the data to complex numbers.
|
||||
TEXT 2200 784 Left 2 ;To use this technique in your\nown simulations, include these\n.measure statements
|
||||
RECTANGLE Normal 2608 976 1488 720 2
|
||||
182
examples/Educational/FRA/Eg2.asc
Normal file
182
examples/Educational/FRA/Eg2.asc
Normal file
@@ -0,0 +1,182 @@
|
||||
Version 4
|
||||
SHEET 1 4460 1080
|
||||
WIRE 160 -48 48 -48
|
||||
WIRE 288 -48 160 -48
|
||||
WIRE 896 -48 288 -48
|
||||
WIRE 48 -32 48 -48
|
||||
WIRE 160 -32 160 -48
|
||||
WIRE 384 -32 240 -32
|
||||
WIRE 928 -32 384 -32
|
||||
WIRE 384 -16 384 -32
|
||||
WIRE 48 64 48 48
|
||||
WIRE 160 64 160 32
|
||||
WIRE 384 80 384 64
|
||||
WIRE 464 80 384 80
|
||||
WIRE 384 96 384 80
|
||||
WIRE 288 112 288 -48
|
||||
WIRE 464 128 464 80
|
||||
WIRE 496 128 464 128
|
||||
WIRE 896 128 896 -48
|
||||
WIRE 896 128 880 128
|
||||
WIRE 384 192 384 176
|
||||
WIRE 288 224 288 192
|
||||
WIRE 496 224 288 224
|
||||
WIRE 976 224 880 224
|
||||
WIRE 1088 224 976 224
|
||||
WIRE 1232 224 1168 224
|
||||
WIRE 1328 224 1232 224
|
||||
WIRE 1472 224 1328 224
|
||||
WIRE 1568 224 1472 224
|
||||
WIRE 1328 240 1328 224
|
||||
WIRE 1472 240 1472 224
|
||||
WIRE 1568 240 1568 224
|
||||
WIRE 416 320 400 320
|
||||
WIRE 496 320 480 320
|
||||
WIRE 976 320 976 288
|
||||
WIRE 976 320 880 320
|
||||
WIRE 1328 336 1328 304
|
||||
WIRE 1472 336 1472 304
|
||||
WIRE 1568 336 1568 320
|
||||
WIRE 1232 400 1232 224
|
||||
WIRE 240 416 240 -32
|
||||
WIRE 272 416 240 416
|
||||
WIRE 384 416 352 416
|
||||
WIRE 496 416 384 416
|
||||
WIRE 928 416 928 -32
|
||||
WIRE 928 416 880 416
|
||||
WIRE 976 416 976 384
|
||||
WIRE 976 416 928 416
|
||||
WIRE 384 448 384 416
|
||||
WIRE 496 512 480 512
|
||||
WIRE 1040 512 880 512
|
||||
WIRE 1072 512 1040 512
|
||||
WIRE 1184 512 1152 512
|
||||
WIRE 1232 512 1232 480
|
||||
WIRE 1232 512 1184 512
|
||||
WIRE 1232 528 1232 512
|
||||
WIRE 384 544 384 528
|
||||
WIRE 240 576 240 416
|
||||
WIRE 480 576 480 512
|
||||
WIRE 480 576 240 576
|
||||
WIRE 912 608 880 608
|
||||
WIRE 992 608 912 608
|
||||
WIRE 1104 608 1072 608
|
||||
WIRE 912 624 912 608
|
||||
WIRE 1104 624 1104 608
|
||||
WIRE 1232 624 1232 608
|
||||
WIRE 608 688 608 672
|
||||
WIRE 768 688 768 672
|
||||
WIRE 912 704 912 688
|
||||
WIRE 1104 704 1104 688
|
||||
FLAG 976 480 0
|
||||
FLAG 1568 336 0
|
||||
FLAG 1232 624 0
|
||||
FLAG 1328 336 0
|
||||
FLAG 48 64 0
|
||||
FLAG 400 320 0
|
||||
FLAG 160 64 0
|
||||
FLAG 48 -48 IN
|
||||
FLAG 1568 224 OUT
|
||||
FLAG 1104 704 0
|
||||
FLAG 912 704 0
|
||||
FLAG 768 688 0
|
||||
FLAG 608 688 0
|
||||
FLAG 384 544 0
|
||||
FLAG 384 192 0
|
||||
FLAG 1472 336 0
|
||||
FLAG 1184 512 A
|
||||
FLAG 1040 512 B
|
||||
SYMBOL res 1216 384 R0
|
||||
SYMATTR InstName R1
|
||||
SYMATTR Value 6.49K
|
||||
SYMBOL res 1216 512 R0
|
||||
SYMATTR InstName R2
|
||||
SYMATTR Value 4.99K
|
||||
SYMBOL schottky 960 384 M180
|
||||
WINDOW 0 41 53 Left 2
|
||||
WINDOW 3 24 0 Left 2
|
||||
SYMATTR InstName D1
|
||||
SYMATTR Value CMDSH2-3
|
||||
SYMBOL cap 960 416 R0
|
||||
WINDOW 3 30 51 Left 2
|
||||
SYMATTR InstName C1
|
||||
SYMATTR Value 4.7<EFBFBD>
|
||||
SYMBOL ind 1072 240 R270
|
||||
WINDOW 0 32 56 VTop 2
|
||||
WINDOW 3 5 56 VBottom 2
|
||||
WINDOW 39 -16 56 VBottom 2
|
||||
SYMATTR InstName L1
|
||||
SYMATTR Value 2.2<EFBFBD>
|
||||
SYMATTR SpiceLine Rser=6m
|
||||
SYMBOL polcap 1312 240 R0
|
||||
WINDOW 39 27 59 Left 2
|
||||
WINDOW 40 27 83 Left 2
|
||||
WINDOW 3 45 38 Left 2
|
||||
SYMATTR SpiceLine Rser=9m
|
||||
SYMATTR SpiceLine2 x2
|
||||
SYMATTR Value 200<30>
|
||||
SYMATTR InstName C2
|
||||
SYMBOL VOLTAGE 48 -48 R0
|
||||
WINDOW 123 0 0 Left 0
|
||||
WINDOW 39 0 0 Left 0
|
||||
SYMATTR InstName V1
|
||||
SYMATTR Value 28
|
||||
SYMBOL cap 480 304 R90
|
||||
WINDOW 0 0 32 VBottom 2
|
||||
WINDOW 3 32 32 VTop 2
|
||||
SYMATTR InstName C3
|
||||
SYMATTR Value .1<EFBFBD>
|
||||
SYMBOL cap 960 224 R0
|
||||
WINDOW 0 31 16 Left 2
|
||||
SYMATTR InstName C4
|
||||
SYMATTR Value .22<EFBFBD>
|
||||
SYMBOL cap 144 -32 R0
|
||||
SYMATTR InstName C5
|
||||
SYMATTR Value 22<32>
|
||||
SYMATTR SpiceLine Rser=1m Lser=.3n
|
||||
SYMBOL res 976 624 R270
|
||||
WINDOW 0 32 56 VTop 2
|
||||
WINDOW 3 0 56 VBottom 2
|
||||
SYMATTR InstName R3
|
||||
SYMATTR Value 24.9K
|
||||
SYMBOL cap 1088 624 R0
|
||||
SYMATTR InstName C6
|
||||
SYMATTR Value 1n
|
||||
SYMBOL cap 896 624 R0
|
||||
SYMATTR InstName C7
|
||||
SYMATTR Value 10p
|
||||
SYMBOL VOLTAGE 1168 512 R90
|
||||
WINDOW 0 -32 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
SYMATTR InstName V2
|
||||
SYMATTR Value SINE(0 1m {Freq})
|
||||
SYMBOL PowerProducts\\LTC3611 688 368 R0
|
||||
SYMATTR InstName U1
|
||||
SYMBOL res 256 432 R270
|
||||
WINDOW 0 32 56 VTop 2
|
||||
WINDOW 3 0 56 VBottom 2
|
||||
SYMATTR InstName R4
|
||||
SYMATTR Value 6.49K
|
||||
SYMBOL res 368 432 R0
|
||||
SYMATTR InstName R5
|
||||
SYMATTR Value 39.2K
|
||||
SYMBOL res 272 96 R0
|
||||
SYMATTR InstName R6
|
||||
SYMATTR Value 249K
|
||||
SYMBOL res 368 -32 R0
|
||||
SYMATTR InstName R7
|
||||
SYMATTR Value 15.0K
|
||||
SYMBOL res 368 80 R0
|
||||
SYMATTR InstName R8
|
||||
SYMATTR Value 4.99K
|
||||
SYMBOL cap 1456 240 R0
|
||||
SYMATTR InstName C8
|
||||
SYMATTR Value 50<35>
|
||||
SYMATTR SpiceLine Rser=1.5m Lser=.24n
|
||||
SYMBOL res 1552 224 R0
|
||||
SYMATTR InstName Rload
|
||||
SYMATTR Value 0.25
|
||||
TEXT 1672 192 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
|
||||
TEXT 1680 560 Left 2 ;Loop crossover frequency: 125KHz\nPhase Margin: 92<39>
|
||||
TEXT 1664 32 Left 2 !.param Freq=125K ; iterate to 0dB gain or use the .step statement below\n.step oct param freq 50K 200K 5\n.save V(a) V(b) I(L1)\n.option plotwinsize=0 numdgt=15
|
||||
TEXT 1672 472 Left 2 !.param t0=.2m\n.tran 0 {t0+25/freq} {t0}
|
||||
162
examples/Educational/FRA/Eg3.asc
Normal file
162
examples/Educational/FRA/Eg3.asc
Normal file
@@ -0,0 +1,162 @@
|
||||
Version 4
|
||||
SHEET 1 2936 1904
|
||||
WIRE 1120 768 912 768
|
||||
WIRE 1728 768 1120 768
|
||||
WIRE 912 784 912 768
|
||||
WIRE 1536 800 1408 800
|
||||
WIRE 1664 800 1536 800
|
||||
WIRE 1664 816 1664 800
|
||||
WIRE 1120 848 1120 768
|
||||
WIRE 1408 848 1408 800
|
||||
WIRE 1536 848 1536 800
|
||||
WIRE 912 880 912 864
|
||||
WIRE 1664 896 1664 880
|
||||
WIRE 1728 912 1728 768
|
||||
WIRE 1536 928 1536 912
|
||||
WIRE 1536 928 1488 928
|
||||
WIRE 1680 992 1488 992
|
||||
WIRE 1536 1008 1536 928
|
||||
WIRE 912 1056 848 1056
|
||||
WIRE 1040 1056 976 1056
|
||||
WIRE 1536 1088 1536 1072
|
||||
WIRE 1536 1088 1488 1088
|
||||
WIRE 1728 1088 1728 1008
|
||||
WIRE 1728 1088 1536 1088
|
||||
WIRE 1872 1088 1728 1088
|
||||
WIRE 1904 1088 1872 1088
|
||||
WIRE 2000 1088 1984 1088
|
||||
WIRE 2016 1088 2000 1088
|
||||
WIRE 2112 1088 2096 1088
|
||||
WIRE 2192 1088 2112 1088
|
||||
WIRE 2320 1088 2192 1088
|
||||
WIRE 2480 1088 2320 1088
|
||||
WIRE 1728 1104 1728 1088
|
||||
WIRE 2192 1104 2192 1088
|
||||
WIRE 1872 1120 1872 1088
|
||||
WIRE 2320 1120 2320 1088
|
||||
WIRE 2480 1120 2480 1088
|
||||
WIRE 864 1184 848 1184
|
||||
WIRE 960 1184 944 1184
|
||||
WIRE 1040 1184 1024 1184
|
||||
WIRE 1680 1184 1488 1184
|
||||
WIRE 2192 1200 2192 1184
|
||||
WIRE 2192 1200 2144 1200
|
||||
WIRE 1728 1216 1728 1200
|
||||
WIRE 1872 1216 1872 1184
|
||||
WIRE 2192 1216 2192 1200
|
||||
WIRE 2320 1232 2320 1184
|
||||
WIRE 2480 1232 2480 1200
|
||||
WIRE 2000 1264 2000 1088
|
||||
WIRE 2000 1264 1488 1264
|
||||
WIRE 928 1312 848 1312
|
||||
WIRE 1040 1312 992 1312
|
||||
WIRE 2192 1312 2192 1296
|
||||
WIRE 2112 1328 2112 1088
|
||||
WIRE 2112 1328 1488 1328
|
||||
WIRE 1616 1392 1488 1392
|
||||
WIRE 1664 1392 1616 1392
|
||||
WIRE 1776 1392 1744 1392
|
||||
WIRE 2144 1392 2144 1200
|
||||
WIRE 2144 1392 1776 1392
|
||||
WIRE 1152 1488 1152 1456
|
||||
WIRE 1376 1488 1376 1456
|
||||
FLAG 1152 1488 0
|
||||
FLAG 1376 1488 0
|
||||
FLAG 848 1184 0
|
||||
FLAG 848 1056 0
|
||||
FLAG 2192 1312 0
|
||||
FLAG 2480 1232 0
|
||||
FLAG 2320 1232 0
|
||||
FLAG 912 880 0
|
||||
FLAG 1728 1216 0
|
||||
FLAG 848 1312 0
|
||||
FLAG 2480 1088 OUT
|
||||
FLAG 1664 896 0
|
||||
FLAG 1872 1216 0
|
||||
FLAG 1616 1392 B
|
||||
FLAG 1776 1392 A
|
||||
FLAG 912 768 IN
|
||||
SYMBOL RES 960 1168 R90
|
||||
WINDOW 0 0 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
SYMATTR InstName R1
|
||||
SYMATTR Value 10K
|
||||
SYMBOL res 2176 1088 R0
|
||||
SYMATTR InstName R2
|
||||
SYMATTR Value 20K
|
||||
SYMBOL res 2176 1200 R0
|
||||
SYMATTR InstName R3
|
||||
SYMATTR Value 10K
|
||||
SYMBOL res 2000 1104 R270
|
||||
WINDOW 0 32 56 VTop 2
|
||||
WINDOW 3 0 56 VBottom 2
|
||||
SYMATTR InstName R4
|
||||
SYMATTR Value .006
|
||||
SYMBOL cap 1024 1168 R90
|
||||
WINDOW 0 0 32 VBottom 2
|
||||
WINDOW 3 32 32 VTop 2
|
||||
SYMATTR InstName C1
|
||||
SYMATTR Value 330p
|
||||
SYMBOL cap 992 1296 R90
|
||||
WINDOW 0 0 32 VBottom 2
|
||||
WINDOW 3 32 32 VTop 2
|
||||
SYMATTR InstName C2
|
||||
SYMATTR Value 43p
|
||||
SYMBOL cap 976 1040 R90
|
||||
WINDOW 0 0 32 VBottom 2
|
||||
WINDOW 3 32 32 VTop 2
|
||||
SYMATTR InstName C3
|
||||
SYMATTR Value .001<EFBFBD>
|
||||
SYMBOL polcap 2304 1120 R0
|
||||
WINDOW 39 27 65 Left 2
|
||||
WINDOW 123 25 86 Left 2
|
||||
WINDOW 3 44 37 Left 2
|
||||
SYMATTR SpiceLine Rser=.05
|
||||
SYMATTR Value2 x4
|
||||
SYMATTR Value 180<38>
|
||||
SYMATTR InstName C4
|
||||
SYMBOL VOLTAGE 912 768 R0
|
||||
SYMATTR InstName V1
|
||||
SYMATTR Value 6
|
||||
SYMBOL ind 1888 1104 R270
|
||||
WINDOW 0 32 56 VTop 2
|
||||
WINDOW 3 5 56 VBottom 2
|
||||
SYMATTR InstName L1
|
||||
SYMATTR Value 1.5<EFBFBD>
|
||||
SYMBOL NMOS 1680 912 R0
|
||||
SYMATTR InstName Q1
|
||||
SYMATTR Value Si4410DY
|
||||
SYMBOL nmos 1680 1104 R0
|
||||
SYMATTR InstName Q2
|
||||
SYMATTR Value Si4410DY
|
||||
SYMBOL cap 1648 816 R0
|
||||
SYMATTR InstName C5
|
||||
SYMATTR Value 4.7<EFBFBD>
|
||||
SYMBOL cap 1520 1008 R0
|
||||
SYMATTR InstName C6
|
||||
SYMATTR Value .22<EFBFBD>
|
||||
SYMBOL schottky 1520 848 R0
|
||||
SYMATTR InstName D1
|
||||
SYMATTR Value 1N5818
|
||||
SYMBOL schottky 1856 1184 M180
|
||||
WINDOW 0 24 64 Left 2
|
||||
WINDOW 3 24 0 Left 2
|
||||
SYMATTR InstName D2
|
||||
SYMATTR Value 1N5818
|
||||
SYMBOL POWERPRODUCTS\\LTC1735 1264 1120 R0
|
||||
SYMATTR InstName U1
|
||||
SYMBOL voltage 1760 1392 R90
|
||||
WINDOW 0 -32 56 VBottom 2
|
||||
WINDOW 3 32 56 VTop 2
|
||||
WINDOW 39 53 56 VTop 2
|
||||
WINDOW 123 74 56 VTop 2
|
||||
SYMATTR InstName V2
|
||||
SYMATTR Value SINE(0 10m {Freq})
|
||||
SYMBOL res 2464 1104 R0
|
||||
SYMATTR InstName Rload
|
||||
SYMATTR Value .5
|
||||
TEXT 1856 1624 Left 2 !.param t0=.5m\n.tran 0 {t0+10/Freq} {t0} 10n
|
||||
TEXT 1856 1536 Left 2 !.ic V(out)=2.4\n.save V(a) V(b) I(L1)
|
||||
TEXT 800 1480 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
|
||||
TEXT 1856 1464 Left 2 !.param freq=21K ; iterate to 0dB gain or use the .step statement below\n.step oct param Freq 15K 30K 4
|
||||
TEXT 2256 1576 Left 2 ;Loop crossover frequency: 21KHz\nPhase Margin: 66<36>
|
||||
68
examples/Educational/FRA/ReadMe.txt
Normal file
68
examples/Educational/FRA/ReadMe.txt
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
Frequency Response Analysis
|
||||
|
||||
These examples show to how to extract the small-signal, AC open-loop
|
||||
gain from time-domain, closed-loop simulations. The technique is a
|
||||
subset of the method shown in ../LoopGain.asc and ../LoopGain2.asc.
|
||||
The method assumes that the input impedance of the error amplifier is
|
||||
infinite so that the loop gain can be computed solely by the voltage
|
||||
loop gain.
|
||||
|
||||
The open-loop gain is computed from the closed-loop system by inserting
|
||||
a perturbing voltage source in the loop and measuring how well the
|
||||
perturbation is servoed out of the the loop via the feedback. The
|
||||
open-loop gain is given by the ratio of complex voltages at either side
|
||||
of the perturbing voltage source.
|
||||
|
||||
But since the SMPS macromodels are implemented as time-domain models
|
||||
that include detailed switching information but don't include
|
||||
continuous-time(average) equivalents, the complex voltage is determined
|
||||
from Fourier analysis of a time-domain sine wave perturbation.
|
||||
|
||||
A script of .measure statements is used to perform the Fourier analysis
|
||||
and computer the open-loop response. To use this script into your own
|
||||
SMPS design, follow these steps:
|
||||
|
||||
1. Place these .measure statements on your circuit as a SPICE
|
||||
directive:
|
||||
|
||||
.measure Aavg avg V(a)
|
||||
.measure Bavg avg V(b)
|
||||
.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)
|
||||
.measure Aim avg -(V(a)-Aavg)*sin(360*time*Freq)
|
||||
.measure Bre avg (V(b)-Bavg)*cos(360*time*Freq)
|
||||
.measure Bim avg -(V(b)-Bavg)*sin(360*time*Freq)
|
||||
.measure GainMag param 20*log10(hypot(Are,Aim) / hypot(Bre,Bim))
|
||||
.measure GainPhi param mod(atan2(Aim,Are)-atan2(Bim,Bre)+180,360)-180
|
||||
|
||||
2. Insert a voltage source in the feedback loop under analysis. Give
|
||||
this voltage sourse the value SINE(0 5m {Freq})
|
||||
|
||||
3. Place a SPICE directive on the schmatic that defines Freq:
|
||||
|
||||
.param Freq=10K
|
||||
|
||||
4. Run a .tran command to see how long it takes your circuit to come to
|
||||
steady state and then edit the .tran command so that data isn't saved
|
||||
until this time.
|
||||
|
||||
5. Rerun the .tran command to do the analysis at the frequency defined
|
||||
with the .param statement of step 3.
|
||||
|
||||
6. Execute menu command View=>SPICE Error Log to see the results of this
|
||||
analysis. The open-loop response magnitude is given by GainMag[dB]
|
||||
and the phase is given by GainPhi[<5B>].
|
||||
|
||||
You can iterate the param Freq to zero dB. That frequency is the loop
|
||||
crossover frequency and phase margin will be reported as GainPhi in the
|
||||
error log.
|
||||
|
||||
You can set up a .step statement to sweep the parameter Freq. Then you
|
||||
can plot the open-loop response be executing menu command
|
||||
View=>SPICE Error Log, and then right mouse clicking and executing menu
|
||||
command "Plot .step'ed .meas data" Answer yes to the dialog that asks
|
||||
if LTspice should combine the real .meas data to complex data. Then you
|
||||
can plot the quanity gain to get a Bode plot the open-loop response of
|
||||
the system.
|
||||
|
||||
--Mike
|
||||
Reference in New Issue
Block a user