I'm in the process of designing linear psu based on KORAD3005D. I started by simulating this circuit, but I have trouble doing that - it oscillates horribly. I'm not an expert in analog circuits, but I think it's some sort of problem with spice models.
EDIT:
Sorry for these 3'rd party symbols, changed them to OP27, which should work the same in this circuit. (it doesn't stop strange behavior)
There is the interesting part of whole supply (glued together and signed): In spice, i used only one power transistor, and used voltage sources as references. It looked complicated in pdf, due to a lot of other stuff. And this circuit (at least for me) "looks" correctly. Grounding in this point is used, because all opamps have ground referenced to output positive terminal (see "GNDF").
So this circuit is just redraw to spice. R6 serves as load, V4 and V5 are emulated references from microcontroller (set voltages), input rectifier is replaced by voltage source.
V(N003,N007) is voltage across output resistor - reference is only 1V for voltage and current, which means around 35/5 * 1 output voltage, so around 7V, but the voltage at the output is maximum and oscillates (after zooming). I (R3) is current of load (measured through R3) - it oscillates also hugely (it's higher at startup probably due to output capacitance).
I don't have idea what happens, this is all I know.
New spice file: LINK
EDIT2
KIND OF STABLE VERSION with working cc and cv
EDIT 3
A concerned citizen's last version is I think best, but it as one disadvantage - voltage feedback is took before current shunt, so it lies when current is significant. Unfortunetly - connecting voltage feedback opamp's termianal directly to load leads to horrible oscillation... Changing output capacitance doesn't help
Version 4
SHEET 1 2468 1308
WIRE 160 -96 96 -96
WIRE 336 -96 224 -96
WIRE 1264 -32 592 -32
WIRE 1296 0 784 0
WIRE 1168 48 1072 48
WIRE -288 80 -416 80
WIRE -80 80 -288 80
WIRE 96 80 96 -96
WIRE 96 80 -80 80
WIRE 144 80 96 80
WIRE 336 80 336 -96
WIRE 336 80 240 80
WIRE 448 80 336 80
WIRE 528 80 448 80
WIRE 592 80 592 -32
WIRE 592 80 528 80
WIRE 624 80 592 80
WIRE 784 80 784 0
WIRE 784 80 704 80
WIRE 912 80 784 80
WIRE 1072 80 1072 48
WIRE 1072 80 912 80
WIRE 448 96 448 80
WIRE 1072 96 1072 80
WIRE -416 128 -416 80
WIRE -288 128 -288 80
WIRE 912 192 912 80
WIRE 1072 192 1072 176
WIRE 1152 192 1072 192
WIRE -80 208 -80 80
WIRE 64 208 16 208
WIRE 80 208 64 208
WIRE 192 208 192 144
WIRE 192 208 160 208
WIRE 224 208 192 208
WIRE 336 208 336 80
WIRE 336 208 304 208
WIRE 528 208 528 80
WIRE 784 208 784 80
WIRE 1072 224 1072 192
WIRE -416 320 -416 208
WIRE -288 320 -288 192
WIRE -288 320 -416 320
WIRE 528 320 528 288
WIRE 528 320 -288 320
WIRE 672 320 528 320
WIRE 784 320 784 272
WIRE 784 320 672 320
WIRE 912 320 912 272
WIRE 912 320 784 320
WIRE 1072 320 1072 304
WIRE 1072 320 912 320
WIRE -32 416 -32 272
WIRE 720 416 704 416
WIRE 816 416 784 416
WIRE 96 496 96 416
WIRE 256 496 240 496
WIRE 368 496 320 496
WIRE 704 512 704 416
WIRE 720 512 704 512
WIRE 816 512 816 416
WIRE 816 512 800 512
WIRE -384 544 -384 528
WIRE -272 544 -272 528
WIRE -32 592 -32 496
WIRE 816 608 816 512
WIRE 816 608 784 608
WIRE 944 608 816 608
WIRE 1152 608 1152 192
WIRE 1152 608 1024 608
WIRE 368 624 368 496
WIRE 368 624 336 624
WIRE 560 624 368 624
WIRE 704 624 704 512
WIRE 704 624 640 624
WIRE 720 624 704 624
WIRE 96 640 96 576
WIRE 96 640 32 640
WIRE 128 640 96 640
WIRE 240 640 240 496
WIRE 240 640 192 640
WIRE 272 640 240 640
WIRE 816 640 784 640
WIRE 560 656 336 656
WIRE 1168 656 1168 48
WIRE 1168 656 880 656
WIRE -32 704 -32 688
WIRE 816 704 816 640
WIRE 928 752 896 752
WIRE 1008 752 992 752
WIRE -32 800 -32 784
WIRE 816 800 816 784
WIRE 880 800 880 656
WIRE 880 800 816 800
WIRE 896 832 896 752
WIRE 912 832 896 832
WIRE 1008 832 1008 752
WIRE 1008 832 992 832
WIRE 448 944 336 944
WIRE 96 960 96 640
WIRE 128 960 96 960
WIRE 240 960 192 960
WIRE 272 960 240 960
WIRE 1008 960 1008 832
WIRE 1008 960 992 960
WIRE 1136 960 1008 960
WIRE 1296 960 1296 0
WIRE 1296 960 1216 960
WIRE 368 976 336 976
WIRE 720 976 368 976
WIRE 896 976 896 832
WIRE 896 976 800 976
WIRE 928 976 896 976
WIRE 1024 992 992 992
WIRE 1040 992 1024 992
WIRE 1264 992 1264 -32
WIRE 1264 992 1120 992
WIRE 448 1040 448 944
WIRE 560 1040 560 656
WIRE 240 1104 240 960
WIRE 272 1104 240 1104
WIRE 368 1104 368 976
WIRE 368 1104 336 1104
WIRE 1024 1104 1024 992
WIRE 448 1184 448 1120
WIRE 560 1184 560 1120
FLAG 448 96 0
FLAG -384 544 0
FLAG -272 544 0
FLAG -384 448 +12V
FLAG -272 448 -12V
FLAG 304 992 +12V
FLAG 304 928 -12V
FLAG 304 608 +12V
FLAG 304 672 -12V
FLAG 560 1264 0
FLAG 448 1264 0
FLAG 752 592 +12V
FLAG 752 656 -12V
FLAG 960 944 +12V
FLAG 960 1008 -12V
FLAG 1024 1184 0
FLAG -32 800 +12V
FLAG 96 416 +12V
FLAG 672 320 out
SYMBOL npn 144 144 R270
SYMATTR InstName Q1
SYMATTR Value 2N3055
SYMBOL res 720 64 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 0.1
SYMBOL res 512 192 R0
SYMATTR InstName R2
SYMATTR Value 1k5
SYMBOL res 208 224 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R4
SYMATTR Value 1k
SYMBOL res 64 224 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R5
SYMATTR Value 1
SYMBOL diode 224 -112 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName D1
SYMATTR Value ES1D
SYMBOL voltage -416 112 R0
WINDOW 123 0 0 Left 2
WINDOW 39 24 124 Left 2
SYMATTR InstName V1
SYMATTR Value 40
SYMBOL cap -304 128 R0
SYMATTR InstName C1
SYMATTR Value 1000µ
SYMATTR SpiceLine Rser=10m
SYMBOL cap 768 208 R0
SYMATTR InstName C2
SYMATTR Value 330µ
SYMATTR SpiceLine Rser=0.001
SYMBOL res 896 176 R0
SYMATTR InstName R6
SYMATTR Value 6
SYMBOL voltage -384 432 R0
WINDOW 123 0 0 Left 2
WINDOW 39 24 124 Left 2
SYMATTR SpiceLine Rser=0.01
SYMATTR InstName V2
SYMATTR Value 12
SYMBOL voltage -272 432 R0
WINDOW 123 0 0 Left 2
WINDOW 39 24 124 Left 2
SYMATTR SpiceLine Rser=0.01
SYMATTR InstName V3
SYMATTR Value -12
SYMBOL res -48 688 R0
SYMATTR InstName R7
SYMATTR Value 2k
SYMBOL diode 128 656 R270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName D3
SYMATTR Value 1N4148
SYMBOL diode 128 976 R270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName D4
SYMATTR Value 1N4148
SYMBOL cap 320 480 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value 10n rpar=10meg
SYMATTR SpiceLine Rser=1m
SYMBOL cap 336 1088 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C4
SYMATTR Value 10n rpar=10meg
SYMATTR SpiceLine Rser=1m
SYMBOL res 464 1136 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R9
SYMATTR Value 100
SYMBOL res 576 1136 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R10
SYMATTR Value 100
SYMBOL voltage 448 1168 R0
WINDOW 123 0 0 Left 2
WINDOW 39 24 124 Left 2
SYMATTR SpiceLine Rser=0.01
SYMATTR InstName V4
SYMATTR Value 3.3
SYMBOL voltage 560 1168 R0
WINDOW 123 0 0 Left 2
WINDOW 39 24 124 Left 2
SYMATTR SpiceLine Rser=0.01
SYMATTR InstName V5
SYMATTR Value PWL(0 0.1 0.2 3.3)
SYMBOL cap 784 432 M270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName C5
SYMATTR Value 100p
SYMATTR SpiceLine Rser=1m
SYMBOL res 656 608 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R11
SYMATTR Value 100
SYMBOL res 816 528 M270
WINDOW 0 32 56 VTop 2
WINDOW 3 0 56 VBottom 2
SYMATTR InstName R12
SYMATTR Value 10k
SYMBOL res 1040 592 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R13
SYMATTR Value 10k
SYMBOL res 800 800 M180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R15
SYMATTR Value 10k
SYMBOL res 1088 192 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R18
SYMATTR Value 4.3k
SYMBOL res 1056 208 R0
SYMATTR InstName R19
SYMATTR Value 30k
SYMBOL res 1008 816 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R21
SYMATTR Value 10k
SYMBOL cap 992 736 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C7
SYMATTR Value 100p
SYMATTR SpiceLine Rser=1m
SYMBOL res 816 960 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R22
SYMATTR Value 100
SYMBOL res 1232 944 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R23
SYMATTR Value 2k
SYMBOL res 1136 976 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R24
SYMATTR Value 2k
SYMBOL res 1040 1200 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R26
SYMATTR Value 10k
SYMBOL res 80 480 R0
SYMATTR InstName R8
SYMATTR Value 10k
SYMBOL npn 32 688 R180
SYMATTR InstName Q3
SYMATTR Value 2N3904
SYMBOL Opamps\\LT1055 960 912 M0
SYMATTR InstName U4
SYMBOL Opamps\\LT1055 752 560 M0
SYMATTR InstName U2
SYMBOL Opamps\\LT1055 304 1024 R180
SYMATTR InstName U1
SYMBOL Opamps\\LT1055 304 576 M0
SYMATTR InstName U3
SYMBOL res -48 400 R0
SYMATTR InstName R16
SYMATTR Value 2k
SYMBOL lib\\sym\\ZZZ\\Darlington\\TIP120 -16 208 R270
SYMATTR InstName U5
TEXT -360 840 Left 2 !.tran 0.4
TEXT -344 896 Left 2 ;.ac dec 101 1 1meg
TEXT 1368 232 Left 2 !.model MYSW SW(Ron=1 Roff=1Meg Vt=.5 Vh=-.4)