第40卷 第7期 高 师 理 科 学 刊 Vol. 40 No.7 2020年 7月 Journal of Science of Teachers′College and University Jul. 2020
文章编号:1007-9831(2020)07-0037-05
Python语言在PN结特性和玻尔兹曼常数测定
实验数据处理中的应用
吴世宝1,马佳2,马瀚龙3
(沈阳航空航天大学 1. 航空宇航学院,2. 理学院,3. 创新创业学院,辽宁 沈阳 110136)
摘要:PN结特性和玻尔兹曼常数测定实验对理解PN结的物理特性具有十分重要的意义,但在实验的过程中要记录大量的数据,且数据处理过程较为繁琐.为此使用Python语言编程设计了一个Python GUI数据处理系统,利用图解法处理实验数据.结果表明,利用此系统处理实验数据能够有效节约时间,且其计算结果与理论值更为相近,有利于得出准确的结论.
关键词:PN结特性;玻尔兹曼常数;Python GUI;图解法
中图分类号:O4-39 文献标识码:A doi:10.3969/j.issn.1007-9831.2020.07.009
Application of Python language in data processing in the physical property of P-N junction and the Boltzmann constant measurement experiment
WU Shibao1,MA Jia2,MA Hanlong3
(1. School of Aeronautics and Astronautics,2. School of Science,3. School of Innovation and Entrepreneurship,
Shenyang Aerospace University,Shenyang 110136,China)
Abstract:It was of great significance to understand the physical property of P-N junction in the physical property of P-N junction and the Boltzmann constant measurement experiment.However,a host of data needed to be recorded during the experiment and the data processing process was complicated.Thus,using Python language to program the codes,a Python GUI data processing system was designed to deal with experimental data by graphic method.The results demonstrated that utilizing this system to deal with experimental data could save the time effectively and the results were more similar to the theoretical values,which was beneficial to draw more accurate conclusions.
Key words:physical property of P-N junction;Boltzmann constant;Python GUI;graphic method
通过物理实验深入理解PN结的物理特性,对掌握相关电子元器件(例如半导体二极管、晶体管等)的原理以及应用相关元器件具有十分重要的意义.PN结特性和玻尔兹曼常数测定实验是与PN结特性相关的物理实验的典型代表.本实验主要有2个任务,一是利用HLD-PN-III型PN结物理特性综合测定仪以及PN结传感器,获得在室温下(T≈300 K)不同的正向电流对应的正向压降,通过作图来验证PN结的单向导电性;二是基于实验中测得的正向电流及其对应的正向压降,利用图解法测定玻尔兹曼常数k并计算测量值与理论值之间的相对误差[1] 242-246.
在进行本实验时,需要测量至少20组数据,并绘制相关的图像,进而获得玻尔兹曼常数的测量值.显
收稿日期:2020-01-19
作者简介:吴世宝(1999-),男,辽宁抚顺人,在读本科生,从事飞行器制造工程研究.E-mail:**********************
通信作者:马佳(1984-),女,辽宁沈阳人,副教授,博士,从事计算物理研究.E-mail:*************
38 高 师 理 科 学 刊 第40卷
然,面对如此庞大的工作量,利用手工作图和计算不仅费时费力,而且或多或少会出现一些错误,进而
对理解PN结的物理特性产生不好的影响.为解决此问题,本文利用Python语言编程,结合相关的第三方库,设计了一种用于处理本实验相关数据的GUI界面.在使用时,用户只需按提示导入实验数据并点击对应的按钮,就可以获得所需的图像以及计算结果.
1 软件介绍
随着计算机技术日新月异地发展,目前已有多种计算机编程语言可以对GUI界面进行设计,如MATLAB,VB等[2-4].之所以选择Python语言作为编程的载体,主要是因为在代码编写以及程序调用等方面,Python具有更为突出的优势.首先,与VB一类的传统语言相比,Python作为一种脚本语言,实现物理实验中所需的各种科学计算(如绘制图像、曲线拟合等)的代码更为简洁,且大多有已经封装好的函数可以调用[5];而若想利用VB一类的编程语言进行科学计算,相关的代码则需要重新编写.其次,与MATLAB 等专业的科学计算语言相比,Python的使用范围更广,可以利用PyInstaller库打包封装好之后跨平台调用[6],甚至可以在手机端运行,这一点是MATLAB无法解决的.
事实上,Python在多年的发展过程中,已经衍生出多种可以设计GUI界面的第三方库以及进行配套的科学计算的第三方库[7-8].为了最大程度地减少编程所需的代码量,在设计本实验所需的GUI界面时,本文主要应用了tkinter模块、numpy模块以及matplotlib模块,其中tkinter模块用于设计用户图形界面,numpy 模块用于进行相关的科学计算,matplotlib模块用于对相关的计算结果进行可视化处理.
2 用户图形界面
参考实验报告中的数据记录表格,本文设计的用户图形界面见图1[1]242-246.此界面主要的功能区域有3个,分别见图1中3个矩形线框,其中,区域①是数据区,用于显示实验数据;区域②是操作区,通过点击区域②中的4个按钮,可以对区域①中的实验数据进行不同的操作;区域③是结果区,可以将相关的计算结果显示在对应的窗口中.此外,区域②正下方的表格中显示了本实验数据处理中所需的一些已知参数,包括电子电量q、当前实验的温度T以及玻尔兹曼常数的理论值k;表格左侧的输出框可以用于记录用户对数据的操作步骤.需要说明的是,图1的界面是测量20组数据时的界面,如果实验数据多于20组,只需修改对应的代码即可.
图1 用户图形界面
在使用前,用户可以将实验数据依次保存在Excel表格中,然后点击区域②中的“导入数据”按钮,即可将实验数据导入此系统中(见图2),此时某次实验的数据会显示在区域①中.在此系统中,用户每进行一步操作,都可以通过左下方的“历史命令”窗口来查看之前的操作中是否有误,如在图2中,“历史命令”窗口显示了之前用户导入数据成功的命令.
第7期            吴世宝,等:Python 语言在PN 结特性和玻尔兹曼常数测定实验数据处理中的应用                39
图2  导入实验数据
3  实验数据处理
3.1  处理原理及步骤
在介绍实验数据处理步骤前,有必要对实验原理进行简单说明.由于PN 结是一种半导体,根据半导
体物理的相关理论[9],在理想情况下,PN 结的正向电流F I 和正向压降F V 按指数规律变化,且二者近似存在着关系式
exp F F S qV I I kT æö=ç÷èø
(1) 其中:q 为电子的电量;k 为玻尔兹曼常数;T 为开氏温度;S I 为反向饱和电流.由于这是一个指数函数,不利于作图和计算,因而需要对式(1)进行进一步处理.对式(1)两侧同时取自然对数,得
()()ln ln F F S q I V I kT
=+                                (2) 由式(2)可知,()ln F I 与F V 呈线性关系,且斜率为()q kT .因而,在对实验数据进行处理时,首先需要以()ln F I 为y 轴,F V 为x 轴建立直角坐标系,将实验数据描点,并绘制成散点图.通过观察数据点是否大致在一条直线上来初步判断PN 结的正向电流F I 和正向压降F V 是否按指数规律变化.随后,应利用最小二乘法对数据点进行直线拟合,以获得拟合直线的斜率1k .根据最小二乘法的原理
[10]73-77,拟合直线的斜率1k 的表达式为
()()()()()11221ln ln n
F F F F
i i i n F F i i I V n I V k V nV ==-×=-åå                          (3)
其中:n 为实验数据的组数,在本实验中n 取20.利用1k 就可以得到玻尔兹曼常数的测量值k 测,其计算表达式为
1q k k T
=测                          (4) 在获得玻尔兹曼常数的测量值后,需要计算其测量值k 测与理论值k 之间的相对误差.由相对误差的定义[10] 3-12,可得玻尔兹曼常数的相对误差为
100%k k
E k -=´测                    (5)
3.2  利用Python GUI 处理数据
首先,本文设计的Python GUI 数据处理系统选择matplotlib.pyplot 模块中的scatter 函数来绘制()ln F I 随
40 高 师 理 科 学 刊 第40卷 F V 变化的散点图.点击区域②中的“散点图”按钮,即可得到()ln F I 随F V 变化的散点图(见图3).
由图3可知,()ln F I 与F V 之间大致呈线性关系,所有
数据点基本分布在一条直线上,可以初步判断此PN 结的正
向电流F I 和正向压降F V 之间按指数规律变化.对图3中的
数据点进行最小二乘拟合.本文设计的Python GUI 数据处
理系统采用numpy 模块中的ployfit 函数和poly1d 函数对图3
中的数据点进行直线拟合,该函数的部分核心代码展示:
def ploy_fit(x,y,n):
z1 = np.polyfit(x,y,n) # x 为自变量列表,y 为因变量列
表,n 为拟合多项式的阶数
p1 = np.poly1d(z1) #拟合表达式
yvals = p1(x)
plt.plot(x,yvals) #绘制拟合图像
#调用函数
x = VF
y = ln_IF
ploy_fit(x,y,1)  # n 取1时为直线拟合    依次点击区域②中的“拟合直线”和“数据处理”按钮,就可以得到拟合结果(见图4)和相关计算结果(见图5).
由图4
可知,数据点均匀地分布在拟合直线的两侧,符合最小二乘拟合的特征,且实验得到的各数据点与直线的拟合程度很高,证明了()ln F I 与F V 之间的确呈线性关系.由图5可知,图4中的拟合直线的残差平方和为0.352 5,说明拟合直线与数据点之间具有较高的拟合度.此外,根据图5中显示的计算结果,图4中的拟合直线的斜率为36.76,由此计算出的玻尔兹曼常数的测量值231.4510J/K k -=´测,与玻尔兹曼常数的理论值231.3810J/K k -=´之间的相对误差为5.07%.另外,从图5左下方的“历史命令”中不难看出,整个数据处理过程很快.显然,利用本文设计的Python GUI 数据处理系统对本实验的数据进行处理的精确度和效率是手工计算和作图难以达到的.
4  结语
本文通过整合Python 中的相关第三方库,设计了一种用于快速、准确地处理PN 结特性和玻尔兹曼常数测定实验数据的Python GUI 数据处理系统,在验证了PN 结的物理特性的同时获得了玻尔兹曼常数的测量值.Python GUI 数据处理系统的应用,可以最大程度地避免由手工计算和作图所引起的错误,在节约时间的同时也提高了计算的准确度.同时,利用Python GUI 数据处理系统进行数据处理将极大地方便学生处理实验数据的过程,这样也能使得学生更加注重物理实验的本质.因而,Python 语言在其他大学物理实验数据处理中具有推广价值.
图3  散点图
图4  拟合结果 图5  计算结果
第7期            吴世宝,等:Python 语言在PN 结特性和玻尔兹曼常数测定实验数据处理中的应用                41 参考文献:
[1]
唐贵平,何兴,范志强.大学物理实验[M].北京:科学出版社,2016 [2]
李立,张皓晶,张雄.基于MATLAB 编程的刚体转动惯量实验数据处理方法探讨[J].物理通报,2019(6):98-101 [3]
李立,张皓晶,张雄.基于MATLAB 编程的弗兰克-赫兹实验数据处理方法探讨[J].物理通报,2020(1):75-79 [4] 马宝丽.基于VB 的平面连杆机构的运动分析与运动仿真[J].杭州师范大学学报:自然科学版, 2011, 10(3): 275-280,
284
[5] 吴迪,张星海.Python 在热敏电阻测量实验数据处理中的应用[J].大学物理实验,2013,26(5):97-100
[6] 赵昆涛.Python 语言在牛顿环实验数据处理中的应用[J].物理与工程,2016,26(4):83-85,91
[7] 沈殊璇,薄亚明.适合于科学计算的脚本语言Python[J].微计算机应用,2002,23(5):289-291
[8] 程丽玲.浅谈Python 在科学计算中的应用[J].信息系统工程,2018(10):55
[9] 黄昆,韩汝琦.半导体物理基础[M].北京:科学出版社,2010
[10] 李庆扬,王能超,易大义.数值分析[M].5版.北京:清华大学出版社,2008
(上接第28页)
运用Matlab 编程得到
python trunc函数=0p 0.656 3,=1p 0.078 9,=2p 0.105 0,=3p 0.056 0,=4p 0.042 3
得到系统可用度
()==å=40i i t A p
0.938 5
4  结语
本文应用多状态可靠性理论,建立了三状态并联系统可靠性模型,阐述了2个三状态单元并联系统维修策略和多种工作状态.利用MATLAB 编程,计算出由2个三状态单元并联而成可修系统处于各种状态下的概率和系统可用度. 该研究在一定程度上对系统可靠性管理及优化调度工作等方面提供理论依据. 参考文献:
[1]
曹晋华,程侃.可靠性数学引论[M].北京:科学出版社,1986 [2]
曾瑞崔.多品种小批量复杂产品制造过程能力判定模型研究[D].南京:南京航天航空大学,2015 [3]
周天宠,修春,孟宪云.三状态并-串联系统的优化分配方法[J].数学的实践与认识,2011,41(20):98-103 [4]
齐蓉,谢利理,李玉忍,等.三状态飞机电源系统的可靠性冗余设计及优化[J].系统工程与电子技术,2013(5):21-24 [5]
吕建伟,狄鹏,杨晶.对并联可修复系统可用性相关指标的综合分析[J].数学的实践与认识,2013,43(8):210-218 [6]
修春,周天宠.三状态串、并联系统的优化分配方法[J].数学的实践与认识,2014,44(22):157-160 [7]
吴志良,姚玉斌,王丹.船舶电气多状态并联冗余系统可靠性分析与优化[J].船舶工程,2016(38):219-222  [8]
夏侯唐凡.考虑认知不确定性的多状态系统重要度分析和可靠性评估方法研究[D].成都:电子科技大学,2018 [9]
周天宠,孟宪云,王守柱,等.两类三状态系统可靠度优化方法[J].黑龙江大学自然科学学报,2009(6):758-761 [10] 周天宠,董立伟,修春,等.多约束条件下三状态复杂系统的优化分配[J].数学的实践与认识,2017,47(3):283-287

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。