3. HARA 第一步:场景分析与运行模式

各位,咱们正式开始聊 HARA 了。很多新手工程师一上来就拿着功能清单开始列危害,结果评审的时候被问得哑口无言——「你这个场景考虑的是高速还是低速?」「下雨天算不算?」「车在充电桩旁边呢?」

说白了,HARA 的第一步不是列危害,而是把场景说清楚。场景没定好,后面的 ASIL 等级全是空中楼阁。我个人习惯,花 60% 的时间在场景分析上,后面反而快。

3.1 运行模式:车到底在什么「状态」下?

运行模式,就是车辆或系统当前所处的「工作状态」。同一个功能,在不同运行模式下,失效后果可能天差地别。

举个例子:电动尾门。车在行驶中误开启,和车在静止时误开启,后果能一样吗?前者可能导致货物飞出甚至车门脱落,后者最多是碰一下头。

核心原则: 每个运行模式都要单独评估。不能把「行驶中」和「停车中」混在一起算 ASIL。

常见的运行模式分类,我一般这样切:

运行模式 典型特征 示例(EPS 转向系统)
上电/初始化 系统自检、传感器校准 转向角传感器零点标定
正常运行 车辆行驶,系统全功能 助力转向随速调节
降级模式 部分故障,功能受限 助力减半,仅保留基础转向
下电/休眠 系统关闭,低功耗 转向锁止机构激活
诊断/刷写 非驾驶模式,维修状态 转向角度强制标定
我的经验: 很多项目只列了「正常运行」和「故障模式」,忽略了「初始化」和「刷写」。有一次在台架上刷写 EPS 固件,刷到一半断电了,转向角数据全丢,车得重新标定。从那以后,我每个项目都会把「刷写模式」单独拉出来做 HARA。

3.2 使用场景:谁在用?怎么用?

使用场景描述的是「人-车-环境」的交互关系。ISO 26262 里虽然没有强制要求画用例图,但我建议你至少把下面三个要素写清楚:

  • 操作主体: 驾驶员、乘客、维修人员、还是自动驾驶系统?
  • 操作意图: 想加速?想变道?想停车?还是想开空调?
  • 系统响应: 正常响应是什么?失效响应是什么?

举个例子,ACC 自适应巡航的使用场景:

  1. 驾驶员设定巡航速度 120 km/h,跟车距离 3 档。
  2. 前车减速至 80 km/h,ACC 自动跟随减速。
  3. 前车变道离开,ACC 自动加速回 120 km/h。
  4. 如果雷达被遮挡,ACC 退出并提示驾驶员接管。

你看,同一个功能,场景 2 和场景 3 的失效后果完全不同。场景 2 如果失效(不减速),那就是追尾;场景 3 如果失效(不加速),最多是后面车按喇叭。

避坑指南: 我曾经见过一个项目,把「高速公路巡航」和「城市拥堵跟车」合并成一个场景做 HARA。结果 ASIL 算出来是 B,但实际城市工况下失效概率高得多,最后被客户打回来重做。记住:场景粒度要细到能区分风险等级。

3.3 环境条件:天时地利人和

环境条件,说白了就是「车在什么环境下跑」。ISO 26262 第 3 部分明确要求考虑:

  • 天气: 晴天、雨天、雪天、雾天、冰雹
  • 光照: 白天、夜晚、隧道、逆光
  • 路况: 干燥、湿滑、结冰、碎石、颠簸
  • 地理: 高速公路、城市道路、乡村小路、停车场
  • 其他: 电磁干扰、温度范围、海拔

为什么环境条件重要?因为同一个失效,在不同环境下后果天差地别。

举个例子:制动辅助系统在干燥路面失效,驾驶员还能靠自己的力量刹停;但在冰雪路面失效,那基本就是滑出去撞墙。所以环境条件直接影响危害的严重度(S)和可控性(C)。

我的习惯: 做 HARA 时,我会把环境条件分成「标称环境」和「极端环境」两列。标称环境用来算基础 ASIL,极端环境用来做「合理性检查」。如果极端环境下 ASIL 跳了两级,那就要考虑加安全机制了。

3.4 三者如何联动?一张图说清楚

运行模式、使用场景、环境条件不是孤立的。它们组合在一起,才构成一个完整的「危害场景」。我画了一张图,帮你理清关系:

HARA 场景分析三要素关系图 HARA 场景分析三要素 运行模式 上电/运行/降级/休眠 使用场景 操作主体 + 操作意图 环境条件 天气/路况/光照/地理 危害场景 运行模式 + 使用场景 + 环境条件 💡 关键提示 • 每个危害场景 = 1 种运行模式 + 1 个使用场景 + 1 组环境条件 • 同一个功能可能有 10-30 个危害场景,别嫌多 • 场景组合要「合理」—— 别写「高速行驶中打开后备箱」这种不可能的组合

3.5 实战步骤:怎么落地?

光讲理论没用,我直接给你一个可执行的步骤:

  1. 列出所有运行模式 —— 从系统需求文档里扒,或者找系统工程师要。
  2. 列出所有使用场景 —— 每个功能至少 3-5 个场景,包括正常、异常、边界。
  3. 列出所有环境条件 —— 按项目目标市场来,比如北欧项目必须考虑冰雪。
  4. 做笛卡尔积 —— 把三个维度组合起来,但别全组合,只保留合理的。
  5. 筛选出「有危害」的场景 —— 如果一个场景下失效不会造成人身伤害,直接跳过。
  6. 记录到 HARA 表格 —— 每个场景一行,后面再填 S、E、C 和 ASIL。
小技巧: 我习惯用 Excel 做矩阵。第一列运行模式,第二列使用场景,第三列环境条件,第四列危害描述。这样评审的时候一目了然,客户也挑不出毛病。

3.6 常见错误与避坑

做场景分析时,我见过最多的错误就这几个:

  • 场景太粗: 「车辆行驶中」—— 高速 120 km/h 和市区 30 km/h 能一样吗?拆开!
  • 忽略非驾驶模式: 维修、刷写、拖车模式经常被遗忘,但恰恰是这些模式容易出奇葩故障。
  • 环境条件想当然: 只写「晴天干燥」,结果项目卖到重庆,天天大雾,HARA 白做。
  • 组合不合理: 「车辆熄火状态下开启自适应巡航」—— 这种场景根本不会发生,别写。
我曾经踩过的坑: 有个项目做 BMS 电池管理系统的 HARA,我只考虑了「充电中」和「放电中」两种运行模式。结果客户问:「那电池在运输途中呢?在仓库存储呢?」—— 当场被问住。从那以后,我每个项目都会拉上系统工程师,把产品全生命周期跑一遍,从出厂到报废,一个模式都不放过。

好了,场景分析这一步走扎实了,后面做危害识别和风险分级就顺了。记住一句话:场景越细,ASIL 越准。别偷懒,别图快,这一步省下来的时间,后面十倍还回去。