功能安全基础:HARA、安全目标与安全状态

大家好,我是老张。今天咱们聊聊功能安全里最核心的三个概念:HARA分析、安全目标定义,还有安全状态。说实话,这三个东西就像盖房子的地基——地基没打好,后面全白搭。

我在项目里见过不少团队,上来就急着写代码、做测试。结果呢?到了最后阶段才发现安全目标没定清楚,回头重做HARA。那叫一个痛苦。所以,咱们今天把这几个概念彻底搞明白。

一、HARA:危害分析与风险评估

HARA,全称是Hazard Analysis and Risk Assessment。说白了,就是找出系统可能出什么危险,然后评估这个危险有多严重。

我个人习惯把HARA分成三步走:

  1. 场景识别:想想车在什么情况下会出问题
  2. 危害识别:找出具体的危险事件
  3. 风险评估:给每个危险打分

举个例子。你想想看,一辆电动车在高速上行驶,突然动力电池管理系统出故障了。这就是一个典型的场景。危害是什么?可能是车辆突然失去动力。那风险有多大?嗯,这就要看三个维度了。

风险三要素:S、E、C

参数 含义 等级范围
S (Severity) 严重度 S0~S3
E (Exposure) 暴露概率 E0~E4
C (Controllability) 可控性 C0~C3

我记得有一次做项目,遇到一个转向系统的HARA。当时团队里有人觉得某个场景的暴露概率很低,想给个E1。我说等等,咱们得想想——这个场景虽然少见,但一旦发生,驾驶员根本控制不了。最后给了C3。嗯,这个决定后来救了他们一命。

重要提醒:ASIL等级由S、E、C共同决定。ASIL A最低,ASIL D最高。QM表示无需安全措施。

二、安全目标定义

做完HARA,下一步就是定义安全目标。安全目标是什么?就是针对每个危险事件,你要达到的安全要求。

我建议安全目标要写得具体、可验证。别写什么“系统要安全”这种废话。要写“当检测到电池温度超过60°C时,系统必须在100ms内切断高压输出”。

安全目标通常长这样:

  • 目标编号:SG-001
  • 关联危害:电池热失控
  • ASIL等级:ASIL C
  • 安全状态:高压断开,车辆进入安全模式
  • 容错时间:100ms

我的小技巧:写安全目标时,一定要和系统架构师、软件工程师一起讨论。我曾经吃过亏,自己闷头写了一个安全目标,结果发现硬件根本实现不了。白费功夫。

三、安全状态概念

安全状态,就是系统出故障后,要进入的一个“安全模式”。说白了,就是让系统停下来,或者降级运行,确保不伤人。

常见的几种安全状态:

  • 完全关闭:比如切断高压电源
  • 降级运行:比如限速30km/h
  • 维持当前状态:比如保持刹车压力

这里有个坑,我必须要说。安全状态不是随便选的。你得考虑:进入安全状态本身会不会带来新的危险?

举个例子。一辆车在高速上行驶,突然电池管理系统检测到故障。如果直接切断高压,车辆失去动力,那后果可能更严重。所以,安全状态应该是“限速行驶到安全区域”,而不是“立即停车”。

避坑指南:我曾经遇到一个项目,安全状态设计成“立即关闭所有系统”。结果呢?车辆在隧道里突然断电,后面车追尾了。从那以后,我每次设计安全状态都会问自己:这个状态真的安全吗?

四、三者之间的关系

HARA、安全目标、安全状态,这三者是环环相扣的。

HARA告诉你:哪里可能出问题,问题有多严重。
安全目标告诉你:针对每个问题,要达到什么要求。
安全状态告诉你:出问题后,系统该怎么做。

我习惯用一张表把它们串起来:

危害事件 ASIL 安全目标 安全状态
电池过热 ASIL C 100ms内切断高压 高压断开,进入安全模式
转向失效 ASIL D 保持最小转向能力 降级到手动转向
刹车失灵 ASIL D 激活备用刹车系统 备用刹车介入

你想想看,如果没有HARA,你根本不知道要防什么。没有安全目标,你不知道要做到什么程度。没有安全状态,出了事你都不知道该怎么办。这三者缺一不可。

五、总结

好了,今天的内容就到这里。咱们回顾一下:

  • HARA是找问题、评风险
  • 安全目标是定要求、设指标
  • 安全状态是给退路、保安全

我个人觉得,功能安全最难的不是技术,而是思维方式。你得学会从“系统正常工作时”切换到“系统出故障时”的视角。嗯,这个转变需要时间,但一旦掌握了,你就真正入门了。

下一章咱们聊聊功能安全的具体实现技术。到时候见。