* Z:\home\khalils\Downloads\files\data\raw_asc\1787491796bd_saturating_inductor.asc
* Generated by LTspice 26.0.1 for Windows.
* G11, C11, E11 models volt-\n seconds applied to inductor
* F11, V11 reflects current\n resulting from applied volt-sec
* R11 models linear inductance\n with unity gain: L = C11*R11
* V11 senses current drawn by\n applied volt-seconds
* Generalized Impedance Converter Based Linear Inductor Model
* R11 models winding resistance
* No Saturation\n(standard inductor)
* No Saturation\n(linear inductor)
* Hard Saturation\n(additive model)
* Hard Saturation\n(subtractive model)
* L = unsaturated inductance\nLs= saturated inductance\nIs = saturation current
* Hard Saturation\n(stepped model)
* Hard Saturation\n(switched model)
* Soft Saturation
* Hard Saturation\n(stepped model)
* Soft Saturation\n(adjustable hardness)
* Very Soft Saturation
* No Saturation\n(arbitrary inductor model)
* Flux={L*Is}*tanh(x/{Is})
* Flux={L*Is}*pwrs({2/Pi}*atan({Pi/2}*pwrs(x/{Is},{n})),{1/n})
* Flux={L}*limit(x,{-Is},{Is})
* Test source for all\n inductor models
* Various Approaches for Modeling Saturating Inductors\nby analog@ieee.org - April 2004
* This simulation explores the new arbitrary inductor model and compares \nit to other methods of modeling inductor saturation, such as the B-source \ninductance multiplier method, the generalized impedance converter \nmethod, and a method with current controlled switches.
* Soft Saturation\n(additive model)
+ Is=3p)
+ Vfwd={Is} Vrev={Is})
W1 N015 N016 V1 s
L7 N013 N012 Flux={(L-Ls)*Is}*pwrs(tanh(pwrs(x/{Is},{n})),{1/n})
L6 0 N007 Flux={L-Ls}*limit(x,{-Is},{Is})+{Ls}*x
V2 0 N017 0
G21 0 N009 N008 0 1
D31 N022 0 r
L1 0 N002 {L}
R9 Vs N014 .5
R5 Vs N001 .5
V1 N016 N017 0
R21 Vs N008 .5
R7 Vs N012 .5
R1 Vs N002 .5
L9s N015 N014 {Ls}
B3 4 0 V=if(abs(I(L3))<Is,0,V(3,4)*(Ls/L-1))
C21 N009 0 {L}
R31 Vs N019 .5
Vs Vs 0 PULSE(-1 1 1m .10u .10u 2m 4m)
L3 4 3 {L}
R3 Vs 3 .5
L2 2 1 {Ls}
E21 N010 0 N009 0 1
E31 N021 0 N020 0 {.7/Is}
R4 Vs 5 .5
C31 N020 0 {L}
G31 0 N020 N019 0 1
R8 Vs N018 .5
D21 N011 0 s
L8 0 N018 Flux={L*Is*2/Pi}*atan(x/{Is*2/Pi})
L4 6 5 {Ls}
V21 N010 N011 0
L7s N013 0 {Ls}
V31 N021 N022 0
R12 N006 0 1
G11 0 N004 N003 0 1
F31 N019 0 V31 {Is/.7}
C11 N004 0 {L}
R6 Vs N007 .5
R2 Vs 1 .5
F11 N003 0 V11 1
B2 2 0 V=if(abs(I(L2))>Is,0,V(1,2)*(L/Ls-1))
F21 N008 0 V21 1
E11 N005 0 N004 0 1
V11 N005 N006 0
D32 0 N022 r
R32 N022 0 1
L5 0 N001 Flux={L}*x
W2 N015 N016 V2 s
B4 6 0 V=V(5,6)*(L/Ls-1)/(1+(I(L4)/Is)**6)
L9 N016 N015 {L-Ls}
R22 N011 0 1
R11 Vs N003 .5
.model D D
.lib C:\users\khalils\AppData\Local\LTspice\lib\cmp\standard.dio
.tran 0 44m 40m uic
.model r d(Rs={Ls/L}
.model s d(Ron={Ls/L}
.model s csw(Ron=1u It={Is})
.param L=1m Ls=10u Is=.7
.param n=2
.backanno
.end

* LTspice schematic (.asc):
Version 4
SHEET 1 1340 1060
WIRE -112 -80 -112 -112
WIRE -112 32 -112 0
WIRE -160 -64 -160 -112
WIRE -160 -112 -240 -112
WIRE -304 -112 -304 -80
WIRE -304 0 -304 32
WIRE -160 -16 -160 32
WIRE -240 32 -240 -16
WIRE -240 -80 -240 -112
WIRE -240 -112 -304 -112
WIRE -352 -16 -352 32
WIRE -352 -112 -432 -112
WIRE -352 -112 -352 -64
WIRE -432 32 -432 0
WIRE -432 -80 -432 -112
WIRE -1024 -256 -1024 -272
WIRE 48 -112 48 -80
WIRE 48 0 48 32
WIRE 48 -112 16 -112
WIRE -112 -112 -64 -112
WIRE 192 624 192 672
WIRE 192 736 192 768
WIRE 128 768 128 736
WIRE 128 672 128 624
WIRE 128 624 192 624
WIRE -464 -112 -432 -112
WIRE -576 -112 -544 -112
WIRE -1024 -352 -1024 -384
WIRE -1024 -384 -976 -384
WIRE 48 624 128 624
WIRE 48 128 128 128
WIRE 128 272 128 240
WIRE 128 160 128 128
WIRE -112 656 -112 624
WIRE -112 768 -112 736
WIRE -160 672 -160 624
WIRE -160 624 -240 624
WIRE -304 624 -304 656
WIRE -304 736 -304 768
WIRE -160 720 -160 768
WIRE -240 768 -240 720
WIRE -240 656 -240 624
WIRE -240 624 -304 624
WIRE -352 720 -352 768
WIRE -352 624 -432 624
WIRE -352 624 -352 672
WIRE -432 768 -432 736
WIRE -432 656 -432 624
WIRE 48 624 48 656
WIRE 48 736 48 768
WIRE 48 624 16 624
WIRE -112 624 -64 624
WIRE -464 624 -432 624
WIRE -576 624 -544 624
WIRE -112 160 -112 128
WIRE -112 272 -112 240
WIRE -160 176 -160 128
WIRE -160 128 -240 128
WIRE -304 128 -304 160
WIRE -304 240 -304 272
WIRE -160 224 -160 272
WIRE -240 272 -240 224
WIRE -240 160 -240 128
WIRE -240 128 -304 128
WIRE -352 224 -352 272
WIRE -352 128 -432 128
WIRE -352 128 -352 176
WIRE -432 272 -432 240
WIRE -432 160 -432 128
WIRE 48 128 48 160
WIRE 48 240 48 272
WIRE 48 128 16 128
WIRE -112 128 -64 128
WIRE -464 128 -432 128
WIRE -576 128 -544 128
WIRE -992 -112 -960 -112
WIRE -880 -112 -848 -112
WIRE -768 -112 -736 -112
WIRE -992 368 -960 368
WIRE -880 368 -864 368
WIRE -864 368 -848 368
WIRE -736 512 -736 480
WIRE -768 368 -752 368
WIRE -736 368 -736 400
WIRE -752 368 -736 368
WIRE -992 128 -960 128
WIRE -880 128 -864 128
WIRE -864 128 -848 128
WIRE -736 272 -736 240
WIRE -768 128 -752 128
WIRE -736 128 -736 160
WIRE -752 128 -736 128
WIRE -576 368 -544 368
WIRE -464 368 -432 368
WIRE -336 448 -336 528
WIRE -352 368 -336 368
WIRE -224 448 -240 448
WIRE -320 448 -336 448
WIRE -224 528 -240 528
WIRE -320 528 -336 528
WIRE -224 528 -224 448
WIRE 0 368 -16 368
WIRE -336 448 -336 368
WIRE -224 368 -224 448
WIRE -240 368 -224 368
WIRE -112 368 -96 368
WIRE -224 368 -192 368
WIRE -336 368 -320 368
WIRE -1424 128 -1392 128
WIRE -1312 128 -1280 128
WIRE -1200 128 -1168 128
WIRE -1424 368 -1392 368
WIRE -1312 368 -1280 368
WIRE -1200 368 -1168 368
WIRE -1424 624 -1392 624
WIRE -1312 624 -1280 624
WIRE -1200 624 -1168 624
WIRE -1424 -112 -1392 -112
WIRE -1312 -112 -1280 -112
WIRE -1200 -112 -1168 -112
WIRE -1168 448 -1168 464
WIRE -992 624 -960 624
WIRE -880 624 -864 624
WIRE -864 624 -848 624
WIRE -736 768 -736 736
WIRE -768 624 -752 624
WIRE -736 624 -736 656
WIRE -752 624 -736 624
IOPIN -576 -112 In
IOPIN -976 -384 Out
IOPIN -576 624 In
IOPIN -576 128 In
IOPIN -992 -112 In
IOPIN -992 368 In
IOPIN -992 128 In
IOPIN -576 368 In
IOPIN -1424 128 In
IOPIN -1424 368 In
IOPIN -1424 624 In
IOPIN -1424 -112 In
IOPIN -992 624 In
LINE Normal -96 -144 -288 -144 2
LINE Normal -64 -128 -96 -144 2
LINE Normal -320 -128 -288 -144 2
LINE Normal -368 -80 -320 -128 2
LINE Normal -96 592 -288 592 2
LINE Normal -64 608 -96 592 2
LINE Normal -320 608 -288 592 2
LINE Normal -368 656 -320 608 2
LINE Normal -96 96 -288 96 2
LINE Normal -64 112 -96 96 2
LINE Normal -320 112 -288 96 2
LINE Normal -368 160 -320 112 2
LINE Normal -160 480 -80 400 2
LINE Normal -240 432 -208 416 2
LINE Normal -240 512 -160 480 2
LINE Normal -208 416 -192 400 2
RECTANGLE Normal -624 -416 -1488 -624
SYMBOL e -112 640 R0
WINDOW 0 16 16 Left 0
WINDOW 3 13 96 Left 0
SYMATTR InstName E31
SYMATTR Value {.7/Is}
SYMBOL ind2 -752 -96 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L1
SYMATTR Value {L}
SYMATTR Type ind
SYMBOL cap -256 160 R0
WINDOW 0 32 0 Left 0
WINDOW 3 32 80 Left 0
SYMATTR InstName C21
SYMATTR Value {L}
SYMBOL res 32 640 R0
WINDOW 0 32 16 Left 0
WINDOW 3 32 96 Left 0
SYMATTR InstName R32
SYMATTR Value 1
SYMBOL ind2 -1184 -96 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 72 55 VCenter 0
SYMATTR InstName L5
SYMATTR Value Flux={L}*x
SYMATTR Type ind
SYMBOL res -1408 640 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R8
SYMATTR Value .5
SYMBOL cap -256 656 R0
WINDOW 0 32 0 Left 0
WINDOW 3 32 80 Left 0
SYMATTR InstName C31
SYMATTR Value {L}
SYMBOL res -1408 -96 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R5
SYMATTR Value .5
SYMBOL voltage 0 368 R90
WINDOW 0 -32 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName V2
SYMATTR Value 0
SYMBOL Misc\\xvaristor 112 144 R0
SYMATTR InstName D21
SYMATTR Value s
SYMATTR Prefix D
SYMBOL ind2 -224 384 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L9
SYMATTR Value {L-Ls}
SYMATTR Type ind
SYMBOL voltage -80 624 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 -32 56 Invisible 0
SYMATTR InstName V31
SYMATTR Value 0
SYMBOL g -304 640 R0
WINDOW 0 16 16 Left 0
WINDOW 3 16 96 Left 0
SYMATTR InstName G31
SYMATTR Value 1
SYMBOL res -560 144 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R21
SYMATTR Value .5
SYMBOL ind -1184 352 R0
SYMATTR InstName L7s
SYMATTR Value {Ls}
SYMBOL e -112 144 R0
WINDOW 0 16 16 Left 0
WINDOW 3 16 96 Left 0
SYMATTR InstName E21
SYMATTR Value 1
SYMBOL res -1408 144 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R6
SYMATTR Value .5
SYMBOL voltage -1024 -368 R0
WINDOW 123 32 56 VTop 0
WINDOW 39 32 56 VTop 0
WINDOW 3 -32 144 Left 0
WINDOW 0 16 16 Left 0
SYMATTR Value PULSE(-1 1 1m .10u .10u 2m 4m)
SYMATTR InstName Vs
SYMBOL voltage -80 -112 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 -32 56 Invisible 0
SYMATTR InstName V11
SYMATTR Value 0
SYMBOL ind2 -336 384 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L9s
SYMATTR Value {Ls}
SYMATTR Type ind
SYMBOL res -560 384 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R9
SYMATTR Value .5
SYMBOL res -560 640 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R31
SYMATTR Value .5
SYMBOL ind2 -752 144 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L2
SYMATTR Value {Ls}
SYMATTR Type ind
SYMBOL bv -736 384 R0
WINDOW 0 16 16 Left 0
WINDOW 3 -16 104 Right 0
SYMATTR InstName B3
SYMATTR Value V=if(abs(I(L3))<Is,0,V(3,4)*(Ls/L-1))
SYMBOL csw -320 528 R270
WINDOW 0 0 -32 VLeft 0
WINDOW 3 0 112 VRight 0
SYMATTR InstName W2
SYMATTR Value V2 s
SYMBOL res -976 640 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R4
SYMATTR Value .5
SYMBOL ind2 -1184 384 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 72 56 VCenter 0
SYMATTR InstName L7
SYMATTR Value Flux={(L-Ls)*Is}*pwrs(tanh(pwrs(x/{Is},{n})),{1/n})
SYMATTR Type ind
SYMBOL voltage -208 368 M90
WINDOW 0 -32 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName V1
SYMATTR Value 0
SYMBOL voltage -80 128 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 -32 56 Invisible 0
SYMATTR InstName V21
SYMATTR Value 0
SYMBOL res 32 144 R0
WINDOW 0 32 16 Left 0
WINDOW 3 32 96 Left 0
SYMATTR InstName R22
SYMATTR Value 1
SYMBOL cap -256 -80 R0
WINDOW 0 32 0 Left 0
WINDOW 3 32 80 Left 0
SYMATTR InstName C11
SYMATTR Value {L}
SYMBOL res 32 -96 R0
WINDOW 0 32 16 Left 0
WINDOW 3 32 96 Left 0
SYMATTR InstName R12
SYMATTR Value 1
SYMBOL f -432 160 R0
WINDOW 0 16 0 Left 0
WINDOW 3 40 41 Left 0
WINDOW 123 16 80 Left 0
SYMATTR InstName F21
SYMATTR Value V21
SYMATTR Value2 1
SYMBOL csw -320 448 R270
WINDOW 0 0 -32 VLeft 0
WINDOW 3 0 112 VRight 0
SYMATTR InstName W1
SYMATTR Value V1 s
SYMBOL ind2 -752 640 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L4
SYMATTR Value {Ls}
SYMATTR Type ind
SYMBOL res -1408 384 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R7
SYMATTR Value .5
SYMBOL f -432 -80 R0
WINDOW 0 16 0 Left 0
WINDOW 3 40 41 Left 0
WINDOW 123 16 80 Left 0
SYMATTR InstName F11
SYMATTR Value V11
SYMATTR Value2 1
SYMBOL res -976 -96 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R1
SYMATTR Value .5
SYMBOL res -976 384 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R3
SYMATTR Value .5
SYMBOL diode 176 736 M180
WINDOW 0 32 80 Left 0
WINDOW 3 32 0 Left 0
SYMATTR InstName D32
SYMATTR Value r
SYMBOL res -976 144 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R2
SYMATTR Value .5
SYMBOL g -304 144 R0
WINDOW 0 16 16 Left 0
WINDOW 3 16 96 Left 0
SYMATTR InstName G21
SYMATTR Value 1
SYMBOL ind2 -1184 640 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 72 56 VCenter 0
SYMATTR InstName L8
SYMATTR Value Flux={L*Is*2/Pi}*atan(x/{Is*2/Pi})
SYMATTR Type ind
SYMBOL g -304 -96 R0
WINDOW 0 16 16 Left 0
WINDOW 3 16 96 Left 0
SYMATTR InstName G11
SYMATTR Value 1
SYMBOL diode 112 672 R0
WINDOW 0 32 -16 Left 0
WINDOW 3 32 64 Left 0
SYMATTR InstName D31
SYMATTR Value r
SYMBOL ind2 -1184 144 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 72 56 VCenter 0
SYMATTR InstName L6
SYMATTR Value Flux={L-Ls}*limit(x,{-Is},{Is})+{Ls}*x
SYMATTR Type ind
SYMBOL bv -736 640 R0
WINDOW 0 16 16 Left 0
WINDOW 3 -16 104 Right 0
SYMATTR InstName B4
SYMATTR Value V=V(5,6)*(L/Ls-1)/(1+(I(L4)/Is)**6)
SYMBOL ind2 -752 384 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L3
SYMATTR Value {L}
SYMATTR Type ind
SYMBOL bv -736 144 R0
WINDOW 0 16 16 Left 0
WINDOW 3 -16 104 Right 0
SYMATTR InstName B2
SYMATTR Value V=if(abs(I(L2))>Is,0,V(1,2)*(L/Ls-1))
SYMBOL e -112 -96 R0
WINDOW 0 16 16 Left 0
WINDOW 3 16 96 Left 0
SYMATTR InstName E11
SYMATTR Value 1
SYMBOL res -560 -96 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R11
SYMATTR Value .5
SYMBOL f -432 656 R0
WINDOW 0 16 0 Left 0
WINDOW 3 40 41 Left 0
WINDOW 123 13 80 Left 0
SYMATTR InstName F31
SYMATTR Value V31
SYMATTR Value2 {Is/.7}
FLAG -1024 -256 0
FLAG -304 32 0
FLAG -240 32 0
FLAG -160 32 0
FLAG -112 32 0
FLAG 48 32 0
FLAG -432 32 0
FLAG -352 32 0
FLAG 192 768 0
FLAG 128 768 0
FLAG -576 -112 Vs
FLAG -976 -384 Vs
FLAG 128 272 0
FLAG -304 768 0
FLAG -240 768 0
FLAG -160 768 0
FLAG -112 768 0
FLAG 48 768 0
FLAG -432 768 0
FLAG -352 768 0
FLAG -576 624 Vs
FLAG -304 272 0
FLAG -240 272 0
FLAG -160 272 0
FLAG -112 272 0
FLAG 48 272 0
FLAG -432 272 0
FLAG -352 272 0
FLAG -576 128 Vs
FLAG -992 -112 Vs
FLAG -736 -112 0
FLAG -992 368 Vs
FLAG -736 512 0
FLAG -864 368 3
FLAG -752 368 4
FLAG -992 128 Vs
FLAG -736 272 0
FLAG -864 128 1
FLAG -752 128 2
FLAG -576 368 Vs
FLAG 0 368 0
FLAG -1424 128 Vs
FLAG -1168 128 0
FLAG -1424 368 Vs
FLAG -1168 464 0
FLAG -1424 624 Vs
FLAG -1168 624 0
FLAG -1424 -112 Vs
FLAG -1168 -112 0
FLAG -992 624 Vs
FLAG -736 768 0
FLAG -864 624 5
FLAG -752 624 6
TEXT -1488 -384 Left 0 !.tran 0 44m 40m uic
TEXT -248 -192 VLeft 0 ;G11, C11, E11 models volt-\n seconds applied to inductor
TEXT -432 -192 VLeft 0 ;F11, V11 reflects current\n resulting from applied volt-sec
TEXT 56 -192 VLeft 0 ;R11 models linear inductance\n with unity gain: L = C11*R11
TEXT -56 -192 VLeft 0 ;V11 senses current drawn by\n applied volt-seconds
TEXT -224 -592 Bottom 0 ;Generalized Impedance Converter Based Linear Inductor Model
TEXT 32 568 Left 0 !.model r d(Rs={Ls/L}\n+ Is=3p)
TEXT -504 -192 VLeft 0 ;R11 models winding resistance
TEXT 32 320 Left 0 !.model s d(Ron={Ls/L}\n+ Vfwd={Is} Vrev={Is})
TEXT -128 488 Left 0 !.model s csw(Ron=1u It={Is})
TEXT -1056 -56 Left 0 ;No Saturation\n(standard inductor)
TEXT -648 -56 Left 0 ;No Saturation\n(linear inductor)
TEXT -1488 -328 Left 0 !.param L=1m Ls=10u Is=.7
TEXT -1056 184 Left 0 ;Hard Saturation\n(additive model)
TEXT -1056 424 Left 0 ;Hard Saturation\n(subtractive model)
TEXT -1488 -296 Left 0 ;L = unsaturated  inductance\nLs= saturated inductance\nIs = saturation current
TEXT -648 184 Left 0 ;Hard Saturation\n(stepped model)
TEXT -648 424 Left 0 ;Hard Saturation\n(switched model)
TEXT -648 680 Left 0 ;Soft Saturation
TEXT -1488 184 Left 0 ;Hard Saturation\n(stepped model)
TEXT -1488 424 Left 0 ;Soft Saturation\n(adjustable hardness)
TEXT -1488 680 Left 0 ;Very Soft Saturation
TEXT -1488 -56 Left 0 ;No Saturation\n(arbitrary inductor model)
TEXT -1240 280 Center 0 ;Flux={L*Is}*tanh(x/{Is})
TEXT -1488 536 Left 0 ;Flux={L*Is}*pwrs({2/Pi}*atan({Pi/2}*pwrs(x/{Is},{n})),{1/n})
TEXT -1488 480 Left 0 !.param n=2
TEXT -1240 40 Center 0 ;Flux={L}*limit(x,{-Is},{Is})
TEXT -976 -320 Left 0 ;Test source for all\n inductor models
TEXT -1056 -600 Center 0 ;Various Approaches for Modeling Saturating Inductors\nby analog@ieee.org - April 2004
TEXT -1472 -528 Left 0 ;This simulation explores the new arbitrary inductor model and compares \nit to other methods of modeling inductor saturation, such as the B-source \ninductance multiplier method, the generalized impedance converter \nmethod, and a method with current controlled switches.
TEXT -1056 680 Left 0 ;Soft Saturation\n(additive model)