首页 示例 截图 用户手册 Bluesky logo YouTube ☰
OghmaNano 模拟有机/钙钛矿太阳能电池、OFET 和 OLED 下载 Quick Start guide

拟合实验数据

1. 概述

正如你可以将二极管方程拟合到暗态 JV 曲线以提取理想因子一样,OghmaNano 允许你将完整器件模型直接拟合到实验数据。通过将仿真校准到你的测量结果,你可以在自洽框架内恢复具有物理意义的参数——迁移率、陷阱态密度、接触电阻、复合系数。与简单的解析公式相比,基于物理的拟合能够保留光学–电学耦合,并对控制性能的机制提供更丰富、更可靠的洞察。本教程介绍 OghmaNano 中的拟合工作流,并展示如何选择变量、选择最小化器,以及运行高效、可复现的拟合。

2. 你的第一次拟合

OghmaNano 包含若干演示仿真,用于说明如何将模型拟合到实验数据。其中一个以简单的漂移–扩散模型为例。要访问它,请点击文件功能区中的 新建仿真 图标以打开 新建仿真 窗口(图 ??)。 在此处,双击 脚本与拟合 类别以打开图 ?? 所示的文件夹。 选择 拟合与参数提取 示例以加载演示项目。 打开后,它会启动一个简单的太阳能电池仿真(图 ??)。 尽管该演示聚焦于太阳能电池,但拟合引擎可以应用于任何仿真与实验数据集。

OghmaNano 中的“新建仿真”窗口,显示不同器件类别。“脚本与拟合”类别已高亮显示。
新建仿真 窗口。选择 脚本与拟合 类别以访问拟合示例。
已打开“脚本与拟合”文件夹,并高亮显示“拟合与参数提取示例”。
在 脚本与拟合 文件夹中。双击 拟合与参数提取示例 以加载演示项目。

保存新仿真后,将出现主仿真窗口(??)。 在此处,导航到 自动化 功能区(红色高亮)并选择 拟合到实验 图标,以进入拟合窗口 ??。

OghmaNano 自动化功能区中高亮显示“拟合到实验”图标,主窗口中显示一个 3D 太阳能电池器件结构。
OghmaNano 的 自动化 功能区,显示 拟合到实验 图标。 选择该选项将打开主拟合窗口。
OghmaNano 拟合窗口,工作区中已加载一条实验 JV 曲线。
拟合窗口首次打开时的界面,显示已导入的光照 JV 实验数据集,已准备好进行拟合。

拟合窗口控制优化的执行方式:它指定使用哪些实验数据集,以及调整哪些仿真变量。 你可以拟合单个数据集(如这里所示),也可以同时拟合多个数据集,以获得更受约束的参数提取。 在图 ?? 中, 蓝线表示将用于拟合的实验 JV 曲线。

💡 实践练习:使用拟合窗口

  1. 任务 1 – 一次迭代: 点击 一次迭代 按钮以更新拟合视图 (??a)。 在 差值 = 实验 − 仿真 选项卡中,你将看到仿真 JV(蓝色)与 实验 JV(红色)叠加显示,以及绿色的 差值 曲线,其逐点定义为 \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \)。 一个良好的起点是绿色曲线在整个电压范围内接近零。
  2. 任务 2 – 运行拟合: 按下 运行拟合 以启动自动最小化器(再次按下将停止运行)。 在最初的几步中误差可能会短暂上升,但随后应下降,因为仿真曲线与 实验曲线逐渐收敛。切换到 拟合进度 选项卡以绘制误差随迭代变化的曲线 (??b);该图也会 保存到仿真目录中的 fitlog.csv 以便外部绘图。 在典型配置下该阶段耗时约 ~30 s。
OghmaNano 拟合窗口,在运行一次拟合迭代后显示仿真(蓝色)、实验(红色)以及差值(绿色)JV 曲线。
a) 一次拟合迭代后:仿真(蓝色)、实验(红色)与差值(绿色)JV 曲线。
OghmaNano 拟合进度窗口,显示误差函数随迭代次数下降,表明收敛。
b) 拟合进度:误差函数随迭代次数降低,显示收敛。

3. 添加与删除数据

主拟合窗口提供了一组工具栏命令,用于控制实验数据的添加、管理与拟合方式。 这些按钮允许你导入或移除数据集、配置哪些参数将被变化,以及启动或停止 拟合过程。最重要的选项包括:

4. 最小化器功能区

最小化器 功能区用于控制拟合过程中所使用的优化算法。 在该选项卡中,你可以选择要应用的最小化器(例如默认的 Nelder–Mead 下坡单纯形) 并配置其设置。该功能区还包含用于管理拟合变量、复制参数以及 应用数学规则以约束拟合的工具。通过调整这些选项,你可以控制算法如何探索参数空间, 在速度与精度之间取得平衡,并确保在拟合过程中施加具有物理意义的约束。

OghmaNano 拟合窗口,显示最小化器选项卡,其中包含拟合变量、重复变量、拟合规则以及最小化器选择(Nelder–Mead 已高亮)。
拟合窗口的 最小化器 选项卡,你可以在此选择优化算法 (例如 Nelder–Mead)并配置规则、变量复制以及最小化器设置。

5. 设置拟合变量

OghmaNano 拟合变量窗口,显示已启用与已禁用参数列表,如电荷密度、迁移率、陷阱密度与电阻,并带有最小值、最大值、误差函数与对数尺度控制项。
拟合变量 窗口。该界面允许你选择拟合时变化哪些参数, 并指定其允许范围、误差惩罚与缩放。在此启用或禁用变量将直接 控制最小化器如何探索参数空间。

要打开 拟合变量 窗口,请在拟合窗口中进入 最小化器 功能区 (图 ??)并点击 拟合变量。该面板(图 ??) 允许你选择拟合过程中哪些参数会被变化并设置其边界。为获得速度与鲁棒性, 先从一小组对称参数开始;只有在获得合理的初始拟合后,才添加更多变量(或引入不对称性)。

拟合变量 表包含七列:启用、变量、 最小值、最大值、误差函数、对数尺度 和 变量(JSON)。

6. 复制变量

OghmaNano 复制变量窗口,显示一个表格,将源变量(例如电子迁移率或陷阱密度)映射到目标变量,以在拟合过程中强制对称性。
复制变量 窗口。该工具在每次迭代时将 源 变量的值复制到 目标 变量,确保参数在拟合过程中保持对称 (例如,使电子与空穴迁移率匹配)。

从 最小化器 功能区打开 复制变量 窗口 (??)。 该工具会在每次迭代中将一个 源 参数镜像到一个 目标 参数。 在对称器件示例中,我们只拟合电子侧参数,并使用 复制变量 将其值复制到 相应的空穴参数,使它们在整个拟合过程中保持相等 (见 ??)。

列 函数 y = f(x) 定义了源值 x 在写入目标值 y 之前 如何进行变换。默认的 x 表示直接复制;也可以使用例如 2*x(将数值加倍)或 x + 0.05(施加偏移)等形式。

7. 拟合规则

拟合规则 窗口(??),可从 最小化器 功能区进入,允许你对拟合过程施加数学 约束。只要某个条件被违反,规则就会向误差函数添加惩罚项。 例如,你可以强制一个参数必须始终大于另一个参数,或者当某个 变量漂移到可接受范围之外时施加惩罚。这有助于使拟合保持物理意义,并防止 最小化器探索不现实的参数组合。


OghmaNano 拟合规则窗口,显示一个表格,可在变量之间定义诸如 x > y 的约束,并可启用或禁用每条规则。
拟合规则 窗口。在这里,用户可以定义诸如 x > y 的约束,以强制 参数之间的关系。如果某条规则被破坏,将向拟合中添加额外误差,引导 最小化器回到参数空间的有效区域。

💡 拟合的关键提示与技巧:

  1. 一般而言,拟合是一个棘手的过程,需要大量耐心和手动微调。不要指望 点击一个按钮就能直接工作 —— 你需要仔细操作才能得到良好的拟合。
  2. 如果拟合无法工作,可能是你对器件所做的物理假设存在问题。 该模型只能拟合物理上合理的数据,因此如果有某些量相差一个数量级, 请重新考虑你让模型完成的任务。例如,如果你始终无法让太阳能电池中的 \(J_{sc}\) 匹配,会不会是你的材料吸收的光子数量不足, 从而无法达到你期望的 \(J_{sc}\) 值?
  3. 不同的数据集提供不同类型的信息。例如,太阳能电池的暗态 JV 曲线提供 有关并联电阻、串联电阻以及一些迁移率/复合细节的洞察。而光照 JV 曲线 几乎不提供关于并联电阻的信息,因此不要指望它能给出对 \(R_{shunt}\) 的准确估计。在解释拟合参数之前, 始终要思考你的数据包含哪些信息。
  4. 拟合过程的工作方式是:1)运行一次仿真;2)计算数值结果与 实验结果之间的差异;3)调整参数;4)重新运行仿真并检查误差是否减少;5)如果 误差减少,则接受参数变化并重复该过程。这可能需要数百或数千次迭代。 因此,单次仿真必须运行得很快。例如,如果你的网格有 1000 个点,拟合时可尝试 将其减少到 10;如果你有 1000 个时间步,将其减少到 100。任何对基础仿真的加速 都会加速拟合过程。
  5. 将文件写入磁盘是任何计算过程的 最慢部分。即使是现代 SSD 的速度也大约比 主存慢 30×(例如 456 MB/s vs 12,800 MB/s,对应 PC3-12800)。使用 USB 盘、 网络存储或 OneDrive/Dropbox 等云服务会使情况更糟。为提高速度,请始终将仿真保存到本地 SSD(而不是 网络盘或机械硬盘)。
  6. 尽量减少仿真生成的文件数量。关闭不必要的输出,如快照、光学 输出或动态文件夹。配置良好的仿真通常只会生成大约 50 个文件。如果你看到上百个, 请调查原因。
  7. 虽然可以在 GUI 中进行拟合,但通常较慢。一个良好的做法是:在 GUI 中设置拟合,但从命令行运行 它们(下文给出了说明)。
  8. 由于拟合会向磁盘写入大量文件,杀毒软件可能会通过扫描每个文件来拖慢速度。如果这成为问题, 可以考虑将你的仿真文件夹从实时扫描中排除。

👉 下一步: 现在继续到 第 B 部分,了解更高级的拟合方法。