I'm trying to make a capacitor leakage tester and capacitor reformer. I need to create a variable high-voltage power supply for that first. It can provide 0-500 V DC, current limited to 10-15 mA.
It works fine (in simulation), but there is one problem: the output voltage is oscillating. I tried many changes, but some oscillations remained.
I used components from the LTspice library, it can be changed. I will just use similar transistors or op-amp.
The output voltage is set by "V5", 0.1 V sets 10 V output, 5 V sets 500 V output.
My questions are:
- Is it possible to get rid of the oscillations?
- In case it is not possible to get rid of them, would it be a problem for measuring capacitor leakage or reforming capacitors?
SPICE:
Version 4
SHEET 1 2392 1104
WIRE 464 -288 160 -288
WIRE 576 -288 528 -288
WIRE 624 -288 576 -288
WIRE 752 -288 688 -288
WIRE 832 -288 752 -288
WIRE 160 -272 160 -288
WIRE 576 -256 576 -288
WIRE 752 -256 752 -288
WIRE 160 -176 160 -192
WIRE 576 -176 576 -192
WIRE 576 -176 160 -176
WIRE 720 -176 576 -176
WIRE 752 -176 752 -192
WIRE 752 -176 720 -176
WIRE 832 -112 832 -288
WIRE 832 -112 160 -112
WIRE 160 0 160 -112
WIRE 208 0 160 0
WIRE 320 0 288 0
WIRE 464 0 416 0
WIRE 608 0 464 0
WIRE 656 0 608 0
WIRE 768 0 736 0
WIRE 800 0 768 0
WIRE 832 0 800 0
WIRE 992 0 912 0
WIRE 1552 0 992 0
WIRE 1632 0 1552 0
WIRE 1712 0 1632 0
WIRE 1808 0 1712 0
WIRE 1632 16 1632 0
WIRE 1808 16 1808 0
WIRE 464 32 464 0
WIRE 992 32 992 0
WIRE 608 80 608 0
WIRE 992 128 992 96
WIRE 1552 128 1552 0
WIRE 1552 128 1504 128
WIRE 1632 128 1632 96
WIRE 1808 128 1808 96
WIRE 400 144 400 48
WIRE 464 144 464 112
WIRE 464 144 400 144
WIRE 560 144 464 144
WIRE 768 144 768 0
WIRE 768 144 656 144
WIRE 48 176 32 176
WIRE 1504 176 1504 128
WIRE 1552 176 1552 128
WIRE 32 192 32 176
WIRE 800 208 800 0
WIRE 1376 240 1280 240
WIRE 1456 240 1440 240
WIRE 400 288 400 144
WIRE 800 304 800 288
WIRE 1344 304 1344 208
WIRE 1456 320 1456 240
WIRE 1456 320 1376 320
WIRE 1504 320 1504 240
WIRE 1504 320 1456 320
WIRE 1552 320 1552 256
WIRE 1552 320 1504 320
WIRE 400 336 400 288
WIRE 1056 336 1056 288
WIRE 1072 336 1056 336
WIRE 1280 336 1280 240
WIRE 1280 336 1264 336
WIRE 1312 336 1280 336
WIRE 1648 352 1376 352
WIRE 1680 352 1648 352
WIRE 800 400 800 384
WIRE 1552 400 1552 320
WIRE 1680 400 1680 352
WIRE 1072 432 1056 432
WIRE 1280 432 1264 432
WIRE 1056 448 1056 432
WIRE 896 480 848 480
WIRE 912 480 896 480
WIRE 1056 480 1056 448
WIRE 1056 480 992 480
WIRE 1056 528 1056 480
WIRE 896 544 896 480
WIRE 1280 576 1280 512
WIRE 1344 576 1344 368
WIRE 1344 576 1280 576
WIRE 1552 576 1552 480
WIRE 1552 576 1344 576
WIRE 1680 576 1680 480
WIRE 1680 576 1552 576
WIRE 1808 576 1808 368
WIRE 1808 576 1680 576
WIRE 1808 592 1808 576
WIRE 400 656 400 416
WIRE 800 656 800 496
WIRE 800 656 400 656
WIRE 896 656 896 608
WIRE 896 656 800 656
WIRE 1056 656 1056 608
WIRE 1056 656 896 656
WIRE 800 688 800 656
FLAG 992 128 0
FLAG 1632 128 0
FLAG 800 688 GND2
FLAG 32 192 0
FLAG 128 176 GND2
FLAG 1712 0 VOUT
FLAG 1808 592 0
FLAG 400 288 VCC2
FLAG 1056 448 FB
FLAG 1056 288 VCC2
FLAG 1648 352 VREF
FLAG 720 -176 0
FLAG 832 -288 VIN
FLAG 1808 288 VCC3
FLAG 1344 208 VCC3
FLAG 1808 128 0
SYMBOL npn 560 80 M90
WINDOW 3 77 59 VRight 2
SYMATTR Value 2SCR346P
SYMATTR InstName Q2
SYMBOL res 640 16 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R1
SYMATTR Value 47
SYMBOL cap 976 32 R0
SYMATTR InstName C1
SYMATTR Value 100n
SYMATTR SpiceLine V=1000
SYMBOL res 1616 0 R0
SYMATTR InstName R_LOAD
SYMATTR Value {R_LOAD}
SYMBOL res 144 160 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 100G
SYMBOL res 1008 496 M270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R4
SYMATTR Value 1
SYMBOL res 784 288 R0
SYMATTR InstName R5
SYMATTR Value {R5}
SYMBOL voltage 400 320 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 124 Left 2
SYMATTR InstName V2
SYMATTR Value 10
SYMBOL voltage 1808 272 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 124 Left 2
SYMATTR InstName V4
SYMATTR Value 10
SYMBOL res 1536 160 R0
SYMATTR InstName R6
SYMATTR Value 990k
SYMBOL res 1536 384 R0
SYMATTR InstName R7
SYMATTR Value 10k
SYMBOL res 1264 416 R0
SYMATTR InstName R10
SYMATTR Value 1k
SYMBOL Optos\\PC817C 1168 384 M0
SYMATTR InstName U3
SYMBOL cap 1440 224 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C2
SYMATTR Value 1e-20
SYMBOL cap 912 544 M0
SYMATTR InstName C3
SYMATTR Value 1e-20
SYMBOL voltage 1680 384 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V5
SYMATTR Value 0.1
SYMBOL nmos 848 400 M0
SYMATTR InstName M1
SYMATTR Value BSZ16DN25NS3
SYMBOL res 1072 512 M0
SYMATTR InstName R8
SYMATTR Value {R8}
SYMBOL res 448 16 R0
SYMATTR InstName R9
SYMATTR Value {R9}
SYMBOL OpAmps\\AD824 1344 272 M0
WINDOW 3 -90 118 Left 2
SYMATTR InstName U1
SYMBOL ind 192 16 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value 4n
SYMBOL ind 816 16 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L2
SYMATTR Value 4n
SYMBOL ind 784 192 R0
SYMATTR InstName L3
SYMATTR Value 4n
SYMBOL voltage 160 -288 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 124 Left 2
SYMATTR SpiceLine Rser=100
SYMATTR InstName V3
SYMATTR Value SINE(0 320 50)
SYMBOL cap 736 -256 R0
SYMATTR InstName C4
SYMATTR Value 22µ
SYMBOL cap 528 -304 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C5
SYMATTR Value 22µ
SYMBOL diode 592 -192 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value RRD20TJ10S
SYMBOL diode 624 -272 R270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName D2
SYMATTR Value RRD20TJ10S
SYMBOL cap 1488 176 R0
WINDOW 3 -50 5 Left 2
SYMATTR InstName C6
SYMATTR Value {C6}
SYMBOL current 1808 16 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName I_LOAD
SYMATTR Value {I_LOAD}
SYMBOL nmos 320 48 R270
SYMATTR InstName M2
SYMATTR Value STP8NM60
TEXT 8 304 Left 2 !.tran 100m uic
TEXT -120 376 Left 2 !;.step param C6 list 1e-20 10p 47p 1n\n.param C6 = 47p\n;.step param R8 list 1k 10k 100k\n.param R8 = 1k\n;.step param R5 list 2k 10k 100k\n;.param R5 = 10k\n.param R5 = 1k\n;.step param R_LOAD list 5k 500k\n.param R_LOAD = 500k\n;.step param I_LOAD list 1u 1m 10m\n.param I_LOAD = 1m\n;.step param R9 list 2k 10k\n.param R9 = 2k
TEXT 1184 680 Left 2 !.meas TRAN pwr_in AVG -V(N001)*I(V3) FROM 350m TO 400m