2、HARA分析基础:HARA的目的与意义、危害的定义与分类、运行场景与运行模式

好,我们正式开始进入功能安全概念阶段的核心环节——HARA分析。

很多刚入行的朋友问我:“HARA到底有什么用?不就是填几张表格吗?”

说实话,我刚开始做功能安全时也这么想过。直到有一次,我在一个ADAS项目中漏掉了一个关键危害——摄像头在隧道出口瞬间的光线变化导致目标丢失。嗯,后果很严重。从那以后,我再也不敢轻视HARA了。

2.1 HARA的目的与意义

HARA,全称是Hazard Analysis and Risk Assessment,危害分析与风险评估。

说白了,就是回答三个问题:

  • 系统会不会出问题?(危害识别)
  • 出问题后果多严重?(风险评估)
  • 需要多高的安全等级?(ASIL等级确定)

我个人习惯把HARA比作“安全体检”。你想想看,一个人去医院体检,不是为了证明自己没病,而是为了提前发现潜在风险。HARA也一样——它不是用来证明系统安全的,而是用来找出那些隐藏的、可能致命的漏洞。

核心意义:HARA是功能安全活动的起点,也是后续所有安全措施的依据。没有HARA,ASIL分解、安全目标、安全需求全都是空中楼阁。

我在项目中遇到过最典型的反面案例:某团队直接照搬竞品的HARA结果,结果因为运行场景不同(一个在高速,一个在市区),导致ASIL等级定低了。最后项目评审时被安全审计师当场打回,整个开发周期延期了3个月。

我的建议:HARA一定要自己做,不要偷懒。每个系统的运行场景、功能边界、使用环境都不一样,别人的结果只能参考,不能照搬。

2.2 危害的定义与分类

什么是危害?ISO 26262里定义得很清楚:危害是由系统功能异常导致的、可能对人员造成伤害的潜在事件

注意关键词:功能异常。不是硬件故障,不是软件bug,而是功能层面的异常行为。

举个例子:

  • 刹车踏板踩下去没反应 → 功能异常(危害)
  • 刹车灯不亮但刹车功能正常 → 不是危害(只是故障)

危害的分类,我一般按影响对象来分:

分类 说明 典型例子
对乘员的危害 直接伤害车内人员 安全气囊意外展开、座椅调节夹伤
对行人的危害 伤害车外人员 自动紧急制动失效、转向误动作
对车辆本身的危害 导致车辆失控或损坏 动力中断、转向锁死、制动失效
对环境/公共安全的危害 影响其他交通参与者 信号灯控制错误、V2X通信异常

还有一种分类方式是按功能异常类型

  • 功能缺失:该有的功能没了(比如制动助力消失)
  • 功能误动作:不该有的功能出现了(比如非预期加速)
  • 功能超限:功能在错误的时间/幅度执行(比如转向过度)
  • 功能时序错误:功能执行的顺序乱了(比如换挡逻辑错乱)

避坑指南:我曾经见过一个团队把“功能超限”和“功能误动作”混为一谈,结果ASIL等级定错了。记住:误动作是“有和无”的问题,超限是“多和少”的问题,两者风险等级完全不同。

2.3 运行场景与运行模式

这是HARA里最容易出问题的地方,也是我花时间最多的部分。

运行场景,指的是系统在什么环境下工作。包括:

  • 道路环境:高速、城市、乡村、隧道、桥梁
  • 天气条件:晴天、雨天、雪天、雾天、夜间
  • 交通状况:畅通、拥堵、混合交通、行人密集
  • 车辆状态:静止、低速、高速、转弯、上下坡

运行模式,指的是系统当前处于什么工作状态。比如:

  • 正常模式
  • 故障模式(降级模式)
  • 维护模式
  • 初始化/自检模式
  • 紧急模式

为什么要区分场景和模式?

因为同一个危害,在不同场景和模式下,风险等级可能天差地别。

举个例子:

  • “制动助力失效”这个危害,在高速场景下,ASIL等级可能是C或D
  • 但在停车场低速挪车时,可能只有ASIL A甚至QM

我个人的习惯是:先穷举场景,再匹配模式。不要一上来就想着“这个危害在什么模式下最严重”,那样容易漏掉一些边界情况。

实战技巧:我在做EPS(电动助力转向)项目时,列了一个“场景-模式”矩阵表。横轴是运行场景(高速、低速、倒车、泊车等),纵轴是运行模式(正常、降级、故障等)。每个交叉点都问自己一句:“如果这个危害在这里发生,会怎样?”

嗯,这里要注意:场景不是越多越好。我见过有人列了50多个场景,结果大部分场景的危害等级都一样,纯属浪费时间。一般来说,5-8个典型场景就够用了,关键是覆盖所有极端和边界情况

我的建议:场景选择要基于实际使用数据。比如你做的车主要在中国北方销售,那“冰雪路面”就是必选场景。如果主要卖到南方,“暴雨积水”场景就比“冰雪”更重要。别闭门造车,多问问市场部和售后团队。

小结

这一节我们讲了HARA的基础三要素:

  1. 目的与意义:HARA不是填表,是找漏洞
  2. 危害的定义与分类:功能异常才是危害,硬件故障不是
  3. 运行场景与模式:场景决定风险,模式决定严重度

下一节,我们会深入讲ASIL等级的确定方法——严重度S、暴露概率E、可控性C这三个参数到底怎么打分。到时候我会分享一个我踩过的坑,关于“可控性”打分的主观性有多可怕。

好,今天就到这里。有什么问题,欢迎在课程群里讨论。