2、危害分析与风险评估(HARA):危害识别、风险分类(ASIL等级)、安全目标定义
好,咱们进入正题。HARA,全称是 Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:
- 车子可能会出什么要命的故障?(危害识别)
- 这个故障有多危险?(风险分类,定ASIL等级)
- 我们得保证它不出这个故障,或者出了也不伤人。(安全目标定义)
我个人习惯,做HARA之前,先泡杯茶,把系统边界图画清楚。你连系统管哪块、不管哪块都没搞明白,后面全是白干。
2.1 危害识别:先把“鬼”找出来
危害识别,就是找出所有可能因为系统故障,导致人身伤害的场景。
怎么找?我一般用“HAZOP引导词”配合“功能清单”来扫。比如:
- 功能:自动紧急制动(AEB)
- 引导词:“丢失”——AEB功能失效,该刹车时不刹车。
- 引导词:“误触发”——不该刹车时突然急刹。
- 引导词:“延迟”——刹车指令来得太晚。
嗯,这里要注意。危害识别不是闭门造车。你得结合实际驾驶场景。比如:
- 高速上跟车,前车急刹,你的AEB没反应——追尾。
- 市区低速,行人突然横穿,AEB误触发急刹——后车追你尾。
- 地库里,AEB延迟1秒才刹停——撞墙。
我在项目中遇到过,有个团队把“AEB误触发”的危害等级定低了,觉得低速没事。结果呢?后车司机50km/h追上来,安全气囊都弹了。所以,每个危害都要认真对待。
避坑指南: 我曾经犯过一个错,只分析了“功能失效”,忘了分析“功能降级”。比如,AEB从全功能降级到只报警不制动,这也是一种危害。后来我养成了习惯:失效、降级、误触发、延迟,四个维度都要扫一遍。
2.2 风险分类(ASIL等级):给危险“打分”
危害找到了,接下来就是定ASIL等级。ASIL分四级:A、B、C、D,D最严,A最松。还有QM(质量管理),就是基本不用管功能安全。
ASIL等级由三个参数决定:
| 参数 | 含义 | 等级(从低到高) |
|---|---|---|
| S(Severity) | 伤害的严重程度 | S0(无伤害)→ S1(轻伤)→ S2(重伤)→ S3(致命) |
| E(Exposure) | 暴露在危险场景中的概率 | E0(几乎不)→ E1(低)→ E2(中)→ E3(高)→ E4(极高) |
| C(Controllability) | 驾驶员能否控制住局面 | C0(可控)→ C1(简单控制)→ C2(一般控制)→ C3(难以控制) |
然后查表:
| S | E | C | ASIL |
|---|---|---|---|
| S3 | E4 | C3 | ASIL D |
| S3 | E3 | C2 | ASIL B |
| S2 | E2 | C1 | ASIL A |
| S1 | E1 | C0 | QM |
举个例子。刚才说的“高速AEB失效导致追尾”:
- S:高速追尾,大概率重伤甚至死亡 → S3
- E:高速跟车场景,每天都会遇到 → E4
- C:AEB失效,驾驶员可能没反应过来,或者反应时间不够 → C3
查表:S3+E4+C3 = ASIL D。嗯,最高等级,得下血本做安全设计。
核心要点: ASIL等级不是拍脑袋定的。你得有证据。比如,你说E是E4,你得拿出数据:这个场景在用户日常驾驶中占比多少?你说C是C3,你得有仿真或实验数据证明驾驶员确实控制不了。我见过有人为了省事,故意把等级定低,结果审核被怼回来,返工更痛苦。
2.3 安全目标定义:立下“军令状”
安全目标,就是针对每个危害,写一句“系统必须保证……”的话。它是后续所有安全工作的总纲。
格式一般是:
SG-01:系统应避免因AEB功能失效导致的高速追尾碰撞。
ASIL:D
安全状态:AEB功能可用,或系统降级后明确告知驾驶员。
FTTI(故障容错时间间隔):≤ 200ms
注意,安全目标要满足几个原则:
- 可验证:你说“避免追尾”,怎么验证?得量化。比如“在车速≥60km/h时,AEB失效后,系统应在200ms内检测到故障并进入安全状态”。
- 唯一性:一个安全目标只对应一个危害。别把“AEB失效”和“EPS失效”写在一起,后面没法做。
- 可追溯:每个安全目标都能追溯到具体的危害场景。我习惯在安全目标后面加个括号,写上对应的危害ID,比如
(HZ-003)。
警告: 安全目标不是写出来就完事了。它是合同。后续的硬件设计、软件设计、测试验证,全都要对着它来。你写“避免追尾”,结果测试时发现200ms根本不够,那就得改目标或者改设计。千万别硬撑,否则流片回来就是废片。
好了,HARA做完,你手里就有了三样东西:
- 危害清单:所有可能出人命或重伤的场景。
- ASIL等级表:每个危害有多严重,需要投入多少安全资源。
- 安全目标集:每个危害对应的“军令状”,后续所有工作的起点。
我个人觉得,HARA是整个功能安全里最考验经验的一步。你想想看,一个刚毕业的工程师,可能连“AEB失效会导致什么后果”都想象不全。而老手呢?看一眼系统框图,就能说出七八个潜在危害。这就是差距。
下一章,咱们聊聊怎么把这些安全目标,分解到具体的硬件和软件上。嗯,那才是真正烧脑的开始。