|
From: BERTRAND J. <joe...@sy...> - 2018-06-26 15:25:34
|
Hello,
I'm trying to simulate a circuit that contains two pentodes EL509. As
simulation results are totally different than real measures, I have
tried to test all models.
I have written a simple script that computes Kellog network and JJEL509
model I use seems to be correct for anode voltage, grid current, but
screen current is false. Thus, I have replaced this model by another one :
.subckt 6KG6 1 2 3 4 ; A S G K
*= EL509
* Calculate contribution to cathode current
*
Eat at 0 VALUE={0.636*ATAN(V(1,4)/20)}
Eme me 0 VALUE={PWR(LIMIT(V(1,4),0,10000),1.5)/17}
Emu mu 0
VALUE={PWRS(V(3,4),1-(LIMIT(-V(3,4),5,9999)-5)/1150)}
Egs gs 0 VALUE={LIMIT(V(2,4)/19+V(mu)/4.3+V(1,4)/800,0,1E6)}
Egs2 gs2 0 VALUE={PWRS(V(gs),1.5)}
Ecath cc 0 VALUE={LIMIT(V(gs2)*V(at),0,V(me))}
Elim el 0 VALUE={LIMIT(V(gs2)*V(at)-V(cc),0,99999)}
*
* Calculate anode current
*
Ga 1 4 VALUE={6E-2*V(cc)}
*
* Calculate screen current
*
Escrn sc 0 VALUE={V(gs2)*(1.1-V(at))+1.2*V(el)}
Gs 2 4 VALUE={1.2E-2*V(sc)*LIMIT(V(2,4),0,10)/10}
*
* Grid current (approximation - does not model low va/vs)
*
Gg 3 4 VALUE={PWR(LIMIT(V(3,4)+1,0,1E6),1.5)*50E-6}
*
* Capacitances
* NOTE: Change Cg1 from 37p to 25p for Svetlana EL509
*
Cg1 3 4 37p
Cak 1 4 18.5p
Cg1a 3 1 2.5p
.ends
Of course, I have added :
.func LIMIT(x,a,b) {min(max(x, a), b)}
.func if(x,y,z) {ternary_fcn(x, y, z)}
.FUNC PWR(x,a) {abs(x) ** a}
.FUNC PWRS(x,a) {sgn(x) * PWR(x,a)}
I have computed Kellog network and this model is better than old one.
Thus, I have replaced JJEL509 model in my circuit by 6KG6. And I obtain :
...
Note: Starting dynamic gmin stepping
Trying gmin = 1.0000E-03 Warning: Further gmin increment
Trying gmin = 5.6234E-03 Warning: Further gmin increment
Trying gmin = 8.6596E-03 Warning: Further gmin increment
Trying gmin = 9.6466E-03 Warning: Further gmin increment
Trying gmin = 9.9105E-03 Warning: Further gmin increment
Trying gmin = 9.9775E-03 Warning: Further gmin increment
Trying gmin = 9.9944E-03 Warning: Further gmin increment
Trying gmin = 9.9986E-03 Warning: Further gmin increment
Trying gmin = 9.9996E-03 Warning: Last gmin step failed
Warning: Dynamic gmin stepping failed
Note: Starting source stepping
Supplies reduced to 0.0000%
Trying gmin = 1.0000E-02 Warning: gmin step failed
Warning: source stepping failed
Transient solution failed -
doAnalyses: Too many iterations without convergence
run simulation(s) aborted
I have tried to add some options (uic, gminsteps, gmin, altinit...)
without any success. Here is my analyze options :
.tran 1u 100m
.options method=gear reltol=1m minbreak=200ps
.control
run
write results.raw
quit
.endc
I can send my netlist but it was generated by Kicad.
Best regards,
JB
|