大面积钙钛矿组件教程 B部分:运行仿真并检查输出
大面积组件仿真比单器件漂移–扩散运行更复杂,因此值得观察求解器在做什么。 在这个示例中,OghmaNano 分两个主要阶段运行仿真: (i) 光学求解器(3D 光学计算),然后 (ii) 电学电路求解器(电路网格上的基尔霍夫电流/电压方程)。 终端输出是你及早发现问题的最快方式(例如,断开的电路或缺失的接触)。
步骤 1:运行仿真
点击 ?? 中所示的 Run simulation 按钮(蓝色三角形)。 该仿真需要一些时间才能运行完成(它会先执行 3D 光学阶段,然后再执行大规模电路求解)。 在运行期间,请留意 Terminal 选项卡,因为它会提供关于收敛性和电流的实时信息。
步骤 2:理解终端输出在告诉你什么
对于这些复杂仿真,终端输出并不是“噪声”——它是一种诊断信息。在 ?? 中,你可以看到求解器最初运行的是光学阶段。 这可能需要一些时间,因为它是在 3D 中求解。光学产生准备完成后,求解器会开始电学阶段,并为每个偏压点打印一行信息。
一条关键输出行看起来像这样(格式会根据设置略有不同):
- 接触电压:例如,
ground = 0.00 V表示地接触保持在 0 V;change = 0.10 V表示另一个接触位于 0.10 V。 - 接触电流:例如,一个接触上为
1.58e+03 A/m^2,另一个接触上为-1.19e+03 A/m^2,表示电流流入一个接触并从另一个接触流出。 在 0 V 时,这本质上就是该组件的短路电流密度(JSC),因为器件在受光照并在零外加电压下输出电流。 - 收敛度量:打印出的
f()值是电学求解的求解器误差/残差(整个电路网格上的基尔霍夫定律方程)。 你可以将其粗略理解为整个网络中“电路方程满足得有多好”。 - 每步时间:该行末尾的最后一个数字(毫秒)是求解该偏压点所花费的时间。
在扫描开始附近(特别是在接近 0 V 时),你通常会看到较大的误差,而随着求解器远离该点,误差可能会下降。 经验上,当求解器达到 10-4 或更小的误差时,我会更信任结果, 理想情况下,对于“干净”的收敛应达到 10-9。 (在这里展示的示例日志中,你可以看到随着扫描推进,误差呈下降趋势。)
在 ??
中,你可以看到一个非常有用的现象:
在扫描的大约中段,地接触上的电流改变了符号,而 change 接触上的电流则朝相反方向改变符号。
这种符号翻转正是当扫描经过 VOC 时所期望看到的:低于 VOC 时,受光照器件输出功率;
高于 VOC 时,它处于正向偏置状态,并像二极管一样消耗功率。
换句话说,你通常可以直接在接触电流列中“看到”JV 曲线正在形成。
💡 为什么要看终端?如果哪里出了问题(例如,电路未连接、接触掩膜未覆盖网格,或者某个区域悬空),
你通常会立刻看到:电流接近于零、电流变得不合理,或者求解器无法降低 f()。
尽早发现这些问题可以节省你长时间等待。
步骤 3:检查输出文件
当仿真完成后,Output 选项卡将包含一组类似
??
所示的文件。
本教程这一部分的关键结果是接触 JV 曲线:
jv_contact0.csv 和 jv_contact1.csv。
这些文件包含每个接触上的电流密度随外加电压变化的关系。
双击 jv_contact0.csv 和 jv_contact1.csv 以绘制它们。示例图显示于
?? 和
??。
放大视图(有助于读取 VOC 以及拐点附近的曲率)显示于
??。
jv_contact0.csv)。
jv_contact1.csv)。
✅ 预期结果
在受光照条件下,在 0 V 时你应当在接触处观察到非零电流幅值(该组件的 JSC)。 随着电压升高,电流会在 VOC 附近接近零,然后在正向偏置下改变符号。 如果 JV 曲线看起来是平的(几乎处处接近零),这通常表示电路断开、接触缺失,或者几何结构/接触掩膜不匹配。
步骤 4:检查求解器网格和电路表示
大面积仿真可能因为几何原因而失败(接触放置错误、区域缺失、意外间隙),因此了解应该查看哪里很有用。 特别是:
device.csv- 这是求解器实际“看到”的网格视图。GUI 中渲染精美的 3D 视图并不是求解器内部使用的内容。 求解器是在一个更基础的三角形表示上运行的,如果几何结构有问题,通常会在这里表现出来。electrical_links.csv- 列出电路连线(连接节点的元件:电阻路径 / 二极管连接等)。electrical_nodes.csv- 列出求解中使用的基尔霍夫节点(电流求和为零的点)。
这些文件的示例视图显示于 ??、 ?? 和 ??。 从概念上讲,这与求解一个标准电路是一样的:节点 + 连线 + 基尔霍夫定律——只是规模大得多。
device.csv:求解器使用的简化网格表示。
如果几何结构有问题,通常会在这里很明显地表现出来。
electrical_links.csv:基尔霍夫求解中使用的电路连线。
electrical_nodes.csv:计算中使用的基尔霍夫电流节点。
步骤 5:定位光学设置(Transfer Matrix)
该组件仿真包含光学产生,你可以在 Optical 功能区中找到光学工具 (??)。 点击 Transfer Matrix 以打开 Transfer Matrix 窗口。
重要:在本教程中不要从这里运行 Transfer Matrix 工具。 Transfer Matrix 窗口本质上是穿过堆栈的一个1D视图,而该仿真是3D的。 它对于配置以及检查材料/堆栈设置是否合理很有用,但不能替代你刚刚运行的完整 3D 光学阶段。 现在,请打开它并点击 Configure——在 C部分 中,当我们开始进行受控更改时,会使用这个入口点。
步骤 5:定位光学设置(Transfer Matrix)
该组件仿真包含光学产生,你可以在 Optical 功能区中找到光学工具 (??)。 点击 Transfer Matrix 以打开 Transfer Matrix 窗口。
重要:在本教程中不要从这里运行 Transfer Matrix 工具。 Transfer Matrix 窗口本质上是穿过堆栈的一个1D视图,而该仿真是3D的。 它对于配置以及检查材料/堆栈设置是否合理很有用,但不能替代你刚刚运行的完整 3D 光学阶段。
相反,请点击 Configure(齿轮)选项,以打开 ?? 所示的光学配置面板。
Photon efficiency 与太阳能电池二极管方程
Photon efficiency(在这一简化语境中有时也称为内部量子效率因子)是一个标量乘子, 它告诉模型:被吸收的光子中有多少比例真正产生了可提取的载流子(电子和空穴)。 如果 photon efficiency 为 0,则没有光电流。如果它为 1,那么(在这一简化图景中) 每个被吸收的光子都对光电流有贡献。在大多数真实器件中,约 0.6 的数值是一个合理的量级。
用二极管语言来说,你可以将其看作对受光照二极管方程中光电流项的缩放:
这里,\(J_0\) 是二极管饱和电流密度,\(n\) 是理想因子,而 \(J_{\mathrm{ph}}\) 是由光学模型预测的光电流密度 (即由吸收光子/产生计算得到)。参数 \(\eta_{\mathrm{ph}}\) 是来自 ?? 的Photon efficiency, 它只是简单地对光电流项的贡献进行缩放。 设置 \(\eta_{\mathrm{ph}}=0.6\) 在这个有效模型中意味着“60% 的吸收光子转化为可提取载流子”。
在实际中:如果你的仿真 \(J_\mathrm{SC}\) 与实验严重不匹配,并且你确信电路模型的电学部分是合理的, 那么 \(\eta_{\mathrm{ph}}\) 是你可以用来使绝对电流水平与实验对齐的最快调节旋钮之一。它极不可能大于 1; 如果你发现需要 \(\eta_{\mathrm{ph}} > 1\),这通常说明其他地方有问题(例如,光学常数 / 吸收系数不一致)。
🧪 任务:探索 Photon efficiency
- 打开 Optical 功能区并进入 Transfer Matrix → Configure (??)。
- 将 Photon efficiency 从 0.6 改为较低的值(例如 0.3),重新运行仿真,并观察接触 JV 曲线如何变化。
- 尝试较高的值(例如 0.9)并重新运行。\(J_\mathrm{SC}\) 和整体 JV 曲线形状会发生什么变化?
- 完成后,将 Photon efficiency 设回 0.6。
👉 下一步:继续进入 C部分 ,在那里我们将开始修改参数并解释组件尺度上的损耗(串联电阻、接触限制以及光学产生效应)。