协议信息
核心变化概览 四阶段安全框架 Euro NCAP 2026将安全评估重组为四个阶段:
graph LR
A[Safe Driving<br>安全驾驶] --> B[Crash Avoidance<br>碰撞避免]
B --> C[Crash Protection<br>碰撞保护]
C --> D[Post-Crash Safety<br>碰撞后安全]
阶段
权重
最低分数要求(5星)
关键模块
Safe Driving
25%
60%→70% (2027)
DMS、HMI、CPD
Crash Avoidance
40%
70%
AEB、LKA、FCW
Crash Protection
25%
80%
正面/侧面/追尾碰撞
Post-Crash Safety
10%
-
eCall、救援信息
Safe Driving阶段详细解读 1. 驾驶员监控系统(DMS) 扩展要求:
检测类型
2025协议
2026协议
检测方法
疲劳
✅
✅
PERCLOS、眼动分析
分心
✅
✅
视线偏离、手机使用
酒精/药物损伤
❌
✅ 新增
行为分析、方向盘操控熵
无响应驾驶员
❌
✅ 新增
多级警告+ADAS干预
酒精损伤检测指标:
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 class AlcoholImpairmentDetector : def __init__ (self ): self .steering_entropy_threshold = 0.45 self .lane_departure_threshold = 3 self .reaction_time_threshold = 2.5 def detect (self, steering_data, lane_data, gaze_data ): """ 酒精损伤检测 Args: steering_data: 方向盘操控数据序列 lane_data: 车道偏离数据 gaze_data: 视线数据 Returns: impairment_level: 0-正常, 1-轻微损伤, 2-严重损伤 """ steering_entropy = self .calculate_steering_entropy(steering_data) lane_departures = len ([e for e in lane_data if e['type' ] == 'departure' ]) reaction_time = self .measure_reaction_time(gaze_data) if steering_entropy > self .steering_entropy_threshold: if lane_departures > self .lane_departure_threshold: return 2 else : return 1 return 0 def calculate_steering_entropy (self, steering_data ): """ 计算方向盘操控熵(Nakayama方法) 参考:Nakayama et al., "Steering entropy as a measure of driver distraction" """ predictions = [] for i in range (2 , len (steering_data)): pred = 0.5 * steering_data[i-1 ] + 0.5 * steering_data[i-2 ] predictions.append(pred) actual = steering_data[2 :] errors = np.abs (np.array(actual) - np.array(predictions)) normalized_errors = errors / (np.max (errors) + 1e-6 ) entropy = -np.sum (normalized_errors * np.log2(normalized_errors + 1e-6 )) return entropy
无响应驾驶员干预流程:
graph TD
A[DMS检测到无响应] --> B{一级警告}
B -->|无反馈| C{二级警告}
C -->|无反馈| D[ADAS干预]
D --> E[减速+靠边停车]
E --> F[激活eCall]
B -->|有反馈| G[继续监控]
C -->|有反馈| G
2. 人机交互界面(HMI)测试 新增要求:
功能
评估标准
得分条件
喇叭
物理按钮优先
物理按钮:2分,触摸屏:0分
雨刮器
易于访问
物理按钮:2分,触摸屏:0分
转向灯
直观操作
物理拨杆:2分,触摸屏:0分
危险报警灯
单次操作激活
物理按钮:2分,触摸屏:1分
评估方法:
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 class HMIEvaluator : def __init__ (self ): self .controls = { 'horn' : {'physical' : 2 , 'touchscreen' : 0 }, 'wipers' : {'physical' : 2 , 'touchscreen' : 0 }, 'indicators' : {'physical' : 2 , 'touchscreen' : 0 }, 'hazard_lights' : {'physical' : 2 , 'touchscreen' : 1 } } def evaluate (self, vehicle_config ): """ 评估车辆HMI配置 Args: vehicle_config: { 'horn': 'physical' or 'touchscreen', 'wipers': 'physical' or 'touchscreen', ... } Returns: score: 总分(满分8分) """ score = 0 for control, control_type in vehicle_config.items(): if control in self .controls: score += self .controls[control][control_type] return scoreif __name__ == "__main__" : traditional_config = { 'horn' : 'physical' , 'wipers' : 'physical' , 'indicators' : 'physical' , 'hazard_lights' : 'physical' } touchscreen_config = { 'horn' : 'touchscreen' , 'wipers' : 'touchscreen' , 'indicators' : 'touchscreen' , 'hazard_lights' : 'touchscreen' } evaluator = HMIEvaluator() print (f"传统配置得分: {evaluator.evaluate(traditional_config)} /8" ) print (f"触摸屏配置得分: {evaluator.evaluate(touchscreen_config)} /1" )
3. 儿童存在检测(CPD) 2026协议要求:
检测对象
检测时限
警告方式
婴儿(<1岁)
锁车后≤30s
车内蜂鸣+手机推送
儿童(1-12岁)
锁车后≤60s
车内蜂鸣+手机推送
技术路线对比:
技术
优势
劣势
Euro NCAP推荐
60GHz毫米波雷达
穿透厚毯子、隐私友好
分辨率有限
⭐⭐⭐⭐⭐
超声波传感器
成本低
受温度影响、穿透性差
⭐⭐⭐
摄像头
信息丰富
隐私争议、遮挡敏感
⭐⭐⭐⭐
压力传感器
简单可靠
无法区分活体/物体
⭐⭐
雷达方案示例:
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 class CPDRadar : def __init__ (self ): self .radar = Radar60GHz() self .vital_signs_threshold = { 'breathing_rate' : (10 , 30 ), 'heart_rate' : (60 , 120 ) } def detect (self ): """ 检测车内儿童 Returns: { 'detected': bool, 'location': 'rear_left' | 'rear_right' | 'front', 'vital_signs': {'breathing': float, 'heart_rate': float} } """ point_cloud = self .radar.get_point_cloud() vital_signs = self .extract_vital_signs(point_cloud) is_child = self .classify_child(vital_signs) return { 'detected' : is_child, 'location' : self .locate_target(point_cloud), 'vital_signs' : vital_signs } def extract_vital_signs (self, point_cloud ): """ 从雷达点云提取生命体征 """ breathing_rate = self .analyze_breathing(point_cloud) heart_rate = self .analyze_heart_rate(point_cloud) return { 'breathing' : breathing_rate, 'heart_rate' : heart_rate } def classify_child (self, vital_signs ): """ 判断是否为儿童生命体征 """ breathing = vital_signs['breathing' ] heart_rate = vital_signs['heart_rate' ] if 20 <= breathing <= 40 and 80 <= heart_rate <= 130 : return True return False
Crash Avoidance阶段详细解读 1. AEB性能要求提升 新增测试场景:
场景代码
场景描述
测试速度
通过条件
C2C-01
前车突然减速
50-80km/h
避免碰撞或速度降低≥50%
C2C-02
前车静止
30-60km/h
避免碰撞
C2V-01
横向车辆穿越
30-50km/h
避免碰撞
C2P-01
行人横穿
20-50km/h
避免碰撞
C2P-02
行人沿路行走
30-60km/h
避免碰撞或速度降低≥30%
2. 车道保持辅助(LKA) 自适应LKA(2026新增):
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 class AdaptiveLKA : """ 自适应车道保持辅助 根据驾驶员警觉性调整干预强度 """ def __init__ (self ): self .alertness_levels = { 'high' : {'intervention' : 'minimal' , 'warning' : 'none' }, 'medium' : {'intervention' : 'moderate' , 'warning' : 'visual' }, 'low' : {'intervention' : 'strong' , 'warning' : 'audio' } } def update (self, driver_state ): """ 根据驾驶员状态更新LKA参数 Args: driver_state: { 'alertness': 'high' | 'medium' | 'low', 'fatigue_score': 0-100, 'distraction_score': 0-100 } """ alertness = driver_state['alertness' ] config = self .alertness_levels[alertness] if config['intervention' ] == 'minimal' : self .torque_limit = 1.0 elif config['intervention' ] == 'moderate' : self .torque_limit = 2.5 else : self .torque_limit = 5.0 self .warning_mode = config['warning' ]
Crash Protection阶段详细解读 1. 乘员多样性测试 新增测试配置:
乘员类型
身高
体重
测试重点
小身材女性
149cm
49kg
胸部压缩量、颈部伤害
大身材男性
188cm
99kg
腿部伤害、头部碰撞
老年人
165cm
70kg
胸部伤害、肋骨骨折风险
儿童(6岁)
120cm
22kg
儿童安全座椅兼容性
2. 侧翻保护 测试要求:
车顶强度:≥4倍车重
侧翻后车门可开启性
安全带预紧器激活时序
Post-Crash Safety阶段详细解读 1. 救援信息表(Rescue Sheet) ISO 17840标准:
信息类别
必填内容
车辆识别
VIN、车型、年份
动力系统
燃油类型、电池位置
高压系统
电压、切断位置(仅EV)
气囊位置
气囊数量、位置、类型
安全带预紧器
位置、激活条件
2. 增强型eCall系统 必须传输的数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 { "timestamp" : "2026-07-18T00:00:00Z" , "location" : { "latitude" : 48.1351 , "longitude" : 11.5820 , "altitude" : 520 } , "crash_info" : { "impact_type" : "frontal" , "severity" : "high" , "delta_v" : 45.2 } , "occupant_info" : { "total_count" : 4 , "seatbelt_status" : [ "fastened" , "fastened" , "unfastened" , "fastened" ] , "airbag_deployed" : [ "yes" , "yes" , "no" , "yes" ] } , "vehicle_info" : { "vin" : "WVWZZZ1KZPW123456" , "fuel_type" : "electric" , "battery_capacity" : 75 , "thermal_runaway_risk" : false } }
3. 电动车特殊要求 热失控检测(90分钟要求):
检测项
要求
检测方法
电池温度
≤60°C
温度传感器
烟雾检测
无检测到
光学传感器
电压降
≤10%
电压监测
Zeekr 7GT案例分析(Euro NCAP首测车型) 评分详情
阶段
得分率
星级
Safe Driving
85%
⭐⭐⭐⭐⭐
Crash Avoidance
92%
⭐⭐⭐⭐⭐
Crash Protection
88%
⭐⭐⭐⭐⭐
Post-Crash Safety
95%
⭐⭐⭐⭐⭐
DMS表现 优势:
疲劳检测得分率:90%
分心检测得分率:88%
损伤检测得分率:85%(新增项)
不足:
触摸屏依赖过重,HMI得分较低
物理控制功能缺失(喇叭、雨刮器)
CPD表现
儿童检测准确率:95%
误报率:<5%
警告响应时间:≤20s
AB Dynamics测试工具 Special Groups Euro NCAP 2026模块 预配置场景:
总数:1200+场景
覆盖:Safe Driving、Crash Avoidance、Crash Protection
节省开发时间:数月
场景分类:
类别
数量
示例场景
疲劳检测
180
PERCLOS≥30%、微睡眠、持续闭眼
分心检测
220
手机使用、视线偏离、中控操作
损伤检测
150
酒精损伤、药物损伤、疲劳损伤
AEB测试
350
前车减速、行人横穿、自行车穿越
LKA测试
200
车道偏离、弯道保持、紧急避让
CPD测试
100
婴儿检测、儿童检测、宠物检测
IMS开发启示 1. 开发优先级
模块
Euro NCAP分数
开发周期
优先级
基础DMS(疲劳+分心)
15分
3个月
🔴 高
酒精损伤检测
5分
2个月
🔴 高
无响应驾驶员干预
5分
2个月
🔴 高
CPD雷达方案
10分
3个月
🔴 高
安全带误用检测
5分
2个月
🟡 中
HMI物理按钮
8分
1个月
🟡 中
2. 测试验证策略 步骤1:场景覆盖验证
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 def check_scenario_coverage (test_results, euro_ncap_scenarios ): """ 检查测试场景覆盖率 Args: test_results: 已完成的测试结果 euro_ncap_scenarios: Euro NCAP 2026所有场景 Returns: coverage_report: { 'total_scenarios': int, 'passed_scenarios': int, 'failed_scenarios': int, 'missing_scenarios': list } """ passed = [] failed = [] for scenario in euro_ncap_scenarios: if scenario['id' ] in test_results: if test_results[scenario['id' ]]['passed' ]: passed.append(scenario) else : failed.append(scenario) missing = [s for s in euro_ncap_scenarios if s['id' ] not in test_results] return { 'total_scenarios' : len (euro_ncap_scenarios), 'passed_scenarios' : len (passed), 'failed_scenarios' : len (failed), 'missing_scenarios' : len (missing), 'coverage_rate' : len (passed) / len (euro_ncap_scenarios) * 100 }
步骤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 class EuroNCAPTestPipeline : def __init__ (self, vehicle_config ): self .vehicle = vehicle_config self .test_results = {} def run_all_tests (self ): """运行所有Euro NCAP测试""" self .run_dms_tests() self .run_cpd_tests() self .run_aeb_tests() self .run_hmi_tests() return self .generate_report() def run_dms_tests (self ): """DMS测试套件""" dms_scenarios = [ {'id' : 'DMS-F-01' , 'type' : 'fatigue' , 'duration' : 60 }, {'id' : 'DMS-D-01' , 'type' : 'distraction' , 'duration' : 30 }, {'id' : 'DMS-I-01' , 'type' : 'impairment' , 'duration' : 120 } ] for scenario in dms_scenarios: result = self .execute_scenario(scenario) self .test_results[scenario['id' ]] = result
3. 文档准备清单 Euro NCAP Dossier必备内容:
章节
内容
页数
系统概述
传感器配置、软件版本
5
DMS算法
疲劳/分心/损伤检测逻辑
15
测试报告
1200+场景测试结果
50
性能数据
精度、召回率、误报率
10
边界条件
光照、遮挡、温度范围
5
总结 Euro NCAP 2026协议在Safe Driving 阶段大幅提升要求,新增酒精损伤检测 、无响应驾驶员干预 、HMI评估 ,并将CPD纳入强制要求。IMS开发需重点关注:
DMS多模态融合 :疲劳+分心+损伤检测一体化
CPD雷达方案 :60GHz毫米波雷达穿透性优势
HMI物理按钮 :避免全触摸屏配置损失8分
自动测试流水线 :覆盖1200+场景验证
官方参考: Euro NCAP 2026 Provisional Protocols, https://www.euroncap.com/en/for-engineers/protocols/2026-protocols/