Initial commit
This commit is contained in:
113
A题/数值分析检验/Response/1.md
Normal file
113
A题/数值分析检验/Response/1.md
Normal file
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user