南京邮电大学软件设计实验报告.docx
- 文档编号:12535037
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:31
- 大小:231.36KB
南京邮电大学软件设计实验报告.docx
《南京邮电大学软件设计实验报告.docx》由会员分享,可在线阅读,更多相关《南京邮电大学软件设计实验报告.docx(31页珍藏版)》请在冰豆网上搜索。
南京邮电大学软件设计实验报告
软件设计报告
(2014/2015学年第二学期)
课程名称软件设计
指导老师赵江实习时间第十八周
学生姓名学号
____学院______专业
软件设计
课程编号:
B0465011C
适用专业:
班级:
一、所涉及的课程及知识点
涉及的课程:
第6学期之前的专业基础课程。
知识点:
专业基础课程中所学的知识点。
二、目的与任务
目的:
通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。
任务:
选择以下任一模块进行设计:
Matlab软件仿真、C语言及应用。
软件设计的内容
题目1:
如果给出两个矩阵
,
,执行下面的矩阵运算命令。
(1)
和
分别是多少(其中I为单位矩阵)?
(2)
和
将分别给出什么结果,它们是否相同?
为什么?
逻辑功能程序:
function[]=EXP1()
A=[4,12,20;12,45,78;20,78,136];
B=[1,2,3;4,5,6;7,8,0];
I=eye(3);
disp('A+5*B=');
disp(A+5*B);
disp('A-B+I=')
disp(A-B+I);
disp('A.*B=');
disp(A.*B)
disp('A*B=');
disp(A*B);
End
实验过程与结果
打开matlab,在命令窗口“CommandWindow”中键入edit,启动程序编辑器。
输入完整程序后利用saveas储存为M文件,文件名为EXP1。
返回主界面,在命令窗口“CommandWindow”中输入函数EXP1(),按下回车,得到程序运行结果如下:
>>EXP1()
A+5*B=
92235
3270108
55118136
A-B+I=
41017
84172
1370137
A.*B=
42460
48225468
1406240
A*B=
19222884
738873306
12841518528
实验结果分析
(1)利用MATLAB提供的disp函数既可以输出表达式、数值,也可以输出字符串,其调用方式为:
disp(表达式或数值)、disp(‘待显示字符串’);
(2)在MATLAB的矩阵运算中,+、-运算符通用,表示矩阵相加、减;*与.*不同在于*表示矩阵乘法,而.*表示矩阵对应位置元素相乘,所以*要求两个矩阵的行、列数互为转置,而.*则要求两个矩阵行、列数要相同;
(3)使用eye可以获得单位矩阵函数(矩阵对角线处元素为1,其余元素为0),矩阵的阶数由括号内的值决定,格式为eye(n),n为矩阵阶数。
题目2:
请绘制出一个圆形,要求用函数实现。
逻辑功能程序
function[]=EXP2(a,b,R)
t=0:
pi/150:
2*pi;
x=a+R*cos(t);
y=b+R*sin(t);
holdon;
plot(x,y);
plot(a,b,'+');
axis([a-R,a+R,b-R,b+R]);
axisequal;
title('圆:
(x-a)^2+(y-b)^2=R^2');
legend(['(x-',num2str(a),')^2+(y-',num2str(b),')^2=',num2str(R),'^2']);
holdoff;
end
实验过程与结果
打开matlab,在命令窗口“CommandWindow”中键入edit,启动程序编辑器。
输入完整程序后利用saveas储存为M文件,文件名为EXP2。
返回主界面,在命令窗口“CommandWindow”中输入函数EXP2(),按下回车,得到程序运行结果如下:
>>EXP2(15,25,40)
实验结果分析
(1)构建关于圆的参数方程,使用holdon的使用保证后绘的图不会覆盖先绘的图,在程序结束前使用holdoff;
(2)为了使圆的圆心位置和半径长度等参数可调,所以函数使用了带参量的输入方式;
(3)绘图使用plot函数,带参数可以限制绘图范围,plot函数绘制圆心用符号‘+’表示;
(4)axisequal是坐标轴刻度等距,这样是图形显示的不失真;
(5)lengend、num2str函数添加图形注释,lengend添加注释的调用格式为lengend(‘字符串’,num2str使数值转换成字符,num2str(数值或数值的表达式);
题目3:
双极型晶体管基区少子浓度分布
试绘出缓变基区的杂质分布为:
;
时,
基区的少子浓度分布图,并能清楚解释各参量对少子浓度分布函数的影响。
程序说明:
当晶体管偏置在有源放大区时,VC<0且|VC|>>kT/q,集电结边缘处电子密度为零,即x=WB,nB(WB)=0。
由此边界条件,得到缓变基区少子浓度分布函数:
假定:
InE=0.01mA;DnB=2cm2/s;WB=0.05um;q=1.6e-19C。
逻辑功能程序
function[]=Question3()
symsxetaNB0InEDnBWBqa;
NB1x=NB0*(1-x/WB);
NB2x=NB0*exp(-eta*x/WB);
nBx=InE*int(NB2x,x,x,WB)/(NB2x*q*DnB);
nB0=InE*WB/(q*DnB);
y=nBx/nB0;
nB0=subs(nB0,{InE,DnB,WB,q},{0.01,2,0.05,1.6*10^-19});
y=subs(y,x,a*WB);
y=subs(y,{q},{1.6*10^-19});
fori=0:
2:
8
yx=limit(y,eta,i);
ezplot(yx,[0,1]);
text(0.5-0.05*i,subs(yx,a,(0.5-0.05*i)),['η=',num2str(i)]);
holdon;
end
holdoff;
gridon;
title('不同内建电场下的基区少子浓度分布');
text(0.5,0.85,['nB0=InE*WB/(q*DnB)=',num2str(nB0*10^-15),'*10^8cm^-2']);
xlabel('x/WB');
ylabel('nBx*q*DnB/(InE*WB)');
axis([0,1,0,1]);
end
实验过程与结果
打开matlab,在命令窗口“CommandWindow”中键入edit,启动程序编辑器。
输入完整程序后利用saveas储存为M文件,文件名为EXP1。
返回主界面,在命令窗口“CommandWindow”中输入函数EXP1(),按下回车,得到程序运行结果如下:
>>Question3()
实验结果分析
(1)当杂质浓度呈线性分布时,少子浓度分布呈线性变化。
少子浓度随基区宽度的增大逐渐减小;
(2)当杂质浓度呈指数分布时,少子浓度分布也呈指数变化。
少子浓度随基区宽度的增大逐渐减小;
(3)随着eta的增大,基区少子浓度逐渐减少,这是因为内建电场增大的原因,达到同样电流密度所需少子浓度梯度较低;
(4)符号变量及其表达式的使用需要提前定义,用syms定义;
(5)对符号或表达式的积分采用int函数,可以指定上下限,也可以只是不定积分。
题目4:
确定PN结势垒区内电场分布和碰撞电离率随反偏电压的变化关系。
(1)基本目标:
突变结分析
(2)标准目标:
突变结+线性缓变结分析
设计物理基础背景
(1)突变结势垒区内电场分布分析
内建电势
N区耗尽区宽度
P区耗尽区宽度
,
其中,
为反偏电压,约化浓度
电场强度
在耗尽区中的变化关系如下式(1-4)、(1-5)所示:
(
)
(
)
且
在
处达到最大值
(2)线性缓变结电场分布分析
内建电势
其中,杂质浓度梯度
为常数,不妨取
耗尽区宽度
电场强度
在
处达到最大值
电场强度
在耗尽区的变化关系为
(3)碰撞电离率随反偏电压的变化关系
碰撞电离率
碰撞电离率表达式中的常数值
材料
电子
空穴
硅
1
代入上式(1-11),得:
电子碰撞电离率
空穴碰撞电离率
附:
,
V
逻辑功能程序
function[]=Question4(ND,NA)
symsVx;
V0=0.026;
ni=1.5*10^10;
epsilon0=8.854*10^-14;
q=1.60219*10^-19;
a=10^19;
An=7.03*10^5;
Bn=1.23*10^6;
Ap=1.58*10^6;
Bp=2.03*10^6;
m=1;
epsilons=11.9*epsilon0;
N0=NA*ND/(NA+ND);
Vbi=V0*log(ND*NA/ni^2);%常量
xn=sqrt(2*epsilons*N0*(Vbi+V)/q)/ND;
xp=sqrt(2*epsilons*N0*(Vbi+V)/q)/NA;
Exn=q*(xn+x)*ND/epsilons;
Exp=q*(xp-x)*NA/epsilons;
Emax=subs(Exn,x,0);
%Vbih=V0*log(((a/(2*ni))*(12*epsilons*Vbi/(a*q))^(1/3))^2);
xp_h=(1/2)*(12*epsilons*(Vbi+V)/(a*q))^(1/3);
xn_h=xp_h;
Emax_h=(a*q/(8*epsilons))*(xn_h+xp_h)^2;
E_h=Emax_h*(1-(x/xp_h)^2);
alphai_nn=An*exp(-(Bn/Exn)^m);
alphai_pn=An*exp(-(Bn/Exp)^m);
alphai_np=Ap*exp(-(Bp/Exn)^m);
alphai_pp=Ap*exp(-(Bp/Exp)^m);
alphai_nmax=subs(alphai_nn,x,0);
alphai_pmax=subs(alphai_pp,x,0);
alphai_nh=An*exp(-(Bn/E_h)^m);
alphai_ph=Ap*exp(-(Bp/E_h)^m);
alphai_nhmax=subs(alphai_nh,x,0);
alphai_phmax=subs(alphai_ph,x,0);
%%%%%%%%%————作图——————%%%%%%%%%%%%%%%%%
fori=0:
2:
8
figure
(1);
subplot(2,1,1);%%%%%————突变结
ezplot(subs(Exn,V,i),[-subs(xn,V,i),0]);
holdon;
ezplot(subs(Exp,V,i),[0,subs(xp,V,i)]);
axis([-subs(xn,V,i),subs(xp,V,i),0,subs(Emax,V,i)]);
ylabel('|E|');
text(subs(xp/2,V,i),subs(Exp,{x,V},{subs(xp/2,V,i),i}),['V=',num2str(i),'v']);
gridon;
title('突变结电场分布');
subplot(2,1,2);%%%%%————缓变结
ezplot(subs(E_h,V,i),[-subs(xn_h,V,i),subs(xp_h,V,i)]);
holdon;
axis([-subs(xn_h,V,i),subs(xp_h,V,i),0,subs(Emax_h,V,i)]);
ylabel('|E|');
text(subs(xp_h/2,V,i),subs(E_h,{x,V},{subs(xp_h/2,V,i),i}),['V=',num2str(i),'v']);
gridon;
title('线性缓变结电场分布');
figure
(2);
subplot(2,2,1);%%———突变结电子碰撞电离率
ezplot(sqrt(subs(alphai_nn,V,i)),[-subs(xn,V,i),0]);
holdon;
ezplot(sqrt(subs(alphai_pn,V,i)),[0,subs(xp,V,i)]);
axis([-subs(xn,V,i),subs(xp,V,i),0,sqrt(subs(alphai_nmax,V,i))]);
ylabel('(αi)^(1/2)');
text(0,subs(sqrt(alphai_pn),{x,V},{0,i}),['V=',num2str(i),'v']);
gridon;
title('突变结电子碰撞电离率分布');
subplot(2,2,2);%%———突变结空穴碰撞电离率
ezplot(sqrt(subs(alphai_np,V,i)),[-subs(xn,V,i),0]);
holdon;
ezplot(sqrt(subs(alphai_pp,V,i)),[0,subs(xp,V,i)]);
axis([-subs(xn,V,i),subs(xp,V,i),0,sqrt(subs(alphai_pmax,V,i))]);
ylabel('(αi)^(1/2)');
text(0,subs(sqrt(alphai_pp),{x,V},{0,i}),['V=',num2str(i),'v']);
gridon;
title('突变结空穴碰撞电离率分布');
subplot(2,2,3);%%———缓变结电子碰撞电离率
ezplot(log10(subs(alphai_nh,V,i)),[-subs(xn_h,V,i),subs(xp_h,V,i)]);
holdon;
ylabel('log10(αi)');
text(0,subs(log10(alphai_nh),{x,V},{0,i}),['V=',num2str(i),'v']);
gridon;
title('线性缓变结电子碰撞电离率分布');
subplot(2,2,4);%%———缓变结空穴碰撞电离率
ezplot(log10(subs(alphai_ph,V,i)),[-subs(xn_h,V,i),subs(xp_h,V,i)]);
holdon;
ylabel('log10(αi)');
text(0,subs(log10(alphai_ph),{x,V},{0,i}),['V=',num2str(i),'v']);
gridon;
title('线性缓变结空穴碰撞电离率分布');
end
end
实验过程与结果
运行matlab,在菜单栏中点击“File”,选择“New—>FunctionM-File”,命名为Question4,键入整个函数,在主界面的“CommandWindow”中输入函数Question4(ND,NA),其中ND是施主杂质浓度,NA是受主杂质浓度,按回车会显示结果,具体显示如下:
>>Question4(2*10^16,9*10^16)
实验结果分析
(1)对多图的绘制,subplot函数使不同类的函数分别绘制在不同的坐标中,同时使用holdon让曲线叠加;
(2)由突变结电场分布图得到势垒区内的电场强度与距离结的距离成线性关系,随着距离增大,电场强度逐渐从最大值减小,直到PN结的边缘减少为零;
(3)由突变结电场分布图还可以得到杂质浓度大的一侧结宽较小,而且结宽之比与浓度之比成反比;
(4)电离率随着电场的增加增加,且在电场最大时电离率也是最大,而且电压依赖比较大,同等条件下空穴的电离率要小于电子的电离率;
题目5:
确定雪崩倍增因子随外加反偏电压的变化关系。
(1)基本目标:
突变结分析
(2)标准目标:
突变结+线性缓变结分析
设计物理基础背景
空穴雪崩倍增因子
电子雪崩倍增因子
逻辑功能程序
function[]=Question5(NA,ND)
symsVxt;
V0=0.026;
ni=1.5*10^10;
epsilon0=8.854*10^-14;
q=1.60219*10^-19;
a=10^19;
An=7.03*10^5;
Bn=1.23*10^6;
Ap=1.58*10^6;
Bp=2.03*10^6;
m=1;
epsilons=11.9*epsilon0;
N0=NA*ND/(NA+ND);
Vbi=V0*log(ND*NA/ni^2);%常量
%%%%%%%%%%%%%%%%%突变结雪崩倍增因子%%%%%%%%%%%%%%%%%%%%%%%%%%
forV=32:
0.04:
46
xn=sqrt(2*epsilons*N0*(Vbi+V)/q)/ND;
xp=sqrt(2*epsilons*N0*(Vbi+V)/q)/NA;
Exn=q*(xn+x)*ND/epsilons;
Exp=q*(xp-x)*NA/epsilons;
Emax=subs(Exn,x,0);
%Vbih=V0*log(((a/(2*ni))*(12*epsilons*Vbi/(a*q))^(1/3))^2)
alphai_nn=An*exp(-(Bn/Exn));
alphai_pn=An*exp(-(Bn/Exp));
alphai_np=Ap*exp(-(Bp/Exn));
alphai_pp=Ap*exp(-(Bp/Exp));
int0=quad(matlabFunction(alphai_nn-alphai_np),xn/1000-xn,0);
int_nn=quad2d(matlabFunction(alphai_nn.*subs(alphai_nn-alphai_np,x,t)),-xn,0,-xn,@(x)x);
int_pn=quad2d(matlabFunction(alphai_pn.*(subs(alphai_pn-alphai_pp,x,t)+int0)),0,xp,0,@(x)x);
int_n=int_nn+int_pn;
Mn=1/(1-int_n);
int_np=quad2d(matlabFunction(alphai_np.*subs(alphai_nn-alphai_np,x,t)),-xn,0,-xn,@(x)x);
int_pp=quad2d(matlabFunction(alphai_pp.*(subs(alphai_pn-alphai_pp,x,t)+int0)),0,xp,0,@(x)x);
int_p=int_np+int_pp;
Mp=1/(1-int_p);
figure
(1);
subplot(2,1,1);
plot(V,Mn);holdon;
subplot(2,1,2);
plot(V,Mp);holdon;
end
subplot(2,1,1);
title('突变结电子雪崩倍增因子随电压变化');holdoff;
subplot(2,1,2);
title('突变结空穴雪崩倍增因子随电压变化');holdoff;
%%%%%%%%%%%%%%%%%%%%缓变结雪崩倍增因子%%%%%%%%%%%%%%%%%%%%%%%%
forV=165:
0.2:
245
xp_h=(1/2)*(12*epsilons*(Vbi+V)/(a*q))^(1/3);
xn_h=xp_h;
Emax_h=(a*q/(8*epsilons))*(xn_h+xp_h)^2;
E_h=Emax_h*(1-(x/xp_h)^2);
alphai_nh=An*exp(-(Bn/E_h)^m);
alphai_ph=Ap*exp(-(Bp/E_h)^m);
int2_n=quad2d(matlabFunction(alphai_nh.*subs(alphai_nh-alphai_ph,x,t)),-xn_h,xp_h,-xn_h,@(x)x);
int2_p=quad2d(matlabFunction(alphai_ph.*subs(alphai_nh-alphai_ph,x,t)),-xn_h,xp_h,-xn_h,@(x)x);
Mn_h=1/(1-int2_n);
Mp_h=1/(1-int2_p);
figure
(2);
subplot(2,1,1);
plot(V,Mn_h);holdon;
subplot(2,1,2);
plot(V,Mp_h);holdon;
end
subplot(2,1,1);
title('缓变结电子雪崩倍增因子随电压变化');holdoff;
subplot(2,1,2);
title('缓变结空穴雪崩倍增因子随电压变化');holdoff;
end
实验过程与结果
运行matlab,在菜单栏中点击“File”,选择“New—>FunctionM-File”,命名为Question5,键入整个函数,在主界面的“CommandWindow”中输入函数Question5(ND,NA),其中ND是施主杂质浓度,NA是受主杂质浓度,按回车会显示结果,具体显示如下:
>>Question5(2*10^16,8*10^16)
实验结果分析
(1)对于相对复杂的函数,int函数符号积分无法进行运算,只能依靠人为处理化简,选择适当的定积分函数quad,和二重积分函数quad2d,可以减少程序运行的时间;
(2)由曲线得在很大范围内倍增因子处于较小的值,而在很小范围内产生突变,曲线的右半侧曲线没有实际意义,因为已超过击穿电压,PN结已击穿;
(3)相同情况下,电子的击穿电压低于空穴的击穿电压。
题目6:
确定击穿电压随P区和N区浓度的变化关系。
(1)基本目标:
突变结分析
(2)标准目标:
突变结+线性缓变结分析
设计物理基础背景
利用碰撞电离率积分方法确定击穿电压PN结的击穿电压,以及击穿时候的最高电场
碰撞电离率
依赖于电场强度
,随着反偏电压
的增加,
不断增大直至发生击穿,此时的电场强度为
。
发生雪崩击穿的条件为
,即上式中的积分趋于1,雪崩击穿条件可写为
或者
击穿时的电压为
,最高电场为
突变结
线性缓变结
逻辑功能程序
function[]=Question6(NA0,ND0)
symsVxt;
V0=0.026;
ni=1.5*10^10;
epsilo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京 邮电大学 软件设计 实验 报告