lnzl 发表于 2007-1-15 09:30

同样求助 刚才的 QUAD问题并附上完整原程序

format compact
close
clear
s=menu('Choose the desired plot','Low-f C-V','High-f C-V','Both');
NA=input('Please input the bulk doping in/cm3,NA=');
xo=input('Please input the oxide thickness in cm,xo=');
xmin=input('Specify VGmin(volts),VGmin=');
xmax=input('Specify VGmax(volts),VGmax=');
global UF
e0=8.85e-14;
q=1.6e-19;
k=8.617e-5;
KS=11.8;
KO=3.9;
ni=1.0e10;
T=300;
kT=k*T;
UF=log(NA/ni);
LD=sqrt((kT*KS*e0)/(2*q*ni));
US=UF-21:0.5:UF+21;
F=sqrt(exp(UF).*(exp(-US)+US-1)+exp(-UF).*(exp(US)-US-1));
VG=kT*(US+(US./abs(US)).*(KS*xo)/(KO*LD).*F);
DENOML=exp(UF).*(1-exp(-US))+exp(-UF).*(exp(US)-1);
WL=(US./abs(US)).*LD.*(2*F)./DENOML;
cL=1.0./(1+(KO*WL)./(KS*xo));

if s~=1,
jj=length(US);
nn=0;
for ii=1:jj,
if US(ii)<3,
elseif nn==0,
INTG=QUAD('CVintgrd',3,US(ii),0.001);
nn=1;
else
INTG=INTG+QUAD('CVintgrd',US(ii-1),US(ii),0.001);
end
if US(ii)<3,
cH(ii)=cL(ii);
else
d=(exp(US(ii))-US(ii)-1)./(F(ii).*exp(UF).*INTG);
DENOMH=exp(UF).*(1-exp(-US(ii)))+exp(-UF).*((exp(US(ii))-1)./(1+d));
WH=LD.*(2*F(ii))./DENOMH;
cH(ii)=1.0./(1+(KO*WH)./(KS*xo));
end
end
else
end
if s==1,
plot(VG,cL);
elseif s==2,
plot(VG,cH);
else
plot(VG,cL,'--',VG,cH);
text(0.8*xmin,.17,'---Low-f','color',);
text(0.8*xmin,.12,'_High-f','color',);
end
axis();
text(0.8*xmin,.27,['NA=',num2str(NA),'/cm3']);
text(0.8*xmin,.22,['xo=',num2str(xo),'cm']);
xlabel('VG(volts)');ylabel('C/CO');grid

CVintgrd
function=cvintegrand(U)
global UF
F=sqrt(exp(UF).*(exp(-U)+U-1)+exp(-UF).*(exp(U)-U-1));
y=(1-exp(-U)).*(exp(U)-U-1)./(2*F.^3);


如果好心人原意赐教,请将以上程序创建成M 文件然后运行 这样问题会马上暴露出来
不胜感激

xjzuo 发表于 2007-1-15 10:14

回复

把你的参数大概也给一下,这样别人才好调试.
另:你的问题是什么以及你想得到的效果是什么,也请讲清楚一下.
页: [1]
查看完整版本: 同样求助 刚才的 QUAD问题并附上完整原程序