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.

PSPICE -- Memristor -- INTERNAL ERROR -- Overflow in device X0.G1, Convert

Status
Not open for further replies.

lambchops511

Member level 1
Joined
Oct 10, 2011
Messages
38
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,539
Hi All,

I am using PSPICE and I am trying to get the HP Memristor model simulating. The SPICE Model is given in this paper:https://dx.doi.org/10.1109/ISCAS.2011.5937942

Code:
MemristorHPTest

.SUBCKT modelmemristor plus minus PARAMS:
+phio=0.95 Lm=0.0998 w1=0.1261 foff=3.5e-6
+ioff=115e-6 aoff=1.2 fon=40e-6 ion=8.9e-6
+aon=1.8 b=500e-6 wc=107e-3
G1 plus internal value={sgn(V(x))*(1/V(dw))^2*0.0617*(V(phiI)*exp(-V(B)*V(sr))-(V(phiI)+abs(V(x)))*exp(-V(B)*V(sr2)))}
Esr sr 0 value={sqrt(V(phiI))}
Esr2 sr2 0 value={sqrt(V(phiI)+abs(V(x)))}
Rs internal minus 215
Eg x 0 value={V(plus)-V(internal)}
Elamda Lmda 0 value={Lm/V(w)}
Ew2 w2 0 value={w1+V(w)-(0.9183/(2.85+4*V(Lmda)-2*abs(V(x))))}
EDw dw 0 value={V(w2)-w1}
EB B 0 value={10.246*V(dw)}
ER R 0 value={(V(w2)/w1)*(V(w)-w1)/(V(w)-V(w2))}
EphiI phiI 0 value={phio-abs(V(x))*((w1+V(w2))/(2*V(w)))-1.15*V(Lmda)*V(w)*log(V(R))/V(dw)}
C1 w 0 1e-9 IC=1.2
R w 0 1e8MEG
Ec c 0 value={abs(V(internal)-V(minus))/215}
Emon1 mon1 0 value={((V(w)-aoff)/wc)-(V(c)/b)}
Emon2 mon2 0 value={(aon-V(w))/wc-(V(c)/b)}
Goff 0 w value={foff*sinh(stp(V(x))*V(c)/ioff)*exp(-exp(V(mon1))-V(w)/wc)}
Gon w 0 value={fon*sinh(stp(-V(x))*V(c)/ion)*exp(-exp(V(mon2))-V(w)/wc)}
.ENDS modelmemristor

Vtest IN 0 DC 0 SIN(0 1 1 0 0 0)

X0    IN  X modelmemristor
R0    X   0 2400


.TRAN 0 2 uic
.PROBE

.END


First, the above code runs: however when I change my .TRAN to ".TRAN 0 10 uic" I get an error specifically:"INTERNAL ERROR -- Overflow in device X0.Gon, Sinh" ... any ideas?

Thanks a lot.
 

Use this instead .TRAN 10u 10 0 10m uic

The last parameter puts limit of max time steps, you can increase it, if you feel simulation is running too slow.
 

That model contains things liable to produce /0 errors which will
overflow. If your initial conditions (uic) happens to have v(dw)=0
then you're working against singular conductance from the get-go.

Break down your problem into timestep and uic (you changed both
at once, bad form) and see which (or combination) accounts for
your blow-up.
 

Hi Guys,

Thanks for the reply.

@atripathi

Your suggestion did not work-- when i use ".TRAN 10u 10 0 10m uic"; I get a pop up box

spice.png


@dick_freebird
I plotted out V(dw) ... it does not seem to go anywhere close to zero from 0 to 3s

Could you elaborate more on your suggestion? What do you mean I have bad form?
 

I mean, rule #1 of debugging is to change only one thing at
a time. Changing both timestep control and use of initial
conditions, is two things. Either of (or synergy between)
which could put your solution into an unhappy place.

V(dw) is just one of several divisors that -could- be
driven (or wander over the course of numerical iteration)
to a /0 position, or whatever makes sinh() blow up. The
complaint seems to be about

sinh(stp(-V(x))*V(c)/ion)

If you feed a blowup value to sinh the first thing it does
is exponentiate it. (e^x-e^-x)/2 So your argument needs
to stay below ln(FP range limit) which anything close to 0
for ion might violate.
 

Which version of PSpice you are using? I could get this successfully simulated in 16.5.
 

I am on the PSPICE 16.5 Lite Version.

Changing the max step size; I was able to get a transient analysis... however I am not getting the expected memristor hystersis curve...

@atripathi; would you mind posting a image of the transient curve you get?

Many thanks.
 

Here is the IV Curve I am getting feeding the circuit a SINE wave.

plot.png
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top