3. HARA 第一步:场景分析与运行模式
各位,咱们正式开始聊 HARA 了。很多新手工程师一上来就拿着功能清单开始列危害,结果评审的时候被问得哑口无言——「你这个场景考虑的是高速还是低速?」「下雨天算不算?」「车在充电桩旁边呢?」
说白了,HARA 的第一步不是列危害,而是把场景说清楚。场景没定好,后面的 ASIL 等级全是空中楼阁。我个人习惯,花 60% 的时间在场景分析上,后面反而快。
3.1 运行模式:车到底在什么「状态」下?
运行模式,就是车辆或系统当前所处的「工作状态」。同一个功能,在不同运行模式下,失效后果可能天差地别。
举个例子:电动尾门。车在行驶中误开启,和车在静止时误开启,后果能一样吗?前者可能导致货物飞出甚至车门脱落,后者最多是碰一下头。
常见的运行模式分类,我一般这样切:
| 运行模式 | 典型特征 | 示例(EPS 转向系统) |
|---|---|---|
| 上电/初始化 | 系统自检、传感器校准 | 转向角传感器零点标定 |
| 正常运行 | 车辆行驶,系统全功能 | 助力转向随速调节 |
| 降级模式 | 部分故障,功能受限 | 助力减半,仅保留基础转向 |
| 下电/休眠 | 系统关闭,低功耗 | 转向锁止机构激活 |
| 诊断/刷写 | 非驾驶模式,维修状态 | 转向角度强制标定 |
3.2 使用场景:谁在用?怎么用?
使用场景描述的是「人-车-环境」的交互关系。ISO 26262 里虽然没有强制要求画用例图,但我建议你至少把下面三个要素写清楚:
- 操作主体: 驾驶员、乘客、维修人员、还是自动驾驶系统?
- 操作意图: 想加速?想变道?想停车?还是想开空调?
- 系统响应: 正常响应是什么?失效响应是什么?
举个例子,ACC 自适应巡航的使用场景:
- 驾驶员设定巡航速度 120 km/h,跟车距离 3 档。
- 前车减速至 80 km/h,ACC 自动跟随减速。
- 前车变道离开,ACC 自动加速回 120 km/h。
- 如果雷达被遮挡,ACC 退出并提示驾驶员接管。
你看,同一个功能,场景 2 和场景 3 的失效后果完全不同。场景 2 如果失效(不减速),那就是追尾;场景 3 如果失效(不加速),最多是后面车按喇叭。
3.3 环境条件:天时地利人和
环境条件,说白了就是「车在什么环境下跑」。ISO 26262 第 3 部分明确要求考虑:
- 天气: 晴天、雨天、雪天、雾天、冰雹
- 光照: 白天、夜晚、隧道、逆光
- 路况: 干燥、湿滑、结冰、碎石、颠簸
- 地理: 高速公路、城市道路、乡村小路、停车场
- 其他: 电磁干扰、温度范围、海拔
为什么环境条件重要?因为同一个失效,在不同环境下后果天差地别。
举个例子:制动辅助系统在干燥路面失效,驾驶员还能靠自己的力量刹停;但在冰雪路面失效,那基本就是滑出去撞墙。所以环境条件直接影响危害的严重度(S)和可控性(C)。
3.4 三者如何联动?一张图说清楚
运行模式、使用场景、环境条件不是孤立的。它们组合在一起,才构成一个完整的「危害场景」。我画了一张图,帮你理清关系:
3.5 实战步骤:怎么落地?
光讲理论没用,我直接给你一个可执行的步骤:
- 列出所有运行模式 —— 从系统需求文档里扒,或者找系统工程师要。
- 列出所有使用场景 —— 每个功能至少 3-5 个场景,包括正常、异常、边界。
- 列出所有环境条件 —— 按项目目标市场来,比如北欧项目必须考虑冰雪。
- 做笛卡尔积 —— 把三个维度组合起来,但别全组合,只保留合理的。
- 筛选出「有危害」的场景 —— 如果一个场景下失效不会造成人身伤害,直接跳过。
- 记录到 HARA 表格 —— 每个场景一行,后面再填 S、E、C 和 ASIL。
3.6 常见错误与避坑
做场景分析时,我见过最多的错误就这几个:
- 场景太粗: 「车辆行驶中」—— 高速 120 km/h 和市区 30 km/h 能一样吗?拆开!
- 忽略非驾驶模式: 维修、刷写、拖车模式经常被遗忘,但恰恰是这些模式容易出奇葩故障。
- 环境条件想当然: 只写「晴天干燥」,结果项目卖到重庆,天天大雾,HARA 白做。
- 组合不合理: 「车辆熄火状态下开启自适应巡航」—— 这种场景根本不会发生,别写。
好了,场景分析这一步走扎实了,后面做危害识别和风险分级就顺了。记住一句话:场景越细,ASIL 越准。别偷懒,别图快,这一步省下来的时间,后面十倍还回去。