Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

MSC050SDA120S_L1 spice mode not working in Qspice

eengr

Member level 4
Joined
Mar 9, 2016
Messages
75
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
4,270
Hi I am trying to use the SPICE file to create a model (subckt) for the SiC diode
I have used in the attached circuit to implement a full bridge
DiodeFB_V1b.qsch (25.9 KB)
similar to the 2nd circuit in attachment with generic diode.
But I keep getting the error time step too small
Fatal error: Timestep too small(7.92063e-19) at t=5.3365e-06

The model file that I am using is:
MSC050SDA120S_L1.txt (2.1 KB)

Code:
*******************************************************************************
*******************************************************************************
* MSC050SDA120S_L1, 50A, 1200V SiC NextGen SBDiode, TO-268
*******************************************************************************
********************* A  K  ***************************************************
.subckt MSC050SDA120S_L1 10 20
*#ASSOC Category=Diode Symbol=diode_sic
* Misc. parameters and utility functions
.PARAM TNOMK = 298.15
* Bond wire parameters
.PARAM BW_RHO = 2.6548e-6
.PARAM BW_TC = 0.0038
.PARAM BW_TREF = 293.15
.PARAM AA_ = 0.1774
.PARAM DS_ = 0.1947
.PARAM BW_DIA = 15
.PARAM BW_LEN = 0.375
.PARAM BW_QTY = 4
.PARAM BW_L = 0.1947n
.FUNC degk() { temp + 273.15 }
.FUNC fRbw() { fRbwTref()*(1 + BW_TC*(degk()-BW_TREF)) }
.FUNC fRbwTref() {(BW_RHO * BW_LEN * 2.54 / (pi * (BW_DIA * 2.54e-3 / 2)**2 )) / BW_QTY}
V10 10 11 0
L11 11 12 {BW_L}
R11 11 12 1
E12 12 13 value={I(V10)*fRbw()}
XD1 13 20 MSCSICJBS1200Vt PARAMS: AA={AA_} DS={DS_} TEMP={27}
.ends MSC050SDA120S_L1 

*******************************************************************************
*******************************************************************************
.SUBCKT MSCSICJBS1200Vt 11 21 PARAMS: AA=1 DS=1 TEMP=27
.PARAM TNOMK = 298.15
.PARAM QCHRG = 1.60217662e-19
.PARAM SiC_EPS = 8.880750380451000e-13
.PARAM PA = 146;                                   
.PARAM phi_BN = 1.13;                           
.PARAM V_bi = 2.886;                           
.PARAM degk = {TEMP+273.15}
.PARAM VT = {degk*8.6173304e-05}
.PARAM LP = 0.0000638;
.PARAM LS = 0.000250;
.PARAM LD = 0.0000487;
.PARAM N_D_act = 9.55e15;

V10 11 12 0
E12 12 13 value = { I(V10)*Ron }
G13 13 21 value = { if((min(V(13,21),3))<=0, 0, 2*PA*AA*LD*degk**2 * exp(((min(V(13,21),3))-phi_BN)/(Vt))/(LP+LS)) }
G14 21 13 value = {v(101)}
V13 21 22 0
C14 22 13 1p
R14 21 13 1G

.PARAM Ron = {0.0963*(5.329E-7*TEMP*TEMP+6.9453E-5*TEMP+1.7314e-2)/AA}
ECj 100 0 value = {2.1e3*(((1+V(21,13)/1.6)**2)**-0.245)}
.PARAM Cj0 = {2.1e3}
EIcj 101 0 value = {I(V13)*0.1063*(if(V(21,13)<0, Cj0, max(V(100),104)))/AA}

.ENDS MSCSICJBS1200Vt

.end

Can anyone please help me to fix it
Diode FB Qspice.JPG
 

Attachments

  • MSC050SDA120S_L1.txt
    2.1 KB · Views: 21
I doubt that any real circuit drives the bridge with an ideal voltage source. Did you try with more realistic source, e.g. adding some series inductance?

Generally speaking most SPICE simulators have convergence and time step problems with highly nonlinear power electronic components. It rarely works on first try.
 
I doubt that any real circuit drives the bridge with an ideal voltage source. Did you try with more realistic source, e.g. adding some series inductance?

Generally speaking most SPICE simulators have convergence and time step problems with highly nonlinear power electronic components. It rarely works on first try.
Hi, thank you for the feedback. Yes I tried adding series resistance with source & also in each branch of the diode and inductance as well (Small to big values 0.1R to 5ohm for R & 100nH to 1uH for L) but it does not want to work. Where could I find a good example/help explaining the convergence & time steps issues & ways of dealing with it?
 
I don't know which SPICE dialect you are targeting but I
see some things that look lke trouble.

First is

.FUNC fRbw() { fRbwTref()*(1 + BW_TC*(degk()-BW_TREF)) }

style function definitions, where a lot of () with no arg
between are seen. I think this may be malformed? But
maybe this is dialect thing and works for some. Might
want to put a debug statement in there that exercises
those formulations, see that you get a clean number out
for a numeric argument in?

Next is that there are many params set with {...} and this
in ngspice means "value at netlist time" while presumably
the controlled sources are supposed to be "busy". Now
maybe the gain value does need to be only set before
runtime but then the value of (say) {v(101)} would require
a preceding run to have anything to evaluate, and that
run's result may have nothing to do with -this- run's
other param values etc.

G14 21 13 value = {v(101)}

I do not know if a strategically-placed "reset" statement
might force more consistent behavior with {...} the way it
does after alterparam statements and before analysis
statements.

But lastly and perhaps most importantly I see only a
trivial and likely false

C14 22 13 1p

in the second diode subcircuit and none at all in the first.
So any gain at all stands to make nodes jump insane-o
and it's easy to make the solver stumble that way. This
IME is the most common source of timestep-too-small
errors - too many controlled sources and too little realism
in the baggage. Recommend you add Ciss and Coss
based Cxx elements to AC curve-fit your SiC devices to
something resembling the datasheet.
 

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top