找回密码
 注册账号

QQ登录

微信登录

太阳能电池效率的计算

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

在论文 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。

太阳能电池效率的计算
论坛有你更精彩!
评论 支持 反对

举报

谢谢您的分享!
评论 支持 反对

举报

以后多分享一些这样的有价值的帖子啊
评论 支持 反对

举报

谢谢您的分享!
评论 支持 反对

举报

大家都不容易!
评论 支持 反对

举报

大家都不容易!
评论 支持 反对

举报

论坛有你更精彩!
评论 支持 反对

举报

好东西一定要看看!
评论 支持 反对

举报

大家都不容易!
评论 支持 反对

举报

大家都不容易!
评论 支持 反对

举报

好东西一定要看看!
评论 支持 反对

举报

大家都不容易!
评论 支持 反对

举报

返回顶部