summaryrefslogtreecommitdiff
path: root/models/yakopcic_memristor.cir
diff options
context:
space:
mode:
authorYour Name <[email protected]>2026-08-18 15:31:18 -0700
committerYour Name <[email protected]>2026-08-18 15:31:18 -0700
commit19f9e5e972ddd4e08fa99f96a0ccc4101b86c9b1 (patch)
tree47ca6c2cddcd06167158769d212b845db154fc27 /models/yakopcic_memristor.cir
parent11828573d0725da5564ba8676a31d62605152e5b (diff)
included models
Diffstat (limited to 'models/yakopcic_memristor.cir')
-rw-r--r--models/yakopcic_memristor.cir32
1 files changed, 32 insertions, 0 deletions
diff --git a/models/yakopcic_memristor.cir b/models/yakopcic_memristor.cir
new file mode 100644
index 0000000..510bb5b
--- /dev/null
+++ b/models/yakopcic_memristor.cir
@@ -0,0 +1,32 @@
+.subckt MEM_YAKOPCIC TE BE params:
++ Rinit=1000
++ a1=0.17 a2=0.17 b=0.05
++ Vp=0.65 Vn=0.56
++ Ap=4000 An=4000
++ xp=0.3 xn=0.5
++ alphap=1 alphan=5
++ eta=1
+
+.param xo={1/(a1*b*Rinit)}
+
+.func wp(x)={xp/(1-xp)-x/(1-xp)+1}
+.func wn(x)={x/(1-xn)}
+
+.func G(v)={ternary_fcn(v<=Vp,ternary_fcn(v>=-Vn,0,-An*(exp(-v)-exp(Vn))),Ap*(exp(v)-exp(Vp)))}
+
+.func F(v,x)={ternary_fcn(eta*v>=0,ternary_fcn(x>=xp,exp(-alphap*(x-xp))*wp(x),1),ternary_fcn(x<=(1-xn),exp(alphan*(x+xn-1))*wn(x),1))}
+
+.func IVRel(v,x)={ternary_fcn(v>=0,a1*x*sinh(b*v),a2*x*sinh(b*v))}
+
+Cx xsv 0 1 IC={xo}
+Rx xsv 0 1T
+
+Gx 0 xsv value={
++ eta*F(V(TE,BE),V(xsv))*G(V(TE,BE))
++ }
+
+Gm TE BE value={
++ IVRel(V(TE,BE),V(xsv))
++ }
+
+.ends MEM_YAKOPCIC