本项目旨在解决 2026年美国大学生数学建模竞赛(MCM) A题,即建立一个连续时间模型来预测智能手机电池的耗尽时间 (Time-to-Empty, TTE)。我们超越了传统的简单线性外推,构建了一个深度结合 电化学动力学、随机用户行为 和 多物理场老化机制 的综合预测模型。
该模型不仅能够根据用户的使用习惯(如游戏、视频、待机)进行负载分解,还能通过随机微分方程 (SDE) 捕捉电池内部复杂的非线性物理过程,从而提供高精度的 TTE 预测及其不确定性区间。
- 连续时间建模 (Continuous-Time Modeling): 使用随机微分方程 (SDE) 描述电池状态 (SOC)随时间的动态演变。
-
多物理场耦合 (Multi-Physics Coupling): 集成了二阶RC等效电路模型 (ECM)、Arrhenius温度补偿机制(针对内阻
$R_0$ )以及基于 Tafel 动力学的 SEI 膜生长老化模型。 - 随机用户行为 (Stochastic User Behavior): 采用隐马尔可夫模型 (HMM) 模拟用户在不同应用场景(如游戏、视频、待机)之间的随机切换,使得负载预测更加真实。
- 高精度状态估计 (State Estimation): 利用扩展卡尔曼滤波 (EKF) 和物理信息神经网络 (PINN) 进行实时 SOC 估计,有效处理观测噪声。
- 不确定性量化 (Uncertainty Quantification): 通过蒙特卡洛模拟 (Monte Carlo Simulation) 提供 TTE 的概率分布和 90% 置信区间。
code/: 包含所有源代码、数据处理脚本和仿真模型。run_complete_workflow.py: 主程序入口,一键执行全流程(数据加载 -> 参数辨识 -> 模型校准 -> 预测 -> 灵敏度分析)。model_development/: 核心模型库(包含电池动力学、电路模型、EKF滤波器等模块)。processed_data/&processed_find_data/: 预处理后的实验数据(OCV曲线、充放电数据)和特征提取数据。paper_results/: 存放仿真生成的图表、数据和分析报告。
final/: 包含最终提交的论文文档。2612876.tex: 论文 LaTeX 源码。2612876.pdf: 论文 PDF 文件(包含详细的数学推导和结果分析)。
data/(或数据/): 原始数据文件夹。
我们的解决方案分为四个核心层次:
-
负载分解层 (Load Decomposition Layer):
- 将手机总功耗分解为:屏幕 (Screen)、处理器 (CPU)、网络 (Network)、GPS、后台 (Background) 和 AI组件。
- 利用 HMM 模拟用户状态转移,生成随机负载功率
$P_{total}(t)$ 。
-
电池动力学层 (Battery Dynamics Layer):
- 基于 二阶RC等效电路 描述电池内部极化效应。
- 引入 Arrhenius方程 修正温度对内阻
$R_0$ 和极化参数的影响,准确捕捉低温下的性能衰减。
-
热-老化反馈层 (Thermal & Aging Feedback Layer):
- 建立耦合
$\sqrt{t}$ 规律的 SEI膜生长模型,量化容量衰减和内阻增加。 - 考虑焦耳热 (
$I^2R$ ) 和反应热对电池温度的影响。
- 建立耦合
-
观测与修正层 (Observer & Correction Layer):
- 使用 扩展卡尔曼滤波 (EKF) 融合端电压观测值,实时修正 SOC 估计偏差,确保闭环稳定性。
基于模型的仿真分析,我们得出以下关键结论:
- 游戏模式是续航杀手: 高负载下的非线性焦耳热效应和电压降显著缩短电池寿命(仅约为待机时间的 1/10)。
- SOH影响被高估: 500次循环后 SOH 降至 99.8%,对单次续航的影响远小于软件功耗膨胀 (App Power Inflation) 带来的影响。用户感知的“不耐用”更多源于应用越来越耗电,而非电池本身的化学老化。
- 低温极具破坏性: 低温会导致内阻急剧增加,显著降低有效放电容量(在 -10°C 下续航可能缩减 28% 以上)。
-
关键因素: 电池容量 (
$Q_n$ ) 和平均功率 ($P_{avg}$ ) 是影响续航的最主要因素;内阻 ($R_0$ ) 的影响相对较小,但在低温或低电量时变得关键。
项目代码主要基于 Python 编写。
请确保安装了以下依赖库:
pip install numpy pandas matplotlib scipy在项目根目录下,执行以下命令即可重现论文中的所有结果:
python code/run_complete_workflow.py该脚本将自动执行以下步骤:
- 数据加载: 读取并预处理实验数据。
- 参数辨识: 从数据中提取 OCV 曲线系数、RC 参数等。
- 模型校准: 验证模型在不同工况下的准确性。
- 用户行为分析: 训练 HMM 模型以模拟用户使用习惯。
- TTE 预测: 执行确定性预测和蒙特卡洛模拟,生成 TTE 分布。
- 灵敏度分析: 分析各参数对 TTE 的影响权重。
- 报告生成: 在
code/paper_results/目录下生成图表和汇总报告。
注意:由于Github限制,我们删除了部分超过100MB的数据