4. 危险事件识别:触发条件、可控性、危害分析与风险评估(HARA)

好,咱们进入SOTIF分析里最核心的一步——HARA。全称是Hazard Analysis and Risk Assessment,危害分析与风险评估。说白了,就是回答三个问题:哪里会出问题?后果多严重?我们能不能兜住?

我在做L3级高速领航项目时,第一次完整跑完HARA,发现之前漏掉的场景比想象中多得多。嗯,这步走扎实了,后面的功能设计和测试才不至于翻车。

4.1 触发条件:什么情况下危险会冒出来?

触发条件,就是导致系统进入危险状态的导火索。它分两类:

  • 系统内部触发:传感器噪声、算法误判、执行器延迟、通信丢包
  • 环境外部触发:光照突变、雨雪遮挡、路面标线模糊、施工区域、动物横穿

你想想看,一个AEB系统在晴天干路表现完美,但到了隧道出口逆光场景,摄像头瞬间过曝,目标丢失——这就是典型的环境触发条件。

关键原则:触发条件必须可观测、可复现、可测试。不能写“偶尔出现异常”,要写“当光照强度从10000 lux骤降至200 lux且持续超过200ms时”。

我个人习惯把触发条件整理成一张清单表,方便后续场景库构建:

触发类别 典型示例 影响系统
环境光照 逆光、隧道出入口、夜间无路灯 视觉感知
天气条件 大雨、大雾、积雪覆盖车道线 感知+定位
道路结构 急弯、无保护左转、匝道合流 规划+控制
目标特性 异形车、行人撑伞、动物突然横穿 感知+预测
系统退化 传感器脏污、算力过载、定位精度下降 全系统

4.2 可控性:驾驶员能不能救回来?

可控性,英文叫Controllability,评级从C0到C3。它衡量的是:当危险事件发生时,驾驶员(或者远程监控员)有没有能力避免事故。

  • C0:完全可控,驾驶员轻松应对
  • C1:简单可控,需要一点反应时间
  • C2:一般可控,需要熟练操作
  • C3:难以控制,事故几乎无法避免

我曾经在一个项目中,把某个场景的可控性评成了C1,结果测试时发现驾驶员只有不到0.8秒的反应窗口——这明显应该是C2甚至C3。嗯,这里要注意:可控性评估不能只看理论,一定要结合人因实验数据。

避坑指南:我曾经见过团队把“驾驶员注意力分散”作为降低可控性评级的理由,这是不对的。SOTIF的可控性假设驾驶员处于正常驾驶状态,不是分心状态。分心属于功能安全或使用场景偏差,别混在一起。

4.3 危害分析与风险评估(HARA)完整流程

HARA不是一步到位的,它是个迭代过程。我一般按下面几步走:

  1. 定义功能场景:明确ODD、系统功能、人机交互方式
  2. 识别危害事件:结合触发条件,列出所有可能的危险行为
  3. 评估严重度(S):对人员伤害的严重程度,S0~S3
  4. 评估暴露率(E):该场景在真实运行中出现的概率,E0~E4
  5. 评估可控性(C):如上所述,C0~C3
  6. 计算ASIL等级:查ISO 26262的ASIL矩阵,得到QM / ASIL A/B/C/D
  7. 确定安全目标:每个ASIL B以上的危害事件,都要写对应的安全目标

举个例子,我做过一个自动变道功能的HARA:

危害事件 触发条件 S E C ASIL 安全目标
变道时与相邻车道车辆碰撞 盲区目标被遮挡,传感器未检测到 3 3 2 B 系统必须在变道前确认目标车道无碰撞风险
变道中目标突然加速 后车加速行为超出预测模型范围 3 2 2 A 系统必须实时监控目标相对速度,预留安全距离
变道过程中车道线消失 路面标线磨损或施工覆盖 2 3 1 QM 系统应检测车道线置信度,低于阈值时退出变道

个人经验:我建议HARA文档里每个危害事件都附一段场景描述,包括道路类型、天气、目标运动状态、系统响应时间线。这样后续做测试用例时,直接就能映射到具体场景,不用重新脑补。

4.4 HARA与SOTIF的衔接

传统功能安全的HARA主要针对系统故障,比如传感器坏了、软件跑飞了。但SOTIF的HARA要覆盖功能不足和性能局限——也就是系统本身没坏,但能力不够。

举个例子:

  • 功能安全HARA:摄像头信号丢失 → 导致AEB不触发 → ASIL C
  • SOTIF HARA:摄像头被强光致盲,但信号正常 → 导致AEB不触发 → 同样需要分析

你看,同样的后果,触发条件不同,对应的安全措施也不同。功能安全靠冗余和诊断,SOTIF靠场景覆盖和算法鲁棒性。

下面这张图展示了HARA在SOTIF开发中的位置:

SOTIF开发中的HARA流程 功能定义与ODD 场景分析与触发条件 HARA核心分析 严重度(S) | 暴露率(E) | 可控性(C) ASIL等级判定 安全目标与验证策略 迭代优化 SOTIF HARA vs 功能安全HARA 功能安全:系统故障 SOTIF:功能不足 + 性能局限

4.5 实操中的几个坑

最后,分享几个我在项目里踩过的坑:

  • 别漏了“正常功能下的异常场景”:比如ACC正常跟车,但前车突然急刹——这不是系统故障,是场景突变,但HARA必须覆盖。
  • 可控性别拍脑袋:我建议至少做一轮驾驶员在环测试,拿真实反应时间数据说话。纸上谈兵容易评低。
  • 安全目标要可验证:别写“系统应足够安全”,要写“系统在目标车道有车且相对速度大于5m/s时,不得执行变道”。
  • HARA文档要活:随着场景库扩充和算法迭代,HARA要持续更新。我见过最惨的项目,HARA写完就锁柜子,结果测试发现一堆新场景,全得返工。

一句话总结:HARA不是交作业用的文档,它是你设计安全系统的导航地图。地图画得越细,后面走弯路就越少。