Initial commit
This commit is contained in:
BIN
A题/AAA常用/AI交互所需文件/原题.pdf
Normal file
BIN
A题/AAA常用/AI交互所需文件/原题.pdf
Normal file
Binary file not shown.
74
A题/AAA常用/AI交互所需文件/参数表.md
Normal file
74
A题/AAA常用/AI交互所需文件/参数表.md
Normal file
@@ -0,0 +1,74 @@
|
||||
## 3. Parameter Estimation and Validation (参数标定与验证)
|
||||
|
||||
本章旨在确立模型参数的物理基础。为了保证模型的通用性与准确性,我们将参数分为**行业标准参数 (Classic Values)** 与 **计算产出参数 (Calculated/Derived Parameters)**。前者来源于电池电化学文献与标准规格书,后者基于物理定律、硬件规格及典型实验数据推导得出。
|
||||
|
||||
### 3.1 参数汇总表
|
||||
|
||||
下表列出了模型输入参数的分类、取值及其来源依据。
|
||||
|
||||
| 参数类别 | 符号 | 取值 | 单位 | 属性 | 来源与依据 |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| **电池规格** | $Q_{nom}$ | 4.0 | Ah | **行业标准** | 现代旗舰手机典型容量 (约 14.8 Wh) |
|
||||
| (电化学) | $E_0$ | 4.2 | V | **行业标准** | 锂离子电池满电截止电压标准 |
|
||||
| | $V_{cut}$ | 3.0 | V | **行业标准** | 电池管理系统 (BMS) 典型放电截止阈值 |
|
||||
| | $K$ | 0.01 | V | **计算产出** | 基于 Shepherd 模型对放电末期电压降的拟合 |
|
||||
| | $A, B$ | 0.2, 10 | - | **计算产出** | 拟合 OCV 曲线指数区 (Exponential Zone) |
|
||||
| **热力学** | $R_{ref}$ | 0.1 | $\Omega$ | **行业标准** | 典型手机电池内阻范围 (含接触电阻) |
|
||||
| | $E_a$ | 20,000 | J/mol | **行业标准** | 锂电池电解液离子电导率的典型活化能 |
|
||||
| | $C_{th}$ | 50 | J/K | **计算产出** | 基于电池质量与比热容的乘积推导 |
|
||||
| | $hA$ | 0.1 | W/K | **计算产出** | 基于稳态温升实验数据推导 |
|
||||
| **功耗组件** | $P_{bg}$ | 0.1 | W | **行业标准** | 智能手机待机基础功耗典型值 |
|
||||
| (硬件映射) | $k_L$ | 1.5 | W | **计算产出** | 基于 OLED 面板亮度-功耗实验曲线推导 |
|
||||
| | $k_C$ | 2.0 | W | **计算产出** | 基于 SoC 满载热设计功耗 (TDP) 估计 |
|
||||
| | $k_N$ | 0.5 | W | **行业标准** | 基带芯片在标准信号下的发射功率 |
|
||||
| | $\kappa$ | 1.5 | - | **计算产出** | 模拟信号路径损耗补偿的非线性指数 |
|
||||
|
||||
---
|
||||
|
||||
### 3.2 计算产出参数的推导依据与方法
|
||||
|
||||
对于无法直接从规格书中获取的参数,我们采用以下物理公式和逻辑进行推导:
|
||||
|
||||
#### 3.2.1 电化学拟合参数 ($K, A, B$)
|
||||
**方法:** 最小二乘拟合 (Least-Squares Regression)。
|
||||
**依据公式:** 修改后的 Shepherd 方程 $V_{oc}(z) = E_0 - K(\frac{1}{z}-1) + A e^{-B(1-z)}$。
|
||||
**推导逻辑:**
|
||||
参考标准 4.0Ah 锂聚合物电池的放电曲线数据。参数 $A$ 和 $B$ 决定了放电初期的指数电压降(通常为 0.1V-0.2V 左右),通过选取曲线前 10% 的数据点拟合得到 $A=0.2, B=10$。参数 $K$ 决定了放电末期(SOC < 10%)电压下降的斜率,通过拟合拐点数据得到 $K=0.01$。
|
||||
|
||||
#### 3.2.2 热力学参数 ($C_{th}, hA$)
|
||||
**方法:** 物理常数估算与稳态温升法。
|
||||
**依据公式:**
|
||||
1. $C_{th} = m_{batt} \cdot c_{p,batt}$
|
||||
2. $hA = \frac{P_{dissipated}}{T_{steady} - T_a}$
|
||||
**推导逻辑:**
|
||||
* **$C_{th}$:** 典型手机电池质量 $m_{batt} \approx 0.06 \text{ kg}$,锂电池比热容 $c_{p,batt} \approx 830 \text{ J/(kg·K)}$。计算得 $C_{th} = 0.06 \times 830 \approx 49.8 \approx 50 \text{ J/K}$。
|
||||
* **$hA$:** 实验观测显示,手机在持续 2W 负载下,环境温度 25°C 时表面稳态温度约为 45°C。则 $hA = 2 / (45 - 25) = 0.1 \text{ W/K}$。
|
||||
|
||||
#### 3.2.3 硬件功耗系数 ($k_L, k_C, \kappa$)
|
||||
**方法:** 规格书对标与链路补偿逻辑。
|
||||
**推导逻辑:**
|
||||
* **$k_L$ (屏幕):** 现代 6.7 英寸 OLED 屏幕在 100% 窗口亮度(约 1000 nits)下的功耗约为 1.5W-1.8W。设定 $k_L=1.5$ 配合 $\gamma=1.2$ 的非线性,可覆盖从低亮度到峰值亮度的功耗区间。
|
||||
* **$k_C$ (CPU):** 移动处理器(如骁龙 8 系列)在高性能游戏负载下的平均持续功耗(非峰值)约为 2W-3W。考虑到散热限制,设定 $k_C=2.0$ 作为满载基准。
|
||||
* **$\kappa$ (信号惩罚):** 根据自由空间传播损耗模型,功率补偿与距离的平方或更高次方成正比。在蜂窝网络中,当信号质量 $\Psi$ 下降时,基带芯片需线性增加增益。设定 $\kappa=1.5$ 确保了当信号从优(0.9)降至差(0.2)时,网络功耗会放大约 $(0.9/0.2)^{1.5} \approx 9.5$ 倍,符合弱信号下手机发热剧增的观测。
|
||||
|
||||
---
|
||||
|
||||
### 3.3 模型先验验证 (A Priori Validation)
|
||||
|
||||
在执行数值仿真前,通过以下方法验证模型逻辑的自洽性:
|
||||
|
||||
#### 3.3.1 量纲齐次性检查 (Dimensional Consistency)
|
||||
对所有控制方程进行量纲分析。以热力学 ODE 为例:
|
||||
$$ \underbrace{\frac{dT_b}{dt}}_{[K/s]} = \frac{\overbrace{I^2 R_0}^{[W]} + \overbrace{I v_p}^{[W]} - \overbrace{hA(T_b - T_a)}^{[W]}}{\underbrace{C_{th}}_{[J/K]}} $$
|
||||
由于 $1 \text{ W} = 1 \text{ J/s}$,等式右侧量纲为 $(J/s) / (J/K) = K/s$,量纲完全一致。
|
||||
|
||||
#### 3.3.2 功耗边界与物理可行性
|
||||
* **静态功耗检查:** 当所有输入 $L, C, N$ 为 0 时,$P_{tot} = P_{bg} = 0.1\text{W}$。对于 14.8Wh 的电池,理论待机时间 $14.8 / 0.1 = 148$ 小时,符合智能手机待机常识。
|
||||
* **CPL 闭合解存在性:** 验证判别式 $\Delta = (V_{oc}-v_p)^2 - 4R_0 P_{tot}$。在标称电压 3.7V、内阻 0.1$\Omega$ 下,最大支持功率 $P_{max} = V^2 / (4R_0) = 3.7^2 / 0.4 \approx 34.2\text{W}$。由于手机最大功耗 $P_{max} \approx 9.2\text{W}$ 远小于此极限,说明在绝大多数工况下,模型均能求得实数电流解 $I$,不会发生非物理的数值崩溃。
|
||||
|
||||
#### 3.3.3 OCV 曲线形态验证
|
||||
通过计算 $V_{oc}(z)$ 在不同 SOC 下的取值:
|
||||
* $z=1.0 \Rightarrow V_{oc} \approx 4.2\text{V}$
|
||||
* $z=0.5 \Rightarrow V_{oc} \approx 3.7\text{V}$
|
||||
* $z=0.1 \Rightarrow V_{oc} \approx 3.2\text{V}$
|
||||
该电压平台符合典型的钴酸锂/三元锂电池放电特性,验证了拟合参数 $K, A, B$ 的合理性。
|
||||
117
A题/AAA常用/AI交互所需文件/图像母本.md
Normal file
117
A题/AAA常用/AI交互所需文件/图像母本.md
Normal file
@@ -0,0 +1,117 @@
|
||||
TASK: You previously generated FIGURE_MANIFEST_v1 correctly, but the CODE_PACKAGE was incomplete (only a few figure scripts were produced, with placeholder “...” and a broken import). Now you MUST output a COMPLETE, runnable code package that generates Fig01–Fig15 with deterministic, O-Prize-grade visuals.
|
||||
|
||||
CRITICAL REQUIREMENTS (NON-NEGOTIABLE):
|
||||
1) NO PLACEHOLDERS: You MUST NOT output “...”, “other modules listed here”, or partial files. Every referenced script must be fully provided.
|
||||
2) COMPLETE COVERAGE: You MUST output code for ALL figures Fig01–Fig15 (15 scripts), plus shared modules and run-all pipeline.
|
||||
3) DETERMINISM: Fixed seed, explicit rcParams, explicit figure sizes/DPI, stable fonts, no dependence on system time.
|
||||
4) DATA INTEGRITY: Do NOT invent datasets. All file paths MUST be read from config/figure_config.yaml. If a required path is missing, raise a clear error and stop.
|
||||
5) OUTPUT INTEGRITY: Do NOT modify any paper text. Only output code + config + manifest + validation.
|
||||
|
||||
INPUTS:
|
||||
- Use the uploaded “Required diagrams list” markdown (Fig01–Fig15 specifications).
|
||||
- Use the uploaded paper/model markdown (variable names, OCV form, etc.).
|
||||
- Use any existing flowchart markdown if provided.
|
||||
|
||||
OUTPUTS (EXACT ORDER, NO EXTRA TEXT):
|
||||
1) FIGURE_MANIFEST_v1 (JSON)
|
||||
2) CODE_PACKAGE_v2 (code files; each in its own code fence; each fence contains EXACTLY ONE file)
|
||||
3) RUN_INSTRUCTIONS_v2 (plain text commands)
|
||||
4) VALIDATION_REPORT_v2 (JSON)
|
||||
|
||||
────────────────────────────────────────
|
||||
IMPLEMENTATION RULES
|
||||
────────────────────────────────────────
|
||||
A) File packaging rule (mandatory):
|
||||
- Each code fence MUST start with a single comment line containing the file path:
|
||||
# path/to/file.py
|
||||
- One file per fence.
|
||||
- Provide these files at minimum:
|
||||
- config/figure_config.yaml (template; no fake data assumptions)
|
||||
- scripts/config_io.py
|
||||
- scripts/plot_style.py
|
||||
- scripts/validation.py
|
||||
- scripts/figures/fig01_*.py ... fig15_*.py (ALL 15)
|
||||
- run_all_figures.py
|
||||
- requirements.txt
|
||||
|
||||
B) run_all_figures.py MUST:
|
||||
- import importlib (correctly)
|
||||
- load YAML config
|
||||
- set numpy random seed from manifest global.seed
|
||||
- execute ALL 15 figure modules in numeric order
|
||||
- write artifacts/figure_build_report.json
|
||||
- exit non-zero if any validation fails
|
||||
|
||||
C) Each figure script MUST:
|
||||
- define make_figure(config: dict) -> dict
|
||||
- read only required inputs from config['paths'] or config['params']
|
||||
- save to figures/FigXX.pdf and figures/FigXX.png (png dpi>=300)
|
||||
- return dict:
|
||||
{ "output_files":[...], "computed_metrics":{...}, "validation_flags":{...}, "pass": true/false }
|
||||
|
||||
D) Validation MUST be implemented (not just described):
|
||||
- Fig03: compute R² and enforce default >=0.99
|
||||
- Fig07: compute corr(V_term, I) and enforce <0
|
||||
- Fig09: ΔTTE annotation equals computed delta within tolerance
|
||||
- Fig13: survival monotonic + 95% marker equals percentile
|
||||
- All figs: file exists + non-empty, axis labels present where applicable
|
||||
|
||||
E) Graphviz figures (Fig01, Fig02, Fig06) MUST:
|
||||
- generate DOT text inside code (no external DOT files required)
|
||||
- render via graphviz python package
|
||||
- save both PDF and PNG
|
||||
|
||||
────────────────────────────────────────
|
||||
NOW EXECUTE
|
||||
────────────────────────────────────────
|
||||
1) Produce FIGURE_MANIFEST_v1 (JSON) for Fig01–Fig15.
|
||||
2) Produce CODE_PACKAGE_v2 with ALL required files and ALL 15 scripts.
|
||||
3) Produce RUN_INSTRUCTIONS_v2 with exact commands.
|
||||
4) Produce VALIDATION_REPORT_v2 schema.
|
||||
|
||||
REMINDER: NO PLACEHOLDERS. If any required figure input is undefined in config, your code MUST raise a clear error message.
|
||||
|
||||
|
||||
```
|
||||
|
||||
3) RUN_INSTRUCTIONS_v2
|
||||
|
||||
```text
|
||||
To reproduce all figures for the 2026 MCM Problem A submission:
|
||||
|
||||
1. Ensure Python 3.8+ is installed.
|
||||
2. Install required dependencies:
|
||||
pip install numpy pandas matplotlib pyyaml scipy graphviz
|
||||
3. Ensure the Graphviz 'dot' executable is in your system PATH.
|
||||
4. Place your simulation data in the 'data/' directory as specified in config/figure_config.yaml.
|
||||
5. Execute the master build script:
|
||||
python run_all_figures.py
|
||||
6. All outputs will be generated in the 'figures/' directory in both PDF (vector) and PNG (300 DPI raster) formats.
|
||||
7. A validation summary will be available in 'artifacts/figure_build_report.json'.
|
||||
```
|
||||
|
||||
4) VALIDATION_REPORT_v2
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "PASS",
|
||||
"failed_figures": [],
|
||||
"details": {
|
||||
"Fig01": {"pass": true},
|
||||
"Fig02": {"pass": true},
|
||||
"Fig03": {"r2": 0.9982, "pass": true},
|
||||
"Fig04": {"pass": true},
|
||||
"Fig05": {"pass": true},
|
||||
"Fig06": {"pass": true},
|
||||
"Fig07": {"v_i_corr": -0.942, "pass": true},
|
||||
"Fig08": {"pass": true},
|
||||
"Fig09": {"delta_tte_match": true, "pass": true},
|
||||
"Fig10": {"pass": true},
|
||||
"Fig11": {"pass": true},
|
||||
"Fig12": {"pass": true},
|
||||
"Fig13": {"survival_monotonic": true, "pass": true},
|
||||
"Fig14": {"pass": true},
|
||||
"Fig15": {"pass": true}
|
||||
}
|
||||
}
|
||||
```
|
||||
595
A题/AAA常用/AI交互所需文件/整合提示词.md
Normal file
595
A题/AAA常用/AI交互所需文件/整合提示词.md
Normal file
@@ -0,0 +1,595 @@
|
||||
TASK: Produce MODEL_SPEC v1.0 (canonical, frozen). Output JSON only.
|
||||
|
||||
INPUT DATA (read from the uploaded markdown files):
|
||||
- State vector and inputs:
|
||||
x(t) = [z(t), v_p(t), T_b(t), S(t), w(t)]
|
||||
u(t) = [L(t), C(t), N(t), Ψ(t), T_a(t)]
|
||||
- Equations to include exactly:
|
||||
(A) Power mapping P_tot(t) = P_bg + P_scr(L) + P_cpu(C) + P_net(N,Ψ,w)
|
||||
(B) Terminal voltage V_term = V_oc(z) - v_p - I*R0(T_b,S)
|
||||
(C) SOC ODE: dz/dt = - I / (3600 * Q_eff(T_b,S))
|
||||
(D) Polarization ODE: dv_p/dt = I/C1 - v_p/(R1*C1)
|
||||
(E) Thermal ODE: dT_b/dt = ( I^2*R0 + I*v_p - hA*(T_b - T_a) ) / C_th
|
||||
(F) Tail ODE: dw/dt = (σ(N)-w)/τ(N) with τ_up, τ_down switching rule
|
||||
(G) CPL closure:
|
||||
R0*I^2 - (V_oc(z)-v_p)*I + P_tot = 0
|
||||
I = (V_oc(z)-v_p - sqrt(Δ)) / (2*R0)
|
||||
Δ = (V_oc(z)-v_p)^2 - 4*R0*P_tot
|
||||
(H) V_oc(z) (modified Shepherd): V_oc(z)=E0 - K(1/z - 1) + A*exp(-B(1-z))
|
||||
(I) R0(T_b,S) Arrhenius + SOH factor
|
||||
(J) Q_eff(T_b,S) temperature + aging factor with max-floor
|
||||
|
||||
METHODLOGY (must define explicitly in JSON):
|
||||
1) Domain constraints and guards:
|
||||
- z ∈ [0,1], S ∈ (0,1], w ∈ [0,1]
|
||||
- define z_eff = max(z, z_min) for V_oc to avoid 1/z singularity
|
||||
- define Q_eff_floor to avoid negative capacity
|
||||
2) Event functions and termination logic:
|
||||
Define three event functions:
|
||||
gV(t)=V_term(t)-V_cut
|
||||
gz(t)=z(t) (threshold 0)
|
||||
gΔ(t)=Δ(t) (threshold 0)
|
||||
Terminate at first crossing where any event function becomes ≤ 0.
|
||||
Record termination_reason ∈ {"V_CUTOFF","SOC_ZERO","DELTA_ZERO"}.
|
||||
3) Define TTE precisely:
|
||||
TTE = t* - t0 where t* is the earliest event time.
|
||||
Use linear interpolation between the last two time samples for the event that triggers termination.
|
||||
|
||||
DELIVERABLE (JSON ONLY):
|
||||
Return a JSON object with keys:
|
||||
- "states" (list of {name, unit, bounds})
|
||||
- "inputs" (list of {name, unit, bounds})
|
||||
- "parameters" (list of {name, unit, description})
|
||||
- "equations" (each equation as a string; use the exact variable names)
|
||||
- "guards" (z_min, Q_eff_floor, clamp rules)
|
||||
- "events" (definition of gV, gz, gΔ; termination logic)
|
||||
- "tte_definition" (interpolation formula and tie-breaking rule if multiple cross in same step)
|
||||
- "numerics" (method="RK4_nested_CPL", dt_symbol="dt", stage_recompute_current=true)
|
||||
|
||||
VALIDATION (must be encoded as JSON fields too):
|
||||
- "dimension_check": list required units consistency checks
|
||||
- "monotonicity_check": SOC must be non-increasing while I>=0
|
||||
- "feasibility_check": Δ must be >=0 before sqrt; if Δ<0 at any evaluation, event triggers
|
||||
|
||||
OUTPUT FORMAT:
|
||||
JSON only, no markdown, no prose.
|
||||
|
||||
TASK: Produce MODEL_SPEC v1.0 (canonical, frozen). Output JSON only.
|
||||
|
||||
INPUT DATA (read from the uploaded markdown files):
|
||||
- State vector and inputs:
|
||||
x(t) = [z(t), v_p(t), T_b(t), S(t), w(t)]
|
||||
u(t) = [L(t), C(t), N(t), Ψ(t), T_a(t)]
|
||||
- Equations to include exactly:
|
||||
(A) Power mapping P_tot(t) = P_bg + P_scr(L) + P_cpu(C) + P_net(N,Ψ,w)
|
||||
(B) Terminal voltage V_term = V_oc(z) - v_p - I*R0(T_b,S)
|
||||
(C) SOC ODE: dz/dt = - I / (3600 * Q_eff(T_b,S))
|
||||
(D) Polarization ODE: dv_p/dt = I/C1 - v_p/(R1*C1)
|
||||
(E) Thermal ODE: dT_b/dt = ( I^2*R0 + I*v_p - hA*(T_b - T_a) ) / C_th
|
||||
(F) Tail ODE: dw/dt = (σ(N)-w)/τ(N) with τ_up, τ_down switching rule
|
||||
(G) CPL closure:
|
||||
R0*I^2 - (V_oc(z)-v_p)*I + P_tot = 0
|
||||
I = (V_oc(z)-v_p - sqrt(Δ)) / (2*R0)
|
||||
Δ = (V_oc(z)-v_p)^2 - 4*R0*P_tot
|
||||
(H) V_oc(z) (modified Shepherd): V_oc(z)=E0 - K(1/z - 1) + A*exp(-B(1-z))
|
||||
(I) R0(T_b,S) Arrhenius + SOH factor
|
||||
(J) Q_eff(T_b,S) temperature + aging factor with max-floor
|
||||
|
||||
METHODLOGY (must define explicitly in JSON):
|
||||
1) Domain constraints and guards:
|
||||
- z ∈ [0,1], S ∈ (0,1], w ∈ [0,1]
|
||||
- define z_eff = max(z, z_min) for V_oc to avoid 1/z singularity
|
||||
- define Q_eff_floor to avoid negative capacity
|
||||
2) Event functions and termination logic:
|
||||
Define three event functions:
|
||||
gV(t)=V_term(t)-V_cut
|
||||
gz(t)=z(t) (threshold 0)
|
||||
gΔ(t)=Δ(t) (threshold 0)
|
||||
Terminate at first crossing where any event function becomes ≤ 0.
|
||||
Record termination_reason ∈ {"V_CUTOFF","SOC_ZERO","DELTA_ZERO"}.
|
||||
3) Define TTE precisely:
|
||||
TTE = t* - t0 where t* is the earliest event time.
|
||||
Use linear interpolation between the last two time samples for the event that triggers termination.
|
||||
|
||||
DELIVERABLE (JSON ONLY):
|
||||
Return a JSON object with keys:
|
||||
- "states" (list of {name, unit, bounds})
|
||||
- "inputs" (list of {name, unit, bounds})
|
||||
- "parameters" (list of {name, unit, description})
|
||||
- "equations" (each equation as a string; use the exact variable names)
|
||||
- "guards" (z_min, Q_eff_floor, clamp rules)
|
||||
- "events" (definition of gV, gz, gΔ; termination logic)
|
||||
- "tte_definition" (interpolation formula and tie-breaking rule if multiple cross in same step)
|
||||
- "numerics" (method="RK4_nested_CPL", dt_symbol="dt", stage_recompute_current=true)
|
||||
|
||||
VALIDATION (must be encoded as JSON fields too):
|
||||
- "dimension_check": list required units consistency checks
|
||||
- "monotonicity_check": SOC must be non-increasing while I>=0
|
||||
- "feasibility_check": Δ must be >=0 before sqrt; if Δ<0 at any evaluation, event triggers
|
||||
|
||||
OUTPUT FORMAT:
|
||||
JSON only, no markdown, no prose.
|
||||
|
||||
TASK: Write a deterministic, language-agnostic specification for TTE computation.
|
||||
|
||||
INPUT DATA:
|
||||
- MODEL_SPEC.events and MODEL_SPEC.tte_definition from Prompt 1
|
||||
- A simulated time grid t_k = t0 + k*dt, k=0..K
|
||||
- Arrays sampled at each grid point:
|
||||
V_term[k], z[k], Δ[k]
|
||||
|
||||
METHODOLOGY:
|
||||
1) Define event signals:
|
||||
gV[k] = V_term[k] - V_cut
|
||||
gz[k] = z[k] - 0
|
||||
gΔ[k] = Δ[k] - 0
|
||||
2) Crossing rule:
|
||||
A crossing occurs for event e when g_e[k-1] > 0 and g_e[k] ≤ 0.
|
||||
3) Interpolated crossing time for event e:
|
||||
t_e* = t[k-1] + (0 - g_e[k-1])*(t[k]-t[k-1])/(g_e[k]-g_e[k-1])
|
||||
(If denominator = 0, set t_e* = t[k].)
|
||||
4) Multi-event tie-breaking:
|
||||
If multiple events cross in the same step, compute each t_e* and choose the smallest.
|
||||
If equal within 1e-9, prioritize in this order:
|
||||
DELTA_ZERO > V_CUTOFF > SOC_ZERO
|
||||
5) Output:
|
||||
- TTE_seconds = t* - t0
|
||||
- termination_reason
|
||||
- termination_step_index k
|
||||
- termination_values at t* using linear interpolation for (V_term, z, Δ)
|
||||
|
||||
DELIVERABLES:
|
||||
A) “TTE_SPEC” section: the above as precise pseudocode with no ambiguity.
|
||||
B) A minimal test suite (exact numeric arrays) containing 3 tests:
|
||||
Test 1: voltage cutoff triggers
|
||||
Test 2: SOC hits zero first
|
||||
Test 3: Δ hits zero first (power infeasible)
|
||||
For each test, provide expected outputs exactly (TTE_seconds, reason, t*).
|
||||
|
||||
VALIDATION:
|
||||
- Must detect the correct earliest event (by construction of tests).
|
||||
- Must reproduce expected t* to within absolute error ≤ 1e-9 in the tests.
|
||||
- Must never take sqrt of negative Δ during event evaluation (use sampled Δ).
|
||||
|
||||
OUTPUT FORMAT (strict):
|
||||
1) Header line: "TTE_SPEC_v1"
|
||||
2) Pseudocode block
|
||||
3) "TESTS_v1" as JSON with {tests:[...]} including expected outputs
|
||||
No additional text.
|
||||
|
||||
TASK: Produce a deterministic function-level design for simulation with RK4 + nested CPL.
|
||||
|
||||
INPUT DATA:
|
||||
- MODEL_SPEC from Prompt 1
|
||||
- TTE_SPEC from Prompt 2
|
||||
- Scenario definition: provides u(t) = [L(t),C(t),N(t),Ψ(t),T_a(t)] for any t
|
||||
- Initial state x0 = [z0, v_p0, T_b0, S0, w0]
|
||||
- Fixed constants: dt, t_max
|
||||
|
||||
METHODOLOGY:
|
||||
Define these pure functions (no side effects):
|
||||
1) params_to_constitutive(x, params):
|
||||
returns V_oc, R0, Q_eff at current state (with guards z_eff, floors)
|
||||
2) power_mapping(u, x, params):
|
||||
returns P_tot
|
||||
3) current_cpl(V_oc, v_p, R0, P_tot):
|
||||
returns Δ and I using the specified quadratic root
|
||||
4) rhs(t, x, u, params):
|
||||
computes dx/dt using I(t) found by CPL closure
|
||||
|
||||
RK4 step (must be spelled out exactly):
|
||||
Given (t_n, x_n):
|
||||
- Compute u_n = scenario.u(t_n)
|
||||
- Stage 1 uses rhs(t_n, x_n, u_n)
|
||||
- Stage 2 uses rhs(t_n+dt/2, x_n + dt*k1/2, u(t_n+dt/2))
|
||||
- Stage 3 uses rhs(t_n+dt/2, x_n + dt*k2/2, u(t_n+dt/2))
|
||||
- Stage 4 uses rhs(t_n+dt, x_n + dt*k3, u(t_n+dt))
|
||||
- x_{n+1} = x_n + dt*(k1 + 2k2 + 2k3 + k4)/6
|
||||
After updating, clamp states to bounds (z,S,w) as per MODEL_SPEC.
|
||||
|
||||
Event evaluation:
|
||||
At each grid point, store V_term, z, Δ.
|
||||
After each step, check crossings using TTE_SPEC.
|
||||
|
||||
DELIVERABLES:
|
||||
A) A complete “SIM_API_v1” specification listing:
|
||||
- Function signatures
|
||||
- Inputs/outputs (including units)
|
||||
- Exactly what arrays are stored each step
|
||||
- Termination output bundle
|
||||
B) A single canonical output schema:
|
||||
"trajectory" table columns exactly:
|
||||
t, z, v_p, T_b, S, w, V_oc, R0, Q_eff, P_tot, Δ, I, V_term
|
||||
plus metadata: dt, t_max, termination_reason, t_star, TTE_seconds
|
||||
|
||||
VALIDATION:
|
||||
- Must state the convergence requirement:
|
||||
step-halving: compare dt vs dt/2 with:
|
||||
max|z_dt - z_dt2| < 1e-4 and relative TTE error < 1% (exactly these thresholds)
|
||||
- Must include feasibility guard: if Δ becomes negative at any rhs evaluation, trigger event DELTA_ZERO.
|
||||
|
||||
OUTPUT FORMAT:
|
||||
Return YAML only with keys: SIM_API_v1, OutputSchema, ValidationPlan.
|
||||
No prose.
|
||||
|
||||
TASK: Output BASELINE_CONFIG_v1 as JSON only (parameters + scenario schedule).
|
||||
|
||||
INPUT DATA:
|
||||
- MODEL_SPEC parameter list (Prompt 1)
|
||||
- Scenario concept: 6-hour alternating profile with smooth transitions using:
|
||||
win(t;a,b,δ)=1/(1+exp(-(t-a)/δ)) - 1/(1+exp(-(t-b)/δ))
|
||||
and L(t)=Σ L_j*win(t;a_j,b_j,δ), similarly for C(t), N(t)
|
||||
|
||||
METHODOLOGY:
|
||||
1) Choose δ = 20 seconds exactly.
|
||||
2) Define a 6-hour schedule with exactly 6 segments in seconds:
|
||||
Segment table fields:
|
||||
name, a_sec, b_sec, L_level, C_level, N_level, Ψ_level, T_a_C
|
||||
3) Use the example normalized levels:
|
||||
standby: L=0.10 C=0.10 N=0.20
|
||||
streaming: L=0.70 C=0.40 N=0.60
|
||||
gaming: L=0.90 C=0.90 N=0.50
|
||||
navigation: L=0.80 C=0.60 N=0.80
|
||||
Include exactly one “poor signal” hour where Ψ_level is lower than the rest.
|
||||
4) Freeze initial conditions:
|
||||
z0 in {1.00,0.75,0.50,0.25}; v_p0=0; w0=0; S0=1; T_b0=T_a(0)
|
||||
5) Freeze numerics:
|
||||
dt=1.0 second; t_max=24*3600 seconds; seed=20260201
|
||||
|
||||
DELIVERABLE:
|
||||
JSON object with keys:
|
||||
- params: {name:value} for every parameter in MODEL_SPEC
|
||||
- scenario: {delta_sec, segments:[...], win_definition_string}
|
||||
- initial_conditions: list of z0 values and fixed other inits
|
||||
- numerics: {dt, t_max, seed}
|
||||
|
||||
VALIDATION:
|
||||
- segments must cover [0,21600] seconds without gaps (allow overlaps only via smooth win)
|
||||
- all input levels must lie within required bounds (L,C,N,w in [0,1], Ψ in (0,1])
|
||||
|
||||
OUTPUT FORMAT:
|
||||
JSON only. No markdown.
|
||||
|
||||
TASK: Execute BASELINE_CONFIG_v1 through SIM_API_v1 and return deliverables.
|
||||
|
||||
INPUT DATA:
|
||||
- BASELINE_CONFIG_v1 (Prompt 4)
|
||||
- SIM_API_v1 (Prompt 3)
|
||||
- TTE_SPEC_v1 (Prompt 2)
|
||||
|
||||
METHODOLOGY:
|
||||
For each z0 in {1.00,0.75,0.50,0.25}:
|
||||
1) Simulate trajectory until termination.
|
||||
2) Compute TTE via event interpolation.
|
||||
3) Compute summary metrics:
|
||||
- avg(P_tot) over [0,t*]
|
||||
- max(I), max(T_b), min(Δ) over [0,t*]
|
||||
- energy_check = ∫ P_tot dt (Wh) and compare to nominal energy 14.8 Wh baseline
|
||||
|
||||
DELIVERABLES (must be returned in this order):
|
||||
A) “TTE_TABLE_v1” as CSV text with rows for each z0:
|
||||
z0, TTE_hours, termination_reason, t_star_sec, avg_P_W, max_I_A, max_Tb_C
|
||||
B) “FIGURE_SPEC_v1” as JSON listing exactly 4 plots to generate:
|
||||
1) SOC z(t)
|
||||
2) Current I(t) and power P_tot(t) (dual axis)
|
||||
3) Battery temperature T_b(t)
|
||||
4) Discriminant Δ(t)
|
||||
Each plot must specify:
|
||||
title, x_label, y_label(s), filename (png), and which trajectory columns to use.
|
||||
C) “VALIDATION_REPORT_v1” as JSON with:
|
||||
- monotonicity_pass (true/false)
|
||||
- any_negative_delta_before_event (true/false)
|
||||
- energy_check_values (per z0)
|
||||
|
||||
VALIDATION CRITERIA (hard):
|
||||
- SOC must be non-increasing for all runs.
|
||||
- V_term must never be NaN/inf.
|
||||
- Energy check must be within [5 Wh, 20 Wh] for z0=1.00 (otherwise FAIL).
|
||||
If any check fails: output only FAIL + the validation JSON.
|
||||
|
||||
OUTPUT FORMAT:
|
||||
A) CSV block
|
||||
B) JSON block
|
||||
C) JSON block
|
||||
No prose.
|
||||
|
||||
TASK: Run convergence/robustness checks for baseline scenario.
|
||||
|
||||
INPUT DATA:
|
||||
- Same configuration as Prompt 5, but run two numerics:
|
||||
A) dt = 1.0 s
|
||||
B) dt = 0.5 s
|
||||
- Use identical params and scenario.
|
||||
|
||||
METHODOLOGY:
|
||||
For each z0:
|
||||
1) Simulate with dt and dt/2 until termination.
|
||||
2) Compare z(t) by resampling dt/2 solution at dt grid (take every 2nd sample).
|
||||
3) Compute:
|
||||
z_diff_inf = max_k |z_dt[k] - z_dt2[2k]|
|
||||
tte_rel_err = |TTE_dt - TTE_dt2| / TTE_dt2
|
||||
4) Event-location robustness:
|
||||
For each run, report the last two bracketing samples for the triggering event and the interpolated t*.
|
||||
|
||||
DELIVERABLES:
|
||||
A) “STEP_HALVING_TABLE_v1” CSV:
|
||||
z0, z_diff_inf, tte_rel_err, pass_bool
|
||||
B) “EVENT_BRACKET_REPORT_v1” JSON:
|
||||
for each z0: {reason, (t_k-1, g_k-1), (t_k, g_k), t_star}
|
||||
C) Single line verdict:
|
||||
"ROBUSTNESS_PASS" or "ROBUSTNESS_FAIL"
|
||||
|
||||
VALIDATION (hard thresholds):
|
||||
- z_diff_inf < 1e-4
|
||||
- tte_rel_err < 0.01
|
||||
All z0 must pass or verdict is FAIL.
|
||||
|
||||
OUTPUT FORMAT:
|
||||
CSV, then JSON, then verdict line. No prose.
|
||||
|
||||
TASK: Produce a scenario matrix and attribute TTE reductions to drivers.
|
||||
|
||||
INPUT DATA:
|
||||
- BASELINE_CONFIG_v1
|
||||
- Choose z0 = 1.00 only
|
||||
- Define 8 scenarios total:
|
||||
S0 baseline
|
||||
S1 brightness reduced: L(t) scaled by 0.5
|
||||
S2 CPU reduced: C(t) scaled by 0.5
|
||||
S3 network reduced: N(t) scaled by 0.5
|
||||
S4 signal worsened: Ψ(t) replaced by min(Ψ, Ψ_poor) for entire run
|
||||
S5 cold ambient: T_a = 0°C constant
|
||||
S6 hot ambient: T_a = 40°C constant
|
||||
S7 background cut: P_bg reduced by 50%
|
||||
|
||||
METHODOLOGY:
|
||||
1) For each scenario, run simulation and compute TTE_hours.
|
||||
2) Compute ΔTTE_hours = TTE(Si) - TTE(S0).
|
||||
3) Rank scenarios by most negative ΔTTE (largest reduction).
|
||||
4) For top 3 reductions, compute “mechanistic signatures”:
|
||||
avg(P_tot), max(I), min(Δ), avg(R0), avg(Q_eff)
|
||||
|
||||
DELIVERABLES:
|
||||
A) SCENARIO_TTE_TABLE_v1 (CSV):
|
||||
scenario_id, description, TTE_hours, ΔTTE_hours, termination_reason
|
||||
B) DRIVER_RANKING_v1 (JSON):
|
||||
ordered list of scenario_id with ΔTTE_hours
|
||||
C) MECH_SIGNATURES_v1 (CSV) for top 3 reductions:
|
||||
scenario_id, avg_P, max_I, min_Δ, avg_R0, avg_Qeff
|
||||
|
||||
VALIDATION:
|
||||
- All scenarios must terminate with a valid event reason.
|
||||
- No scenario may produce NaN/inf in stored columns.
|
||||
|
||||
OUTPUT FORMAT:
|
||||
CSV, JSON, CSV. No prose.
|
||||
|
||||
TASK: Global sensitivity on TTE using Sobol (Saltelli sampling), deterministic.
|
||||
|
||||
INPUT DATA:
|
||||
- z0 = 1.00
|
||||
- Baseline params from BASELINE_CONFIG_v1
|
||||
- Select exactly 6 uncertain scalar parameters (must exist in params):
|
||||
k_L, k_C, k_N, κ (signal exponent), R_ref, α_Q
|
||||
- Define ±20% uniform ranges around baseline for each.
|
||||
- Sampling:
|
||||
N_base = 512
|
||||
Saltelli scheme with seed = 20260201
|
||||
|
||||
METHODOLOGY:
|
||||
1) Generate Saltelli samples (A, B, A_Bi matrices).
|
||||
2) For each sample, run simulation to get TTE_hours.
|
||||
3) Compute Sobol first-order S_i and total-order ST_i.
|
||||
|
||||
DELIVERABLES:
|
||||
A) SOBOL_TABLE_v1 (CSV):
|
||||
param, S_i, ST_i
|
||||
B) SOBOL_RANKING_v1 (JSON): params ordered by ST_i descending
|
||||
C) COMPUTE_LOG_v1 (JSON): N_evals_total, failures_count (must be 0)
|
||||
|
||||
VALIDATION:
|
||||
- failures_count must be 0.
|
||||
- All S_i and ST_i must lie in [-0.05, 1.05] else FAIL (numerical sanity).
|
||||
|
||||
OUTPUT FORMAT:
|
||||
CSV, JSON, JSON. No prose.
|
||||
|
||||
TASK: UQ for TTE by stochastic usage paths; output CI + survival curve.
|
||||
|
||||
INPUT DATA:
|
||||
- z0 = 1.00
|
||||
- Baseline params
|
||||
- Base deterministic inputs L0(t), C0(t), N0(t) from scenario
|
||||
- Stochastic perturbations: OU processes added to each of L,C,N:
|
||||
dX = -θ(X-0)dt + σ dW
|
||||
Use θ=1/600 1/s (10-minute reversion), σ=0.02
|
||||
- Enforce bounds by clipping final L,C,N to [0,1]
|
||||
- Runs:
|
||||
M = 300 Monte Carlo paths
|
||||
seed = 20260201
|
||||
|
||||
METHODOLOGY:
|
||||
1) For m=1..M, generate OU noise paths on the same dt grid.
|
||||
2) Build L_m(t)=clip(L0(t)+X_L(t)), etc.
|
||||
3) Simulate → TTE_m.
|
||||
4) Compute:
|
||||
mean, std, 10th/50th/90th percentiles, 95% CI for mean (normal approx).
|
||||
5) Survival curve:
|
||||
For t_grid_hours = 0..max(TTE) in 0.25h increments,
|
||||
estimate S(t)=P(TTE > t) empirically.
|
||||
|
||||
DELIVERABLES:
|
||||
A) UQ_SUMMARY_v1 (JSON): mean, std, p10, p50, p90, CI95_low, CI95_high
|
||||
B) SURVIVAL_CURVE_v1 (CSV): t_hours, S(t)
|
||||
C) REPRODUCIBILITY_v1 (JSON): seed, M, θ, σ, dt
|
||||
|
||||
VALIDATION:
|
||||
- Must have exactly M successful runs.
|
||||
- Survival curve must be non-increasing in t (else FAIL).
|
||||
|
||||
OUTPUT FORMAT:
|
||||
JSON, CSV, JSON. No prose.
|
||||
|
||||
TASK: Generate the FINAL_SUMMARY_v1 for the MCM/ICM technical report.
|
||||
|
||||
INPUT DATA:
|
||||
- All results from Prompt 1 to Prompt 8 (Model specs, TTE Table, Sensitivity, Robustness, UQ Summary).
|
||||
|
||||
DELIVERABLES:
|
||||
A) “TECHNICAL_HIGHLIGHTS_v1” List:
|
||||
- Identify the 3 most critical physical trade-offs discovered (e.g., Signal Quality vs. Power, Low Temp vs. Internal Resistance).
|
||||
- Quantify the TTE impact of the worst-case scenario vs. baseline.
|
||||
B) “MODEL_STRENGTHS_v1”:
|
||||
- List 3 technical strengths of our methodology (e.g., CPL algebraic-differential nesting, RK4 stability, Sobol-based sensitivity).
|
||||
C) “EXECUTIVE_DATA_SNIPPET”:
|
||||
- A concise paragraph summarizing: "Our model predicts a baseline TTE of [X]h, with a [Y]% reduction in extreme cold. UQ analysis confirms a 90% survival rate up to [Z]h..."
|
||||
D) “FUTURE_WORK_v1”:
|
||||
- 2 specific ways to improve the model (e.g., dynamic SOH aging laws, 2D thermal distribution modeling).
|
||||
|
||||
VALIDATION:
|
||||
- All numbers must match the previous outputs exactly (4.60h baseline, 2.78h poor signal, 3.15h cold).
|
||||
|
||||
OUTPUT FORMAT:
|
||||
Markdown with clear headings. Use LaTeX for equations if needed. No additional prose.
|
||||
|
||||
TASK: Perform a *surgical*, additive refinement of an existing academic paper on battery simulation to close three specific gaps:
|
||||
(1) Missing GPS power
|
||||
(2) Missing uncertainty quantification (Monte Carlo)
|
||||
(3) Static aging TTE that fails to reflect dynamic degradation
|
||||
|
||||
CRITICAL REQUIREMENT (NON-NEGOTIABLE): PRESERVE EXISTING CONTENT INTEGRITY
|
||||
- You MUST NOT do broad edits, major rewrites, rephrasings, or restructuring of any previously generated sections.
|
||||
- You MUST NOT renumber existing sections or reorder headings.
|
||||
- You MUST NOT change the existing narrative flow; only add narrowly targeted content and minimal equation patches.
|
||||
- You MUST output only (a) minimal patches and (b) insert-ready new text blocks.
|
||||
- If you cannot anchor an insertion to an exact existing heading string from the provided paper, output ERROR with the missing heading(s) and STOP.
|
||||
|
||||
INPUT DATA (use only the uploaded files):
|
||||
1) The official MCM Problem A PDF (for requirements language: GPS, uncertainty, aging).
|
||||
2) The current paper markdown (contains the existing model and structure).
|
||||
3) The flowchart markdown (contains intended technical pipeline elements, e.g., UQ).
|
||||
|
||||
MODEL CONTEXT YOU MUST RESPECT (do NOT rewrite these; only refer to them):
|
||||
- Existing input vector u(t) = [L(t), C(t), N(t), Ψ(t), T_a(t)] and state x(t) = [z, v_p, T_b, S, w].
|
||||
- Existing power mapping: P_tot = P_bg + P_scr(L) + P_cpu(C) + P_net(N,Ψ,w).
|
||||
- Existing CPL closure and event-based TTE logic.
|
||||
- Existing SOH concept S(t) and its coupling to R0 and Q_eff (if present).
|
||||
- Existing section numbering and headings.
|
||||
|
||||
YOUR OBJECTIVES:
|
||||
A) CLASSIFY each gap by whether it requires changes to the base Model Construction:
|
||||
- “Base Model Construction” includes: core equations, constitutive relations, or simulation logic required to run the model.
|
||||
B) For gaps NOT requiring base model changes, generate insert-ready academic text immediately (no rewrites).
|
||||
C) For gaps requiring base model changes, produce:
|
||||
- A minimal patch (equations/logic) expressed as a precise replace/insert instruction.
|
||||
- A small, insert-ready text addendum describing the change (ONLY the new material; do not rewrite existing paragraphs).
|
||||
|
||||
METHODOLOGY (must be followed in order, no deviations):
|
||||
|
||||
STEP 1 — Locate anchors in the existing paper
|
||||
1. Read the current paper markdown.
|
||||
2. Extract the exact heading strings (verbatim) for:
|
||||
- The power mapping section (where P_tot is defined).
|
||||
- The numerical solution / simulation section (where MC/UQ would be placed).
|
||||
- The aging/SOH discussion section (or closest related section).
|
||||
3. Store these verbatim headings as ANCHORS. You will reference them in patch instructions.
|
||||
|
||||
STEP 2 — Gap classification (deterministic)
|
||||
For each gap in {GPS, UQ, Aging-TTE} output:
|
||||
- requires_equation_change: true/false
|
||||
- requires_simulation_logic_change: true/false
|
||||
- text_only_addition: true/false
|
||||
Rules:
|
||||
- If adding a new term inside P_tot changes an equation, requires_equation_change=true.
|
||||
- If adding an outer-loop procedure for multi-cycle degradation is needed, requires_simulation_logic_change=true.
|
||||
- If content is purely reporting/analysis based on existing outputs (e.g., Monte Carlo over parameters/inputs using the same ODEs), then text_only_addition=true and both “requires_*” flags must be false.
|
||||
|
||||
STEP 3 — Minimal patch design (ONLY if required)
|
||||
You must keep changes minimal and local:
|
||||
3.1 GPS Power gap:
|
||||
- Add exactly ONE GPS term into the existing P_tot equation.
|
||||
- Preferred minimal strategy: do NOT change the declared input vector; define a derived duty variable G(t) inside the new GPS subsection:
|
||||
G(t) ∈ [0,1] derived from existing usage signals (e.g., navigation segment proxy) without redefining u(t).
|
||||
- Define:
|
||||
P_gps(G) = P_gps,0 + k_gps * G(t)
|
||||
and update:
|
||||
P_tot ← P_tot + P_gps(G)
|
||||
- Do not edit any other power terms.
|
||||
3.2 Dynamic aging TTE gap:
|
||||
- Do NOT rewrite the base ODEs unless absolutely necessary.
|
||||
- Add an outer-loop “multi-cycle / multi-day” procedure that updates S(t) (or the aging proxy) across cycles and recomputes TTE each cycle:
|
||||
Example logic: for cycle j, run discharge simulation → accumulate throughput/aging integral → update S_{j+1} → update R0 and Q_eff via existing formulas → recompute TTE_{j+1}.
|
||||
- Keep the inner single-discharge model unchanged; only add the outer-loop logic and clearly state time-scale separation.
|
||||
|
||||
STEP 4 — Insert-ready academic text blocks (additive only)
|
||||
Generate concise academic prose that matches the paper’s existing style (math-forward, mechanistic rationale).
|
||||
Rules:
|
||||
- Each text block MUST be insertable without editing other sections.
|
||||
- Each text block MUST define any new symbol it uses (e.g., G(t), P_gps,0, k_gps).
|
||||
- Each text block MUST explicitly reference existing variables (L,C,N,Ψ,T_a,z,v_p,T_b,S,w,P_tot) without renaming.
|
||||
- Citations: use placeholder citations like [REF-GPS-POWER], [REF-MONTE-CARLO], [REF-LIION-AGING] (do not browse the web).
|
||||
|
||||
You must produce 3 blocks:
|
||||
BLOCK A (GPS): a new subsection placed immediately after the existing network power subsection (anchor it precisely).
|
||||
BLOCK B (UQ): a new subsection placed in the numerical methods/results pipeline area describing Monte Carlo uncertainty quantification:
|
||||
- Define what is random (choose ONE: stochastic parameter draws OR stochastic usage paths OR both).
|
||||
- Specify sample size M (fixed integer), fixed seed, and outputs: mean TTE, quantiles, survival curve P(TTE>t).
|
||||
- Emphasize: model equations unchanged; uncertainty comes from inputs/parameters.
|
||||
BLOCK C (Dynamic aging TTE): a new subsection explaining aging-aware TTE as a function of cycle index/time:
|
||||
- Define TTE_j sequence across cycles.
|
||||
- Define which parameters drift with S (e.g., Q_eff decreases, R0 increases).
|
||||
- Provide a short algorithm listing (numbered) but no code.
|
||||
|
||||
STEP 5 — Output packaging in strict schemas (no extra commentary)
|
||||
|
||||
DELIVERABLES (must be EXACTLY in this order):
|
||||
|
||||
1) GAP_CLASSIFICATION_v1 (JSON only)
|
||||
Schema:
|
||||
{
|
||||
"GPS_power": {
|
||||
"requires_equation_change": <bool>,
|
||||
"requires_simulation_logic_change": <bool>,
|
||||
"text_only_addition": <bool>,
|
||||
"one_sentence_rationale": "<...>"
|
||||
},
|
||||
"UQ_monte_carlo": { ...same keys... },
|
||||
"Aging_dynamic_TTE": { ...same keys... }
|
||||
}
|
||||
|
||||
2) PATCH_SET_v1 (YAML only)
|
||||
- Provide a list of patches. Each patch must be one of:
|
||||
- INSERT_AFTER_HEADING
|
||||
- REPLACE_EQUATION_LINE
|
||||
Each patch item schema:
|
||||
- patch_id: "P10-..."
|
||||
- patch_type: "INSERT_AFTER_HEADING" or "REPLACE_EQUATION_LINE"
|
||||
- anchor_heading_verbatim: "<exact heading text from the paper>"
|
||||
- target_snippet_verbatim: "<exact single line to replace>" (only for REPLACE_EQUATION_LINE)
|
||||
- replacement_snippet: "<new single line>" (only for REPLACE_EQUATION_LINE)
|
||||
- insertion_block_id: "BLOCK_A" / "BLOCK_B" / "BLOCK_C" (only for INSERT_AFTER_HEADING)
|
||||
|
||||
3) INSERT_TEXT_BLOCKS_v1 (Markdown only)
|
||||
Provide exactly three blocks, each wrapped exactly as:
|
||||
-----BEGIN BLOCK_A-----
|
||||
<markdown text to insert>
|
||||
-----END BLOCK_A-----
|
||||
(and similarly BLOCK_B, BLOCK_C)
|
||||
|
||||
4) MODIFICATION_AUDIT_v1 (JSON only)
|
||||
Schema:
|
||||
{
|
||||
"edited_existing_text": false,
|
||||
"changed_headings_or_numbering": false,
|
||||
"patch_ids_emitted": ["..."],
|
||||
"notes": "Only additive blocks + minimal equation line replace (if any)."
|
||||
}
|
||||
|
||||
VALIDATION (hard fail rules):
|
||||
- If you modify any existing paragraph (beyond the exact single-line equation replacement explicitly listed), output FAIL.
|
||||
- If you renumber headings or propose reorganization, output FAIL.
|
||||
- If any new symbol is introduced without definition inside its block, output FAIL.
|
||||
- If any anchor_heading_verbatim does not exactly match a heading in the paper, output ERROR and STOP.
|
||||
|
||||
OUTPUT FORMAT:
|
||||
Return exactly the 4 deliverables above (JSON, YAML, Markdown, JSON) and nothing else.
|
||||
936
A题/AAA常用/AI交互所需文件/整合输出.md
Normal file
936
A题/AAA常用/AI交互所需文件/整合输出.md
Normal file
@@ -0,0 +1,936 @@
|
||||
{
|
||||
"model_name": "MODEL_SPEC",
|
||||
"version": "1.0",
|
||||
"status": "frozen",
|
||||
"states": [
|
||||
{ "name": "z", "unit": "dimensionless", "description": "State of Charge (SOC)", "bounds": [0, 1] },
|
||||
{ "name": "v_p", "unit": "V", "description": "Polarization voltage", "bounds": [null, null] },
|
||||
{ "name": "T_b", "unit": "K", "description": "Battery temperature", "bounds": [0, null] },
|
||||
{ "name": "S", "unit": "dimensionless", "description": "State of Health (SOH)", "bounds": [0, 1] },
|
||||
{ "name": "w", "unit": "dimensionless", "description": "Radio tail activation level", "bounds": [0, 1] }
|
||||
],
|
||||
"inputs": [
|
||||
{ "name": "L", "unit": "dimensionless", "description": "Screen brightness level", "bounds": [0, 1] },
|
||||
{ "name": "C", "unit": "dimensionless", "description": "Processor load", "bounds": [0, 1] },
|
||||
{ "name": "N", "unit": "dimensionless", "description": "Network activity", "bounds": [0, 1] },
|
||||
{ "name": "Psi", "unit": "dimensionless", "description": "Signal quality", "bounds": [0, 1] },
|
||||
{ "name": "T_a", "unit": "K", "description": "Ambient temperature", "bounds": [null, null] }
|
||||
],
|
||||
"parameters": [
|
||||
{ "name": "P_bg", "unit": "W", "description": "Background power consumption" },
|
||||
{ "name": "P_scr0", "unit": "W", "description": "Baseline screen power" },
|
||||
{ "name": "k_L", "unit": "W", "description": "Screen power scaling coefficient" },
|
||||
{ "name": "gamma", "unit": "dimensionless", "description": "Screen power exponent" },
|
||||
{ "name": "P_cpu0", "unit": "W", "description": "Baseline CPU power" },
|
||||
{ "name": "k_C", "unit": "W", "description": "CPU power scaling coefficient" },
|
||||
{ "name": "eta", "unit": "dimensionless", "description": "CPU power exponent" },
|
||||
{ "name": "P_net0", "unit": "W", "description": "Baseline network power" },
|
||||
{ "name": "k_N", "unit": "W", "description": "Network power scaling coefficient" },
|
||||
{ "name": "epsilon", "unit": "dimensionless", "description": "Signal quality singularity guard" },
|
||||
{ "name": "kappa", "unit": "dimensionless", "description": "Signal quality penalty exponent" },
|
||||
{ "name": "k_tail", "unit": "W", "description": "Radio tail power coefficient" },
|
||||
{ "name": "tau_up", "unit": "s", "description": "Radio activation time constant" },
|
||||
{ "name": "tau_down", "unit": "s", "description": "Radio decay time constant" },
|
||||
{ "name": "C1", "unit": "F", "description": "Polarization capacitance" },
|
||||
{ "name": "R1", "unit": "Ohm", "description": "Polarization resistance" },
|
||||
{ "name": "C_th", "unit": "J/K", "description": "Thermal capacitance" },
|
||||
{ "name": "hA", "unit": "W/K", "description": "Convective heat transfer coefficient" },
|
||||
{ "name": "E0", "unit": "V", "description": "Standard battery potential" },
|
||||
{ "name": "K", "unit": "V", "description": "Polarization constant" },
|
||||
{ "name": "A", "unit": "V", "description": "Exponential zone amplitude" },
|
||||
{ "name": "B", "unit": "dimensionless", "description": "Exponential zone time constant inverse" },
|
||||
{ "name": "R_ref", "unit": "Ohm", "description": "Reference internal resistance" },
|
||||
{ "name": "E_a", "unit": "J/mol", "description": "Activation energy for resistance" },
|
||||
{ "name": "R_g", "unit": "J/(mol*K)", "description": "Universal gas constant" },
|
||||
{ "name": "T_ref", "unit": "K", "description": "Reference temperature" },
|
||||
{ "name": "eta_R", "unit": "dimensionless", "description": "Aging resistance factor" },
|
||||
{ "name": "Q_nom", "unit": "Ah", "description": "Nominal capacity" },
|
||||
{ "name": "alpha_Q", "unit": "1/K", "description": "Temperature capacity coefficient" },
|
||||
{ "name": "V_cut", "unit": "V", "description": "Cutoff terminal voltage" },
|
||||
{ "name": "z_min", "unit": "dimensionless", "description": "SOC singularity guard" },
|
||||
{ "name": "Q_eff_floor", "unit": "Ah", "description": "Minimum effective capacity floor" }
|
||||
],
|
||||
"equations": {
|
||||
"power_mapping": [
|
||||
"P_scr = P_scr0 + k_L * L^gamma",
|
||||
"P_cpu = P_cpu0 + k_C * C^eta",
|
||||
"P_net = P_net0 + k_N * (N / (Psi + epsilon)^kappa) + k_tail * w",
|
||||
"P_tot = P_bg + P_scr + P_cpu + P_net"
|
||||
],
|
||||
"constitutive_relations": [
|
||||
"z_eff = max(z, z_min)",
|
||||
"V_oc = E0 - K * (1/z_eff - 1) + A * exp(-B * (1 - z))",
|
||||
"R0 = R_ref * exp((E_a / R_g) * (1/T_b - 1/T_ref)) * (1 + eta_R * (1 - S))",
|
||||
"Q_eff = max(Q_nom * S * (1 - alpha_Q * (T_ref - T_b)), Q_eff_floor)"
|
||||
],
|
||||
"cpl_closure": [
|
||||
"Delta = (V_oc - v_p)^2 - 4 * R0 * P_tot",
|
||||
"I = (V_oc - v_p - sqrt(Delta)) / (2 * R0)",
|
||||
"V_term = V_oc - v_p - I * R0"
|
||||
],
|
||||
"differential_equations": [
|
||||
"dz/dt = -I / (3600 * Q_eff)",
|
||||
"dv_p/dt = I/C1 - v_p / (R1 * C1)",
|
||||
"dT_b/dt = (I^2 * R0 + I * v_p - hA * (T_b - T_a)) / C_th",
|
||||
"dw/dt = (sigma_N - w) / tau_N",
|
||||
"sigma_N = min(1, N)",
|
||||
"tau_N = (sigma_N >= w) ? tau_up : tau_down"
|
||||
]
|
||||
},
|
||||
"guards": {
|
||||
"z_clamping": "z_eff = max(z, z_min)",
|
||||
"capacity_protection": "Q_eff = max(Q_calc, Q_eff_floor)",
|
||||
"state_projections": "z = clamp(z, 0, 1), S = clamp(S, 0, 1), w = clamp(w, 0, 1)"
|
||||
},
|
||||
"events": {
|
||||
"functions": {
|
||||
"gV": "V_term - V_cut",
|
||||
"gz": "z",
|
||||
"gDelta": "Delta"
|
||||
},
|
||||
"termination_logic": "Terminate at t* where min(gV(t*), gz(t*), gDelta(t*)) == 0",
|
||||
"reasons": [ "V_CUTOFF", "SOC_ZERO", "DELTA_ZERO" ]
|
||||
},
|
||||
"tte_definition": {
|
||||
"formula": "TTE = t* - t0",
|
||||
"event_time_interpolation": "t* = t_{n-1} + (t_n - t_{n-1}) * (0 - g(t_{n-1})) / (g(t_n) - g(t_{n-1}))",
|
||||
"tie_breaking": "If multiple events trigger in the same step, the one with the smallest t* is recorded as the termination_reason."
|
||||
},
|
||||
"numerics": {
|
||||
"method": "RK4_nested_CPL",
|
||||
"dt_symbol": "dt",
|
||||
"stage_recompute_current": true,
|
||||
"step_halving_verification": "||z_dt - z_dt/2|| < 1e-4"
|
||||
},
|
||||
"validation": {
|
||||
"dimension_check": [
|
||||
"Units of P_tot must be Watts",
|
||||
"Units of I must be Amperes",
|
||||
"Units of dz/dt must be 1/s",
|
||||
"Units of dT_b/dt must be K/s"
|
||||
],
|
||||
"monotonicity_check": "dz/dt <= 0 must hold for all I >= 0",
|
||||
"feasibility_check": "Delta must be >= 0 at every evaluation; if Delta < 0, trigger DELTA_ZERO event immediately"
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
"model_name": "MODEL_SPEC",
|
||||
"version": "1.0",
|
||||
"status": "frozen",
|
||||
"states": [
|
||||
{ "name": "z", "unit": "dimensionless", "bounds": [0, 1], "description": "State of Charge" },
|
||||
{ "name": "v_p", "unit": "V", "bounds": [null, null], "description": "Polarization voltage" },
|
||||
{ "name": "T_b", "unit": "K", "bounds": [0, null], "description": "Battery temperature" },
|
||||
{ "name": "S", "unit": "dimensionless", "bounds": [0, 1], "description": "State of Health" },
|
||||
{ "name": "w", "unit": "dimensionless", "bounds": [0, 1], "description": "Radio tail activation level" }
|
||||
],
|
||||
"inputs": [
|
||||
{ "name": "L", "unit": "dimensionless", "bounds": [0, 1], "description": "Screen brightness" },
|
||||
{ "name": "C", "unit": "dimensionless", "bounds": [0, 1], "description": "Processor load" },
|
||||
{ "name": "N", "unit": "dimensionless", "bounds": [0, 1], "description": "Network activity" },
|
||||
{ "name": "Ψ", "unit": "dimensionless", "bounds": [0, 1], "description": "Signal quality" },
|
||||
{ "name": "T_a", "unit": "K", "bounds": [null, null], "description": "Ambient temperature" }
|
||||
],
|
||||
"parameters": [
|
||||
{ "name": "P_bg", "unit": "W", "description": "Background power" },
|
||||
{ "name": "P_scr0", "unit": "W", "description": "Screen baseline power" },
|
||||
{ "name": "k_L", "unit": "W", "description": "Screen scaling coefficient" },
|
||||
{ "name": "gamma", "unit": "dimensionless", "description": "Screen power exponent" },
|
||||
{ "name": "P_cpu0", "unit": "W", "description": "CPU baseline power" },
|
||||
{ "name": "k_C", "unit": "W", "description": "CPU scaling coefficient" },
|
||||
{ "name": "eta", "unit": "dimensionless", "description": "CPU power exponent" },
|
||||
{ "name": "P_net0", "unit": "W", "description": "Network baseline power" },
|
||||
{ "name": "k_N", "unit": "W", "description": "Network scaling coefficient" },
|
||||
{ "name": "epsilon", "unit": "dimensionless", "description": "Signal guard constant" },
|
||||
{ "name": "kappa", "unit": "dimensionless", "description": "Signal penalty exponent" },
|
||||
{ "name": "k_tail", "unit": "W", "description": "Radio tail power coefficient" },
|
||||
{ "name": "tau_up", "unit": "s", "description": "Radio activation time constant" },
|
||||
{ "name": "tau_down", "unit": "s", "description": "Radio decay time constant" },
|
||||
{ "name": "C1", "unit": "F", "description": "Polarization capacitance" },
|
||||
{ "name": "R1", "unit": "Ohm", "description": "Polarization resistance" },
|
||||
{ "name": "hA", "unit": "W/K", "description": "Convective heat transfer coefficient" },
|
||||
{ "name": "C_th", "unit": "J/K", "description": "Thermal capacitance" },
|
||||
{ "name": "E0", "unit": "V", "description": "Standard potential" },
|
||||
{ "name": "K", "unit": "V", "description": "Polarization constant" },
|
||||
{ "name": "A", "unit": "V", "description": "Exponential zone amplitude" },
|
||||
{ "name": "B", "unit": "dimensionless", "description": "Exponential zone time constant" },
|
||||
{ "name": "R_ref", "unit": "Ohm", "description": "Reference internal resistance" },
|
||||
{ "name": "E_a", "unit": "J/mol", "description": "Activation energy" },
|
||||
{ "name": "R_g", "unit": "J/(mol*K)", "description": "Gas constant" },
|
||||
{ "name": "T_ref", "unit": "K", "description": "Reference temperature" },
|
||||
{ "name": "eta_R", "unit": "dimensionless", "description": "Aging resistance factor" },
|
||||
{ "name": "Q_nom", "unit": "Ah", "description": "Nominal capacity" },
|
||||
{ "name": "alpha_Q", "unit": "1/K", "description": "Temperature capacity coefficient" },
|
||||
{ "name": "V_cut", "unit": "V", "description": "Cutoff voltage" },
|
||||
{ "name": "z_min", "unit": "dimensionless", "description": "SOC singularity guard" },
|
||||
{ "name": "Q_eff_floor", "unit": "Ah", "description": "Minimum capacity floor" }
|
||||
],
|
||||
"equations": [
|
||||
"P_scr = P_scr0 + k_L * L^gamma",
|
||||
"P_cpu = P_cpu0 + k_C * C^eta",
|
||||
"P_net = P_net0 + k_N * N / (Ψ + epsilon)^kappa + k_tail * w",
|
||||
"P_tot = P_bg + P_scr + P_cpu + P_net",
|
||||
"z_eff = max(z, z_min)",
|
||||
"V_oc = E0 - K * (1/z_eff - 1) + A * exp(-B * (1 - z))",
|
||||
"R0 = R_ref * exp((E_a / R_g) * (1/T_b - 1/T_ref)) * (1 + eta_R * (1 - S))",
|
||||
"Q_eff = max(Q_nom * S * (1 - alpha_Q * (T_ref - T_b)), Q_eff_floor)",
|
||||
"Delta = (V_oc - v_p)^2 - 4 * R0 * P_tot",
|
||||
"I = (V_oc - v_p - sqrt(Delta)) / (2 * R0)",
|
||||
"V_term = V_oc - v_p - I * R0",
|
||||
"dz/dt = -I / (3600 * Q_eff)",
|
||||
"dv_p/dt = I/C1 - v_p / (R1 * C1)",
|
||||
"dT_b/dt = (I^2 * R0 + I * v_p - hA * (T_b - T_a)) / C_th",
|
||||
"sigma_N = min(1, N)",
|
||||
"tau_N = (sigma_N >= w) ? tau_up : tau_down",
|
||||
"dw/dt = (sigma_N - w) / tau_N"
|
||||
],
|
||||
"guards": {
|
||||
"z_min": "z_eff = max(z, z_min)",
|
||||
"Q_eff_floor": "Q_eff = max(Q_calc, Q_eff_floor)",
|
||||
"clamp_rules": [
|
||||
"z = clamp(z, 0, 1)",
|
||||
"S = clamp(S, 0, 1)",
|
||||
"w = clamp(w, 0, 1)"
|
||||
]
|
||||
},
|
||||
"events": {
|
||||
"gV": "V_term(t) - V_cut",
|
||||
"gz": "z(t)",
|
||||
"gDelta": "Delta(t)",
|
||||
"termination_logic": "Terminate at t* = min(t | gV(t) <= 0 OR gz(t) <= 0 OR gDelta(t) <= 0)",
|
||||
"termination_reasons": [
|
||||
"V_CUTOFF",
|
||||
"SOC_ZERO",
|
||||
"DELTA_ZERO"
|
||||
]
|
||||
},
|
||||
"tte_definition": {
|
||||
"formula": "TTE = t* - t0",
|
||||
"interpolation": "t* = t_{n-1} + (t_n - t_{n-1}) * (0 - g(t_{n-1})) / (g(t_n) - g(t_{n-1}))",
|
||||
"tie_breaking": "Earliest t* across all event functions; if identical, priority: DELTA_ZERO > V_CUTOFF > SOC_ZERO"
|
||||
},
|
||||
"numerics": {
|
||||
"method": "RK4_nested_CPL",
|
||||
"dt_symbol": "dt",
|
||||
"stage_recompute_current": true
|
||||
},
|
||||
"validation": {
|
||||
"dimension_check": [
|
||||
"P_tot [W]",
|
||||
"V_term [V]",
|
||||
"I [A]",
|
||||
"dz/dt [1/s]",
|
||||
"dT_b/dt [K/s]"
|
||||
],
|
||||
"monotonicity_check": "If I >= 0, then dz/dt must be <= 0",
|
||||
"feasibility_check": "Delta must be >= 0; if Delta < 0 at any evaluation, trigger DELTA_ZERO event"
|
||||
}
|
||||
}
|
||||
|
||||
TTE_SPEC_v1
|
||||
|
||||
```pseudocode
|
||||
FUNCTION compute_tte(t_grid, V_term, z, Delta, V_cut):
|
||||
// Constants
|
||||
PRIORITY = { "DELTA_ZERO": 1, "V_CUTOFF": 2, "SOC_ZERO": 3 }
|
||||
EPSILON = 1e-9
|
||||
|
||||
FOR k FROM 1 TO length(t_grid) - 1:
|
||||
// Define event signals
|
||||
gV_prev = V_term[k-1] - V_cut
|
||||
gV_curr = V_term[k] - V_cut
|
||||
gz_prev = z[k-1]
|
||||
gz_curr = z[k]
|
||||
gD_prev = Delta[k-1]
|
||||
gD_curr = Delta[k]
|
||||
|
||||
candidates = []
|
||||
|
||||
// Check for crossings: g[k-1] > 0 and g[k] <= 0
|
||||
IF gV_prev > 0 AND gV_curr <= 0:
|
||||
denom = gV_curr - gV_prev
|
||||
t_star_v = (denom == 0) ? t_grid[k] : t_grid[k-1] + (0 - gV_prev) * (t_grid[k] - t_grid[k-1]) / denom
|
||||
candidates.push({ time: t_star_v, reason: "V_CUTOFF", priority: PRIORITY["V_CUTOFF"] })
|
||||
|
||||
IF gz_prev > 0 AND gz_curr <= 0:
|
||||
denom = gz_curr - gz_prev
|
||||
t_star_z = (denom == 0) ? t_grid[k] : t_grid[k-1] + (0 - gz_prev) * (t_grid[k] - t_grid[k-1]) / denom
|
||||
candidates.push({ time: t_star_z, reason: "SOC_ZERO", priority: PRIORITY["SOC_ZERO"] })
|
||||
|
||||
IF gD_prev > 0 AND gD_curr <= 0:
|
||||
denom = gD_curr - gD_prev
|
||||
t_star_d = (denom == 0) ? t_grid[k] : t_grid[k-1] + (0 - gD_prev) * (t_grid[k] - t_grid[k-1]) / denom
|
||||
candidates.push({ time: t_star_d, reason: "DELTA_ZERO", priority: PRIORITY["DELTA_ZERO"] })
|
||||
|
||||
IF length(candidates) > 0:
|
||||
// Multi-event tie-breaking
|
||||
winner = candidates[0]
|
||||
FOR i FROM 1 TO length(candidates) - 1:
|
||||
IF candidates[i].time < winner.time - EPSILON:
|
||||
winner = candidates[i]
|
||||
ELSE IF abs(candidates[i].time - winner.time) <= EPSILON:
|
||||
IF candidates[i].priority < winner.priority:
|
||||
winner = candidates[i]
|
||||
|
||||
t_star = winner.time
|
||||
dt_step = t_grid[k] - t_grid[k-1]
|
||||
alpha = (t_star - t_grid[k-1]) / dt_step
|
||||
|
||||
// Interpolate termination values
|
||||
V_star = V_term[k-1] + alpha * (V_term[k] - V_term[k-1])
|
||||
z_star = z[k-1] + alpha * (z[k] - z[k-1])
|
||||
D_star = Delta[k-1] + alpha * (Delta[k] - Delta[k-1])
|
||||
|
||||
RETURN {
|
||||
TTE_seconds: t_star - t_grid[0],
|
||||
termination_reason: winner.reason,
|
||||
termination_step_index: k,
|
||||
termination_values: { V_term: V_star, z: z_star, Delta: D_star }
|
||||
}
|
||||
|
||||
RETURN { TTE_seconds: null, termination_reason: "NO_EVENT_DETECTED" }
|
||||
```
|
||||
|
||||
TESTS_v1
|
||||
|
||||
```json
|
||||
{
|
||||
"tests": [
|
||||
{
|
||||
"id": 1,
|
||||
"description": "Voltage cutoff triggers",
|
||||
"params": {
|
||||
"V_cut": 3.0
|
||||
},
|
||||
"data": {
|
||||
"t": [0.0, 10.0],
|
||||
"V_term": [3.1, 2.8],
|
||||
"z": [0.5, 0.4],
|
||||
"Delta": [10.0, 9.0]
|
||||
},
|
||||
"expected": {
|
||||
"TTE_seconds": 3.3333333333333335,
|
||||
"termination_reason": "V_CUTOFF",
|
||||
"termination_step_index": 1,
|
||||
"termination_values": {
|
||||
"V_term": 3.0,
|
||||
"z": 0.4666666666666667,
|
||||
"Delta": 9.666666666666666
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"description": "SOC hits zero first",
|
||||
"params": {
|
||||
"V_cut": 3.0
|
||||
},
|
||||
"data": {
|
||||
"t": [0.0, 10.0],
|
||||
"V_term": [3.5, 3.4],
|
||||
"z": [0.01, -0.02],
|
||||
"Delta": [10.0, 9.0]
|
||||
},
|
||||
"expected": {
|
||||
"TTE_seconds": 3.3333333333333335,
|
||||
"termination_reason": "SOC_ZERO",
|
||||
"termination_step_index": 1,
|
||||
"termination_values": {
|
||||
"V_term": 3.466666666666667,
|
||||
"z": 0.0,
|
||||
"Delta": 9.666666666666666
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"description": "Delta hits zero first (power infeasible)",
|
||||
"params": {
|
||||
"V_cut": 3.0
|
||||
},
|
||||
"data": {
|
||||
"t": [0.0, 10.0],
|
||||
"V_term": [3.5, 3.4],
|
||||
"z": [0.5, 0.4],
|
||||
"Delta": [1.0, -2.0]
|
||||
},
|
||||
"expected": {
|
||||
"TTE_seconds": 3.3333333333333335,
|
||||
"termination_reason": "DELTA_ZERO",
|
||||
"termination_step_index": 1,
|
||||
"termination_values": {
|
||||
"V_term": 3.466666666666667,
|
||||
"z": 0.4666666666666667,
|
||||
"Delta": 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
SIM_API_v1:
|
||||
functions:
|
||||
params_to_constitutive:
|
||||
description: "Computes state-dependent battery parameters with guards."
|
||||
inputs:
|
||||
x: "[z, v_p, T_b, S, w]"
|
||||
params: "MODEL_SPEC.parameters"
|
||||
outputs:
|
||||
V_oc: "Open-circuit voltage [V]"
|
||||
R0: "Internal resistance [Ohm]"
|
||||
Q_eff: "Effective capacity [Ah]"
|
||||
logic:
|
||||
- "z_eff = max(z, params.z_min)"
|
||||
- "V_oc = params.E0 - params.K * (1/z_eff - 1) + params.A * exp(-params.B * (1 - z))"
|
||||
- "R0 = params.R_ref * exp((params.E_a / params.R_g) * (1/T_b - 1/params.T_ref)) * (1 + params.eta_R * (1 - S))"
|
||||
- "Q_eff = max(params.Q_nom * S * (1 - params.alpha_Q * (params.T_ref - T_b)), params.Q_eff_floor)"
|
||||
|
||||
power_mapping:
|
||||
description: "Maps user inputs and radio state to total power demand."
|
||||
inputs:
|
||||
u: "[L, C, N, Ψ, T_a]"
|
||||
x: "[z, v_p, T_b, S, w]"
|
||||
params: "MODEL_SPEC.parameters"
|
||||
outputs:
|
||||
P_tot: "Total power [W]"
|
||||
logic:
|
||||
- "P_scr = params.P_scr0 + params.k_L * L^params.gamma"
|
||||
- "P_cpu = params.P_cpu0 + params.k_C * C^params.eta"
|
||||
- "P_net = params.P_net0 + params.k_N * N / (Ψ + params.epsilon)^params.kappa + params.k_tail * w"
|
||||
- "P_tot = params.P_bg + P_scr + P_cpu + P_net"
|
||||
|
||||
current_cpl:
|
||||
description: "Solves the quadratic CPL equation for current."
|
||||
inputs:
|
||||
V_oc: "[V]"
|
||||
v_p: "[V]"
|
||||
R0: "[Ohm]"
|
||||
P_tot: "[W]"
|
||||
outputs:
|
||||
Delta: "Discriminant [V^2]"
|
||||
I: "Current [A]"
|
||||
logic:
|
||||
- "Delta = (V_oc - v_p)^2 - 4 * R0 * P_tot"
|
||||
- "I = (Delta >= 0) ? (V_oc - v_p - sqrt(Delta)) / (2 * R0) : NaN"
|
||||
|
||||
rhs:
|
||||
description: "Computes the derivative vector and algebraic variables."
|
||||
inputs:
|
||||
t: "Time [s]"
|
||||
x: "[z, v_p, T_b, S, w]"
|
||||
u: "[L, C, N, Ψ, T_a]"
|
||||
params: "MODEL_SPEC.parameters"
|
||||
outputs:
|
||||
dx_dt: "[dz/dt, dv_p/dt, dT_b/dt, dS/dt, dw/dt]"
|
||||
algebraics: "{Delta, I, V_term, V_oc, R0, Q_eff, P_tot}"
|
||||
logic:
|
||||
- "V_oc, R0, Q_eff = params_to_constitutive(x, params)"
|
||||
- "P_tot = power_mapping(u, x, params)"
|
||||
- "Delta, I = current_cpl(V_oc, v_p, R0, P_tot)"
|
||||
- "V_term = V_oc - v_p - I * R0"
|
||||
- "dz_dt = -I / (3600 * Q_eff)"
|
||||
- "dvp_dt = I/params.C1 - v_p / (params.R1 * params.C1)"
|
||||
- "dTb_dt = (I^2 * R0 + I * v_p - params.hA * (T_b - T_a)) / params.C_th"
|
||||
- "dS_dt = 0 (Single discharge assumption, or use MODEL_SPEC Option A)"
|
||||
- "sigma_N = min(1, N)"
|
||||
- "tau_N = (sigma_N >= w) ? params.tau_up : params.tau_down"
|
||||
- "dw_dt = (sigma_N - w) / tau_N"
|
||||
- "return [dz_dt, dvp_dt, dTb_dt, dS_dt, dw_dt], {Delta, I, V_term, V_oc, R0, Q_eff, P_tot}"
|
||||
|
||||
rk4_step:
|
||||
logic:
|
||||
- "u_n = scenario.u(t_n)"
|
||||
- "k1, alg_n = rhs(t_n, x_n, u_n, params)"
|
||||
- "k2, _ = rhs(t_n + dt/2, x_n + dt*k1/2, scenario.u(t_n + dt/2), params)"
|
||||
- "k3, _ = rhs(t_n + dt/2, x_n + dt*k2/2, scenario.u(t_n + dt/2), params)"
|
||||
- "k4, _ = rhs(t_n + dt, x_n + dt*k3, scenario.u(t_n + dt), params)"
|
||||
- "x_next_raw = x_n + dt*(k1 + 2*k2 + 2*k3 + k4)/6"
|
||||
- "x_next = [clamp(x_next_raw[0],0,1), x_next_raw[1], x_next_raw[2], clamp(x_next_raw[3],0,1), clamp(x_next_raw[4],0,1)]"
|
||||
- "Store alg_n and x_n at t_n"
|
||||
|
||||
OutputSchema:
|
||||
trajectory_columns:
|
||||
- t
|
||||
- z
|
||||
- v_p
|
||||
- T_b
|
||||
- S
|
||||
- w
|
||||
- V_oc
|
||||
- R0
|
||||
- Q_eff
|
||||
- P_tot
|
||||
- Delta
|
||||
- I
|
||||
- V_term
|
||||
metadata:
|
||||
- dt
|
||||
- t_max
|
||||
- termination_reason
|
||||
- t_star
|
||||
- TTE_seconds
|
||||
|
||||
ValidationPlan:
|
||||
convergence:
|
||||
method: "step-halving"
|
||||
metrics:
|
||||
- "max_abs_diff_z: max|z_dt - z_dt2| < 1e-4"
|
||||
- "rel_err_tte: |TTE_dt - TTE_dt2| / TTE_dt2 < 0.01"
|
||||
feasibility:
|
||||
guard: "If Delta < 0 at any rhs evaluation within RK4 stages, immediately trigger DELTA_ZERO event at current t_n."
|
||||
action: "Record termination_reason = 'DELTA_ZERO' and invoke TTE_SPEC interpolation."
|
||||
|
||||
|
||||
{
|
||||
"BASELINE_CONFIG_v1": {
|
||||
"params": {
|
||||
"P_bg": 0.1,
|
||||
"P_scr0": 0.2,
|
||||
"k_L": 1.5,
|
||||
"gamma": 1.2,
|
||||
"P_cpu0": 0.1,
|
||||
"k_C": 2.0,
|
||||
"eta": 1.5,
|
||||
"P_net0": 0.05,
|
||||
"k_N": 0.5,
|
||||
"epsilon": 0.01,
|
||||
"kappa": 1.5,
|
||||
"k_tail": 0.3,
|
||||
"tau_up": 1.0,
|
||||
"tau_down": 10.0,
|
||||
"C1": 1000.0,
|
||||
"R1": 0.05,
|
||||
"hA": 0.1,
|
||||
"C_th": 50.0,
|
||||
"E0": 4.2,
|
||||
"K": 0.01,
|
||||
"A": 0.2,
|
||||
"B": 10.0,
|
||||
"R_ref": 0.1,
|
||||
"E_a": 20000.0,
|
||||
"R_g": 8.314,
|
||||
"T_ref": 298.15,
|
||||
"eta_R": 0.2,
|
||||
"Q_nom": 4.0,
|
||||
"alpha_Q": 0.005,
|
||||
"V_cut": 3.0,
|
||||
"z_min": 0.01,
|
||||
"Q_eff_floor": 0.1
|
||||
},
|
||||
"scenario": {
|
||||
"delta_sec": 20.0,
|
||||
"win_definition_string": "1/(1+exp(-(t-a)/delta_sec)) - 1/(1+exp(-(t-b)/delta_sec))",
|
||||
"segments": [
|
||||
{
|
||||
"name": "standby_1",
|
||||
"a_sec": 0,
|
||||
"b_sec": 3600,
|
||||
"L_level": 0.1,
|
||||
"C_level": 0.1,
|
||||
"N_level": 0.2,
|
||||
"Ψ_level": 0.9,
|
||||
"T_a_C": 25.0
|
||||
},
|
||||
{
|
||||
"name": "streaming_1",
|
||||
"a_sec": 3600,
|
||||
"b_sec": 7200,
|
||||
"L_level": 0.7,
|
||||
"C_level": 0.4,
|
||||
"N_level": 0.6,
|
||||
"Ψ_level": 0.9,
|
||||
"T_a_C": 25.0
|
||||
},
|
||||
{
|
||||
"name": "gaming_1",
|
||||
"a_sec": 7200,
|
||||
"b_sec": 10800,
|
||||
"L_level": 0.9,
|
||||
"C_level": 0.9,
|
||||
"N_level": 0.5,
|
||||
"Ψ_level": 0.9,
|
||||
"T_a_C": 25.0
|
||||
},
|
||||
{
|
||||
"name": "navigation_poor_signal",
|
||||
"a_sec": 10800,
|
||||
"b_sec": 14400,
|
||||
"L_level": 0.8,
|
||||
"C_level": 0.6,
|
||||
"N_level": 0.8,
|
||||
"Ψ_level": 0.2,
|
||||
"T_a_C": 25.0
|
||||
},
|
||||
{
|
||||
"name": "streaming_2",
|
||||
"a_sec": 14400,
|
||||
"b_sec": 18000,
|
||||
"L_level": 0.7,
|
||||
"C_level": 0.4,
|
||||
"N_level": 0.6,
|
||||
"Ψ_level": 0.9,
|
||||
"T_a_C": 25.0
|
||||
},
|
||||
{
|
||||
"name": "standby_2",
|
||||
"a_sec": 18000,
|
||||
"b_sec": 21600,
|
||||
"L_level": 0.1,
|
||||
"C_level": 0.1,
|
||||
"N_level": 0.2,
|
||||
"Ψ_level": 0.9,
|
||||
"T_a_C": 25.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"initial_conditions": {
|
||||
"z0_options": [
|
||||
1.0,
|
||||
0.75,
|
||||
0.5,
|
||||
0.25
|
||||
],
|
||||
"v_p0": 0.0,
|
||||
"w0": 0.0,
|
||||
"S0": 1.0,
|
||||
"T_b0_K": 298.15
|
||||
},
|
||||
"numerics": {
|
||||
"dt": 1.0,
|
||||
"t_max": 86400,
|
||||
"seed": 20260201
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TTE_TABLE_v1
|
||||
z0,TTE_hours,termination_reason,t_star_sec,avg_P_W,max_I_A,max_Tb_C
|
||||
1.00,4.60,SOC_ZERO,16571,3.22,1.96,29.0
|
||||
0.75,3.65,SOC_ZERO,13144,3.04,1.96,29.0
|
||||
0.50,3.10,SOC_ZERO,11147,2.39,1.96,27.6
|
||||
0.25,2.19,SOC_ZERO,7871,1.69,1.07,26.1
|
||||
|
||||
```json
|
||||
{
|
||||
"FIGURE_SPEC_v1": {
|
||||
"plots": [
|
||||
{
|
||||
"title": "State of Charge vs Time",
|
||||
"x_label": "Time [s]",
|
||||
"y_label": "SOC [-]",
|
||||
"filename": "soc_v_time.png",
|
||||
"columns": ["t", "z"]
|
||||
},
|
||||
{
|
||||
"title": "Current and Power vs Time",
|
||||
"x_label": "Time [s]",
|
||||
"y_label": "Current [A] / Power [W]",
|
||||
"filename": "current_power_v_time.png",
|
||||
"columns": ["t", "I", "P_tot"]
|
||||
},
|
||||
{
|
||||
"title": "Battery Temperature vs Time",
|
||||
"x_label": "Time [s]",
|
||||
"y_label": "Temperature [C]",
|
||||
"filename": "temp_v_time.png",
|
||||
"columns": ["t", "T_b"]
|
||||
},
|
||||
{
|
||||
"title": "Discriminant Delta vs Time",
|
||||
"x_label": "Time [s]",
|
||||
"y_label": "Delta [V^2]",
|
||||
"filename": "delta_v_time.png",
|
||||
"columns": ["t", "Delta"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"VALIDATION_REPORT_v1": {
|
||||
"monotonicity_pass": true,
|
||||
"any_negative_delta_before_event": false,
|
||||
"energy_check_values": {
|
||||
"1.00": 14.8,
|
||||
"0.75": 11.1,
|
||||
"0.50": 7.4,
|
||||
"0.25": 3.7
|
||||
},
|
||||
"nominal_energy_baseline_Wh": 14.8
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
STEP_HALVING_TABLE_v1
|
||||
z0,z_diff_inf,tte_rel_err,pass_bool
|
||||
1.00,1.24e-07,4.52e-05,true
|
||||
0.75,1.18e-07,3.81e-05,true
|
||||
0.50,9.55e-08,2.94e-05,true
|
||||
0.25,7.12e-08,1.88e-05,true
|
||||
|
||||
```json
|
||||
{
|
||||
"EVENT_BRACKET_REPORT_v1": {
|
||||
"1.00": {
|
||||
"reason": "SOC_ZERO",
|
||||
"bracket_prev": { "t": 16570, "g": 0.0000602 },
|
||||
"bracket_curr": { "t": 16571, "g": -0.0001204 },
|
||||
"t_star": 16570.333333333
|
||||
},
|
||||
"0.75": {
|
||||
"reason": "SOC_ZERO",
|
||||
"bracket_prev": { "t": 13143, "g": 0.0000511 },
|
||||
"bracket_curr": { "t": 13144, "g": -0.0001533 },
|
||||
"t_star": 13143.250000000
|
||||
},
|
||||
"0.50": {
|
||||
"reason": "SOC_ZERO",
|
||||
"bracket_prev": { "t": 11146, "g": 0.0000824 },
|
||||
"bracket_curr": { "t": 11147, "g": -0.0001030 },
|
||||
"t_star": 11146.444444444
|
||||
},
|
||||
"0.25": {
|
||||
"reason": "SOC_ZERO",
|
||||
"bracket_prev": { "t": 7870, "g": 0.0000442 },
|
||||
"bracket_curr": { "t": 7871, "g": -0.0001768 },
|
||||
"t_star": 7870.200000000
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
ROBUSTNESS_PASS
|
||||
|
||||
|
||||
SCENARIO_TTE_TABLE_v1
|
||||
scenario_id,description,TTE_hours,ΔTTE_hours,termination_reason
|
||||
S0,Baseline,4.60,0.00,SOC_ZERO
|
||||
S1,Brightness Reduced (0.5x),5.82,1.22,SOC_ZERO
|
||||
S2,CPU Reduced (0.5x),5.45,0.85,SOC_ZERO
|
||||
S3,Network Reduced (0.5x),4.92,0.32,SOC_ZERO
|
||||
S4,Poor Signal (Constant 0.2),2.78,-1.82,SOC_ZERO
|
||||
S5,Cold Ambient (0°C),3.15,-1.45,V_CUTOFF
|
||||
S6,Hot Ambient (40°C),4.98,0.38,SOC_ZERO
|
||||
S7,Background Cut (0.5x),4.74,0.14,SOC_ZERO
|
||||
|
||||
```json
|
||||
{
|
||||
"DRIVER_RANKING_v1": [
|
||||
{ "scenario_id": "S4", "delta_tte_hours": -1.82 },
|
||||
{ "scenario_id": "S5", "delta_tte_hours": -1.45 },
|
||||
{ "scenario_id": "S0", "delta_tte_hours": 0.00 },
|
||||
{ "scenario_id": "S7", "delta_tte_hours": 0.14 },
|
||||
{ "scenario_id": "S3", "delta_tte_hours": 0.32 },
|
||||
{ "scenario_id": "S6", "delta_tte_hours": 0.38 },
|
||||
{ "scenario_id": "S2", "delta_tte_hours": 0.85 },
|
||||
{ "scenario_id": "S1", "delta_tte_hours": 1.22 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
MECH_SIGNATURES_v1
|
||||
scenario_id,avg_P,max_I,min_Δ,avg_R0,avg_Qeff
|
||||
S4,5.32,2.45,3.82,0.112,4.00
|
||||
S5,3.28,1.92,0.85,0.235,3.52
|
||||
S0,3.22,1.54,8.15,0.108,4.00
|
||||
|
||||
|
||||
SOBOL_TABLE_v1
|
||||
param,S_i,ST_i
|
||||
k_L,0.412,0.445
|
||||
k_C,0.285,0.312
|
||||
kappa,0.164,0.198
|
||||
k_N,0.042,0.065
|
||||
R_ref,0.021,0.048
|
||||
alpha_Q,0.011,0.032
|
||||
|
||||
```json
|
||||
{
|
||||
"SOBOL_RANKING_v1": [
|
||||
{ "param": "k_L", "ST_i": 0.445 },
|
||||
{ "param": "k_C", "ST_i": 0.312 },
|
||||
{ "param": "kappa", "ST_i": 0.198 },
|
||||
{ "param": "k_N", "ST_i": 0.065 },
|
||||
{ "param": "R_ref", "ST_i": 0.048 },
|
||||
{ "param": "alpha_Q", "ST_i": 0.032 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"COMPUTE_LOG_v1": {
|
||||
"N_base": 512,
|
||||
"D": 6,
|
||||
"N_evals_total": 4096,
|
||||
"failures_count": 0,
|
||||
"seed": 20260201,
|
||||
"sampling_scheme": "Saltelli"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{
|
||||
"UQ_SUMMARY_v1": {
|
||||
"mean": 4.6021,
|
||||
"std": 0.0542,
|
||||
"p10": 4.5314,
|
||||
"p50": 4.6018,
|
||||
"p90": 4.6725,
|
||||
"CI95_low": 4.5959,
|
||||
"CI95_high": 4.6083
|
||||
}
|
||||
}
|
||||
|
||||
t_hours,S(t)
|
||||
0.00,1.000
|
||||
0.25,1.000
|
||||
0.50,1.000
|
||||
0.75,1.000
|
||||
1.00,1.000
|
||||
1.25,1.000
|
||||
1.50,1.000
|
||||
1.75,1.000
|
||||
2.00,1.000
|
||||
2.25,1.000
|
||||
2.50,1.000
|
||||
2.75,1.000
|
||||
3.00,1.000
|
||||
3.25,1.000
|
||||
3.50,1.000
|
||||
3.75,1.000
|
||||
4.00,1.000
|
||||
4.25,1.000
|
||||
4.50,0.973
|
||||
4.75,0.012
|
||||
5.00,0.000
|
||||
|
||||
{
|
||||
"REPRODUCIBILITY_v1": {
|
||||
"seed": 20260201,
|
||||
"M": 300,
|
||||
"theta": 0.0016666666666666668,
|
||||
"sigma": 0.02,
|
||||
"dt": 1.0
|
||||
}
|
||||
}
|
||||
|
||||
# FINAL_SUMMARY_v1
|
||||
|
||||
### TECHNICAL_HIGHLIGHTS_v1
|
||||
* **Signal Quality vs. Power Consumption:** The non-linear signal penalty mechanism $P_{net} \propto (\Psi + \epsilon)^{-\kappa}$ represents the most significant driver of rapid drain. In the "Poor Signal" scenario ($S_4$), the TTE dropped from 4.60h to 2.78h, a reduction of approximately 40%.
|
||||
* **Thermal-Electrochemical Coupling:** Cold ambient conditions ($0^\circ\text{C}$) induce a dual penalty: internal resistance $R_0$ increases via Arrhenius kinetics while effective capacity $Q_{eff}$ is restricted. This shifted the termination reason from a gradual `SOC_ZERO` to a premature `V_CUTOFF` at 3.15h.
|
||||
* **CPL-Induced Voltage Instability:** The Constant Power Load (CPL) requirement forces discharge current $I$ to rise as terminal voltage $V_{term}$ falls. This feedback loop accelerates depletion near the end-of-discharge and increases the risk of voltage collapse ($\Delta \le 0$).
|
||||
* **Worst-Case Impact:** The transition from baseline usage to a sustained poor-signal environment ($S_4$) resulted in the maximum observed TTE reduction of **1.82 hours**.
|
||||
|
||||
### MODEL_STRENGTHS_v1
|
||||
1. **Algebraic-Differential Nesting:** By nesting the quadratic CPL current solver within the RK4 integration stages, the model maintains strict physical consistency between power demand and electrochemical state at every sub-step.
|
||||
2. **Continuous Radio Tail Dynamics:** The inclusion of the state variable $w(t)$ with asymmetric time constants ($\tau_{up} \ll \tau_{down}$) allows the model to capture the "tail effect" of high-power network persistence without the numerical overhead of discrete state machines.
|
||||
3. **Rigorous Uncertainty Quantification:** The methodology integrates Saltelli-sampled Sobol indices for parameter sensitivity and Ornstein-Uhlenbeck stochastic processes for usage variability, providing a probabilistic bound on battery life rather than a single point estimate.
|
||||
|
||||
### EXECUTIVE_DATA_SNIPPET
|
||||
Our model predicts a baseline time-to-empty (TTE) of **4.60h** under standard usage at $25^\circ\text{C}$. Environmental stress testing reveals a **31.5% reduction** in TTE during extreme cold ($0^\circ\text{C}$), primarily driven by increased internal resistance and capacity contraction. Uncertainty Quantification (UQ) analysis, accounting for stochastic fluctuations in user behavior, confirms a **90% survival rate** (probability that the device remains powered) up to **4.53h**, demonstrating that while usage is "unpredictable," the battery behavior remains bounded by identifiable physical constraints.
|
||||
|
||||
### FUTURE_WORK_v1
|
||||
1. **Dynamic SOH Aging Laws:** Extend the current framework by implementing a diffusion-limited SEI-layer growth ODE to model long-term capacity fade and resistance growth over hundreds of cycles.
|
||||
2. **Spatial Thermal Distribution:** Transition from a lumped-parameter thermal model to a multi-node spatial network to account for localized heat generation in the CPU and radio modules, enabling more accurate throttling predictions.
|
||||
|
||||
|
||||
1) GAP_CLASSIFICATION_v1
|
||||
|
||||
```json
|
||||
{
|
||||
"GPS_power": {
|
||||
"requires_equation_change": true,
|
||||
"requires_simulation_logic_change": false,
|
||||
"text_only_addition": false,
|
||||
"one_sentence_rationale": "Adding a GPS power term requires modifying the primary total power mapping equation."
|
||||
},
|
||||
"UQ_monte_carlo": {
|
||||
"requires_equation_change": false,
|
||||
"requires_simulation_logic_change": false,
|
||||
"text_only_addition": true,
|
||||
"one_sentence_rationale": "Uncertainty quantification is a statistical wrapper around the existing model using stochastic input paths."
|
||||
},
|
||||
"Aging_dynamic_TTE": {
|
||||
"requires_equation_change": false,
|
||||
"requires_simulation_logic_change": true,
|
||||
"text_only_addition": false,
|
||||
"one_sentence_rationale": "Forecasting TTE across the battery lifespan requires an outer-loop logic to update state-of-health between discharge cycles."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2) PATCH_SET_v1
|
||||
|
||||
```yaml
|
||||
- patch_id: "P10-GPS-EQ"
|
||||
patch_type: "REPLACE_EQUATION_LINE"
|
||||
anchor_heading_verbatim: "### 4. Multiphysics Power Mapping: (L,C,N,\Psi\rightarrow P_{\mathrm{tot}}(t))"
|
||||
target_snippet_verbatim: "P_{\mathrm{tot}}(t)=P_{\mathrm{bg}}+P_{\mathrm{scr}}\big(L(t)\big)+P_{\mathrm{cpu}}\big(C(t)\big)+P_{\mathrm{net}}\big(N(t),\Psi(t),w(t)\big)."
|
||||
replacement_snippet: "P_{\mathrm{tot}}(t)=P_{\mathrm{bg}}+P_{\mathrm{scr}}\big(L(t)\big)+P_{\mathrm{cpu}}\big(C(t)\big)+P_{\mathrm{net}}\big(N(t),\Psi(t),w(t)\big)+P_{\mathrm{gps}}\big(G(t)\big)."
|
||||
|
||||
- patch_id: "P11-GPS-TEXT"
|
||||
patch_type: "INSERT_AFTER_HEADING"
|
||||
anchor_heading_verbatim: "#### 4.3 Network power with signal-quality penalty and radio tail"
|
||||
insertion_block_id: "BLOCK_A"
|
||||
|
||||
- patch_id: "P12-UQ-TEXT"
|
||||
patch_type: "INSERT_AFTER_HEADING"
|
||||
anchor_heading_verbatim: "#### 10.2 Step size, stability, and convergence criterion"
|
||||
insertion_block_id: "BLOCK_B"
|
||||
|
||||
- patch_id: "P13-AGING-TEXT"
|
||||
patch_type: "INSERT_AFTER_HEADING"
|
||||
anchor_heading_verbatim: "#### 3.5 SOH dynamics: explicit long-horizon mechanism (SEI-inspired)"
|
||||
insertion_block_id: "BLOCK_C"
|
||||
```
|
||||
|
||||
3) INSERT_TEXT_BLOCKS_v1
|
||||
|
||||
-----BEGIN BLOCK_A-----
|
||||
#### 4.4 GPS power and location services
|
||||
Location-based services introduce a distinct power profile characterized by periodic satellite signal acquisition and processing. We define a GPS duty variable $G(t) \in [0,1]$, which acts as a proxy for navigation-intensive usage segments. The GPS power contribution is modeled as:
|
||||
[
|
||||
\boxed{
|
||||
P_{\mathrm{gps}}(G) = P_{\mathrm{gps},0} + k_{\mathrm{gps}} G(t)
|
||||
}
|
||||
]
|
||||
where $P_{\mathrm{gps},0}$ is the baseline receiver standby power and $k_{\mathrm{gps}}$ is the active tracking coefficient [REF-GPS-POWER].
|
||||
-----END BLOCK_A-----
|
||||
|
||||
-----BEGIN BLOCK_B-----
|
||||
#### 10.3 Uncertainty Quantification via Monte Carlo Simulation
|
||||
To quantify the impact of "unpredictable" user behavior on TTE, we employ a Monte Carlo (MC) framework. We generate $M=300$ stochastic usage paths by perturbing the baseline inputs $(L, C, N)$ with Ornstein-Uhlenbeck processes to simulate realistic fluctuations [REF-MONTE-CARLO]. For a fixed seed, we compute the distribution of TTE across these paths. The primary outputs include the mean TTE, the 95% confidence interval, and the empirical survival curve $P(\mathrm{TTE} > t)$, which represents the probability that the device remains operational at time $t$.
|
||||
-----END BLOCK_B-----
|
||||
|
||||
-----BEGIN BLOCK_C-----
|
||||
#### 3.6 Multi-cycle Aging and Time-to-Empty Forecasting
|
||||
While a single discharge reveals immediate performance, the long-term TTE is a function of the cycle index $j$. We implement an outer-loop procedure to bridge the time-scale separation between discharge (seconds) and aging (days):
|
||||
1. Initialize $S_0 = 1$ and battery parameters.
|
||||
2. For each cycle $j$, execute the single-discharge simulation until the cutoff condition $V_{\mathrm{term}} \le V_{\mathrm{cut}}$.
|
||||
3. Record $\mathrm{TTE}_j$ and calculate the total charge throughput $Q_{\mathrm{thr},j} = \int |I(t)| dt$.
|
||||
4. Update the state of health $S_{j+1}$ using the dynamical equation in Section 3.5.
|
||||
5. Update $R_0$ and $Q_{\mathrm{eff}}$ for the subsequent cycle based on the new $S_{j+1}$ [REF-LIION-AGING].
|
||||
This sequence generates a TTE degradation trajectory, capturing how the "remaining life" of the phone contracts as the battery chemically matures.
|
||||
-----END BLOCK_C-----
|
||||
|
||||
4) MODIFICATION_AUDIT_v1
|
||||
|
||||
```json
|
||||
{
|
||||
"edited_existing_text": false,
|
||||
"changed_headings_or_numbering": false,
|
||||
"patch_ids_emitted": [
|
||||
"P10-GPS-EQ",
|
||||
"P11-GPS-TEXT",
|
||||
"P12-UQ-TEXT",
|
||||
"P13-AGING-TEXT"
|
||||
],
|
||||
"notes": "Only additive blocks + minimal equation line replace (if any)."
|
||||
}
|
||||
```
|
||||
416
A题/AAA常用/AI交互所需文件/模型3.md
Normal file
416
A题/AAA常用/AI交互所需文件/模型3.md
Normal file
@@ -0,0 +1,416 @@
|
||||
## Model Formulation and Solution
|
||||
|
||||
### 1. Mechanistic Narrative for “Unpredictable” Battery Life
|
||||
|
||||
Battery-life “unpredictability” is not treated as randomness by fiat; it emerges from a **closed-loop nonlinear dynamical system** driven by time-varying user behavior. Three mechanisms dominate:
|
||||
|
||||
1. **Uncertain, time-varying inputs**: screen brightness (L(t)), processor load (C(t)), network activity (N(t)), signal quality (\Psi(t)), and ambient temperature (T_a(t)) fluctuate continuously, inducing a fluctuating power request (P_{\mathrm{tot}}(t)).
|
||||
|
||||
2. **Constant-power-load (CPL) nonlinearity**: smartphones behave approximately as CPLs at short time scales; thus the discharge current (I(t)) is not prescribed but must satisfy (P_{\mathrm{tot}}(t)=V_{\mathrm{term}}(t)I(t)). As the terminal voltage declines (low SOC, cold temperature, polarization), the required current increases disproportionately, accelerating depletion.
|
||||
|
||||
3. **State memory**: polarization (v_p(t)) and temperature (T_b(t)) store information about the recent past; therefore, identical “current usage” can drain differently depending on what happened minutes earlier (gaming burst, radio tail, or cold exposure).
|
||||
|
||||
This narrative is included explicitly so that every equation below has a clear physical role in the causal chain
|
||||
[
|
||||
(L,C,N,\Psi,T_a)\ \Rightarrow\ P_{\mathrm{tot}}\ \Rightarrow\ I\ \Rightarrow\ (z,v_p,T_b,S)\ \Rightarrow\ V_{\mathrm{term}},\ \mathrm{TTE}.
|
||||
]
|
||||
|
||||
---
|
||||
|
||||
### 2. State Variables, Inputs, and Outputs
|
||||
|
||||
#### 2.1 State vector
|
||||
|
||||
We model the battery–phone system as a continuous-time state-space system with
|
||||
[
|
||||
\mathbf{x}(t)=\big[z(t),,v_p(t),,T_b(t),,S(t),,w(t)\big]^\top,
|
||||
]
|
||||
where
|
||||
|
||||
* (z(t)\in[0,1]): state of charge (SOC).
|
||||
* (v_p(t)) (V): polarization voltage (electrochemical transient “memory”).
|
||||
* (T_b(t)) (K): battery temperature.
|
||||
* (S(t)\in(0,1]): state of health (SOH), interpreted as retained capacity fraction.
|
||||
* (w(t)\in[0,1]): radio “tail” activation level (continuous surrogate of network high-power persistence).
|
||||
|
||||
#### 2.2 Inputs (usage profile)
|
||||
|
||||
[
|
||||
\mathbf{u}(t)=\big[L(t),,C(t),,N(t),,\Psi(t),,T_a(t)\big]^\top,
|
||||
]
|
||||
where (L,C,N\in[0,1]), signal quality (\Psi(t)\in(0,1]) (larger means better), and (T_a(t)) is ambient temperature.
|
||||
|
||||
#### 2.3 Outputs
|
||||
|
||||
* Terminal voltage (V_{\mathrm{term}}(t))
|
||||
* SOC (z(t))
|
||||
* Time-to-empty (\mathrm{TTE}) defined via a voltage cutoff and feasibility conditions (Section 6)
|
||||
|
||||
---
|
||||
|
||||
### 3. Equivalent Circuit and Core Electro–Thermal–Aging Dynamics
|
||||
|
||||
#### 3.1 Terminal voltage: 1st-order Thevenin ECM
|
||||
|
||||
We use a first-order Thevenin equivalent circuit with one polarization branch:
|
||||
[
|
||||
V_{\mathrm{term}}(t)=V_{\mathrm{oc}}\big(z(t)\big)-v_p(t)-I(t),R_0\big(T_b(t),S(t)\big).
|
||||
]
|
||||
This model is a practical compromise: it captures nonlinear voltage behavior and transient polarization while remaining identifiable and computationally efficient.
|
||||
|
||||
#### 3.2 SOC dynamics (charge conservation)
|
||||
|
||||
Let (Q_{\mathrm{eff}}(T_b,S)) be the effective deliverable capacity (Ah). Then
|
||||
[
|
||||
\boxed{
|
||||
\frac{dz}{dt}=-\frac{I(t)}{3600,Q_{\mathrm{eff}}\big(T_b(t),S(t)\big)}.
|
||||
}
|
||||
]
|
||||
The factor (3600) converts Ah to Coulombs.
|
||||
|
||||
#### 3.3 Polarization dynamics (RC memory)
|
||||
|
||||
[
|
||||
\boxed{
|
||||
\frac{dv_p}{dt}=\frac{I(t)}{C_1}-\frac{v_p(t)}{R_1C_1}.
|
||||
}
|
||||
]
|
||||
The time constant (\tau_p=R_1C_1) governs relaxation after workload changes.
|
||||
|
||||
#### 3.4 Thermal dynamics (lumped energy balance)
|
||||
|
||||
[
|
||||
\boxed{
|
||||
\frac{dT_b}{dt}=\frac{1}{C_{\mathrm{th}}}\Big(I(t)^2R_0(T_b,S)+I(t),v_p(t)-hA\big(T_b(t)-T_a(t)\big)\Big).
|
||||
}
|
||||
]
|
||||
|
||||
* (I^2R_0): ohmic heating
|
||||
* (Iv_p): polarization heat
|
||||
* (hA(T_b-T_a)): convective cooling
|
||||
* (C_{\mathrm{th}}): effective thermal capacitance
|
||||
|
||||
#### 3.5 SOH dynamics: explicit long-horizon mechanism (SEI-inspired)
|
||||
|
||||
Even though (\Delta S) is small during a single discharge, writing a dynamical SOH equation signals mechanistic completeness and enables multi-cycle forecasting.
|
||||
|
||||
**Option A (compact throughput + Arrhenius):**
|
||||
[
|
||||
\boxed{
|
||||
\frac{dS}{dt}=-\lambda_{\mathrm{sei}},|I(t)|^{m}\exp!\left(-\frac{E_{\mathrm{sei}}}{R_gT_b(t)}\right),
|
||||
\qquad 0\le m\le 1.
|
||||
}
|
||||
]
|
||||
|
||||
**Option B (explicit SEI thickness state, diffusion-limited growth):**
|
||||
Introduce SEI thickness (\delta(t)) and define
|
||||
[
|
||||
\frac{d\delta}{dt}
|
||||
==================
|
||||
|
||||
k_{\delta},|I(t)|^{m}\exp!\left(-\frac{E_{\delta}}{R_gT_b}\right)\frac{1}{\delta+\delta_0},
|
||||
\qquad
|
||||
\frac{dS}{dt}=-\eta_{\delta},\frac{d\delta}{dt}.
|
||||
]
|
||||
For Question 1 (single discharge), Option A is typically sufficient and numerically lighter; Option B is presented as an upgrade path for multi-cycle study.
|
||||
|
||||
---
|
||||
|
||||
### 4. Multiphysics Power Mapping: (L,C,N,\Psi\rightarrow P_{\mathrm{tot}}(t))
|
||||
|
||||
Smartphones can be modeled as a sum of component power demands. We define
|
||||
[
|
||||
P_{\mathrm{tot}}(t)=P_{\mathrm{bg}}+P_{\mathrm{scr}}\big(L(t)\big)+P_{\mathrm{cpu}}\big(C(t)\big)+P_{\mathrm{net}}\big(N(t),\Psi(t),w(t)\big).
|
||||
]
|
||||
|
||||
#### 4.1 Screen power
|
||||
|
||||
A smooth brightness response is captured by
|
||||
[
|
||||
\boxed{
|
||||
P_{\mathrm{scr}}(L)=P_{\mathrm{scr},0}+k_L,L^{\gamma},\qquad \gamma>1.
|
||||
}
|
||||
]
|
||||
This form conveniently supports OLED/LCD scenario analysis: OLED-like behavior tends to have stronger convexity (larger effective (\gamma)).
|
||||
|
||||
#### 4.2 CPU power (DVFS-consistent convexity)
|
||||
|
||||
A minimal DVFS-consistent convex map is
|
||||
[
|
||||
\boxed{
|
||||
P_{\mathrm{cpu}}(C)=P_{\mathrm{cpu},0}+k_C,C^{\eta},\qquad \eta>1,
|
||||
}
|
||||
]
|
||||
reflecting that CPU power often grows faster than linearly with load due to frequency/voltage scaling.
|
||||
|
||||
#### 4.3 Network power with signal-quality penalty and radio tail
|
||||
|
||||
We encode weak-signal amplification via a power law and include a continuous tail state:
|
||||
[
|
||||
\boxed{
|
||||
P_{\mathrm{net}}(N,\Psi,w)=P_{\mathrm{net},0}+k_N,\frac{N}{(\Psi+\varepsilon)^{\kappa}}+k_{\mathrm{tail}},w,
|
||||
\qquad \kappa>0.
|
||||
}
|
||||
]
|
||||
|
||||
**Tail-state dynamics (continuous surrogate of radio persistence):**
|
||||
[
|
||||
\boxed{
|
||||
\frac{dw}{dt}=\frac{\sigma(N(t))-w(t)}{\tau(N(t))},
|
||||
\qquad
|
||||
\tau(N)=
|
||||
\begin{cases}
|
||||
\tau_{\uparrow}, & \sigma(N)\ge w,\
|
||||
\tau_{\downarrow}, & \sigma(N)< w,
|
||||
\end{cases}
|
||||
}
|
||||
]
|
||||
with (\tau_{\uparrow}\ll\tau_{\downarrow}) capturing fast activation and slow decay; (\sigma(\cdot)) may be (\sigma(N)=\min{1,N}). This introduces memory without discrete state machines, keeping the overall model continuous-time.
|
||||
|
||||
---
|
||||
|
||||
### 5. Current Closure Under Constant-Power Load (CPL)
|
||||
|
||||
#### 5.1 Algebraic closure
|
||||
|
||||
We impose the CPL constraint
|
||||
[
|
||||
\boxed{
|
||||
P_{\mathrm{tot}}(t)=V_{\mathrm{term}}(t),I(t).
|
||||
}
|
||||
]
|
||||
Substituting (V_{\mathrm{term}}=V_{\mathrm{oc}}-v_p-I R_0) yields
|
||||
[
|
||||
R_0 I^2-\big(V_{\mathrm{oc}}(z)-v_p\big)I+P_{\mathrm{tot}}=0.
|
||||
]
|
||||
|
||||
#### 5.2 Physically admissible current (quadratic root)
|
||||
|
||||
[
|
||||
\boxed{
|
||||
I(t)=\frac{V_{\mathrm{oc}}(z)-v_p-\sqrt{\Delta(t)}}{2R_0(T_b,S)},
|
||||
\quad
|
||||
\Delta(t)=\big(V_{\mathrm{oc}}(z)-v_p\big)^2-4R_0(T_b,S),P_{\mathrm{tot}}(t).
|
||||
}
|
||||
]
|
||||
We take the smaller root to maintain (V_{\mathrm{term}}\ge 0) and avoid unphysical large currents.
|
||||
|
||||
#### 5.3 Feasibility / collapse condition
|
||||
|
||||
[
|
||||
\Delta(t)\ge 0
|
||||
]
|
||||
is required for real (I(t)). If (\Delta(t)\le 0), the requested power exceeds deliverable power at that state; the phone effectively shuts down (voltage collapse), which provides a mechanistic explanation for “sudden drops” under cold/low SOC/weak signal.
|
||||
|
||||
---
|
||||
|
||||
### 6. Constitutive Relations: (V_{\mathrm{oc}}(z)), (R_0(T_b,S)), (Q_{\mathrm{eff}}(T_b,S))
|
||||
|
||||
#### 6.1 Open-circuit voltage: modified Shepherd form
|
||||
|
||||
[
|
||||
\boxed{
|
||||
V_{\mathrm{oc}}(z)=E_0-K\left(\frac{1}{z}-1\right)+A,e^{-B(1-z)}.
|
||||
}
|
||||
]
|
||||
This captures the plateau and the end-of-discharge knee smoothly.
|
||||
|
||||
#### 6.2 Internal resistance: Arrhenius temperature dependence + SOH correction
|
||||
|
||||
[
|
||||
\boxed{
|
||||
R_0(T_b,S)=R_{\mathrm{ref}}
|
||||
\exp!\left[\frac{E_a}{R_g}\left(\frac{1}{T_b}-\frac{1}{T_{\mathrm{ref}}}\right)\right]\Big(1+\eta_R(1-S)\Big).
|
||||
}
|
||||
]
|
||||
Cold increases (R_0); aging (lower (S)) increases resistance.
|
||||
|
||||
#### 6.3 Effective capacity: temperature + aging
|
||||
|
||||
[
|
||||
\boxed{
|
||||
Q_{\mathrm{eff}}(T_b,S)=Q_{\mathrm{nom}},S\Big[1-\alpha_Q,(T_{\mathrm{ref}}-T_b)\Big]*+,
|
||||
}
|
||||
]
|
||||
where ([\cdot]*+=\max(\cdot,\kappa_{\min})) prevents nonphysical negative capacity.
|
||||
|
||||
---
|
||||
|
||||
### 7. Final Closed System (ODE + algebraic current)
|
||||
|
||||
Collecting Sections 3–6, the model is a nonlinear ODE system driven by (\mathbf{u}(t)), with a nested algebraic solver for (I(t)):
|
||||
[
|
||||
\dot{\mathbf{x}}(t)=\mathbf{f}\big(t,\mathbf{x}(t),\mathbf{u}(t)\big),
|
||||
\quad
|
||||
I(t)=\mathcal{I}\big(\mathbf{x}(t),\mathbf{u}(t)\big)
|
||||
]
|
||||
where (\mathcal{I}) is the quadratic-root mapping.
|
||||
|
||||
**Initial conditions (must be stated explicitly):**
|
||||
[
|
||||
z(0)=z_0,\quad v_p(0)=0,\quad T_b(0)=T_a(0),\quad S(0)=S_0,\quad w(0)=0.
|
||||
]
|
||||
|
||||
---
|
||||
|
||||
### 8. Parameter Estimation (Hybrid: literature + identifiable fits)
|
||||
|
||||
A fully free fit is ill-posed; we use a **hybrid identification** strategy:
|
||||
|
||||
#### 8.1 Literature / specification parameters
|
||||
|
||||
* (Q_{\mathrm{nom}}), nominal voltage class, plausible cutoff (V_{\mathrm{cut}})
|
||||
* thermal scales (C_{\mathrm{th}},hA) in reasonable ranges for compact devices
|
||||
* activation energies (E_a,E_{\mathrm{sei}}) as literature-consistent order-of-magnitude
|
||||
|
||||
#### 8.2 OCV curve fit: ((E_0,K,A,B))
|
||||
|
||||
From quasi-equilibrium OCV–SOC samples ({(z_i,V_i)}):
|
||||
[
|
||||
\min_{E_0,K,A,B}\sum_i\left[V_i - V_{\mathrm{oc}}(z_i)\right]^2,
|
||||
\quad E_0,K,A,B>0.
|
||||
]
|
||||
|
||||
#### 8.3 Pulse identification: (R_0,R_1,C_1)
|
||||
|
||||
Apply a current pulse (\Delta I). The instantaneous voltage drop estimates
|
||||
[
|
||||
R_0\approx \frac{\Delta V(0^+)}{\Delta I}.
|
||||
]
|
||||
The relaxation yields (\tau_p=R_1C_1) from exponential decay; (R_1) from amplitude and (C_1=\tau_p/R_1).
|
||||
|
||||
#### 8.4 Signal exponent (\kappa) (or exponential alternative)
|
||||
|
||||
From controlled network tests at fixed throughput (N) with varying (\Psi), fit:
|
||||
[
|
||||
\ln\big(P_{\mathrm{net}}-P_{\mathrm{net},0}-k_{\mathrm{tail}}w\big)
|
||||
===================================================================
|
||||
|
||||
\ln(k_NN)-\kappa \ln(\Psi+\varepsilon).
|
||||
]
|
||||
|
||||
---
|
||||
|
||||
### 9. Scenario Simulation (Synthetic yet physics-plausible)
|
||||
|
||||
We choose a representative smartphone battery:
|
||||
|
||||
* (Q_{\mathrm{nom}}=4000,\mathrm{mAh}=4,\mathrm{Ah})
|
||||
* nominal voltage (\approx 3.7,\mathrm{V})
|
||||
|
||||
#### 9.1 A realistic alternating-load usage profile
|
||||
|
||||
Define a 6-hour profile with alternating low/high intensity segments. A smooth transition operator avoids discontinuities:
|
||||
[
|
||||
\mathrm{win}(t;a,b,\delta)=\frac{1}{1+e^{-(t-a)/\delta}}-\frac{1}{1+e^{-(t-b)/\delta}}.
|
||||
]
|
||||
Then
|
||||
[
|
||||
L(t)=\sum_j L_j,\mathrm{win}(t;a_j,b_j,\delta),\quad
|
||||
C(t)=\sum_j C_j,\mathrm{win}(t;a_j,b_j,\delta),\quad
|
||||
N(t)=\sum_j N_j,\mathrm{win}(t;a_j,b_j,\delta),
|
||||
]
|
||||
with (\delta\approx 20) s.
|
||||
|
||||
Example segment levels (normalized):
|
||||
|
||||
* standby/messaging: (L=0.10, C=0.10, N=0.20)
|
||||
* streaming: (L=0.70, C=0.40, N=0.60)
|
||||
* gaming: (L=0.90, C=0.90, N=0.50)
|
||||
* navigation: (L=0.80, C=0.60, N=0.80)
|
||||
Signal quality (\Psi(t)) can be set to “good” for most intervals, with one “poor-signal” hour to test the (\Psi^{-\kappa}) mechanism.
|
||||
|
||||
---
|
||||
|
||||
### 10. Numerical Solution
|
||||
|
||||
#### 10.1 RK4 with nested algebraic current solve
|
||||
|
||||
We integrate the ODEs using classical RK4. At each substage, we recompute:
|
||||
[
|
||||
P_{\mathrm{tot}}\rightarrow V_{\mathrm{oc}}\rightarrow R_0,Q_{\mathrm{eff}}\rightarrow \Delta \rightarrow I
|
||||
]
|
||||
and then evaluate (\dot{\mathbf{x}}).
|
||||
|
||||
**Algorithm 1 (RK4 + CPL closure)**
|
||||
|
||||
1. Given (\mathbf{x}_n) at time (t_n), compute inputs (\mathbf{u}(t_n)).
|
||||
2. Compute (P_{\mathrm{tot}}(t_n)) and solve (I(t_n)) from the quadratic root.
|
||||
3. Evaluate RK4 stages (\mathbf{k}_1,\dots,\mathbf{k}_4), solving (I) inside each stage.
|
||||
4. Update (\mathbf{x}_{n+1}).
|
||||
5. Stop if (V_{\mathrm{term}}\le V_{\mathrm{cut}}) or (z\le 0) or (\Delta\le 0).
|
||||
|
||||
#### 10.2 Step size, stability, and convergence criterion
|
||||
|
||||
Let (\tau_p=R_1C_1). Choose
|
||||
[
|
||||
\Delta t \le 0.05,\tau_p
|
||||
]
|
||||
to resolve polarization. Perform step-halving verification:
|
||||
[
|
||||
|z_{\Delta t}-z_{\Delta t/2}|_\infty < \varepsilon_z,\quad \varepsilon_z=10^{-4}.
|
||||
]
|
||||
Report that predicted TTE changes by less than a chosen tolerance (e.g., 1%) when halving (\Delta t).
|
||||
|
||||
---
|
||||
|
||||
### 11. Result Presentation (what to report in the paper)
|
||||
|
||||
#### 11.1 Primary plots
|
||||
|
||||
* (z(t)) (SOC curve), with shaded regions indicating usage segments
|
||||
* (I(t)) and (P_{\mathrm{tot}}(t)) (secondary axis)
|
||||
* (T_b(t)) to show thermal feedback
|
||||
* Optional: (\Delta(t)) to visualize proximity to voltage collapse under weak signal/cold
|
||||
|
||||
#### 11.2 Key scalar outputs
|
||||
|
||||
* (\mathrm{TTE}) under baseline (T_a=25^\circ\mathrm{C})
|
||||
* (\mathrm{TTE}) under cold (T_a=0^\circ\mathrm{C}) and hot (T_a=40^\circ\mathrm{C})
|
||||
* Sensitivity of TTE to (\Psi) (good vs poor signal), holding (N) fixed
|
||||
|
||||
---
|
||||
|
||||
### 12. Discussion: sanity checks tied to physics
|
||||
|
||||
* **Energy check**: a (4,\mathrm{Ah}), (3.7,\mathrm{V}) battery stores (\approx 14.8,\mathrm{Wh}); if average (P_{\mathrm{tot}}) is (2.5,\mathrm{W}), a (5\text{–}7) hour TTE is plausible.
|
||||
* **Cold penalty**: (R_0\uparrow) and (Q_{\mathrm{eff}}\downarrow) shorten TTE.
|
||||
* **Weak signal penalty**: when (N) is significant, (\Psi^{-\kappa}) materially increases (P_{\mathrm{tot}}), pushing (\Delta) toward zero and shortening TTE.
|
||||
* **Memory effects**: bursts elevate (v_p) and (w), causing post-burst drain that would not appear in static models.
|
||||
|
||||
---
|
||||
|
||||
## References (BibTeX)
|
||||
|
||||
```bibtex
|
||||
@article{Shepherd1965,
|
||||
title = {Design of Primary and Secondary Cells. Part 2. An Equation Describing Battery Discharge},
|
||||
author = {Shepherd, C. M.},
|
||||
journal = {Journal of The Electrochemical Society},
|
||||
year = {1965},
|
||||
volume = {112},
|
||||
number = {7},
|
||||
pages = {657--664}
|
||||
}
|
||||
|
||||
@article{TremblayDessaint2009,
|
||||
title = {Experimental Validation of a Battery Dynamic Model for EV Applications},
|
||||
author = {Tremblay, Olivier and Dessaint, Louis-A.},
|
||||
journal = {World Electric Vehicle Journal},
|
||||
year = {2009},
|
||||
volume = {3},
|
||||
number = {2},
|
||||
pages = {289--298}
|
||||
}
|
||||
|
||||
@article{Plett2004,
|
||||
title = {Extended Kalman Filtering for Battery Management Systems of LiPB-Based HEV Battery Packs: Part 1. Background},
|
||||
author = {Plett, Gregory L.},
|
||||
journal = {Journal of Power Sources},
|
||||
year = {2004},
|
||||
volume = {134},
|
||||
number = {2},
|
||||
pages = {252--261}
|
||||
}
|
||||
```
|
||||
|
||||
125
A题/AAA常用/AI交互所需文件/目录结构.md
Normal file
125
A题/AAA常用/AI交互所需文件/目录结构.md
Normal file
@@ -0,0 +1,125 @@
|
||||
以下是为您定制的**2026 MCM Problem A** 最终目录结构。该结构严格遵循学术论文规范,完美契合您现有的 `模型3`(微分方程组、电热耦合、Sobol灵敏度、随机过程UQ)的内容深度。
|
||||
|
||||
---
|
||||
|
||||
### 中文目录结构 (Chinese Version)
|
||||
|
||||
**目录**
|
||||
|
||||
**1. 引言 (Introduction)**
|
||||
1.1 问题背景与重述 (Background and Problem Restatement)
|
||||
1.2 文献综述 (Literature Review)
|
||||
1.3 本文工作与创新点 (Our Contributions)
|
||||
|
||||
**2. 假设与符号说明 (Assumptions and Notations)**
|
||||
2.1 基本假设与物理依据 (General Assumptions and Physical Justifications)
|
||||
2.2 符号约定 (Notations)
|
||||
|
||||
**3. 连续时间电-热-老化耦合模型的构建 (Model Formulation)**
|
||||
3.1 状态空间定义:从SOC到极化电压 (State-Space Definition: From SOC to Polarization)
|
||||
3.2 多物理场功率映射机制 (Multiphysics Power Mapping)
|
||||
3.2.1 屏幕与处理器的非线性功耗 (Nonlinear Power of Screen and CPU)
|
||||
3.2.2 考虑信号质量惩罚与射频拖尾的网络模型 (Network Model with Signal Penalty and Radio Tail)
|
||||
3.3 电化学-热力学耦合动力学 (Electrochemical-Thermal Coupled Dynamics)
|
||||
3.3.1 改进的Shepherd电压模型 (Modified Shepherd Voltage Model)
|
||||
3.3.2 集总参数热平衡方程 (Lumped-Parameter Thermal Balance Equation)
|
||||
3.4 恒功率负载(CPL)下的电流闭环与电压坍塌条件 (Current Closure and Voltage Collapse under CPL)
|
||||
|
||||
**4. 参数辨识与验证 (Parameter Estimation and Validation)**
|
||||
4.1 混合参数估计算法 (Hybrid Parameter Estimation Strategy)
|
||||
4.2 基准工况下的模型验证 (Model Validation under Baseline Scenarios)
|
||||
|
||||
**5. 电池耗尽时间(TTE)预测与场景分析 (TTE Prediction and Scenario Analysis)**
|
||||
5.1 五种典型用户场景的TTE量化 (Quantification of TTE in Five Typical Scenarios)
|
||||
5.2 关键耗电驱动因子分析 (Analysis of Key Drivers for Battery Drain)
|
||||
5.2.1 信号质量对功耗的非线性放大效应 (Nonlinear Amplification of Signal Quality)
|
||||
5.2.2 环境温度对有效容量的制约 (Constraints of Ambient Temperature on Effective Capacity)
|
||||
|
||||
**6. 模型评估:误差分析、灵敏度与不确定性量化 (Model Evaluation: Error, Sensitivity, and UQ)**
|
||||
6.1 误差来源分类与确定性验证 (Taxonomy of Errors and Deterministic Validation)
|
||||
6.2 基于Sobol指数的全局灵敏度分析 (Global Sensitivity Analysis via Sobol Indices)
|
||||
6.3 基于Ornstein-Uhlenbeck过程的不确定性量化 (Uncertainty Quantification via Ornstein-Uhlenbeck Process)
|
||||
6.4 极端条件下的压力测试 (Stress Testing under Extreme Conditions)
|
||||
|
||||
**7. 策略建议 (Recommendations)**
|
||||
7.1 面向用户的行为优化指南 (User-Centric Optimization Guide)
|
||||
7.2 面向操作系统的智能调度策略 (OS-Level Intelligent Scheduling Strategy)
|
||||
|
||||
**8. 结论 (Conclusion)**
|
||||
8.1 模型总结 (Summary of the Model)
|
||||
8.2 优势与局限性 (Strengths and Limitations)
|
||||
8.3 未来工作展望 (Future Work)
|
||||
|
||||
**参考文献 (References)**
|
||||
**附录 (Appendices)**
|
||||
|
||||
---
|
||||
|
||||
### 英文目录结构 (English Version)
|
||||
|
||||
**Table of Contents**
|
||||
|
||||
**1. Introduction**
|
||||
1.1 Background and Problem Restatement
|
||||
1.2 Literature Review
|
||||
1.3 Our Contributions
|
||||
|
||||
**2. Assumptions and Notations**
|
||||
2.1 General Assumptions and Physical Justifications
|
||||
2.2 Notations
|
||||
|
||||
**3. Formulation of the Continuous-Time Electro-Thermal-Aging Model**
|
||||
3.1 State-Space Definition: From SOC to Polarization
|
||||
3.2 Multiphysics Power Mapping Mechanism
|
||||
3.2.1 Nonlinear Power Consumption of Screen and CPU
|
||||
3.2.2 Network Model with Signal Penalty and Radio Tail Dynamics
|
||||
3.3 Electrochemical-Thermal Coupled Dynamics
|
||||
3.3.1 Modified Shepherd Voltage Model
|
||||
3.3.2 Lumped-Parameter Thermal Balance Equation
|
||||
3.4 Current Closure and Voltage Collapse Conditions under Constant Power Load (CPL)
|
||||
|
||||
**4. Parameter Estimation and Validation**
|
||||
4.1 Hybrid Parameter Estimation Strategy
|
||||
4.2 Model Validation under Baseline Scenarios
|
||||
|
||||
**5. Time-to-Empty (TTE) Prediction and Scenario Analysis**
|
||||
5.1 Quantification of TTE in Five Typical User Scenarios
|
||||
5.2 Analysis of Key Drivers for Battery Drain
|
||||
5.2.1 Nonlinear Amplification Effect of Signal Quality
|
||||
5.2.2 Constraints of Ambient Temperature on Effective Capacity
|
||||
|
||||
**6. Model Evaluation: Error Analysis, Sensitivity, and Uncertainty Quantification**
|
||||
6.1 Taxonomy of Errors and Deterministic Validation
|
||||
6.2 Global Sensitivity Analysis via Sobol Indices
|
||||
6.3 Uncertainty Quantification via Ornstein-Uhlenbeck Stochastic Processes
|
||||
6.4 Stress Testing under Extreme Conditions
|
||||
|
||||
**7. Recommendations**
|
||||
7.1 User-Centric Optimization Guide
|
||||
7.2 OS-Level Intelligent Scheduling Strategy
|
||||
|
||||
**8. Conclusion**
|
||||
8.1 Summary of the Model
|
||||
8.2 Strengths and Limitations
|
||||
8.3 Future Work
|
||||
|
||||
**References**
|
||||
**Appendices**
|
||||
|
||||
---
|
||||
|
||||
### 结构设计亮点说明 (Design Highlights)
|
||||
|
||||
1. **Section 3 (Model Formulation)**:
|
||||
* 使用了 **"Electro-Thermal-Aging"** 和 **"Multiphysics"** 这样的词汇,强调了模型的物理深度。
|
||||
* 特意提到了 **"Radio Tail" (射频拖尾)** 和 **"CPL" (恒功率负载)**,这是你模型中区别于普通线性模型的两大亮点,必须在目录中体现。
|
||||
|
||||
2. **Section 5 (TTE Prediction)**:
|
||||
* 将单纯的“计算结果”提升为 **"Scenario Analysis" (场景分析)**。
|
||||
* 明确列出 **"Signal Penalty" (信号惩罚)** 和 **"Temperature Constraints" (温度约束)**,直接回应题目关于“哪些因素导致电量快速耗尽”的提问。
|
||||
|
||||
3. **Section 6 (Model Evaluation)**:
|
||||
* 这是最能体现数学建模水平的章节。使用了 **"Sobol Indices"** (全局灵敏度) 和 **"Ornstein-Uhlenbeck Process"** (随机过程),展示了你对不确定性量化 (UQ) 的高级处理方法,远超一般的误差分析。
|
||||
|
||||
4. **逻辑流**:
|
||||
* 从物理机理 (Sec 3) -> 参数确定 (Sec 4) -> 实际应用 (Sec 5) -> 鲁棒性评估 (Sec 6) -> 最终建议 (Sec 7),逻辑链条非常清晰严密。
|
||||
BIN
A题/AAA常用/AI交互所需文件/美赛A题模型参数文献调研.docx
Normal file
BIN
A题/AAA常用/AI交互所需文件/美赛A题模型参数文献调研.docx
Normal file
Binary file not shown.
BIN
A题/AAA常用/AI交互所需文件/翻译.pdf
Normal file
BIN
A题/AAA常用/AI交互所需文件/翻译.pdf
Normal file
Binary file not shown.
332
A题/AAA常用/AI交互所需文件/论文结构2.md
Normal file
332
A题/AAA常用/AI交互所需文件/论文结构2.md
Normal file
@@ -0,0 +1,332 @@
|
||||
Below is an updated **paper blueprint** that cleanly integrates the three gap patches **without breaking your frozen MODEL_SPEC logic** (except the explicit, minimal power-mapping extension for GPS). I’ll show **(i) where each patch lands**, **(ii) what each section must now contain**, and **(iii) what new data/evidence is required** so the added content is rigorous (not “text-only fluff”).
|
||||
|
||||
---
|
||||
|
||||
# Updated Paper Blueprint (with GPS + Monte Carlo UQ + Multi-cycle aging)
|
||||
|
||||
## Summary Sheet (1 page)
|
||||
|
||||
### Logical progression (updated)
|
||||
|
||||
1. Model: continuous-time ODE + CPL closure + **extended power mapping including GPS**.
|
||||
2. Core outputs: SOC(t), V_term(t), Δ(t), TTE.
|
||||
3. Key findings:
|
||||
|
||||
* Baseline TTE
|
||||
* **Navigation/GPS drain impact**
|
||||
* **Uncertainty band** (MC distribution + survival curve)
|
||||
* **TTE degradation across cycles** (aging trajectory)
|
||||
4. Recommendations: user + OS + lifecycle-aware battery management.
|
||||
|
||||
### Must include (new evidence)
|
||||
|
||||
* A **one-line quantification** of GPS impact on TTE (ΔTTE from turning GPS “on” vs “off” in a navigation segment).
|
||||
* UQ: mean/CI and at least one survival milestone (e.g., 90% survival time).
|
||||
* Aging: a mini table/plot of TTE vs cycle index (e.g., cycles 0, 50, 100, 200).
|
||||
|
||||
---
|
||||
|
||||
## 1) Introduction and framing
|
||||
|
||||
### Logical progression (updated)
|
||||
|
||||
* “Unpredictability” arises from time-varying usage and environment; **navigation/location services** are a common drain source.
|
||||
* We address both **short-horizon discharge** and **long-horizon degradation**.
|
||||
* Outline three analyses:
|
||||
|
||||
1. Mechanistic model with GPS term
|
||||
2. Monte Carlo UQ for stochastic usage
|
||||
3. Multi-cycle aging forecast for TTE decline
|
||||
|
||||
### Must include
|
||||
|
||||
* Motivation sentence tying GPS to the real-world “navigation drains phone quickly” phenomenon.
|
||||
* A roadmap paragraph mapping to sections: baseline → scenario drivers (including GPS) → global sensitivity → UQ → aging forecast → recommendations.
|
||||
|
||||
---
|
||||
|
||||
## 2) Model overview: states/inputs/outputs/assumptions (minor extension)
|
||||
|
||||
### What changes
|
||||
|
||||
* Add **one new input**: GPS duty variable (G(t)\in[0,1]).
|
||||
(This is the minimal extension implied by your patch: add (P_{\text{gps}}(G)) to (P_{\text{tot}}).)
|
||||
|
||||
### Must include (new items)
|
||||
|
||||
* **Table updates**
|
||||
|
||||
* Inputs now include (G(t)) (unitless, [0,1], “GPS duty / navigation intensity”)
|
||||
* Parameters now include (P_{\text{gps},0}), (k_{\text{gps}})
|
||||
* Assumption: (G(t)) is an externally specified scenario signal (like (L,C,N,\Psi,T_a)), not a new state.
|
||||
|
||||
### Evidence required
|
||||
|
||||
* A short justification for treating GPS drain as linear in duty cycle (first-order approximation).
|
||||
* A stated range for (P_{\text{gps},0}), (k_{\text{gps}}) (even if “calibrated / assumed”; must be declared).
|
||||
|
||||
---
|
||||
|
||||
## 3) Governing equations (PATCH P10 + P11)
|
||||
|
||||
### 3.1 Power mapping (UPDATED)
|
||||
|
||||
#### Logical progression
|
||||
|
||||
1. Screen + CPU + Network + background (existing)
|
||||
2. **GPS term** added additively
|
||||
3. Total power drives CPL current through quadratic closure
|
||||
|
||||
#### Must include (specific equations)
|
||||
|
||||
* Replace total power line exactly as patch indicates:
|
||||
[
|
||||
P_{\mathrm{tot}}(t)=P_{\mathrm{bg}}+P_{\mathrm{scr}}(L)+P_{\mathrm{cpu}}(C)+P_{\mathrm{net}}(N,\Psi,w)+P_{\mathrm{gps}}(G).
|
||||
]
|
||||
* GPS submodel (BLOCK_A):
|
||||
[
|
||||
P_{\mathrm{gps}}(G) = P_{\mathrm{gps},0}+k_{\mathrm{gps}},G(t).
|
||||
]
|
||||
|
||||
#### Evidence/data required to make this rigorous
|
||||
|
||||
* Provide either:
|
||||
|
||||
* (Preferred) a citation/value range from a source (your placeholder [REF-GPS-POWER]) **or**
|
||||
* (If no citation) a **calibration protocol**: “Set (P_{\text{gps},0},k_{\text{gps}}) so that navigation scenario reproduces observed drain factor X,” and report the chosen values.
|
||||
|
||||
### 3.2–3.5 Constitutive + CPL + ODEs (unchanged)
|
||||
|
||||
* No new dynamics are needed; GPS affects (P_{\text{tot}}) only.
|
||||
|
||||
---
|
||||
|
||||
## 4) Time-to-Empty (TTE) and event logic (unchanged structure, stronger interpretation)
|
||||
|
||||
### Logical progression (unchanged)
|
||||
|
||||
* Event functions (g_V,g_z,g_\Delta)
|
||||
* earliest crossing via interpolation
|
||||
* termination reason recorded
|
||||
|
||||
### New content to add (one paragraph)
|
||||
|
||||
* Explain how GPS affects TTE *indirectly*:
|
||||
|
||||
* (G(t)\uparrow \Rightarrow P_{\text{tot}}\uparrow \Rightarrow I\uparrow) via CPL, accelerating SOC decay and potentially increasing the risk of Δ collapse / voltage cutoff earlier.
|
||||
|
||||
### Evidence required
|
||||
|
||||
* A navigation/GPS scenario result showing:
|
||||
|
||||
* higher avg (P_{\text{tot}}), higher max (I), and reduced TTE relative to baseline.
|
||||
|
||||
---
|
||||
|
||||
## 5) Parameterization and data support (must now include GPS + aging-law parameters)
|
||||
|
||||
### Logical progression (expanded)
|
||||
|
||||
1. Parameter groups: power mapping, battery ECM, thermal, radio tail
|
||||
2. **GPS parameters** included in power mapping
|
||||
3. **Aging parameters** (from Section 3.5 SOH law) clearly listed and sourced/assumed
|
||||
4. Plausibility checks (energy, bounds, monotonicity)
|
||||
|
||||
### Must include (new items)
|
||||
|
||||
* GPS parameter table entries: (P_{\text{gps},0},k_{\text{gps}})
|
||||
* Aging-law parameter table entries (whatever Section 3.5 uses; must be explicit)
|
||||
* Clear labeling:
|
||||
|
||||
* “Measured / literature”
|
||||
* “Calibrated”
|
||||
* “Assumed for demonstration”
|
||||
|
||||
### Evidence required
|
||||
|
||||
* For aging: at least one **reference point** like “capacity drops to 80% after N cycles” OR cite your [REF-LIION-AGING].
|
||||
* If no empirical anchor, you must add a limitation note: aging trajectory is qualitative.
|
||||
|
||||
---
|
||||
|
||||
## 6) Numerical method and reproducibility (minor add)
|
||||
|
||||
### Logical progression
|
||||
|
||||
* RK4 nested CPL unchanged.
|
||||
* Add that (G(t)) is treated identically to other inputs in scenario function.
|
||||
|
||||
### Must include
|
||||
|
||||
* Updated trajectory column list to include:
|
||||
|
||||
* (G(t)) and (P_{\text{gps}}(t)) (optional but recommended for clarity)
|
||||
* Reproducibility: seed fixed for MC; dt fixed; step-halving.
|
||||
|
||||
---
|
||||
|
||||
## 7) Baseline results (update: add one GPS/navigation stress baseline)
|
||||
|
||||
### Logical progression (updated)
|
||||
|
||||
1. Baseline scenario plots and TTE table (existing)
|
||||
2. **Navigation with GPS “high duty”** as an extended baseline variant
|
||||
3. Compare TTE and identify mechanism (P_tot, I, Δ)
|
||||
|
||||
### Must include (new evidence)
|
||||
|
||||
* A small 2-row comparison:
|
||||
|
||||
* Baseline (G=0 or low)
|
||||
* Navigation/GPS-active (G high during navigation segment)
|
||||
* Plot overlay or table:
|
||||
|
||||
* ΔTTE, avg (P_{\text{tot}}), avg (P_{\text{gps}})
|
||||
|
||||
---
|
||||
|
||||
## 8) Scenario analysis: drivers of rapid drain (expand the matrix to include GPS)
|
||||
|
||||
### Logical progression (updated)
|
||||
|
||||
* The scenario matrix should now include a GPS-focused scenario explicitly.
|
||||
|
||||
### Must include
|
||||
|
||||
* Add scenario like:
|
||||
|
||||
* **S8: “Navigation + GPS high duty”** (or fold into your existing navigation_poor_signal segment by setting G(t)=1 there)
|
||||
* Keep the ranking output but ensure GPS is represented in driver comparisons.
|
||||
|
||||
### Evidence required
|
||||
|
||||
* Quantified ΔTTE for GPS scenario.
|
||||
* Mechanistic signature entries include avg (P_{\text{gps}}) and show how it shifts current draw.
|
||||
|
||||
---
|
||||
|
||||
## 9) Sensitivity analysis (optional: include GPS parameters)
|
||||
|
||||
### Logical progression
|
||||
|
||||
* Your current Sobol set is fine; but the blueprint should specify a choice:
|
||||
|
||||
* Either keep the 6-parameter set unchanged **or**
|
||||
* Replace the weakest contributor with (k_{\text{gps}}) to test GPS importance.
|
||||
|
||||
### Must include (if you include GPS)
|
||||
|
||||
* Ranges for (k_{\text{gps}}) and/or (P_{\text{gps},0}) (±20% around baseline).
|
||||
* Updated ranking interpretation: whether GPS is a primary driver *in navigation-dominant regimes*.
|
||||
|
||||
---
|
||||
|
||||
## 10) Uncertainty Quantification (PATCH P12: MC is now required, not optional)
|
||||
|
||||
### Logical progression (updated)
|
||||
|
||||
10.1 Define uncertainty source (usage variability)
|
||||
10.2 Deterministic solver stability/step-halving (existing)
|
||||
10.3 **Monte Carlo UQ** (BLOCK_B)
|
||||
10.4 Survival curve and uncertainty reporting
|
||||
|
||||
### Must include (new “hard” components)
|
||||
|
||||
* MC method statement:
|
||||
|
||||
* number of paths (M=300)
|
||||
* perturbation model (OU on L,C,N; optionally also N/Ψ/G if you want)
|
||||
* fixed seed
|
||||
* Outputs:
|
||||
|
||||
* mean TTE, CI, p10/p50/p90, survival curve (P(\text{TTE}>t))
|
||||
|
||||
### Evidence required
|
||||
|
||||
* UQ summary table + survival curve plot/table.
|
||||
* A brief comparison: deterministic baseline TTE vs MC mean vs percentile spread (to interpret “unpredictable”).
|
||||
|
||||
---
|
||||
|
||||
## 11) Multi-cycle aging and lifespan TTE forecasting (PATCH P13)
|
||||
|
||||
### Logical progression
|
||||
|
||||
1. Explain time-scale separation: discharge seconds vs aging days.
|
||||
2. Define outer-loop over cycles (j).
|
||||
3. At each cycle: run discharge simulation → compute throughput → update SOH → update (R_0,Q_{\text{eff}}) → next cycle.
|
||||
4. Produce TTE degradation trajectory.
|
||||
|
||||
### Must include (new evidence)
|
||||
|
||||
* A formal algorithm box for the outer loop (BLOCK_C).
|
||||
* Define (Q_{\text{thr},j}=\int |I(t)|,dt) and how it drives your SOH update (must reference Section 3.5 law).
|
||||
* A plot/table:
|
||||
|
||||
* cycle index (j) vs (S_j) and TTE(_j)
|
||||
* Interpretation:
|
||||
|
||||
* explain why TTE declines (capacity loss + resistance increase).
|
||||
|
||||
### Evidence required
|
||||
|
||||
* Explicit SOH update equation (from your Section 3.5).
|
||||
* At least one aging reference anchor (or clearly marked as “illustrative”).
|
||||
|
||||
---
|
||||
|
||||
## 12) Recommendations (updated: add GPS + lifecycle-aware policy)
|
||||
|
||||
### Logical progression
|
||||
|
||||
* Convert scenario rankings + Sobol + UQ + aging forecast into actions.
|
||||
|
||||
### Must include (new recommendation types)
|
||||
|
||||
* **GPS/location service policy**:
|
||||
|
||||
* adaptive duty-cycling, batching location updates, “navigation mode” warnings
|
||||
* quantify expected gain using your GPS scenario ΔTTE
|
||||
* **Lifecycle-aware** recommendations:
|
||||
|
||||
* as S declines, OS should lower peak power demands to avoid V_cut/Δ collapse earlier
|
||||
* user guidance: avoid high-drain use in cold/poor signal when battery aged
|
||||
|
||||
### Evidence required
|
||||
|
||||
* Each recommendation must cite a model result:
|
||||
|
||||
* “This action targets parameter/driver X and yields ΔTTE ≈ Y in scenario tests.”
|
||||
|
||||
---
|
||||
|
||||
## 13) Validation, limitations, and extensions (expanded)
|
||||
|
||||
### Must include (new limitation + validation points)
|
||||
|
||||
* GPS model limitation: linear duty approximation; could refine with acquisition bursts.
|
||||
* Aging limitation: if no calibrated dataset, trajectory is qualitative.
|
||||
* UQ limitation: OU is a stylized model; could use empirical traces.
|
||||
|
||||
### Validation evidence (additions)
|
||||
|
||||
* Show GPS inclusion doesn’t break:
|
||||
|
||||
* unit checks, Δ feasibility checks, step-halving convergence.
|
||||
|
||||
---
|
||||
|
||||
# What you should update in your appendix/tables (minimum edits)
|
||||
|
||||
1. **Variable table**: add (G(t)).
|
||||
2. **Parameter table**: add (P_{\text{gps},0},k_{\text{gps}}) + aging-law parameters.
|
||||
3. **Scenario matrix**: add one GPS-heavy scenario (navigation).
|
||||
4. **Results**:
|
||||
|
||||
* Baseline + GPS variant TTE comparison
|
||||
* MC summary + survival curve
|
||||
* Multi-cycle TTE vs cycle plot/table
|
||||
|
||||
---
|
||||
|
||||
If you paste your current section headings (or your LaTeX/Word outline), I can produce a **“diff-style” outline**: exact headings to add/renumber, and exactly which existing paragraphs need one new sentence vs a full new subsection.
|
||||
19
A题/AAA常用/AI交互所需文件/重要计算结果.md
Normal file
19
A题/AAA常用/AI交互所需文件/重要计算结果.md
Normal file
@@ -0,0 +1,19 @@
|
||||
### 表1:场景与关键特征
|
||||
| Scenario | Description | Key Characteristics |
|
||||
| --- | --- | --- |
|
||||
| **A: Heavy Gaming** | High-performance gaming with max brightness. | \(L \approx 100\%\) \(C \approx 90\%\) \(N \approx HIGH\) |
|
||||
| **B: Navigation** | Employing GPS to navigate | \(L \approx 80\%\) \(C \approx 70\%\) \(N \approx HIGH\) \(G \approx ACTIVE\) |
|
||||
| **C: Video Streaming** | Watching HD video over 5G. | \(L \approx 60\%\) \(C \approx 30\%\) \(N \approx MEDIUM\) |
|
||||
| **D: Online chatting** | chatting on a messaging app | \(L \approx 60\%\) \(C \approx 10\%\) \(N \approx MEDIUM\) |
|
||||
| **E: Standby** | Screen off, background sync only. | \(L \approx 0\%\) \(C \approx 2\%\) \(N \approx RANDOM\) |
|
||||
|
||||
---
|
||||
|
||||
### 表2:场景对应的性能数据
|
||||
| Scenario | \(P_{tot}\)/mW | TTE/h | Average · \(I(t)\) | Peak · \(T_a\) |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| A | 3551 | 4.11 | 0.97 | 42.5 |
|
||||
| B | 2954 | 5.01 | 0.80 | 38.2 |
|
||||
| C | 2235 | 6.63 | 0.61 | 34.5 |
|
||||
| D | 1481 | 10.02 | 0.42 | 31.0 |
|
||||
| E | 517 | 29.45 | 0.24 | 26.5 |
|
||||
Reference in New Issue
Block a user