南京邮电大学软件设计实验报告.docx
南京邮电大学软件设计实验报告 软件设计报告 ( 2022 / 2022 学年第二学期) 课程名称软件设计 指导老师赵江实习时间第十八周学生姓名学号 _学院_专业 软件设计 课程编号:B0465011C 适用专业: 班级: 一、所涉及的课程及知识点 涉及的课程:第6学期之前的专业基础课程。 知识点:专业基础课程中所学的知识点。 二、目的与任务 目的:通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。 任务:选择以下任一模块进行设计:Matlab软件仿真、C语言及应用。 软件设计的内容 题目1:如果给出两个矩阵? ? ?=136782078451220224A ,? ?=087654321B ,执行下面的矩阵运算命令。 (1)B A *5+和I B A +-分别是多少(其中I 为单位矩阵) (2)B A *?和B A *将分别给出什么结果,它们是否相同为什么 逻辑功能程序: 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 ,在命令窗口“Command Window ”中键入edit,启动程序编辑器。输入完整程序后利用save as 储存为M 文件,文件名为EXP1。返回主界面, 在命令窗口“Command Window”中输入函数EXP1(),按下回车,得到程序运行结果如下: >> EXP1( ) A+5*B= 9 22 35 32 70 108 55 118 136 A-B+I= 4 10 17 8 41 72 13 70 137 A.*B= 4 24 60 48 225 468 140 624 0 A*B= 192 228 84 738 873 306 1284 1518 528 实验结果分析 (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); hold on; plot(x,y); plot(a,b,'+'); axis(a-R,a+R,b-R,b+R); axis equal; title('圆:(x-a)2+(y-b)2=R2'); legend('(x-',num2str(a),')2+(y-',num2str(b),')2=',num2str(R), '2'); hold off; end 实验过程与结果 打开matlab,在命令窗口“Command Window”中键入edit,启动程序编辑器。输入完整程序后利用save as储存为M文件,文件名为EXP2。返回主界面,在命令窗口“Command Window”中输入函数EXP2(),按下回车,得到程序运行结果如下: >>EXP2(15,25,40) -100102030405060x 圆:(x-a)2+(y-b)2=R 2 实验结果分析 (1)构建关于圆的参数方程,使用hold on 的使用保证后绘的图不会覆盖先绘的图,在程序结束前使用hold off ; (2)为了使圆的圆心位置和半径长度等参数可调,所以函数使用了带参量的输入方式; (3)绘图使用plot 函数,带参数可以限制绘图范围,plot 函数绘制圆心用符号+表示; (4)axis equal 是坐标轴刻度等距,这样是图形显示的不失真; (5)lengend 、num2str 函数添加图形注释,lengend 添加注释的调用格式为lengend(字符串,num2str 使数值转换成字符,num2str (数值或数值的表达式); 题目3:双极型晶体管基区少子浓度分布 试绘出缓变基区的杂质分布为: ()()? ? ?-=B B B W x N x N 10; ()()x W B B B e N x N - =0时, 基区的少子浓度分布图,并能清楚解释各参量对少子浓度分布函数的影响。 程序说明:当晶体管偏置在有源放大区时,V C >kT /q ,集电结边缘处电子密度为零,即 x =W B ,n B (W B )=0。由此边界条件,得到缓变基区少子浓度分布函数: ?- =B W x B B nB nE B dx x N x N qD I x n )() (1 )( 假定:I nE =;D nB =2cm 2/s ;W B =;q =。 逻辑功能程序 function = Question3( ) syms x eta NB0 InE DnB WB q a ; 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,2,*10-19); y=subs(y,x,a*WB); y=subs(y,q,*10-19); for i=0:2:8 yx=limit(y,eta,i); ezplot(yx,0,1); text'=',num2str(i); hold on; end hold off; grid on; title('不同内建电场下的基区少子浓度分布'); text,'nB0=InE*WB/(q*DnB)=',num2str(nB0*10-15),'*108cm-2' ); xlabel('x/WB'); ylabel('nBx*q*DnB/(InE*WB)'); axis(0,1,0,1); end 实验过程与结果 打开matlab,在命令窗口“Command Window”中键入edit,启动程序编辑器。输入完整程序后利用save as储存为M文件,文件名为EXP1。返回主界面,在命令窗口“Command Window”中输入函数EXP1(),按下回车,得到程序运行结果如下: >>Question3() 0.10.20.30.4 0.50.60.70.80.91 00.10.20.30.4 0.50.60.70.8 0.9 1x/WB 不同内建电场下的基区少子浓度分布 n B x *q *D n B /(I n E *W B ) 实验结果分析 (1)当杂质浓度呈线性分布时,少子浓度分布呈线性变化。少子浓度随基区宽度的增大逐渐减小; (2)当杂质浓度呈指数分布时,少子浓度分布也呈指数变化。少子浓度随基区宽度的增大逐渐减小; (3)随着eta 的增大,基区少子浓度逐渐减少,这是因为内建电场增大的原因,达到同样电流密度所需少子浓度梯度较低; (4)符号变量及其表达式的使用需要提前定义,用syms 定义; (5)对符号或表达式的积分采用int 函数,可以指定上下限,也可以只是不定积分。 题目4:确定PN 结势垒区内电场分布和碰撞电离率随反偏电压的变化关系。 (1)基本目标:突变结分析 (2)标准目标:突变结线性缓变结分析 设计物理基础背景 (1)突变结势垒区内电场分布分析 内建电势02 log D A bi i N N V V n = N 区耗尽区宽度 12 02()s bi n D N V V q x N ? +?= P 区耗尽区宽度 12 02()s bi p A N V V q x N ? +?= , 其中,V 为反偏电压,约化浓度 0D A D A N N N N N = + 电场强度()E x 在耗尽区中的变化关系如下式(1-4)、(1-5)所示: ()()n D s q E x x x N = + (0n x x -) ()()p A s q E x x x N = - (0p x x ) 且()E x 在0x =处达到最大值 1 2 max 02()bi s q E N V V ? =+? (2)线性缓变结电场分布分析 内建电势 2 1 3012log 2s bi bi i V a V V n aq ?= ? 其中,杂质浓度梯度a 为常数,不妨取1910a = 耗尽区宽度 ()1 3 1212s n p bi x x V V aq ?= +? 电场强度()E x 在0x =处达到最大值 ()2max 8n p s aq E x x = + 电场强度()E x 在耗尽区的变化关系为 2 max 1p x E E x ? ?=- ? ? ? (3)碰撞电离率随反偏电压的变化关系 碰撞电离率 exp m i B A E ? ?=-? ? 碰撞电离率表达式中的常数值 代入上式(1-11),得: