晓木虫
学术数据库客户端

太阳能电池效率的计算

 找回密码
 注册会员

QQ登录

微信登录

太阳能电池效率的计算

摘要: 在论文 Marco Bernardi, Maurizia Palummo, Jeffrey C. Grossman; Semiconducting Monolayer Materials as a Tunable Platform for Excitonic Solar Cells; ACS Nano 6(11):10082-10089, 2012; 10.1021/nn303815z 中 ...

在论文 Marco Bernardi, Maurizia Palummo, Jeffrey C. Grossman; Semiconducting Monolayer Materials as a Tunable Platform for Excitonic Solar Cells; ACS Nano 6(11):10082-10089, 2012; 10.1021/nn303815z 中讨论了一种计算太阳能电池效率的方法, 并给出了效率与材料参数的关系图, 对研究太阳能电池的人有一定参考价值. 我这里给出文章中计算太阳能电池效率的matlab代码, 供需要的人参考. 由于我的专业并非此领域, 所以无法对公式含义及其中的各个物理量进行说明, 只关注公式的数学部分$.$

理论

首先指出, 论文中的太阳能电池效率计算公式(方程1)有误, 正确的公式如下

η=0.65(Eopt,dg−ΔEc−0.3)∫∞Eopt,dgJph(ℏω)ℏωd(ℏω)∫∞0Jph(ℏω)d(ℏω)η=0.65(Egopt,d−ΔEc−0.3)∫Egopt,d∞Jph(ℏω)ℏωd(ℏω)∫0∞Jph(ℏω)d(ℏω)

与原公式的区别在于分母中积分的起点为能量的起始值.

由于 <span class="MathJax" id="MathJax-Element-2-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML"><mi class="MJX-variant">ℏω=ε" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">ℏω=εℏω=ε 即为光子的能量, 所以上式可写为

<span class="MathJax" id="MathJax-Element-3-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">η=<mrow class="MJX-TeXAtom-ORD">0.65<mo stretchy="false">(Eg<mrow class="MJX-TeXAtom-ORD">opt,d−<mi mathvariant="normal">ΔEc−0.3<mo stretchy="false">)∫<mrow class="MJX-TeXAtom-ORD">Eg<mrow class="MJX-TeXAtom-ORD">opt,d<mi mathvariant="normal">∞<mrow class="MJX-TeXAtom-ORD">J<mrow class="MJX-TeXAtom-ORD">ph<mo stretchy="false">(ε<mo stretchy="false">)ε<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε∫0<mi mathvariant="normal">∞J<mrow class="MJX-TeXAtom-ORD">ph<mo stretchy="false">(ε<mo stretchy="false">)<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">η=0.65(Eopt,dg−ΔEc−0.3)∫∞Eopt,dgJph(ε)εdε∫∞0Jph(ε)dεη=0.65(Egopt,d−ΔEc−0.3)∫Egopt,d∞Jph(ε)εdε∫0∞Jph(ε)dε

此式的分母部分是一个常数, 无须考虑, 故此, 计算的关键是分子中的积分. 此积分的计算涉及标准太阳能光谱 <span class="MathJax" id="MathJax-Element-4-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML">J<mrow class="MJX-TeXAtom-ORD">ph<mo stretchy="false">(ω<mo stretchy="false">)" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">Jph(ω)Jph(ω). 根据国际标准, 此光谱一般采用美国材料和试验协会(ASTM)的标准太阳能光谱(ASTM)G173-03, 但此光谱给出的数据是按波长分布的, 所以我们首先需要将其转换为按能量分布的光谱.

设有光谱的波长分布为 <span class="MathJax" id="MathJax-Element-5-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML">f<mo stretchy="false">(λ<mo stretchy="false">)" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">f(λ)f(λ), 其对应的能量分布为 <span class="MathJax" id="MathJax-Element-6-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML">J<mo stretchy="false">(ε<mo stretchy="false">)" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">J(ε)J(ε), 二者满足 <span class="MathJax" id="MathJax-Element-7-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML">f<mo stretchy="false">(λ<mo stretchy="false">)<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dλ=J<mo stretchy="false">(ε<mo stretchy="false">)<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">f(λ)dλ=J(ε)dεf(λ)dλ=J(ε)dε, 故

<span class="MathJax" id="MathJax-Element-8-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">J<mo stretchy="false">(ε<mo stretchy="false">)=f<mo stretchy="false">(λ<mo stretchy="false">)∣<mrow class="MJX-TeXAtom-ORD"><mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dλ<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε∣=f<mo stretchy="false">(λ<mo stretchy="false">)<mrow class="MJX-TeXAtom-ORD">1<mo fence="false" stretchy="false">∣<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε⁡<mrow class="MJX-TeXAtom-ORD">/<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dλ<mo fence="false" stretchy="false">∣" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">J(ε)=f(λ)∣dλdε∣=f(λ)1∣dε/dλ∣J(ε)=f(λ)∣dλdε∣=f(λ)1∣dε/dλ∣

<span class="MathJax" id="MathJax-Element-9-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">ε=hν=h<mrow class="MJX-TeXAtom-ORD">cλ,<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dε=−<mrow class="MJX-TeXAtom-ORD">hcλ2<mrow class="MJX-TeXAtom-OP"><mrow class="MJX-TeXAtom-ORD"><mi mathvariant="normal">dλ" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">ε=hν=hcλ,dε=−hcλ2dλε=hν=hcλ,dε=−hcλ2dλ

可得

<span class="MathJax" id="MathJax-Element-10-Frame" tabindex="0" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">J<mo stretchy="false">(ε<mo stretchy="false">)=<mrow class="MJX-TeXAtom-ORD">λ2hcf<mo stretchy="false">(λ<mo stretchy="false">)=<mrow class="MJX-TeXAtom-ORD">λεf<mo stretchy="false">(λ<mo stretchy="false">)" role="presentation" style="margin:0px;padding:0px;display:inline;line-height:normal;text-align:left;word-spacing:normal;word-wrap:normal;float:none;direction:ltr;max-width:none;max-height:none;min-width:0px;min-height:0px;border:0px;position:relative;">J(ε)=λ2hcf(λ)=λεf(λ)J(ε)=λ2hcf(λ)=λεf(λ)

知道了此式之后, 使用最简单的梯形法对能量分布进行积分即可. 需要注意的是, 积分时可能需要首先对数据进行线性插值, 因为积分的起点可能并不正好处于分布的点上.

代码
matlab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
clc; clear; clear all; % 单位换算 nm2eV=1.2398419739e-6*1e9; %% 处理数据% 读取文件, 忽略表头, 使用Global tilt数据 dat = csvread('ASTMG173.csv',2); l=dat(:,1); f=dat(:,3); % 由波长分布换算为能量分布, 递增顺序 E=nm2eV./flipud(l); J=flipud(f.*l)./E; % plot(E,J,'-')% 计算能量最小点与最大点, 能量间隔最小值% 梯形法积分得总功率, 其值应接近1000 Emin=min(E); Emax=max(E); dEmin=min(gradient(E)); Jtot=trapz(E, J) %% 计算单个效率值 Eopt=2; Ec=0.2; Eintp=[Eopt:dEmin:Emax]; Jintp=interp1(E,J, Eintp, 'linear'); Jsc=trapz(Eintp, Jintp./Eintp)/Jtot; eta=0.65*(Eopt-Ec-0.3)*Jsc*100%% 作效率与Eopt, Ec的二维图 Eopt=[1:.01:3.5]; Ec=[0:.01:1.2]; Jsc=zeros(1,length(Eopt)); fori=1:length(Eopt)-1 Eintp=[Eopt(i):dEmin:Emax]; Jintp=interp1(E,J, Eintp, 'linear'); Jsc(i)=trapz(Eintp, Jintp./Eintp)/Jtot; end [x, y]=meshgrid(Eopt, Ec); [z, y]=meshgrid(Jsc, Ec); eta=0.65*(x-y-0.3).*z*100; contourf(x,y,eta, [2:2:20],'ShowText','on') xlabel('CBN pptical gap (eV)') ylabel('Conduction band offset (eV)')

所得图形与论文中 Fig.2 一致.

一些说明
  • 张璐 等:国产遥感传感器大气层外波段平均太阳光谱辐照度计算

大气层外太阳光谱不受大气的影响,是计算传感器大气层外波段平均太阳辐照度的基础。但由于测量仪器及方法的差别,现有多套太阳光谱曲线数据之间存在一定的差异。本文选用了9条常用的太阳光谱曲线(6S、ASTM-E490、ASTM-G173、Chance、Kurucz、Neckel & Lab、Thuillier、Wehrli 和 WRC 太阳光谱曲线)进行对比分析,以确定最合适计算ESUN b 的太阳光谱。 6S 太阳光谱为 6S 大气辐射传输模型中内置的太阳光谱曲线,光谱范围为 0.25~4.0 μm;ASTM-E490 太阳光谱由美国材料和试验协会(ASTM) 根据卫星、航天飞机、火箭探测、地基太阳望远镜等观测资料发布,光谱范围为 0.12~1000 μm;ASTM-G173太阳光谱由ASTM通过SMARTS模式导出,光谱范围为0.28~4.0 μm;Chance太阳光谱来源于地面和气球观测资料,光谱范围为 0.2~200 μm;Kurucz太阳光谱来源于理论模型和经验模型计算,光谱范围为 0.2~200 μm;Neckel & Lab 太阳光谱由 Neckel 和 Labs 基于对日盘中心绝对强度的观测资料发布,光谱范围为 0.4~2.0 μm;Thuillier 太阳光谱由 Thuillier 等人根据多次航空飞行观测资料发布,光谱范围为 0.2~2.4 μm;Wehrli 太阳光谱由 Wehrli 根据多条太阳光谱整合而成,光谱范围为0.20~3.0 μm;WRC 太阳光谱由 World Radiation Center 机构根据地面和火箭观测数据发布,光谱范围为0.35~2.5 μm。
  • 为什么在测太阳能电池的效率时都是采用AM1.5 100mW/cm2 啊?

在地球大气层的上界,距离太阳一个天文单位处,与太阳垂直的单位面积上,单位时间所得的的太阳辐射能量叫一个太阳常数S0。此时把太阳看出点光源,不考虑大气层吸收。但是在实际地球表面附近的太阳辐射强度受大气吸收的影响。大气吸收同时也影响太阳光谱分布。同时辐射强度还受太阳运转的高度影响。为了描述这一关系,引入大气质量(air mass, AM)。太阳穿过大气层垂直射入海平面时的高度作为一个大气质量AM1,辐照度大约1000W/M2,太阳在其他任意位置时穿过大气层的距离与AM1有sina的关系。a为太阳的高度角。外层空间的大气质量为AM0。太阳高度降低时,通过大气层的距离增加。大气质量大于1。最接近现实生活情况下的大气质量为AM1.5。此时太阳高度角为41.8度,辐照度为963W/M2。所以国际标准组织定义AM1.5为地面光伏组件的标准条件,辐照度定为1000W/M2.
  • AM1.5G怎么来的?

ASTM G173–03的AM1.5G光谱采用变步长梯形求积积分,结果为1000.37 W/m2。

太阳能电池效率的计算  |  责任编辑:虫子

路过

雷人

握手

鲜花

鸡蛋
返回顶部