2、危害分析与风险评估(HARA):HARA方法论、ASIL等级确定、安全目标定义

好,咱们进入正题。HARA,全称 Hazard Analysis and Risk Assessment,翻译过来就是危害分析与风险评估。这是功能安全设计的起点,也是整个安全生命周期的基石。说白了,就是回答三个问题:系统会不会出问题?出问题有多严重?我们该怎么防?

我见过不少团队,一上来就急着写代码、调算法,结果做到一半发现安全目标没定,ASIL等级没分,最后推倒重来。嗯,那滋味可不好受。所以,咱们先把HARA这块硬骨头啃下来。

2.1 HARA方法论:从场景到危害

HARA不是凭空想象的。它有一套标准流程。我个人习惯把它拆成四步走:

  1. 场景定义:车在什么路上跑?什么天气?什么速度?有没有行人?
  2. 功能识别:感知系统在这个场景下要干什么?比如“识别前方静止车辆”。
  3. 危害识别:如果功能失效,会发生什么?比如“漏识别导致追尾”。
  4. 风险评估:这个危害有多大概率发生?后果多严重?

举个例子。我在做AEB(自动紧急制动)项目时,遇到过这样一个场景:高速公路上,前方车辆突然急刹,本车感知系统需要立刻识别并触发制动。如果感知系统在这个场景下失效——比如摄像头被强光晃了,或者毫米波雷达没检测到——那危害就是“追尾”。

你想想看,这个危害是不是很直接?但光知道危害还不够,我们得量化它。

核心原则: HARA必须覆盖所有合理的运行场景和故障模式。别漏掉那些“看似不可能”的情况——我曾经就吃过这个亏,漏了一个“隧道出口强光”场景,后来测试时差点出事。

2.2 ASIL等级确定:给风险打分

ASIL,全称 Automotive Safety Integrity Level,汽车安全完整性等级。它分四个等级:A、B、C、D,其中D是最严格的(比如刹车系统),A是最宽松的(比如车窗升降)。

怎么确定ASIL等级?ISO 26262给了三个参数:

参数 含义 等级范围
S(Severity) 危害的严重度 S0(无伤害)~ S3(致命)
E(Exposure) 场景发生的概率 E0(几乎不)~ E4(非常高)
C(Controllability) 驾驶员能否控制 C0(完全可控)~ C3(不可控)

然后查表,得到ASIL等级。比如:

  • S3 + E4 + C3 → ASIL D(最严)
  • S2 + E3 + C2 → ASIL B
  • S1 + E2 + C1 → ASIL A
  • 如果三个参数都很低,可能是QM(质量管理,无需按ASIL开发)

我记得有一次,团队里有人争论“感知系统漏检一个行人”的ASIL等级。有人说S3(致命),有人说E3(常见),有人说C2(驾驶员可能反应不过来)。最后我们查了真实事故数据,发现高速场景下驾驶员几乎没时间反应,所以C给了3。最终ASIL D。嗯,这个结论让整个开发团队都紧张起来了——但这就是安全该有的态度。

我的小技巧: 如果拿不准某个参数,就取保守值。比如你觉得S可能是2或3,那就取3。安全设计不怕过度,就怕不足。当然,也别无脑全给D,那样成本会爆炸。

2.3 安全目标定义:把危害变成可执行的要求

有了ASIL等级,下一步就是定义安全目标(Safety Goal)。安全目标是对危害的顶层安全要求,它必须可验证、可追溯。

格式一般是:“当[触发条件]时,系统应[安全行为],以避免[危害]”

举个例子,还是刚才那个AEB场景:

  • 危害:感知系统漏检前方静止车辆,导致追尾。
  • 安全目标:当本车速度 > 30 km/h 且前方存在静止车辆时,感知系统应在 200ms 内输出目标信息,以避免追尾。
  • ASIL等级:D

你看,这个安全目标就很具体了。它告诉开发人员:你要在200ms内检测到,而且要保证不漏。同时它也告诉测试人员:我要验证这个200ms的指标。

我建议每个安全目标都要带一个FTTI(Fault Tolerant Time Interval,容错时间间隔)。比如上面那个200ms,就是FTTI。如果系统在200ms内没反应,那就意味着安全目标被违反了。

避坑指南: 我曾经犯过一个错误——安全目标写得太模糊。比如“系统应可靠地检测行人”。什么叫“可靠”?是99%还是99.999%?后来被审核老师怼了回来。记住:安全目标必须量化,必须可测试。

2.4 实战:一个完整的HARA示例

咱们拿车道保持辅助(LKA)的感知系统来练练手。

场景:高速公路上,本车以100km/h行驶,车道线清晰。感知系统需要识别车道线,并输出车道偏离预警。

危害:感知系统漏识别车道线,导致车辆偏离车道,撞上护栏或相邻车辆。

风险评估

  • S:偏离车道可能撞上对向车辆 → S3(致命)
  • E:高速公路上车道偏离场景常见 → E3
  • C:驾驶员可能打瞌睡,无法及时控制 → C3

查表 → ASIL D

安全目标

  • SG-01:当本车速度 > 60 km/h 且车道线可见时,感知系统应在 100ms 内输出车道线位置,以避免车道偏离。
  • SG-02:当感知系统检测到车道线置信度低于阈值时,应在 50ms 内发出降级提示,并请求驾驶员接管。

你看,两个安全目标,一个管正常情况,一个管故障情况。这就是功能安全设计的精髓——不仅要考虑正常功能,还要考虑功能失效时的应对

总结一下: HARA不是一次性的工作。随着系统设计深入,你会发现新的场景、新的危害。所以,我建议每个项目至少做两轮HARA:一轮在概念阶段,一轮在详细设计阶段。中间如果有重大变更,随时补充。

好了,这一章就到这里。下一章咱们聊聊安全架构设计——怎么把安全目标落地到具体的硬件和软件架构中。到时候我会分享一些我在实际项目中用过的架构模式,保证干货满满。