基于人工智能的锂金属电池锂枝晶生长分析与预测—结合机器学习与多尺度模拟(在投论文)
本文引入人工智能对枝晶形貌与动力学进行综合分析与预测:基于实验室数据构建包含扫描电镜图像、电化学充放电时间序列及电解质/界面特征参数的多源数据集,利用 CNN 实现枝晶形貌自动识别与分级并以分形维数、枝晶长度和占比等指标量化;进一步建立一维卷积结合循环神经网络的时间序列模型,预测极化电压与过电位波动并对失控生长风险进行预警;最后用回归模型将电解质组成与传输性质映射到枝晶生长速率和形貌特征,用于筛选抑制枝晶的电解质体系。结果显示该AI框架在形貌识别与电化学响应预测上精度较高,且能给出与物理化学机理一致的特征重要性,为锂金属电池安全设计提供高通量、可解释的新思路。
基于元胞自动机(Cellular Automata, CA)的锂金属电池枝晶生长模拟程序。该项目来源于普通化学课程论文《基于人工智能的锂金属电池锂枝晶生长分析与预测——结合机器学习与多尺度模拟》,用于将论文中关于过电位、离子传输、SEI 膜不均匀性和界面优先生长的物理图像转化为可视化仿真。
本项目不是严格的电化学有限元/相场求解器,而是一个面向课程展示和形貌数据生成的简化概率模型。程序通过二维格点模拟金属锂在负极表面的沉积过程,并输出枝晶形貌、动态 GIF、关键阶段图和生长指标数据。
锂金属电池具有很高的理论比容量,是高能量密度储能体系的重要候选。但在充电沉积过程中,锂离子可能在局部电流密度较高、SEI 膜不均匀或表面粗糙的位置优先生长,逐渐形成苔藓状或针状枝晶。枝晶会消耗活性锂和电解液,降低库伦效率,严重时可能刺穿隔膜并引发短路风险。
本程序使用元胞自动机方法对这一过程进行简化建模:
- 使用二维网格表示电极/电解液区域;
0表示电解液或未沉积区域;1表示已经沉积的金属锂;- 每一步只允许与已有锂相邻的界面格点发生沉积;
- 每个候选格点的沉积概率由过电位、扩散能力、SEI 均匀性、尖端效应、邻域支撑和随机扰动共同决定;
- 最终得到具有枝晶特征的非均匀生长形貌。
- 二维锂枝晶生长元胞自动机模拟
- 可调节过电位、扩散系数、SEI 均匀性、各向异性和噪声强度
- 自动记录沉积单元数、最大高度、平均高度、粗糙度、活性尖端数和覆盖率
- 自动导出 CSV 数据、最终形貌图、生长指标曲线、关键阶段图和动态 GIF
- 适合作为课程论文配套仿真、参数敏感性分析和机器学习形貌数据生成的基础代码
.
├── lithium_dendrite.py # 主程序:CA 模型、仿真运行与结果导出
├── README.md # 项目说明文档
└── lithium_dendrite_outputs/ # 运行后自动生成的输出目录
├── dendrite_growth_data.csv # 每一步的生长指标数据
├── dendrite_final.png # 最终枝晶形貌图
├── growth_metrics.png # 生长指标随时间变化曲线
├── dendrite_growth.gif # 枝晶生长过程动画
├── growth_stages.png # 关键阶段形貌图
└── summary.txt # 仿真结果摘要
建议使用 Python 3.9 或更高版本。
pip install numpy pandas matplotlib pillow其中 pillow 用于保存 GIF 动画。
也可以创建 requirements.txt:
numpy
pandas
matplotlib
pillow
然后运行:
pip install -r requirements.txt克隆或下载本仓库后,在项目根目录运行:
python lithium_dendrite.py运行完成后,程序会在 lithium_dendrite_outputs/ 文件夹中生成结果文件,并在终端输出文件路径和末尾几行生长数据。
可以直接修改 main() 函数中的参数:
model = LithiumDendriteCA(
width=120,
height=120,
steps=180,
eta=0.64,
D=0.26,
sei_uniformity=0.70,
anisotropy=0.40,
noise=0.08,
seed=42,
)也可以将模型作为模块导入,用于自定义参数扫描:
from lithium_dendrite import LithiumDendriteCA, save_outputs
model = LithiumDendriteCA(
width=160,
height=160,
steps=250,
eta=0.70,
D=0.25,
sei_uniformity=0.65,
anisotropy=0.45,
noise=0.08,
seed=2026,
)
df = model.run()
paths = save_outputs(df, model.frames, outdir="outputs_eta_070")
print(df.tail())| 参数 | 默认值 | 含义 |
|---|---|---|
width |
120 |
模拟区域横向格点数 |
height |
120 |
模拟区域纵向格点数 |
steps |
180 |
元胞自动机演化步数 |
eta |
0.62 |
无量纲过电位参数,值越大,沉积驱动力越强 |
D |
0.28 |
无量纲扩散/平滑参数,值越大,生长更容易被扩散效应平滑 |
sei_uniformity |
0.72 |
SEI 膜均匀性,值越低表示界面热点越明显 |
anisotropy |
0.35 |
各向异性或尖端优先生长强度 |
noise |
0.08 |
随机扰动强度 |
seed |
42 |
随机种子,用于复现实验结果 |
程序首先在底部初始化一层金属锂基底,并加入少量初始表面微扰,用于模拟粗糙电极或缺陷位点。每一步演化时,程序会寻找所有与已有金属锂相邻的电解液格点作为候选沉积位置。
对每个候选格点,程序计算一个局部沉积概率。该概率综合考虑以下因素:
- 过电位驱动:
eta越高,锂离子还原沉积倾向越强; - 邻域支撑:周围已有金属锂越多,越容易继续沉积;
- 尖端效应:局部凸起位置更容易获得较大的等效电流密度;
- 扩散平滑:
D越高,局部生长差异越容易被削弱; - SEI 不均匀性:
sei_uniformity越低,界面热点越强,沉积越不均匀; - 随机噪声:用于模拟实验中的界面扰动和局部不确定性。
在代码中,局部电流密度的代理量 j_proxy 被映射为沉积概率:
p = 0.02 + 0.42 * tanh(1.35 * j_proxy)随后,程序按概率从候选格点中选择若干位置转化为金属锂,从而形成逐步向电解液方向推进的枝晶结构。
dendrite_growth_data.csv 中包含以下指标:
| 字段 | 含义 |
|---|---|
step |
演化步数 |
deposited_cells |
除初始基底外的沉积格点数量 |
max_height |
当前枝晶最大高度 |
mean_height |
各列沉积高度的平均值 |
roughness |
高度标准差,用于表征表面粗糙度 |
active_tips |
活性尖端数量 |
coverage_ratio |
发生沉积的横向覆盖比例 |
运行程序后,可在 lithium_dendrite_outputs/ 中查看模拟结果。若将输出文件一并提交到 GitHub,可以在 README 中加入以下图片展示:



本程序对应论文中“数值模拟生成形貌数据”和“基于物理机理解释枝晶生长”的部分。论文从热力学驱动力、离子传输、界面反应动力学和 SEI 膜不均匀性等角度讨论锂枝晶的形成机制;程序则将这些因素转化为可调参数和概率生长规则,用于生成枝晶形貌及其随时间演化的统计指标。
论文中进一步讨论了 CNN、CNN-LSTM 和机器学习回归模型在枝晶形貌识别、电化学时间序列预测和电解质设计中的应用。本仓库当前主要实现了形貌仿真与数据导出,可作为后续 AI 模型训练数据生成的基础。
- 引入显式锂离子浓度场,使用 Fick 扩散方程或 Nernst-Planck 方程更新浓度分布;
- 将 Butler-Volmer 界面动力学与局部沉积概率更严格地耦合;
- 增加参数扫描脚本,比较不同
eta、D、sei_uniformity下的枝晶形貌差异; - 将输出图像用于 CNN 形貌分类或分形维数预测;
- 将时间序列指标输入 LSTM/GRU 模型,实现枝晶风险预测;
- 根据实验或文献数据校准参数,使模型更接近真实电池体系。
本项目主要用于课程作业展示、物理图像理解和简化仿真练习。模型中的参数为无量纲或归一化参数,不能直接等同于真实电池中的物理量。若用于科研或工程分析,需要进一步引入真实材料参数、边界条件、实验验证和更严格的电化学模型。
何嘉乐,同济大学
本项目目前作为课程作业与学习交流使用。若需要正式开源,建议在仓库中补充 MIT License 或其他合适的开源许可证。
