车内 CO2 与驾驶员警觉性:从空气循环到 DMS 融合的疲劳管理

93% 的驾驶员不知道长时间内循环模式会导致车内 CO2 浓度升高至影响警觉性的水平。本文深度解析车内 CO2 积累机制、对驾驶员认知能力的影响,以及与 DMS 融合的协同疲劳管理方案。

1. 问题:车内 CO2 积累

1.1 CO2 浓度变化曲线

内循环时长 CO2 浓度 (ppm) 驾驶员状态 对应
0 min 400-500 警觉 基线
15 min 600-800 正常 轻微上升
30 min 800-1200 轻度下降 可感知
45 min 1200-1800 疲劳感 需通风
60 min 1800-2500 困倦 危险
90+ min 2500+ 严重困倦 极危险

1.2 CO2 影响机制

1
2
3
车内人员呼吸 → CO2 排出 → 密闭空间积累 → CO2 浓度升高
→ 血液 CO2 分压升高 → 脑血管扩张 → 脑部血流变化
→ 认知功能下降 → 警觉性降低 → 反应时延长 → 疲劳驾驶

1.3 关键数据

研究 CO2 浓度 对认知影响 来源
Harvard T.H. Chan 1000 ppm 认知得分↓ 15% Allen et al. 2016
Lawrence Berkeley 2500 ppm 决策能力↓ 50% Satish et al. 2012
NHTSA 1500 ppm 驾驶模拟错误↑ NHTSA 报告
Pravda 2000+ ppm 困倦/头痛 2026 报道

2. 内循环 vs 外循环

2.1 CO2 积累模型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class CabinCO2Model:
"""
车内 CO2 积累模型

基于:
- 车厢体积 (V)
- 乘员数量 (n)
- 每人 CO2 排出率
- 通风模式 (内/外循环)
- 外部 CO2 浓度
"""

def __init__(self, cabin_volume_m3=3.0, n_passengers=1):
self.V = cabin_volume_m3 # 车厢体积
self.n = n_passengers # 乘员数
self.co2_per_person = 20000 # ppm·m³/h,每人 CO2 排出
self.external_co2 = 420 # ppm,外部 CO2

def estimate_co2(self, duration_min, mode='recirc'):
"""
估算 CO2 浓度

Args:
duration_min: 时长(分钟)
mode: 'recirc' (内循环) 或 'fresh' (外循环)
"""
if mode == 'recirc':
# 内循环:新风量极低(~3 m³/h 渗透)
ach = 1.0 # Air Changes per Hour
else:
# 外循环:新风量高(~30 m³/h)
ach = 10.0

# CO2 生成率 (ppm/h)
generation = self.co2_per_person * self.n / self.V

# 通风稀释率 (1/h)
dilution = ach * (1 - self.external_co2 / 1e6)

# 稳态浓度 + 瞬态
steady_state = generation / ach + self.external_co2
tau = self.V / (ach * self.V) * 3600 # 时间常数 (秒)

t_sec = duration_min * 60
co2 = steady_state - (steady_state - self.external_co2) * \
np.exp(-t_sec / tau / 3600 * ach)

return co2

def recommend_mode(self, current_co2, recirc_duration_min):
"""推荐通风模式"""
if current_co2 > 1500 or recirc_duration_min > 30:
return 'fresh', 'CO2过高,切换外循环'
elif current_co2 > 1000 or recirc_duration_min > 15:
return 'fresh', '建议切换外循环'
else:
return 'recirc', '当前状态正常'


import numpy as np
if __name__ == "__main__":
model = CabinCO2Model(cabin_volume_m3=3.0, n_passengers=2)

print("=== 车内 CO2 浓度变化 ===")
print(f"{'时间(min)':>10} {'内循环(ppm)':>12} {'外循环(ppm)':>12} {'状态':>10}")
print("-" * 50)

for t in [0, 5, 10, 15, 20, 30, 45, 60, 90]:
recirc = model.estimate_co2(t, 'recirc')
fresh = model.estimate_co2(t, 'fresh')

if recirc > 1500:
status = '🔴 危险'
elif recirc > 1000:
status = '🟡 警告'
else:
status = '🟢 正常'

print(f"{t:>10} {recirc:>12.0f} {fresh:>12.0f} {status:>10}")

print("\n=== 通风模式建议 ===")
print(f"内循环30分钟: {model.recommend_mode(1200, 30)}")
print(f"内循环60分钟: {model.recommend_mode(2000, 60)}")

2.2 内循环使用场景

场景 建议 理由
隧道 内循环 避免尾气
堵车 内循环 避免尾气
高速公路 外循环 CO2 控制优先
雾霾天 内循环+净化 PM2.5 防护
长途驾驶 外循环 防疲劳
新车 外循环 散发VOC

3. CO2 + DMS 融合疲劳管理

3.1 多因素疲劳模型

3.2 融合公式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class MultiFactorFatigueModel:
"""
多因素疲劳模型

融合 DMS + 环境因素
"""

def __init__(self):
self.weights = {
'dms_perclos': 0.35,
'co2_level': 0.20,
'temperature': 0.10,
'driving_duration': 0.15,
'circadian_risk': 0.10,
'ventilation_mode': 0.10,
}

def assess(self, dms_perclos, co2_ppm, temp_c,
driving_hours, circadian_hour, is_recirc):
"""综合评估"""
# DMS 分数 (0-100)
dms_score = min(100, dms_perclos * 3)

# CO2 分数
if co2_ppm < 600:
co2_score = 0
elif co2_ppm < 1000:
co2_score = 20
elif co2_ppm < 1500:
co2_score = 40
elif co2_ppm < 2500:
co2_score = 60
else:
co2_score = 80

# 温度分数
if 20 <= temp_c <= 23:
temp_score = 0
elif temp_c > 25:
temp_score = min(100, (temp_c - 23) * 15)
else:
temp_score = min(50, (20 - temp_c) * 10)

# 驾驶时长
dur_score = min(100, driving_hours * 15)

# 昼夜节律风险
if circadian_hour < 6 or circadian_hour > 22:
circ_score = 60
elif 13 <= circadian_hour <= 15:
circ_score = 30
else:
circ_score = 0

# 通风模式
vent_score = 30 if is_recirc and driving_hours > 0.5 else 0

# 加权综合
total = (dms_score * self.weights['dms_perclos'] +
co2_score * self.weights['co2_level'] +
temp_score * self.weights['temperature'] +
dur_score * self.weights['driving_duration'] +
circ_score * self.weights['circadian_risk'] +
vent_score * self.weights['ventilation_mode'])

if total > 70:
return {'level': 'high', 'score': total,
'action': '强制休息+开窗通风'}
elif total > 40:
return {'level': 'moderate', 'score': total,
'action': '建议休息+切换外循环'}
else:
return {'level': 'low', 'score': total,
'action': '继续监控'}


import numpy as np
if __name__ == "__main__":
model = MultiFactorFatigueModel()

# 场景:长途驾驶2小时,内循环,CO2偏高
result = model.assess(
dms_perclos=25, co2_ppm=1500, temp_c=26,
driving_hours=2, circadian_hour=14, is_recirc=True
)
print(f"疲劳评分: {result['score']:.1f} ({result['level']})")
print(f"建议: {result['action']}")

4. 量产建议

建议 优先级 成本 收益
集成 CO2 传感器 🔴 高 ~$5 环境疲劳检测
内循环时长提醒 🔴 高 软件 预防积累
CO2+DMS 融合告警 🟡 中 软件 综合评估
自动通风模式切换 🟢 低 中 舒适度+安全

5. 总结

车内 CO2 是被忽视的疲劳因素。长时间内循环可使 CO2 达 1500-2500 ppm,直接导致驾驶员警觉性下降。DMS + CO2 融合可实现更全面的疲劳管理:PERCLOS 检测即时状态,CO2 检测环境因素,两者互补可提前预警环境导致的疲劳。


参考来源:

  • Pravda: “Why keeping car air recirculation on too long may affect driver focus” (2026-09-03)
  • Allen et al., Harvard T.H. Chan (2016)
  • Satish et al., Lawrence Berkeley (2012)