No BSD License
function zcal_I global zeng zeng2 t for temp=1:length(zeng2.varlist) eval(['global ' zeng2.varlist{temp}]) end %-------------- temp_num_t=length(t); dt=[t(2)-t(1) t(3:temp_num_t)-t(1:(temp_num_t-2)) t(temp_num_t)-t(temp_num_t-1)]; for p=1:length(zeng2.var) eval([zeng2.var{p}.name '.I=zeros(size(' zeng2.var{p}.name '.vm));']) if isempty(eval([zeng2.var{p}.name '.model'])) eval([zeng2.var{p}.name '.ILk = (1/' zeng2.var{p}.name '.rm)*1e3*zeng2.var{p}.setting.nodalarea*(' zeng2.var{p}.name '.vm -' zeng2.var{p}.name '.vini);']) %nA;']) eval([zeng2.var{p}.name '.I =' zeng2.var{p}.name '.ILk;']) else s=zeng2.dummymodelindex(find(zeng2.dummymodelindex(:,1)==p),2); for i=1:length( eval([zeng2.var{p}.name '.model.I']) ) Iname=['I' eval([zeng2.var{p}.name '.model.I{i}.name'])]; eval(['setfield(' zeng2.var{p}.name ',[Iname],zeros(size(' zeng2.var{p}.name '.vm)));']) eval(['temp=' zeng2.var{p}.name '.model.I{i}.G + zeros(size(' zeng2.var{p}.name '.vm));']) %1/(kOhm-Cm^2) if isempty(zeng2.dummymodel{s}.I{i}.gate) else for q=1:length(zeng2.dummymodel{s}.I{i}.gate(:,1)) eval(['temp=temp.*(' zeng2.var{p}.name '.' zeng2.dummymodel{s}.gate{zeng2.dummymodel{s}.I{i}.gate(q,1)} '.^zeng2.dummymodel{s}.I{i}.gate(q,2));']) end end eval([' temp=1e3*zeng2.var{p}.setting.nodalarea*(temp.*(' zeng2.var{p}.name '.vm -' zeng2.var{p}.name '.model.I{i}.E));']) %nA eval([zeng2.var{p}.name '.' Iname '=temp;']) eval([zeng2.var{p}.name '.I =' zeng2.var{p}.name '.I + temp;' ]) end end eval(['vm=' zeng2.var{p}.name '.vm;']); Ic=zeros(size(vm)); for i=1:size(Ic,1) Ic(i,:)=[[vm(i,2)-vm(i,1) vm(i,3:temp_num_t)-vm(i,1:(temp_num_t-2)) vm(i,temp_num_t)-vm(i,temp_num_t-1)]]./dt; end eval([zeng2.var{p}.name '.Ic=[1e3*' zeng2.var{p}.name '.cm*zeng2.var{p}.setting.nodalarea.*Ic];']) eval([zeng2.var{p}.name '.I =' zeng2.var{p}.name '.I +' zeng2.var{p}.name '.Ic;']) end
Contact us at files@mathworks.com