4、危害分析与风险评估(HARA)
好,咱们进入正题。HARA,全称是 Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:车会不会出问题?出问题有多严重?我们该怎么防?
我刚开始做功能安全那会儿,觉得HARA就是个走流程的文档工作。后来在一次ADAS项目中,因为风险评估漏了一个场景,差点导致项目延期三个月。嗯,从那以后,我再也不敢小看HARA了。
4.1 HARA方法论:从场景到危害
HARA的核心思路,其实不复杂。你想想看,一辆车在路上跑,总会遇到各种情况。我们要做的,就是把这些情况一个个拎出来分析。
我个人习惯把HARA分成三步走:
- 场景分析:车辆在什么情况下运行?
- 危害识别:系统故障会导致什么危险?
- 风险评估:这个危险有多大概率发生?后果多严重?
举个例子,我在做英伟达Orin芯片的HARA时,遇到过这样一个场景:
场景:车辆在高速公路上以120km/h行驶,开启自适应巡航(ACC)。
危害:摄像头感知模块故障,导致前方车辆距离测量错误。
后果:ACC系统未及时减速,可能发生追尾。
你看,这就是一个典型的危害场景。每个场景都要这样过一遍,不能偷懒。
4.2 ASIL等级确定:三个维度的博弈
ASIL,全称 Automotive Safety Integrity Level。它分四个等级:A、B、C、D。D是最严格的,A相对宽松。还有一个QM,就是普通质量管理,不算安全等级。
ASIL怎么定?看三个参数:
| 参数 | 英文 | 含义 | 取值 |
|---|---|---|---|
| 严重度 | Severity (S) | 伤害的严重程度 | S0~S3 |
| 暴露概率 | Exposure (E) | 危险场景出现的频率 | E0~E4 |
| 可控性 | Controllability (C) | 驾驶员能否避免伤害 | C0~C3 |
然后查表:
| 严重度(S) | 暴露概率(E) | 可控性(C) | ASIL等级 |
|---|---|---|---|
| S3 | E4 | C3 | ASIL D |
| S2 | E3 | C2 | ASIL B |
| S1 | E2 | C1 | ASIL A |
| S0 | 任意 | 任意 | QM |
我记得有一次,团队里一个新同事问我:「为什么同样是刹车失灵,有的场景是ASIL D,有的只是ASIL B?」
我告诉他:「你想想看,高速上120km/h刹车失灵,和停车场里5km/h刹车失灵,能一样吗?严重度S值就差了一大截。」
避坑指南:我曾经在一个项目中,把暴露概率E值估低了。因为觉得「这个场景很少见」。结果评审时被安全审计师怼了回来。后来我学乖了——E值不要凭感觉,要基于实际路测数据。英伟达的Drive平台有大量路采数据,用起来。
4.3 安全目标定义:把危害翻译成技术语言
安全目标,英文叫 Safety Goal。它是HARA的输出,也是后续开发的输入。
说白了,安全目标就是把「危害」翻译成「技术约束」。比如:
- 危害:ACC系统未及时减速,导致追尾。
- 安全目标:ACC系统必须在检测到前方障碍物后,200ms内输出制动请求,且错误率低于10^-9/h。
写安全目标时,我一般遵循三个原则:
- 可验证:能不能通过测试证明它达成了?
- 无歧义:每个人读到的理解都一样。
- 可分配:能明确分给某个模块或组件。
举个例子,英伟达的Orin芯片上,我们定义了一个安全目标:
安全目标 SG-01:
- 描述:当感知模块检测到碰撞风险时,必须在100ms内将安全状态信号传递给执行器。
- ASIL等级:ASIL D
- 安全状态:车辆进入最小风险状态(MRM),即减速至安全速度并靠边停车。
- 容错时间间隔(FTTI):150ms
这里有个细节要注意。FTTI是容错时间间隔,它和安全目标的响应时间不是一回事。FTTI是从故障发生到系统进入安全状态的最大允许时间。而安全目标的响应时间,是系统从检测到故障到输出安全动作的时间。
警告:不要把安全目标和功能需求混为一谈。安全目标只关心「如何避免危害」,不关心「功能怎么实现」。比如「ACC系统要能跟车行驶」是功能需求,不是安全目标。安全目标应该是「当ACC系统故障时,不能导致不可控的加速」。
4.4 实战经验:HARA文档的常见坑
做了这么多年HARA,我踩过不少坑。分享几个典型的:
- 场景覆盖不全:只考虑了正常驾驶,忽略了极端天气、路面湿滑、夜间等场景。我建议至少覆盖ISO 26262-3附录B中的参考场景。
- ASIL等级定得太低:为了省钱省事,故意把S、E、C值往低了估。这是大忌。安全审计师一眼就能看出来。
- 安全目标写得太模糊:比如「系统应足够安全」。什么叫足够?没法验证。要写成「系统在故障时,减速度不超过2m/s²」这种可测量的指标。
嗯,HARA这部分内容,说白了就是「把风险量化,把安全落地」。你做得越细,后面开发就越顺。别嫌麻烦,这一步省下的时间,后面会加倍还回来。