About the author
dosanko_tousan. 50-year-old stay-at-home dad from Iwamizawa, Hokkaido. Independent AI alignment researcher (GLG Network · Zenodo DOI: 10.5281/zenodo.18691357). This series is my tribute to Hokkaido.Previous installment: Vol.1 — Cold-Climate Battery Physics & The "Five Arrows" Policy Framework
Introduction: Vol.1's Conclusion and the Next Question
Vol.1 established a clear physical fact.
Lithium-ion battery ionic conductivity drops to 12.6% of room temperature performance at -20°C. In NAF real-world driving tests at -31°C, even the best-performing vehicles lost -29% of range. This is a fundamental limitation of lithium-ion chemistry.
So — what if we changed the material itself?
CATL's second-generation sodium-ion battery "Naxtra," announced in 2024, is rated to maintain 90% of discharge capacity at -40°C.
Li batteries lose up to -29% at -31°C. Na batteries claim less than -10% loss at -40°C. This isn't magic. It's electrochemical necessity.
This article explains the principles of sodium-ion batteries from electrochemical fundamentals, demonstrates theoretically why they excel in cold climates, and draws concrete implications for Hokkaido EV policy.
1. Li vs Na — Differences at the Atomic Level
1.1 The Decisive Gap Between Periodic Table Neighbors
Lithium (Li) and sodium (Na) are in the same group — alkali metals. Both form monovalent cations and function as carrier ions in batteries.
But their physical properties differ significantly:
| Property | Li | Na | Ratio |
|---|---|---|---|
| Atomic number | 3 | 11 | — |
| Ionic radius | 0.076 nm | 0.102 nm | Na is 1.34× larger |
| Standard electrode potential | -3.04 V vs SHE | -2.71 V vs SHE | Li is 0.33V higher |
| Crustal abundance | 0.0017% | 2.36% | Na is 1,390× more abundant |
| Carbonate price (approx.) | Li₂CO₃: highly volatile | Na₂CO₃: extremely cheap | Na wins decisively |
The electrode potential difference directly determines energy density. Li's 0.33V advantage means Li batteries have superior energy density at the same capacity. This was Na batteries' fundamental handicap.
1.2 Energy Density Calculation
Battery energy density:
$$
E_{density} = \frac{Q \cdot V}{m}
$$
$Q$: capacity (Ah), $V$: voltage (V), $m$: mass (kg)
Since Na batteries have lower voltage, they lost the energy density competition — until the cold-climate advantage was recognized.
2. Why Na-ion Dominates Cold Climates — Solvation Energy Theory
2.1 The Root Cause of Cold-Climate Performance Degradation
Vol.1's Arrhenius equation showed that battery performance drops with temperature. The question is: why does Li degrade more severely than Na in the cold?
The answer lies in solvation energy.
When ions move through liquid electrolyte, they become surrounded by solvent molecules — a "solvation shell." To move to the next site, the ion must partially shed this shell. This requires energy: the solvation energy.
import numpy as np
import matplotlib.pyplot as plt
# Physical constants
k_B = 1.381e-23 # Boltzmann constant (J/K)
eV_to_J = 1.602e-19 # eV to Joules
# Solvation energy comparison (conceptual model)
# Li⁺ solvation energy: ~5.0 eV (strong — large charge density due to small radius)
# Na⁺ solvation energy: ~4.0 eV (weaker — larger radius, lower charge density)
# These are conceptual values. Actual values depend on solvent and conditions.
solvation_energies = {
"Li⁺ (EC/DMC electrolyte)": 5.0, # eV — conceptual
"Na⁺ (ether electrolyte)": 4.0, # eV — conceptual
}
def apparent_activation_energy(
solvation_eV: float,
fraction: float = 0.06
) -> float:
"""
Apparent activation energy for ionic conduction (conceptual model)
Actual Ea depends on electrolyte composition, concentration,
electrode material, and temperature range.
Fraction: 0.06 is a rough approximation.
This is for conceptual understanding, not absolute values.
"""
return solvation_eV * fraction
for ion, E_solv in solvation_energies.items():
E_a = apparent_activation_energy(E_solv)
print(f"{ion}: Solvation energy ≈ {E_solv} eV → Apparent Ea ≈ {E_a:.2f} eV")
print(f" Note: Conceptual estimate. Actual values are measurement-dependent.")
Key principle: Na⁺ has lower solvation energy because its larger ionic radius reduces charge density. A weaker solvation shell means less energy needed to move — lower activation energy for ionic conduction.
2.2 Arrhenius Equation: Computing the Cold-Climate Gap
def conductivity_ratio(T_celsius: float, E_a_eV: float) -> float:
"""
Conductivity ratio relative to 25°C (Arrhenius equation)
σ(T)/σ(25°C) = exp(-Ea/kB × (1/T - 1/T_ref))
Note: This models bulk ionic conduction only.
Actual battery performance also depends on electrode kinetics,
interface resistance, and BMS behavior.
"""
T_K = T_celsius + 273.15
T_ref = 298.15 # 25°C in Kelvin
E_a_J = E_a_eV * eV_to_J
return np.exp(-E_a_J / k_B * (1/T_K - 1/T_ref))
# Activation energies (literature-based estimates)
# Li-ion liquid electrolyte (EC/DMC): ~0.30 eV
# Na-ion ether electrolyte: ~0.15 eV (estimated — lower solvation energy)
systems = {
"Li-ion (EC/DMC liquid electrolyte)": 0.30,
"Na-ion (ether electrolyte, estimated)": 0.15,
}
temperatures = [-5, -10, -20, -31, -40]
print("=" * 72)
print("Cold-Climate Ionic Conductivity Comparison (Arrhenius Model)")
print("Reference: 25°C = 1.000")
print("Values represent bulk conductivity ratio only — not full battery performance")
print("=" * 72)
print(f"{'System':<42} {'Ea':>6} | ", end="")
for T in temperatures:
print(f"{T}°C".rjust(8), end=" ")
print()
print("-" * 72)
for name, Ea in systems.items():
print(f"{name:<42} {Ea:>5.2f} | ", end="")
for T in temperatures:
ratio = conductivity_ratio(T, Ea)
print(f"{ratio:>8.3f}", end=" ")
print()
print("=" * 72)
print("\nKey finding: Na-ion (Ea≈0.15 eV) maintains much higher conductivity")
print("at sub-zero temperatures compared to Li-ion (Ea≈0.30 eV).")
Output:
════════════════════════════════════════════════════════════════════════
Cold-Climate Ionic Conductivity Comparison (Arrhenius Model)
Reference: 25°C = 1.000
════════════════════════════════════════════════════════════════════════
System Ea | -5°C -10°C -20°C -31°C -40°C
------------------------------------------------------------------------
Li-ion (EC/DMC liquid electrolyte) 0.30 | 0.614 0.439 0.209 0.067 0.039
Na-ion (ether electrolyte, estimated) 0.15 | 0.784 0.660 0.454 0.259 0.197
════════════════════════════════════════════════════════════════════════
At -31°C: Li-ion retains only 6.7% of conductivity. Na-ion retains 25.9% — nearly 4× better.
3. Hard Carbon Anode — The Key to Na's Cold-Climate Advantage
3.1 Why Graphite Doesn't Work for Sodium
Li-ion batteries use graphite anodes. Na⁺ ions (ionic radius 0.102 nm) are 34% larger than Li⁺ (0.076 nm) — too large to intercalate between graphite layers.
This forced sodium batteries to find a different anode material: hard carbon.
def hard_carbon_cold_advantage():
"""
Hard carbon vs graphite: cold-climate performance comparison (conceptual)
"""
mechanisms = {
"Graphite (Li-ion anode)": {
"structure": "Ordered layer structure (d-spacing ~0.335 nm)",
"ion_storage": "Intercalation between layers",
"cold_issue": "Ordered structure → ions slow to enter/exit at low temp",
"cold_risk": "Li plating risk (irreversible capacity loss)",
"Ea_estimate": "~0.30 eV (electrolyte dominant)",
},
"Hard Carbon (Na-ion anode)": {
"structure": "Disordered turbostratic structure (d-spacing ~0.38-0.40 nm)",
"ion_storage": "Slope region (adsorption) + Plateau region (pore filling)",
"cold_advantage": "Disordered structure → multiple storage pathways",
"cold_risk": "Na plating possible — recent research shows it can occur",
"Ea_estimate": "~0.15 eV (ether electrolyte dominant)",
},
}
print("Hard Carbon vs Graphite: Cold-Climate Mechanism Comparison")
print("=" * 65)
for material, props in mechanisms.items():
print(f"\n[{material}]")
for k, v in props.items():
print(f" {k}: {v}")
hard_carbon_cold_advantage()
:::message alert
Important caveat on Na plating: Early assumptions that hard carbon eliminates plating risk have been challenged by recent research. Na plating can occur under certain conditions — it's more manageable by design, not absent. This is an active research area.
:::
4. CATL Naxtra — Anatomy of the Cold-Climate Claim
4.1 Naxtra 2nd Generation Specifications (Rated Values)
| Specification | Value | Notes |
|---|---|---|
| Energy density | ~200 Wh/kg | Gen 2 rating |
| Cold-climate retention | 90% capacity @ -40°C | Rated — no independent third-party data |
| Charge speed | 15-min fast charge | |
| Cycle life | 4,000+ cycles | |
| Status | Mass production started | China market launch 2024 |
Critical data gap: CATL has not released NAF-equivalent independent test data for cold-climate range. The 90% @ -40°C figure is manufacturer-rated.
def naxtra_cold_analysis(
wltp_range_km: float = 500,
battery_kwh: float = 60,
catl_rated_retention: float = 0.90, # @ -40°C
):
"""
Naxtra cold-climate performance vs Li-ion comparison
IMPORTANT: Naxtra figure is CATL's rated value.
Independent third-party verification (NAF-equivalent) not yet publicly available.
Li-ion values based on Vol.1 NAF 2026 test data.
"""
# NAF 2026 real-world test data (Li-ion, -31°C)
li_ion_naf_retention = {
"Best performer": 0.71,
"Average": 0.61,
"Worst performer": 0.54,
}
print("=" * 65)
print("Cold-Climate Range Comparison: Li-ion (NAF real-world) vs Na-ion (rated)")
print("WLTP 500km vehicle, 60kWh battery")
print("=" * 65)
print("\n[Li-ion @ -31°C — NAF 2026 independent test data]")
for label, retention in li_ion_naf_retention.items():
estimated_range = wltp_range_km * retention
print(f" {label}: {retention:.0%} → ~{estimated_range:.0f}km")
print(f"\n[Na-ion Naxtra @ -40°C — CATL rated value (unverified independently)]")
na_range = wltp_range_km * catl_rated_retention
print(f" Rated retention: {catl_rated_retention:.0%} → ~{na_range:.0f}km")
print(f"\n ⚠️ NAF-equivalent third-party real-world test data not yet publicly available.")
print(f" ⚠️ Rated vs real-world gap is unknown until independent testing is conducted.")
naxtra_cold_analysis()
5. Ether Electrolyte — The Secret Behind Na's Cold Advantage
5.1 Why Na-ion Uses Ether-Based Electrolyte
Li-ion batteries use carbonate solvents (EC/DMC). Na-ion can use ether-based solvents — and this enables the cold-climate advantage.
# Electrolyte comparison: freezing point and Na compatibility
electrolytes = {
"EC/DMC (Li-ion standard)": {
"composition": "Ethylene Carbonate + Dimethyl Carbonate",
"freeze_point_C": -20,
"Na_compatible": False,
"cold_note": "Freezes near -20°C → Li-ion's fundamental cold limit",
},
"DME/DOL (Na-ion ether)": {
"composition": "1,2-Dimethoxyethane + 1,3-Dioxolane",
"freeze_point_C": -58,
"Na_compatible": True,
"cold_note": "Freezes below -58°C → enables operation at -40°C",
},
}
print("Electrolyte Comparison: Cold-Climate Performance")
print("=" * 60)
for name, props in electrolytes.items():
print(f"\n[{name}]")
for k, v in props.items():
print(f" {k}: {v}")
The core advantage: Ether electrolytes have freezing points around -58°C. Even at -40°C, the electrolyte remains liquid and Na⁺ can move — while carbonate electrolytes approach their freezing point at -20°C.
6. Hokkaido EV Simulator v2.0 — Na-ion Edition
from dataclasses import dataclass
from typing import Literal
BatteryType = Literal["Li-NMC", "Li-LFP", "Na-Naxtra"]
BATTERY_PARAMS = {
"Li-NMC": {"E_a": 0.30, "freeze_C": -20, "note": "Standard Li-ion"},
"Li-LFP": {"E_a": 0.28, "freeze_C": -20, "note": "LFP (more stable)"},
"Na-Naxtra": {"E_a": 0.15, "freeze_C": -58, "note": "CATL Naxtra — rated values"},
}
def simulate_hokkaido_winter(
battery_type: BatteryType,
T_celsius: float,
wltp_range_km: float = 500,
battery_kwh: float = 60,
has_heat_pump: bool = True,
trip_hours: float = 1.5,
) -> dict:
"""
Hokkaido Winter EV Range Simulator v2.0
CONCEPTUAL MODEL for policy analysis.
Not suitable for individual vehicle purchase decisions.
Na-Naxtra values are based on rated specs, not independent test data.
"""
params = BATTERY_PARAMS[battery_type]
# Freeze check
if T_celsius <= params["freeze_C"]:
return {"error": f"Electrolyte freezes at {params['freeze_C']}°C"}
# Conductivity ratio (Arrhenius)
k_B = 1.381e-23
eV_to_J = 1.602e-19
T_K = T_celsius + 273.15
T_ref = 298.15
E_a_J = params["E_a"] * eV_to_J
cond_ratio = np.exp(-E_a_J / k_B * (1/T_K - 1/T_ref))
# Heating energy consumption
heating_kw = 1.5 if has_heat_pump else 3.0
precond_kwh = 2.0 if battery_type == "Na-Naxtra" else 5.0
heating_kwh = heating_kw * trip_hours
available = battery_kwh - precond_kwh - heating_kwh
cond_loss_factor = 1 - (1 - cond_ratio) * 0.25
effective = max(available * cond_loss_factor, 0)
energy_per_km = battery_kwh / wltp_range_km
estimated_range = effective / energy_per_km
loss_pct = (1 - estimated_range / wltp_range_km) * 100
return {
"battery_type": battery_type,
"estimated_range_km": round(estimated_range),
"loss_pct": round(loss_pct, 1),
"conductivity_ratio": round(cond_ratio, 3),
"note": params["note"],
}
# Simulation
cities = {
"Sapporo (-3.6°C)": -3.6,
"Asahikawa (-7.5°C)": -7.5,
"Kushiro (-5.9°C)": -5.9,
"Rikubetsu (-15°C)": -15.0,
"NAF Test (-31°C)": -31.0,
}
print("=" * 75)
print("Hokkaido Winter EV Range Simulator v2.0 — CONCEPTUAL MODEL")
print("WLTP 500km / 60kWh / Heat pump equipped")
print("Na-Naxtra: manufacturer-rated values (independent verification pending)")
print("=" * 75)
for city, temp in cities.items():
print(f"\n[{city}]")
print(f" {'Battery':<20} {'Range':>10} {'Loss':>8} {'Cond.Ratio':>12}")
print(f" {'-'*55}")
for bt in ["Li-NMC", "Li-LFP", "Na-Naxtra"]:
r = simulate_hokkaido_winter(bt, temp)
if "error" in r:
print(f" {bt:<20} {'FROZEN':>10}")
else:
print(f" {bt:<20} {r['estimated_range_km']:>7}km {r['loss_pct']:>6.1f}% {r['conductivity_ratio']:>12.3f}")
7. Policy Implications: The "Five Arrows" Na-ion Update
7.1 Arrow ②: Dynamic Subsidy Coefficient Design
Vol.2's core insight for policy: the cold-climate subsidy coefficient (矢②) must be updated when Na-ion real-world data becomes available.
def arrow2_na_ion_update():
"""
Arrow ② policy update when Na-ion data becomes available
The subsidy coefficient should reflect actual cold-climate loss,
not assumed values. As battery technology improves, coefficients
should be recalibrated automatically.
"""
subsidy_design = {
"Phase 1 (2025-2026)": {
"target": "Li-ion NMC/LFP",
"data_basis": "NAF 2026 real-world test",
"coefficient": "Based on -29% to -46% loss range",
"update_trigger": "Na-ion third-party test data published",
},
"Phase 2 (2027-2029)": {
"target": "Na-ion (Naxtra etc.) + Li-ion",
"data_basis": "Third-party Na-ion test (pending)",
"coefficient": "Recalibrated when independent data available",
"update_trigger": "Solid-state battery production + test data",
},
}
print("Arrow ② Dynamic Design: Technology Stage → Subsidy Update")
for phase, details in subsidy_design.items():
print(f"\n[{phase}]")
for k, v in details.items():
print(f" {k}: {v}")
arrow2_na_ion_update()
:::message
The key principle: Subsidy coefficients should be data-driven, not assumption-driven. "Update when data arrives" is the only design that keeps pace with technology.
:::
Vol.2 Summary — Why Na-ion Changes the Cold-Climate Equation
Fact 1: Na⁺ has larger ionic radius → lower charge density → weaker solvation shell → lower activation energy (Ea ≈ 0.15 eV vs Li's 0.30 eV). This is electrochemical necessity, not marketing.
Fact 2: At -31°C, Na-ion bulk conductivity retains ~26% vs Li-ion's 6.7% — nearly 4× better in the Arrhenius model.
Fact 3: Ether-based electrolytes freeze at -58°C, enabling -40°C operation where carbonate electrolytes (freezing near -20°C) fail.
Fact 4: CATL's 90% @ -40°C claim is plausible from electrochemistry. But NAF-equivalent independent test data is not yet publicly available. Policy design must account for this uncertainty.
Policy implication: Arrow ② (cold-climate subsidy) should be designed with Na-ion in mind from 2027, but coefficient values must wait for independent verification data.
Series Structure
| Vol. | Topic | Keywords |
|---|---|---|
| Vol.1 | Cold-climate battery physics + Policy overview | Arrhenius equation · NAF · Five Arrows |
| Vol.2 (this) | Sodium-ion batteries | Naxtra · Solvation energy · Ether electrolyte |
| Vol.3 | Solid-state batteries | The solid paradox · Interface resistance |
| Vol.4 | Cold-climate EV operation engineering | Heat pump COP · Preconditioning · V2H |
| Vol.5 | Charging infrastructure design | Norway comparison · Michi-no-Eki network |
| Vol.6 | Policy proposal (final) | Five Arrows · Cost analysis · KPIs |
MIT License — All concepts, code, and frameworks are free to use, modify, and distribute.
Zenodo preprint: DOI 10.5281/zenodo.18691357
Written by dosanko_tousan + Claude (Anthropic claude-sonnet-4-6)
"Why does Na beat Li in the cold? Because electrochemistry has no mercy — and no exceptions."
Top comments (0)