资源简介

里面实现了最新的一个国外文章里的memristor模型,还编写了用户接口和GUI,很实用,很好的学习资料。

资源截图

代码片段和文件信息

%Model name: model of Memristor based on Theoretical formulas
%           this model was written by Dmitry Fliter and Keren Talisveyberg 
%           Technion Israel institute of technology EE faculty December 2011


model = 1;   % define the model 0 - Linear Ion Drift ; 1 - Simmons Tunnel Barrier; 2 - Team model ; 3 - Nonlinear Ion Drift model
win   = 0;   % define the window type :  0 - No window; 1 - Jogelkar window ; 2 - Biolek window ; 3 - Prodromakis window ; 4- Kvatinsky window (Team model only) 
iv    = 0;   % IV_relation=0 means linear V=IR. IV_relation=1 means nonlinear V=I*exp{..}  

%Genaral parameters
num_of_cycles = 20;
amp = 0.003;
freq = 2e6;
w_init = 0.5; % the initial state condition [0:1] 
D = 3e-09;
V_t = 0;
P_coeff = 2;
J = 1;
Roff = 2e5;
Ron = 100;

%Linear Ion Drift parameters 
uV=1e-15;                                %%dopants mobility


%Simmons Tunnel Bariier % Team parameters
a_on = 2e-09;
a_off = 1.2e-09;
c_on = 40e-06;
c_off = 3.5e-06;
alpha_on = 3;
alpha_off = 3;
k_on = -8e-13;
k_off = 8e-13;
i_on = 8.9e-06;
i_off = 115e-06;
x_on = 3e-09;
x_off = 0;
X_c = 107e-12;
b = 500e-06;

%Nonlinear Ion Drift parametrs
beta = 9;
a = 4;
c = 0.01;
n = 14;
q = 13;
g = 4;
alpha = 7;

%% Linear Ion Drift model 

if (model==0)  

tspan=[0 num_of_cycles/freq];                       %%time length of the simulation
points=2e5;                              %%number of sampling points
W0=w_init*D;                            %define the initial value of W
tspan_vector = linspace(tspan(1)tspan(2)points);         % Create vector of initial values
I = amp*sin(freq*2*pi*tspan_vector);                   %%can also use square wave generated by : (square(tspan_vector));
W=zeros(size((tspan_vector)));
W_dot=zeros(size((tspan_vector)));
delta_t=tspan_vector(2)-tspan_vector(1);                        %%define the step size

W(1)=W0;                                                 %% initiliaze the first W vetor elemnt to W0 - the initial condition
for i=2:length(tspan_vector)
    % case this is an ideal window
    if (((win==0) || (win==4)) && ((abs (I(i))) >= (V_t/ (Ron*W(i-1)/D+Roff*(1-W(i-1)/D))))) 
        W_dot(i)=I(i)*(Ron*uV/D);
        W(i)=W(i-1)+W_dot(i)*delta_t;
    elseif ((win==0) && ((abs(I(i)))  < (V_t/ (Ron*W(i-1)/D+Roff*(1-W(i-1)/D)))))
        W(i)=W(i-1);
        W_dot(i)=0;
        
    end
    
    % case this is Jogelkar window
    if ((win==1) && ((abs(I(i))) >= (V_t/(Ron*W(i-1)/D+Roff*(1-W(i-1)/D)))))
        W_dot(i)=I(i)*(Ron*uV/D);
        W(i)=W(i-1)+W_dot(i)*delta_t*(1-(2*W(i-1)/D-1)^(2*P_coeff));%%+1e-18*sign(I(i));
    elseif ((win==1) && ((abs (I(i)) ) < (V_t/ (Ron*W(i-1)/D+Roff*(1-W(i-1)/D)))))
        W(i)=W(i-1);
        W_dot(i)=0;

    end
    
        % case this is Biolek window
    if ((win==2) && ((abs(I(i))) >= (V_t/(Ron*W(i-1)/D+Roff*(1-W(i-1)/D)))))
        W_dot(i)=I(i)*(Ron*uV/D);
        W(i)=W(i-1)+W_dot(i)*delta_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10007  2012-09-18 15:38  Mem\memirstor.m

     文件      71307  2012-09-18 15:39  Mem\MemristorGui.m

     文件    4769815  2012-09-18 15:41  Mem\MemristorGui.fig

     文件     388500  2012-09-17 17:43  Mem\Manual.pdf

     目录          0  2012-09-18 15:38  Mem

----------- ---------  ---------- -----  ----

              5239629                    5


评论

共有 条评论