加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

微电子器件与工艺CAD—编程计算平衡态pn结电势分布

(2011-06-24 10:45:55)
标签:

杂谈

分类: 实验报告

实验一  编程计算平衡态pn结电势分布

一、实验目的

1.         掌握平衡态pn结中电势的分布特点;

2.         掌握微分方程的有限差分法求解;

3.         掌握线性方程组的追赶法求解;

4.         掌握非线性方程组的牛顿法求解。

 

二、实验内容

一个pn结,杂质分布为线性对称分布,其平衡态的泊松方程为:

http://s9/middle/7bf0c30f4a66c2ebbd938&690

用有限差分法结合Newton法,求解上式,并在计算机上绘出电势分布图。

泊松方程中各量如下:

http://s14/middle/7bf0c30f4a66c2ec8884d&690

http://s1/middle/7bf0c30f4a66c2eda3d80&690

    求解区间离散化方式:

    计算x0一侧的电势分布。设pn结厚度为W=0.5μm,区间均匀离散,网格距h=0.01μm,从x=0x=0.5μm共有51个网格点,迭代终止标准是

max|δΨ(N)|http://s8/middle/7bf0c30f4a66c2efd0457&690,        http://s3/middle/7bf0c30f4a66c2f06d132&690

要求:

1.         线性方程组用追赶法求解;

2.         给出满足迭代终止条件时各网格点处的电势值及迭代次数,绘出电势分布图。

 

三、实验原理

一维泊松方程

http://s13/middle/7bf0c30f4a66c2f1175bc&690

0-0.5μm处取间隔0.01μm网格点51个,边界处http://s7/middle/7bf0c30f4a66c2f336136&690(0)=0V

(w)= http://s11/middle/7bf0c30f4a66c2f80cf4a&690

各网格点初值

(x)= http://s1/middle/7bf0c30f4a66c2fa5fe60&690x=XN)。

 

写成差分形式:

http://s7/middle/7bf0c30f4a66c2fea7c56&690

根据初值,利用牛顿迭代法进行求解以上的非线性方程

http://s2/middle/7bf0c30f4a66c2ffc3641&690

整理,代换后:

http://s5/middle/7bf0c30f4a66c3010c8d4&690

其中

http://s7/middle/7bf0c30f4a66c3014e0c6&690

http://s4/middle/7bf0c30f4a66c30362e53&690

N=12,……,L-1

矩阵形式:

http://s11/middle/7bf0c30f4a66c304898da&690

http://s9/middle/7bf0c30f4a66c305bc2d8&690

http://s12/middle/7bf0c30f0770ad1a4690b&690

A为三对角矩阵,可用追赶法求解

http://s13/middle/7bf0c30f4a66c3089b6fc&690

转换为:

http://s4/middle/7bf0c30f4a66c30e13eb3&690

其中:

http://s2/middle/7bf0c30f4a66c3103b9c1&690

http://s16/middle/7bf0c30f4a66c315b331f&690

然后对i=12,…,n-1

http://s14/middle/7bf0c30f4a66c316eaa4d&690

http://s7/middle/7bf0c30f4a66c318e3076&690

这里ci=1http://s10/middle/7bf0c30f0770ad1c47719&690

最后进行回代,计算

http://s4/middle/7bf0c30f4a66c31b57fb3&690

再对于i=n-1n-2,…,21计算

http://s16/middle/7bf0c30f4a66c31c01e7f&690

第一次利用追赶法求出来的X即为初值所要加上的变化量,加上后再次当成初值使用追赶法计算出变化量,如此往复迭代,直至变化量中最大值小于规定值,停止迭代,此次迭代后的结果即为满足条件的计算出的各点的电势值。

 

四、实验步骤

1)流程图如下:

http://s4/middle/7bf0c30f0770ad1d0bf83&690

 

 
  http://s11/middle/7bf0c30f4a66c322dabea&690
 

 


2)选取初值

3)编写matlab程序

 

五、实验结果

迭代次数:K=5

 

dFai最大值

keep_r =    0.2440    0.0622    0.0091    0.0004    0.0000

 

每次迭代后Fai的值

keep_Fai =

 

1

2

3

4

5

0.0437

0.0278

0.0269

0.0269

0.0269

0.0860

0.0555

0.0536

0.0536

0.0536

0.1258

0.0829

0.0801

0.0800

0.0800

0.1622

0.1099

0.1061

0.1060

0.1060

0.1949

0.1362

0.1315

0.1313

0.1313

0.2237

0.1618

0.1561

0.1559

0.1559

0.2486

0.1864

0.1799

0.1797

0.1797

0.2699

0.2100

0.2025

0.2023

0.2023

0.2879

0.2322

0.2240

0.2238

0.2238

0.3029

0.2530

0.2442

0.2439

0.2439

0.3153

0.2719

0.2629

0.2625

0.2625

0.3256

0.2890

0.2799

0.2796

0.2796

0.3339

0.3039

0.2953

0.2949

0.2949

0.3408

0.3168

0.3089

0.3085

0.3085

0.3463

0.3276

0.3207

0.3204

0.3204

0.3509

0.3366

0.3308

0.3305

0.3305

0.3547

0.3439

0.3392

0.3390

0.3390

0.3578

0.3499

0.3462

0.3460

0.3460

0.3605

0.3547

0.3519

0.3517

0.3517

0.3627

0.3586

0.3565

0.3563

0.3563

0.3647

0.3617

0.3602

0.3601

0.3601

0.3664

0.3643

0.3632

0.3631

0.3631

0.3679

0.3664

0.3657

0.3656

0.3656

0.3693

0.3682

0.3677

0.3677

0.3677

0.3705

0.3698

0.3695

0.3694

0.3694

0.3717

0.3712

0.3709

0.3709

0.3709

0.3727

0.3724

0.3723

0.3722

0.3722

0.3738

0.3736

0.3734

0.3734

0.3734

0.3747

0.3746

0.3745

0.3745

0.3745

0.3756

0.3756

0.3755

0.3755

0.3755

0.3765

0.3765

0.3764

0.3764

0.3764

0.3774

0.3773

0.3773

0.3773

0.3773

0.3782

0.3782

0.3782

0.3782

0.3782

0.3790

0.3790

0.3790

0.3790

0.3790

0.3798

0.3797

0.3797

0.3797

0.3797

0.3805

0.3805

0.3805

0.3805

0.3805

0.3812

0.3812

0.3812

0.3812

0.3812

0.3819

0.3819

0.3819

0.3819

0.3819

0.3826

0.3826

0.3826

0.3826

0.3826

0.3833

0.3833

0.3833

0.3833

0.3833

0.3839

0.3839

0.3839

0.3839

0.3839

0.3845

0.3845

0.3845

0.3845

0.3845

0.3851

0.3851

0.3851

0.3851

0.3851

0.3857

0.3857

0.3857

0.3857

0.3857

0.3863

0.3863

0.3863

0.3863

0.3863

0.3869

0.3869

0.3869

0.3869

0.3869

0.3875

0.3875

0.3875

0.3875

0.3875

0.3880

0.3880

0.3880

0.3880

0.3880

0.3886

0.3886

0.3886

0.3886

0.3886

 

输出图像:

http://s12/middle/7bf0c30f4a66c3323999b&690

六、Matlab程序

%变量声明

 

m=10^29;h=10^-8;ni=1.5*10^16;seta=38.6;q=1.6*10^-19;ksai=1.064*10^-10;L=51;ksaiR=1*10^-4;

 

%初值计算

 

N=1:L-1;x=1:L-1;y=0:L-1;x(N)=N*h;Fai=1:L-1;b=1:L-2;f=1:L-2;a=1:L-2;

for i=1:L-2

    a(i)=m*x(i)/(2*ni);

end

Fai0=0;

Fai(50)=(1/seta)*log(m*5*10^-7/(2*ni)+sqrt((m*5*10^-7/(2*ni))^2+1));

for i=1:49

               Fai(i)=(1/seta)*log(a(i)+sqrt(a(i)^2+1));

end

 

%大循环

 

k=0;r=1;keep_Fai=zeros(49,5);keep_r=zeros(1,5);

while  r>ksaiR

   

    %计算bnfn

   

    for j=1:49

        b(j)=-2-q/ksai*seta*ni*h^2*(exp(-seta*Fai(j))+exp(seta*Fai(j)));   

    end

    f(1)=-q/ksai*h^2*(m*x(1)+ni*exp(-seta*Fai(1))-ni*exp(seta*Fai(1)))-Fai0+2*Fai(1)-Fai(2);

    for j=2:49

                f(j)=-q/ksai*h^2*(m*x(j)+ni*exp(-seta*Fai(j))-ni*exp(seta*Fai(j)))-Fai(j-1)+2*Fai(j)-Fai(j+1);

    end

    g=zeros(L-2,L-2);

    g(1,1)=b(1);

    for i=2:L-2

              g(i,i)=b(i);

              g(i-1,i)=1;

              g(i,i-1)=1;

    end

    Fai1=1:L-2;

   

  %追赶法求

   

    G=zeros(49,49);   F=zeros(1,49);

    G(1,1)=b(1);

    G(1,2)=1;

    F(1)=f(1);

    for i=2:49

       for j=1:49

           G(i,j)=g(i,j)-G(i-1,j)*g(i,i-1)/G(i-1,i-1);

       end

       F(i)=f(i)-F(i-1)*g(i,i-1)/G(i-1,i-1);

    end

   

    Fai1(49)=F(49)/G(49,49);

    for z=48:-1:1

       Fai1(z)=(F(z)-Fai1(z+1)*g(z,z+1))/G(z,z);

    end

    k=k+1;

    r=max(abs(Fai1));

    for i=1:49

       Fai(i)=Fai(i)+Fai1(i);

    end

    for j=1:49   

       keep_Fai(j,k)=Fai(j)';

    end

    keep_r(k)=r;

end

 

%作图

 

Fai_1=zeros(49,1);

Fai_2=zeros(49,1);

Fai_3=zeros(49,1);

Fai_4=zeros(49,1);

Fai_5=zeros(49,1);

for j=1:49

    Fai_1(j)=keep_Fai(j,1);

end

 

for j=1:49

    Fai_2(j)=keep_Fai(j,2);

end

for j=1:49

    Fai_3(j)=keep_Fai(j,3);

end

for j=1:49

    Fai_4(j)=keep_Fai(j,4);

end

for j=1:49

    Fai_5(j)=keep_Fai(j,5);

end

 

Fai_11=[Fai0,Fai_1',Fai(50)];

Fai_22=[Fai0,Fai_2',Fai(50)];

Fai_33=[Fai0,Fai_3',Fai(50)];

Fai_44=[Fai0,Fai_4',Fai(50)];

Fai_55=[Fai0,Fai_5',Fai(50)];

 

plot(y,Fai_11,'o',y,Fai_22,'x',y,Fai_33,'+',y,Fai_44,'--',y,Fai_55);

xlabel('x');

ylabel('Fai');

keep_Fai

keep_r

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有