吴世宝,马佳,马瀚龙
Python语言在PN结特性和玻尔兹曼常数测定实验数据处理中的应用
吴世宝,马佳2,马瀚龙3
(沈阳航空航天大学 1. 航空宇航学院,2. 理学院,3. 创新创业学院,辽宁 沈阳 110136)
PN结特性和玻尔兹曼常数测定实验对理解PN结的物理特性具有十分重要的意义,但在实验的过程中要记录大量的数据,且数据处理过程较为繁琐.为此使用Python语言编程设计了一个Python GUI数据处理系统,利用图解法处理实验数据.结果表明,利用此系统处理实验数据能够有效节约时间,且其计算结果与理论值更为相近,有利于得出准确的结论.
PN结特性;玻尔兹曼常数;Python GUI;图解法
在进行本实验时,需要测量至少20组数据,并绘制相关的图像,进而获得玻尔兹曼常数的测量值.显然,面对如此庞大的工作量,利用手工作图和计算不仅费时费力,而且或多或少会出现一些错误,进而对理解PN结的物理特性产生不好的影响.为解决此问题,本文利用Python语言编程,结合相关的第三方库,设计了一种用于处理本实验相关数据的GUI界面.在使用时,用户只需按提示导入实验数据并点击对应的按钮,就可以获得所需的图像以及计算结果.
随着计算机技术日新月异地发展,目前已有多种计算机编程语言可以对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模块用于对相关的计算结果进行可视化处理.
图1 用户图形界面
在使用前,用户可以将实验数据依次保存在Excel表格中,然后点击区域②中的“导入数据”按钮,即可将实验数据导入此系统中(见图2),此时某次实验的数据会显示在区域①中.在此系统中,用户每进行一步操作,都可以通过左下方的“历史命令”窗口来查看之前的操作中是否有误,如在图2中,“历史命令”窗口显示了之前用户导入数据成功的命令.
图2 导入实验数据
图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 拟合结果
图5 计算结果
本文通过整合Python中的相关第三方库,设计了一种用于快速、准确地处理PN结特性和玻尔兹曼常数测定实验数据的Python GUI数据处理系统,在验证了PN结的物理特性的同时获得了玻尔兹曼常数的测量值.Python GUI数据处理系统的应用,可以最大程度地避免由手工计算和作图所引起的错误,在节约时间的同时也提高了计算的准确度.同时,利用Python GUI数据处理系统进行数据处理将极大地方便学生处理实验数据的过程,这样也能使得学生更加注重物理实验的本质.因而,Python语言在其他大学物理实验数据处理中具有推广价值.
[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
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)
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.
physical property of P-N junction;Boltzmann constant;Python GUI;graphic method
1007-9831(2020)07-0037-05
O4-39
A
10.3969/j.issn.1007-9831.2020.07.009
2020-01-19
吴世宝(1999-),男,辽宁抚顺人,在读本科生,从事飞行器制造工程研究.E-mail:wushibao990410@126.com
马佳(1984-),女,辽宁沈阳人,副教授,博士,从事计算物理研究.E-mail:majia@sau.edu.cn