3、危害分析与风险评估基础:危害的定义,风险的定义,风险三要素(Severity, Exposure, Controllability)
好,咱们正式开始聊HARA的核心。很多新手一上来就急着填表格,结果填出来的ASIL等级自己都说不清为什么。我个人习惯是,先花半小时把三个基本概念掰扯清楚——危害、风险、还有那三个要素。底子打不牢,后面全是糊涂账。
3.1 到底什么是「危害」?
先问个问题:一辆车刹车失灵,这是不是危害?
嗯,严格来说,刹车失灵本身不是危害,它是「故障」。危害是什么呢?是「车辆无法按驾驶员意图减速」,这个状态才是危害。我见过不少工程师把故障和危害混为一谈,结果分析出来的场景全是错的。
在ISO 26262里,危害的定义很明确:由功能异常导致的、可能对人造成伤害的潜在事件。说白了,就是「车出了毛病,然后人可能受伤」的那个链条的起点。
关键区分:
- 故障(Fault):比如传感器坏了、软件跑飞了
- 失效(Failure):功能没了,比如刹车助力消失
- 危害(Hazard):失效导致的危险状态,比如「车在高速上突然没刹车了」
举个例子。我在一个EPS(电动助力转向)项目里,团队一开始把「电机堵转」当成危害来分析。我说不对,电机堵转是故障,危害应该是「驾驶员需要很大力气才能转动方向盘」。你看,角度一变,分析方向就完全不一样了。
3.2 风险又是什么?
危害是「可能伤人的状态」,但光有危害不代表一定会出事。风险,就是把这个可能性量化了。
ISO 26262里风险的定义是:危害发生的概率 × 伤害的严重程度。你想想看,同样是「刹车失灵」这个危害:
- 在高速上发生,风险极高
- 在停车场里发生,风险就低很多
同一个危害,场景不同,风险天差地别。这就是为什么HARA要分析运行场景和操作模式。
我的经验:做HARA时别只盯着危害本身,一定要把场景想全。我曾经有个项目,只分析了「正常行驶」场景,结果漏掉了「倒车入库」场景下的危害。后来评审被怼得很惨。
3.3 风险三要素:S、E、C
好,重点来了。ISO 26262用三个维度来量化风险,也就是我们常说的S、E、C。这三个字母,做功能安全的没人不知道。
3.3.1 Severity(严重度)—— 伤得有多重?
S评估的是:如果危害发生了,对人员造成的伤害程度。分S0、S1、S2、S3四个等级。
| 等级 | 描述 | 典型场景 |
|---|---|---|
| S0 | 无伤害 | 轻微颠簸,无人受伤 |
| S1 | 轻伤(可治疗) | 低速追尾,颈部轻微扭伤 |
| S2 | 重伤(需住院) | 中等速度碰撞,骨折 |
| S3 | 致命伤 | 高速碰撞,生命危险 |
这里有个坑。很多人觉得「只要不撞死人就是S2」,不对。S评估的是最坏情况下的伤害。比如一个危害可能导致车辆失控撞墙,那即使实际测试中没撞死人,S也得给到S3。为什么?因为安全分析要覆盖最坏情况。
注意:S等级不考虑「有没有人」和「能不能躲开」。那是E和C的事。S只看伤害本身有多重。
3.3.2 Exposure(暴露度)—— 遇到这事的概率有多大?
E评估的是:车辆在运行场景中,处于这个危害状态的可能性。分E0到E4五个等级。
| 等级 | 描述 | 举例 |
|---|---|---|
| E0 | 几乎不可能 | 车辆在火星上行驶 |
| E1 | 非常低 | 每年发生一次 |
| E2 | 低 | 每月发生几次 |
| E3 | 中等 | 每周发生几次 |
| E4 | 高 | 几乎每次驾驶都会遇到 |
E的评估最容易引起争议。我记得有一次评审,两个专家为了一个场景的E等级吵了半小时。后来我们达成共识:E不是拍脑袋,要基于实际统计数据。比如「高速行驶」这个场景,你查一下车辆使用数据,大部分车每天都会上高速,那E至少给到E3。
3.3.3 Controllability(可控性)—— 人能控制住吗?
C评估的是:当危害发生时,驾驶员或其他人员能否通过及时反应来避免伤害。分C0到C3四个等级。
| 等级 | 描述 | 典型情况 |
|---|---|---|
| C0 | 完全可控 | 轻微报警,驾驶员轻松处理 |
| C1 | 简单可控 | 90%以上的驾驶员能应对 |
| C2 | 一般可控 | 50%~90%的驾驶员能应对 |
| C3 | 难以控制 | 少于50%的驾驶员能应对 |
这里有个关键点:C评估的是「普通驾驶员」,不是赛车手。你不能说「我技术好,能救回来」,就降低C等级。标准要求的是典型驾驶员的能力。
避坑指南:我曾经在一个项目中,把「爆胎」场景的C给了C2,理由是「老司机能稳住」。后来被审核员打回来了。他说:你想想看,一个刚拿驾照的新手,遇到爆胎是什么反应?大概率是猛打方向或急刹车。所以爆胎的C至少是C3。
3.4 三个要素怎么配合?
S、E、C不是孤立的。它们组合起来,决定了最终的ASIL等级。ISO 26262里有一张ASIL等级确定表,就是根据S、E、C的组合来查的。
但这里我要强调一点:不要机械地查表。我见过有人把S、E、C填完,查表得出ASIL B,然后就完事了。不对。你要问自己:这个组合合理吗?比如S给到S3,但C给了C0,这合理吗?一个能致命的事故,驾驶员完全可控?这逻辑上就说不通。
所以我的习惯是:先分别评估S、E、C,然后整体审视一遍。如果发现某个组合看起来怪怪的,就回头重新分析场景,看看是不是哪里漏了。
小技巧:做HARA时,把每个危害对应的运行场景写详细一点。比如不要只写「高速行驶」,要写「高速行驶、车流密集、雨天、能见度低」。场景越具体,S、E、C的评估越准确。
3.5 总结一下
这一章的内容,说白了就是三句话:
- 危害是「车出了什么毛病导致危险状态」
- 风险是「这个危险状态到底有多大概率伤人」
- S、E、C是量化风险的三个维度,缺一不可
下一章我们会讲HARA的具体执行步骤,包括怎么识别危害、怎么定义场景、怎么填那个经典的HARA表格。到时候我会拿一个实际项目案例来走一遍流程,保证你听完就能上手。
嗯,今天就到这儿。有问题随时问我。