Files
MCM/A题/数值分析检验/Response/论文结构1.md
2026-02-16 21:52:26 +08:00

418 lines
17 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Below is a **paper blueprint** that matches COMAPs required elements (continuous-time model, TTE, sensitivity, uncertainty, recommendations, validation) and is **logically aligned** with your mechanistic narrative + CPL/ODE structure and your simulation/robustness→sensitivity→UQ workflow .
---
## 0) One-page Summary Sheet (executive-style)
### Logical progression
1. What you built (continuous-time dynamical model + CPL closure).
2. What you predicted (baseline TTE + scenario deltas + uncertainty bands).
3. What drives rapid drain (ranked drivers + mechanism).
4. What users/OS should do (actionable recommendations, prioritized).
### Must include (data/evidence)
* **Headline baseline TTE**: 4.60 h (z0=1.0), plus 10/50/90% or CI summary.
* **Biggest drain drivers** with quantified impact: e.g., Poor signal 1.82 h; Cold 1.45 h; show ranking table.
* **Global sensitivity ranking** (total-order Sobol ST): k_L, k_C, κ, … with values.
* **UQ statement**: mean/std/CI + survival curve milestone (e.g., S(t)=1 until ~4.25h, then drop).
* One sentence on **validation**: step-halving passes + feasibility handling (Δ≥0).
---
## 1) Introduction and problem framing
### Logical progression
1. Define “unpredictable battery life” as **deterministic dynamics under varying inputs**, not randomness.
2. State deliverables required by COMAP: SOC(t), TTE under scenarios, sensitivity, recommendations.
3. Preview your modeling philosophy: **explicit continuous-time** + interpretable mechanisms (screen/CPU/network/temp/aging).
### Must include (arguments/evidence)
* A short “causal chain” narrative: inputs → power → current → states → voltage → TTE (you already have this).
* Clear statement that the model is **continuous-time ODE + algebraic closure**, not curve fitting/black box.
* Define key terms: SOC, TTE, drivers of drain (align with problem glossary).
---
## 2) Model overview: states, inputs, outputs, and assumptions
### Logical progression
1. Present the system as state-space: **x(t), u(t), outputs**.
2. Explain *why* each state exists (memory/physics): polarization, thermal, radio-tail, SOH.
3. List assumptions from strongest to weakest (and what they buy you).
### Must include (specific content)
* **Table: variables with units and bounds**
* States: z, v_p, T_b, S, w
* Inputs: L, C, N, Ψ, T_a
* Outputs: V_term(t), SOC(t), TTE
* **Assumptions (must be explicit):**
* Smartphone ≈ constant-power-load at short timescale (CPL).
* 1st-order Thevenin ECM adequate for transient voltage memory.
* Lumped thermal model; SOH constant over a single discharge (but model-ready for multi-cycle).
---
## 3) Governing equations (core contribution)
### Logical progression (recommended subsection order)
3.1 **Power mapping** (usage → demand): P_tot(L,C,N,Ψ,w).
3.2 **Electro-thermal-aging constitutive laws**: V_oc(z), R0(T_b,S), Q_eff(T_b,S).
3.3 **CPL closure**: solve current algebraically each instant.
3.4 **ODE system**: dz/dt, dv_p/dt, dT_b/dt, dw/dt (+ optional dS/dt).
3.5 **Guards/constraints**: z_min, Q_eff_floor, clamping, feasibility Δ≥0.
### Must include (equations + interpretive evidence)
* **Explicit equations** (as you already froze):
* P_scr, P_cpu, P_net (include Ψ penalty + radio tail term).
* V_term = V_oc v_p I R0 and ODEs for z, v_p, T_b, w.
* CPL quadratic and chosen root + discriminant Δ.
* **Physical interpretation paragraph per block**
* Why weak signal increases power (Ψ^{−κ} factor).
* Why cold reduces deliverable power (R0↑, Q_eff↓).
* Why CPL creates “end-of-discharge acceleration” (feedback loop).
* **Non-negotiable rigor items**
* Define z_eff = max(z, z_min) to avoid 1/z singularity (show where it enters).
* Define Q_eff floor and clamping rules.
* State feasibility: if Δ<0, requested power exceeds deliverable → shutdown/collapse mechanism.
---
## 4) Time-to-empty (TTE) definition and event logic
### Logical progression
1. Define termination events **mathematically**: gV, gz, gΔ.
2. Explain why multiple termination modes exist (voltage cutoff vs SOC exhaustion vs deliverability collapse).
3. Define numerical event location (interpolation) and tie-breaking.
### Must include (data/evidence)
* **Event function definitions**:
* gV(t)=V_termV_cut, gz(t)=z, gΔ(t)=Δ
* Terminate at earliest crossing (min t*).
* **Interpolation formula** for t* between samples (include exact linear formula).
* **Unit-consistent TTE**: TTE = t* t0.
* **Worked micro-example** (12 sentences) illustrating interpolation (optional but strengthens clarity).
This directly satisfies “compute/approximate TTE under various initial charges and scenarios.”
---
## 5) Parameterization and data support (credibility section)
### Logical progression
1. Split parameters into **(i) physical battery**, **(ii) phone power mapping**, **(iii) thermal**, **(iv) radio tail**.
2. State how each group can be obtained:
* literature/specs, simple experiments, or plausibility constraints.
3. Include a “plausibility check” pipeline (energy, ranges, signs).
### Must include (specific evidence)
* **Full parameter table** with units + baseline values (your BASELINE_CONFIG_v1).
* **Justification strategy** (even if you used synthetic values):
* Which parameters are “tuned” vs “known.”
* Show at least one sanity anchor: nominal energy ≈ 14.8 Wh for 4 Ah @ 3.7 V (you used this as an energy check).
* **Validation constraints**:
* P_tot in plausible W-range; V_term stays finite; Δ≥0 except at collapse; SOC monotone when I≥0.
---
## 6) Numerical method and reproducibility
### Logical progression
1. Present solver choice: RK4 with nested CPL solve “inside stages.”
2. Show the algorithm pipeline and what is recorded each step (trajectory columns).
3. State robustness checks: step-halving + event-location stability.
### Must include (data/evidence)
* **Algorithm box** (pseudo-code is fine):
* compute P_tot → constitutive → Δ → I → RHS → RK4 step → clamp → event check.
* **Step-halving table** (you already have): z_diff_inf and relative TTE error, all passing.
* **Event bracket report** (previous/curr g values + interpolated t*), proving event detection is stable.
* **Reproducibility controls**: dt, t_max, seed, scenario definition.
---
## 7) Baseline results: SOC curves and TTE vs initial charge
### Logical progression
1. Present baseline scenario definition (6 segments + smooth transitions).
2. Show trajectory plots (SOC, I/P_tot, T_b, Δ).
3. Summarize TTE across z0 options; connect to mechanism.
### Must include (data/evidence)
* **TTE table** for z0={1,0.75,0.5,0.25}: TTE_hours, reason, avg power, max current, max temperature.
* **Figures (minimum set):**
1. z(t)
2. I(t) and P_tot(t)
3. T_b(t)
4. Δ(t)
* **Energy plausibility check**: integrate P_tot over [0,t*] and compare to nominal battery energy.
---
## 8) Scenario analysis: “drivers of rapid drain”
### Logical progression
1. Define controlled scenario set (one-factor ablations + stress tests).
2. Compare ΔTTE relative to baseline; rank drivers.
3. For top drivers, show “mechanistic signature” metrics (why it happened in your model).
### Must include (data/evidence)
* **Scenario matrix table** (S0S7) with TTE and ΔTTE.
* **Driver ranking** list (largest reductions first).
* **Mechanistic signatures for top 23 drain cases**:
* avg(P_tot), max(I), min(Δ), avg(R0), avg(Q_eff).
* **Mechanistic explanation paragraphs**:
* Poor signal: Ψ penalty increases P_net → Δ decreases → higher I → faster SOC decline.
* Cold: Arrhenius R0↑ + Q_eff↓ → earlier V_cut termination (switching reason matters).
This directly answers COMAPs “identify drivers; which conditions reduce battery life most; which change little.”
---
## 9) Sensitivity analysis (assumptions + parameters)
### Logical progression
1. Distinguish **local** (one-at-a-time) from **global** sensitivity.
2. Use Sobol/Saltelli for global ranking of TTE drivers.
3. Interpret what high ST means operationally (what the OS/user can influence).
### Must include (data/evidence)
* **Sobol results table**: S_i and ST_i for exactly the selected parameters (k_L, k_C, κ, …).
* **Sampling details**: N_base, seed, ranges (±20%), failure count = 0.
* **Interpretation**: e.g., k_L dominating suggests brightness policy is powerful; κ indicates signal-quality management is critical.
This fulfills “examine how predictions vary with assumptions/parameters/usage fluctuations.”
---
## 10) Uncertainty quantification (usage variability) + survival curve
### Logical progression
1. Define the uncertainty source: **stochastic usage paths** around baseline.
2. Explain OU perturbations and why they are appropriate (mean-reverting behavior).
3. Convert Monte Carlo TTE samples into decision-friendly outputs (CI, percentiles, survival curve).
### Must include (data/evidence)
* **UQ summary**: mean/std/p10/p50/p90 and CI95 for mean.
* **Survival curve table/plot**: S(t)=P(TTE>t) on fixed grid.
* **Reproducibility**: M, seed, θ, σ, dt.
* **Discussion**: what uncertainty means for “unpredictability” (bounded variability, not arbitrary).
---
## 11) Recommendations (user + operating system)
### Logical progression
1. Convert scenario + sensitivity findings into ranked interventions.
2. Provide user-facing recommendations (actions) and OS-facing (policies).
3. Tie each recommendation to a model mechanism and quantified benefit.
### Must include (data/evidence)
* **Ranked recommendation table**:
* Action, mechanism, expected ΔTTE (hours/%), tradeoff.
* Examples you can justify directly from your tables:
* Improve signal conditions / switch network modes in poor signal (largest loss case).
* Reduce brightness and CPU load (largest gains in ablations; aligns with Sobol ranking).
* Cold-weather mitigation: thermal management / conservative power mode to avoid V_cut early.
* Explicitly connect to COMAPs recommendation prompt.
---
## 12) Model validation, limitations, and extensions
### Logical progression
1. Validation checks you performed (numerical + physical).
2. Where the model performs well vs poorly (conditions).
3. Extensions that preserve continuous-time, mechanistic nature.
### Must include (data/evidence)
* **Validation evidence**
* Dimensional consistency checklist (units).
* Monotonicity dz/dt ≤ 0 for I ≥ 0.
* Step-halving pass + event stability report.
* **Limitations**
* Parameter realism (if synthetic) and what data would tighten it.
* Single-node thermal; simplified CPU/network power mapping; SOH dynamics negligible in single discharge.
* **Extensions**
* Multi-cycle SOH (SEI-inspired) already proposed in your model narrative as an upgrade path.
* Multi-node thermal / OS control loops / adaptive power caps (still continuous-time).
---
## 13) References + AI Use Report
### Must include
* Proper citations for any literature/specs used for parameters and for OCV/ECM modeling (your BibTeX draft is a good start).
* COMAP-required **AI Use Report** appended (doesnt count toward 25 pages).
---
### If you want a “no-miss” checklist
I can turn the above into a **page-by-page outline** (25-page cap aware) with:
* exact figure placements,
* exact table placements,
* and paragraph-level “claim → evidence → implication” bullets for each subsection.
{
"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"
}
}