什么是光伏模拟?且看我这篇文章

作为一个PhD,平时遇到最多的几个问题就是:

“你是做什么科研的?”

“光伏+计算模拟。”

“光伏啊,最近光伏的股票涨得好凶啊,你能给我推荐哪几家光伏的股票可以买么?”

(拜托,如果我真的知道的话,早就发财带着女朋友买海岛去了,还读这PhD干嘛)

“你们这个跟卡脖子的芯片有什么关系?”

(emmm,这个我还是知道一点的。芯片的技术大体上分为芯片设计和芯片加工这两块,目前我们国家被卡脖子最厉害的就是芯片加工这一块的东西。芯片加工基于许多种科学技术,可以说是制造业的明珠。而芯片加工最核心的技术基础,就是半导体工程学。半导体工程学,就是靠知乎er最看不上的材料,微电子专业的学生撑起来的。

而光伏工程是半导体工程中的一个非常重要的门类,类似于自然语言处理之于机器学习的关系。光伏工程的基础,就是半导体工程。而这两者,无论是方法论,实践论,做工程需要的设备和原料,还是要学习的基础课,可以说基本上80%左右都是一样的。)


那么,光伏作为一种半导体,其特色是什么?我个人认为,相比于其他的半导体工程学,光伏最大的特点在于,体系内minority carrier(少数载流子)的影响是非常大的。很多器件的工艺以及性质,从根本上讲,就是少数载流子在决定。这个和其他的半导体器件,可以说区别是比较大的。


那么你既然是做光伏半导体工程的,那你怎么去做呢?

(光伏本身有好几种大类,传统光伏主要是和半导体技术紧密结合的硅光伏以及化合物半导体光伏。还有一些非传统的光伏,最典型的案例就是钙钛矿。看知乎劝退的肯定都听过这个词。钙钛矿之所以会火,是因为从2010年开始到现在这10来年,其效率有天翻地覆的快速提升,从2%左右,到超过20%。因此被认为具有很大的潜力。但是钙钛矿也有几个致命的缺点限制了它的使用。比如毒性,以及稳定性。因此我个人不太相信钙钛矿真的可以很快成为光伏行业工程应用的主流。

传统光伏,方法论,技术,更偏向于电子工程,物理学,以及材料学。而新光伏,方法论更偏向于化学。因此,这两个东西可以说没有非常非常紧密的联系。把这两个东西都做得非常好的人,凤毛麟角。)


光伏,至少是传统光伏这一块,和很多传统的物理类学科一样,要做科研,治学的范式分为三种。理论推导,实验,以及计算模拟。当然这几个方法之间,经常互相都有很多overlapping的东西。实验的文章一定要有理论分析支撑以及模拟,计算也要有实验的证据来讲话。讲到这里,大家也就明白了,光伏模拟就是研究半导体里光伏问题的一个范式。


写这篇文章,我有两个目的,其一,以后可以用这篇文章回答,我读这个博士到底是在做什么?其二,我写一篇小文章,如果有有志于光伏模拟方面科研的同学,我希望我这篇文章可以带你走入光伏模拟的世界。


不过,在这里,我也需要告诉大家,由于光伏模拟是一个非常小众的领域,因此,网上,以及你能买到的教材里面可以参考的代码,非常少。因此如果你下定决心要做这个方向,就一定要找做太阳能模拟的前辈带你。但是,这些代码里面的很多参数,往往是很多科研小组的核心资产。所以,要加入这样的组,你往往才可以做出一些收敛性比较好的结果出来。尤其是做这方面的TCAD以及Matlab的代码是最难找的。另外TCAD的许可证本身也是天价。


幸运的是,我本人博士答辩委员会的主席,光伏物理领域非常优秀的学者,前帝国理工教授,现新南威尔士大学教授,Ned-Nicolas Daukes教授开发出了一个基于Python的光伏/半导体模拟器Solcore。在很大程度上降低了做光伏模拟的难度。我在后面会重点讲这个软件包。此代码库于Github上完全开源。这个软件包有功能非常强悍的地方,那便是对量子阱的模拟。然而这个软件包,截止目前只能做一维的模拟。有些电池(比如本人博士论文的那个电池)无法模拟。当然最近我本人也向Ned教授提出了建议,在目前一维模拟的基础上,发展出基于Python的二维模拟器(当然我们如果把这东西如果真的做出来了而且还给他开源,说不定全球排名第二十五的软件公司Synopsys的股价搞不好要跳水,这个嘛开个玩笑)。



图片1. ASML光刻机:光刻是做芯片加工非常重要的工艺。在半导体研究中,有时候也要使用光刻,或者原理有相似之处的离子刻蚀技术

图片2. 半导体加工中非常著名的MBE(Molecular Beam Epitaxy,分子束外延)设备。MBE设备,价格大约数千万人民币以上。照片拍摄于本人实验室。MBE是一种在理论上,可以制造出任何微纳米结构的超级设备,也是做半导体,凝聚态物理,光伏最前沿,最先进科研的核心设备之一。在后面,我会给大家专门介绍这种超级设备,以及他的好兄弟MOVPE(有机金属化学气相沉积仪)


图片3. 钙钛矿电池从2009年到现在的效率提升:3.8%到24.2%。如果单从效率来看,这个东西的发展速度是非常惊人的。但是,要做好一个系统,不光是效率足够高就行。类似于你不可以单纯用考试分数衡量一个学生


好,我们现在步入正题。那么什么是光伏模拟呢?


我们首先应该明确一个概念:光伏模拟是一个非常复杂的,包括很多种技术的领域。有材料级的模拟,也有器件级的模拟。材料级的模拟,用的更多的是类似DFT这样的方法。此处应at大佬 @Triborg 。而电子级模拟,则采用的是工程模拟中非常经典的思想:用以偏微分方程为代表的数学方法,去描述一个系统。之后,把这个偏微分方程,用数值的方法给他解出来。


这样的思想,在许多工程行业,都有巨大的应用。土木,电子电气,通信,机械,材料,航天等等专业的学生,基本都可以想到自己领域,有类似的模拟方法。


我们在这里不谈太多材料级的模拟技术。如果对这方面感兴趣,可以参考LeSar的计算材料学等经典教材。但是我自己的科研并不是材料级的模拟(方法与我现在做的这一套是不同的)。我们在这里,更多的就是来谈电子器件级的光伏模拟技术。


我们之前提到,如果,要做器件级的光伏模拟,首先是要先搞出几个偏微分方程,以及他们相关的边界条件。这个地方的推导,有很多paper都有比较详细的解释,而对于普通同学来说,这也是非常复杂的一块。我个人比较推荐奥地利维也纳科技大学Robert Entner博士的博士毕业论文的推导。当然,凡是做光伏模拟的博士,基本都会在博士毕业论文里把这东西推一回的[1][2]。所以其实你看谁的论文都行,只要顺眼就行。

图片4. 推到最后的五个方程:用这五个方程就可以撑起光伏模拟的天

经过一番推导(请看引用),到最后五个方程,足够描述光伏过程的大多数现象了。那便是:扩散方程,连续性方程,输运方程,泊松方程以及麦克斯韦方程。

当然,如果我们要表征这五个方程无法描述的物理现象(典型案例就是光伏器件里面的tunnel junction)那怎么办?给里面继续去加方程就行了。

有了这些方程,加上基于具体问题,具体设计的边界条件(这些条件一般由我们自己输入),我们就可以列出这样一组用来描述器件的偏微分方程了。


而我们都知道,计算机最适合用来做数值计算。这方面的理论,方法以及技术都是非常成熟的。我们直接站在200年来无数数学精英,以及50年来无数计算机科学精英的肩膀上,就可以做非常精准的数值求解。把这些求解出来的数值进行解释,那么就是,我们需要得到的要预测的,器件的性质,器件不同加工方法之后的性能,等等诸多对于科学和工程有重大意义的数据。


而做这个模拟,你用的计算机的工具是什么,本质上其实都是一样的。不管是Python,Matlab这样的编程语言,抑或是TCAD这样的EDA软件,还是PC1D,PC3D,Quokka这样的。他的区别,要么就是设计的那个系统对不同情况的支持程度(取决于这个系统的完善程度,加了多少优化),要么就是算法(比如Quokka是把一堆参数一次全部输进去算,算的比较粗,TCAD是用很多非常精细的参数慢慢求导,算的比较细。类似于Python一般是解释型语言,而C++是编译型语言,不过他都可以比如驱动一个高频交易的算法程序)。


关于光伏模拟的物理模型,有一篇非常好的文章,前天合光能高级科学家Pietro Altermatt教授的Models for numerical device simulations of crystalline silicon solar cells—a review[3]。


  1. 与Matlab,COMSOL以及Simulink相关的模拟技术

众所周知,上帝无法让牛顿,爱因斯坦以及欧拉复活,因此他创造了Matlab。Matlab作为有史以来最强大的数学软件,对偏微分求解有很好的支持。因此,可以被用来做光伏的模拟。包括Matlab的几个衍生品,COMSOL以及Simulink基本都有。


这种模拟技术非常强大。因为Matlab提供给用户非常高的自由度。但是问题在于,相比于Python,对使用者的要求比较高。难度较大。


2. Python-Solcore

我个人认为Python-Solcore是最友好的光伏模拟系统,只要你有一定的Python基础。话不多说了,直接上链接:

GitHub - qpv-research-group/solcore5: A multi-scale, python-based library for the modelling of solar cells and semiconductor materials

- Solcore 5.7.5 documentation

由于Solcore要用一些Fortran的语言,所以最好是要把它安装在Linux系统上。当然,你可以用虚拟机或者云,都可以。

Solcore最大的问题是截至目前没有很好的对于二维,三维体系的支撑。


3. TCAD

这也是本人的团队主要用的模拟方法。

TCAD是功能极其强大的EDA软件。和Matlab非常像。另外,TCAD是专门做微电子器件模拟的。lincense也比Matlab要贵得多(价格的差距某种意义上也代表性能的差距)。提供给用户巨大的自由度,当然,对普通用户也是这几种工具里面最不友好的一种。

如果是用Sentarus的TCAD的话,光是用户手册就有1400页,你可以感受一下。

TCAD一般需要安装在大型计算机或者计算集群上。个人电脑对这东西的支持很有限。因为从一开始Synopsys这类公司就默认这东西不是普通的个人用户会买的,都是半导体公司,大学或者研究机构,他们往往买得起,至少租得起服务器。

至少据本人了解,在中科院,TCAD由软件中心的员工专门负责,课题组需要使用的话去机房自己用。

有些课题组的TCAD是有个界面的,不过本人更喜欢直接,通过WINSCP或者MobaXterm连接到Linux环境下去跑命令行。


4. PC1D, PC3D以及Quokka

PC1D,这个其实就不多说了。非常古老的软件,加上PV-lighthouse的结合堪称光伏模拟行业的小米加步枪。个人电脑就能用。因此用这东西发的文章其实也是最多的。

当然,问题也很明显。这个软件性能有限(他毕竟是小米加步枪)。其次,1D,不支持高维模拟。

从19年开始,PC1D的发明人Paul Basore又独立开发了一个性能(稍)强的软件:PC3D+PC3S。可以用来做更复杂一些的,光伏模拟。非常有趣的是,这东西是用excel的宏做出来的。

Download

不过据本人实际使用的感觉来看,上手难度不大,的确就是一个升级版的小米加步枪。我们既然有更好的装备,那还要这自行车干什么?


其次,再说一下Quokka。Quokka在英语里的意思是一种袋鼠。这就很明显的显示出了他和澳大利亚的关系。发明人Andreas Fell博士(我个人认为是光伏模拟里面,目前的超级大佬)自己用自己在光伏模拟方面的丰富经验,开发了一个专门用于太阳能模拟的软件。Fell是德国人,在Franuhaufer ISE拿到博士后,去了ANU做postdoc。这种大佬最近应该是很快要当教授了,如果还没有当教授的话。如果是对光伏模拟非常感兴趣的学生,我非常建议申请Fell的phd。


Quokka上手难度不大。整体性能不错。设计思路和TCAD有比较明显的区别。用的参数粒度比较大,因此更适合个人电脑,而不是cluster运行。非常适合计算机基础不够扎实的材料系/电子系的师生使用。在使用Quokka之前,建议先仔细阅读关于Quokka的几大名著:

ieeexplore.ieee.org/abs

光伏模拟领域最大的神文之一,打个比方,类似于做深度学习里目标检测G神写的RCNN,fast-RCNN和faster-RCNN三连[4]。

www2.pvlighthouse.com.au

讲Quokka原理的paper[5]。不过基本上大概内容在Input parameters for Si Solar in 2014里面都说明白了。


当然,你看看文章[3]可怜的40多次的引用,就知道我们是一个多么偏门的小行业了。


最后,如果是对光伏/半导体/模拟计算/实验感兴趣的同学(我们希望你来自:电子,微电子,材料,物理等相关专业,同时喜欢半导体,学习过半导体,不怕做实验(不怕氢氟酸)或者不怕写代码。如果你是化学,化工,机械等专业的学生,我们希望你学习过半导体相关的知识同时有比较好的数学基础和一定的编程能力),欢迎你来申请我们组(在UNSW 太阳能研究所)的博士。氛围nice,项目有趣,大佬超多。

当然,UNSW的SPREE有各种各样方向与光伏相关的科研。包括与计算机视觉结合的,需要建筑/城市规划背景的学生做光伏建筑的,做与GIS相关的光伏电站项目的,宏观的电力设备模拟的,以及和环境政策相关的博士项目。都欢迎大家来申请。


[1]. Grasser, T. , Entner, R. , Triebl, O. , Enichlmair, H. , & Minixhofer, R. . (2006). Tcad modeling of negative bias temperature instability.IEEE.

[2]. Cited on 2021-09-24. iue.tuwien.ac.at/phd/en

关于钙钛矿的paper就不放了,出名的就那几篇,自己去看。另外本人对钙钛矿也没什么太多的兴趣。。。

[3]. Altermatt, P. P. . (2011). Models for numerical device simulations of crystalline silicon solar cells—a review.Journal of Computational Electronics,10(3), 314.

[4]. Fell, A. , Mcintosh, K. R. , Altermatt, P. P. , Janssen, G. , Stangl, R. , & Ho-Baillie, A. , et al. (2017). Input parameters for the simulation of silicon solar cells in 2014.IEEE Journal of Photovoltaics,5(4), 1250-1263.

[5]. Fell, A. Quokka version 2: selective surface doping, luminescence modeling and data fitting. 23rd Photovoltaic Science and Engineering Conference (PVSEC), Taipei, China, 2013


平台注册入口