跳转到内容

主要求解算法

SunSolve Power 方法论

上图展示了主要求解算法。用户在开始时定义所有仿真输入,包括器件几何结构、材料、光照源和电路参数。然后 SunSolve 使用光线追迹来确定光学吸收,这些光学结果成为电学模型的输入,用于计算器件性能。

SunSolve 结合蒙特卡罗光线追迹与薄膜光学,确定整个器件中波长依赖的吸收、反射和透射。主要求解算法如下进行。

  1. 创建若干光线(由选项标签页上 Rays per packet 指定的值)。 每条光线被分配一个波长、一个强度、一个方向和一个位置(对于正面照射在组件上方,对于背面照射在组件下方)。

  2. 每条光线沿直线传播,直到与组件表面的一个面相交。

  3. 在此次相互作用以及未来所有与界面的相互作用中:

    • 计算反射率、透射率和吸收率。每个都取决于波长 λ\lambda 和电场(偏振),以及界面两侧材料的复折射率和它们之间的任何薄膜;
    • 光线的强度按吸收率的值减少;
    • 反射率和透射率的大小被转换为概率;
    • 根据这些概率加权的随机决策,选择光线在界面处是反射还是透射;
    • 根据光线是反射还是透射,以及分配给该界面的散射模型,为光线分配新的方向;
    • 光线继续穿过组件,直到与另一个界面相交。
  4. 如果光线穿过吸收层,其强度通过应用比尔定律而减少。这种强度的减少通常被视为损失(例如,组件玻璃中的吸收),但当光线穿过硅等半导体时,吸收对应于电子-空穴对的光生成,强度的减少可以被视为增益。

  5. 对每条光线重复步骤 2-4,直到满足以下条件之一:

    • 光线从正面表面反射或通过正面或背面表面逃逸而从组件中损失;
    • 光线强度降至选项标签页上 Intensity threshold 定义的阈值以下;或
    • 光线已与选项标签页上 Max bounces per ray 定义的最大允许界面数相交。
  6. 记录每条光线的增益(光生成)和损失(反射、透射、寄生吸收),然后求和并平均以给出该光线包的结果。

  7. 重复步骤 1-6,直到光线包的数量使总光线数等于选项标签页上 Rays per run 输入的值。总增益和损失被平均并发送到用户界面。

因此,全局增益和损失通过平均大量光线来确定。使用足够多的光线,蒙特卡罗仿真收敛到基础物理模型。

SunSolve 通过求解等效电路模型来计算太阳能电池或组件的电学输出。该模型的解是 JV 曲线(即电流和电压之间的关系),从中确定标准电学输出,如最大功率 PMPP_{\text{MP}}、短路电流 JSCJ_{\text{SC}} 和开路电压 VOCV_{\text{OC}}。电学输出显示在 JV 标签页上。

等效电路模型的输入位于电路标签页上。大多数输入由用户定义,但有两个可能的例外:串联电阻 RsR_s(可选)和光收集电流 JLJ_L

用户有两个选项来为 RsR_s 分配值:

  1. 插入 RsR_s 的值。当电极标签页上未启用电极或电路标签页上未选中”计算栅线电阻”时,此选项可用。
  2. 插入非栅线串联电阻 RsnR_{\text{sn}} 并允许 SunSolve 计算栅线电阻 RsgR_{\text{sg}}。当启用电极并选中”计算栅线电阻”时,此选项可用。非栅线和栅线分量的总和给出电学求解器使用的 RsR_s 值。

JLJ_L 表示在太阳能电池内产生并由 p-n 结收集的电流密度。它被称为光生电流密度。

JLJ_L 由以下方程确定:

JL=0Jph(λ)A(λ)η(λ)dλ,J_L = \int_{0}^{\infty}{J_{\text{ph}}(\lambda)A(\lambda)\eta(\lambda)d\lambda},

其中 Jph(λ)J_{\text{ph}}(\lambda) 是由光照标签页上的输入确定的入射光子电流,A(λ)A(\lambda) 是通过光线追迹确定的被太阳能电池有源区吸收的入射光的分数,η(λ)\eta(\lambda) 是电路标签页上定义的该有源区内的收集效率。

实际上,此方程应用于每个光照源,其中进入电池正面的光归因于正面光生电流 JLFJ_{\text{LF}},进入电池背面的光归因于背面光生电流 JLRJ_{\text{LR}}。这些值对每个光照源求和,以给出电学求解器使用的总 JLJ_L

可以使用电路标签页定义额外的收集层。每个额外的层具有单一的收集效率,不区分从正面或背面吸收的光。

本帮助文件的层标签页更详细地解释了收集层和吸收。

因此,一般流程是:

  1. 使用光线追迹来确定太阳能电池有源区对于进入主吸收体正面 AF(λ)A_F(\lambda) 和背面 AR(λ)A_R(\lambda) 以及其他收集层中 A(λ)A(\lambda) 的光的吸收率,针对每个光照源;
  2. AF(λ)A_F(\lambda)AR(λ)A_R(\lambda)Jph(λ)J_{\text{ph}}(\lambda) 和收集效率 ηF(λ)\eta_F(\lambda)ηR(λ)\eta_R(\lambda) 组合,以确定每个光源的 JLFJ_{\text{LF}}JLRJ_{\text{LR}}。类似地,将其他收集层的 A(λ)A(\lambda)Jph(λ)J_{\text{ph}}(\lambda) 和收集效率组合,以给出每个光源的 JLJ_L。然后将所有这些电流求和以给出 JLJ_L
  3. 从电极输入分析计算 RsgR_{\text{sg}},并将其添加到非栅线电阻 RsnR_{\text{sn}} 以给出 RsR_s(或者,如果首选,RsR_s 只是用户输入);
  4. 使用上述的 JLJ_LRsR_s 以及其他用户定义的电路输入求解等效电路以获得 JV 曲线;以及
  5. 从 JV 曲线确定标准电学输出,如 PMPP_{\text{MP}}JSCJ_{\text{SC}}VOCV_{\text{OC}}

如果修改了电路标签页上的任何输入,电学求解器将重新计算 JV 曲线。在这种情况下,SunSolve 不需要重新运行光线追迹,因为没有修改光学输入,因此 A(λ)A(\lambda) 不变。

等效电路模型的输入通常在”标称”温度(如 25 °C 或 300 K)下引用。然而,在现场安装时,太阳能电池往往在更高的温度下工作。应如何设置等效电路输入以表示在现场工作的电池?

SunSolve 提供了在标称温度 TnomT_{\text{nom}} 下加载电路输入、设置工作温度 TT 并允许 SunSolve 使用与 PVsyst 相同的方法计算 TT 下的电路输入的选项,该方法应用以下方程:

JL=JLnom[1+μIL(TTnom)],J_L = J_{L\text{nom}}\left[1 + \mu_{\text{IL}}(T-T_{\text{nom}})\right],

以及

m1=m1nom[1+μm1(TTnom)],m_1 = m_{1\text{nom}}\left[1 + \mu_{m1}(T-T_{\text{nom}})\right],

其中 μIL\mu_{\text{IL}}μm1\mu_{m1} 是光生电流和主二极管理想因子 m1m_1 的系数;以及

J01=J01nom(TTnom)3exp[qEgm1k(1T1Tnom)],J_{01} = J_{01\text{nom}}\left(\frac{T}{T_{\text{nom}}}\right)^3\exp\left[\frac{qE_g}{m_1k}\left(\frac{1}{T}-\frac{1}{T_{\text{nom}}}\right)\right],

其中 EgE_g 是半导体的带隙,qq 是电子上的电荷,kk 是玻尔兹曼常数,给出温度 TT 下主二极管的复合电流 J01J_{01}

通过这种简单方法,其余电路参数(包括 RsR_sRshR_{\text{sh}})不受温度影响。我们打算在未来添加替代温度模型。

通常通过从 300 到 1200 nm 积分来计算 JLJ_L,因为对于典型的太阳光谱,Jph(λ)J_{\text{ph}}(\lambda) 在 300 nm 以下可以忽略不计,而对于硅太阳能电池,A(λ)A(\lambda) 在 1200 nm 以外可以忽略不计。

可以使用等效电路计算器探索此等效电路计算。

尽管简单,但等效电路模型的应用是将光线追迹结果转换为电学输出的有用方法。它因此有助于确定光学设计变化如何影响输出功率。然而,它不提供对太阳能电池内部设计的深入了解(例如,表面复合或体寿命的变化如何影响输出功率)。对于这些高级工程问题,我们建议结合使用 SunSolve 和半导体电学求解器,如 Quokka2Quokka3Sentaurus

在 Quokka3 中使用 SunSolve 结果的推荐方法是使用 *.sun 文件。可以通过在选项标签页上选择”为 Quokka3 求解”选项,然后从下面的列表中选择所需的”求解类型”来在 SunSolve 中生成这些文件。SunSolve 运行后,可以使用”导出输出”->“SunSolve for Quokka3”下载 *.sun 文件。

通过 *.sun 文件将 SunSolve 结果传输到 Quokka3 有四个选项。请注意,在双面情况下,将使用扫描,这将使仿真消耗的光线数加倍。

  1. Text-Z(单面):应用单一的法向入射光源,仅求解正面光学。Quokka 中的生成模式使用”Text-Z”模型。
  2. Text-Z(双面):应用法向入射光源,对正面和背面各求解一次。Quokka 中的生成模式使用”Text-Z”模型。
  3. 生成剖面(任意辐照度):可以定义任何类型和数量的光源。Quokka 中的生成模式使用”定义生成”模型。
  4. 生成剖面(双面分析):应用法向入射光源,对正面和背面各求解一次。Quokka 中的生成模式使用”定义生成”模型。

选项(1)和(2)在 SunSolve 中求解光谱分辨的电池光学,光照在 Quokka3 中定义,这限制了 SunSolve 可用的光源设置。选项(3)和(4)要求 Quokka3 中的光源与 SunSolve 中定义的光源完全匹配。这允许使用 SunSolve 设置任意光源。请注意,选项(3)和(4)仅适用于高级用户。

用户还可以启用 Quokka 3 求解选项来求解光学路径长度增强(z)与波长的关系。按照上述选项(1)或(2)的说明进行操作,然后在导出输出窗口中使用”光学路径长度增强(z)“选项。