一、HARA概述:预期功能安全背景、SOTIF标准ISO 21448简介、HARA在SOTIF中的位置与作用
1.1 为什么我们需要预期功能安全?
先聊点实际的。你想想看,一辆自动驾驶的车,传感器没坏、控制器没坏、执行器也没坏——但车就是撞了。为什么?
我2018年参与一个L3级泊车项目时就遇到过这种事。系统所有硬件都通过了功能安全认证,ISO 26262那一套走得严严实实。结果呢?雨天晚上,摄像头把地面上的积水反光误识别成了停车位标线,车子直接往水坑里扎。硬件没坏,软件没崩,但行为就是错的。
这就是预期功能安全要解决的问题——系统在无故障情况下,由于功能不足或性能局限,导致不安全行为。
说白了,传统功能安全(FuSa)管的是「坏了怎么办」,预期功能安全(SOTIF)管的是「没坏但不够聪明怎么办」。
核心区别一句话:
- 功能安全:系统故障 → 危害
- 预期功能安全:系统能力不足 → 危害
1.2 ISO 21448 是个什么标准?
ISO 21448,全称《Road vehicles — Safety of the intended functionality》。2019年发布第一版,2022年出了更新版。我习惯叫它SOTIF标准。
这个标准不是要替代ISO 26262,而是补它的短板。你想想,ISO 26262假设系统设计是正确的,只是担心随机硬件失效和系统失效。但自动驾驶这种系统,设计本身可能就不够完善——感知算法识别率99.5%,那0.5%的漏检怎么办?
ISO 21448就是来管这0.5%的。
标准的核心逻辑其实不复杂:
- 找出系统在哪些场景下会「不够聪明」
- 评估这些「不够聪明」会不会导致危害
- 如果会,想办法降低风险
嗯,听着简单,做起来嘛...后面几章你会体会到。
我个人习惯:把ISO 21448看作「场景驱动的安全分析」。它逼着你去想——我的车会在什么场景下出什么洋相?
1.3 HARA在SOTIF中的位置
HARA,全称Hazard Analysis and Risk Assessment,危害分析与风险评估。
在SOTIF流程里,HARA是第一步,也是最关键的一步。为什么?因为后面的所有工作——功能改进、验证确认、残余风险评估——都建立在HARA的输出之上。
我打个比方:HARA就像盖房子打地基。地基歪了,上面盖多漂亮的房子都白搭。
在ISO 21448的V模型里,HARA位于左上角:
你看,HARA在最左边最上面。这意味着什么?意味着在系统设计还没定型的时候,就要开始做HARA。我见过不少项目,等代码都写完了才想起来做安全分析,那基本就是走个过场,没什么实际价值。
1.4 HARA到底产出什么?
HARA的产出,简单说就是三样东西:
| 产出物 | 内容 | 我的经验 |
|---|---|---|
| 危害清单 | 系统在哪些场景下可能产生危害行为 | 我曾经漏掉一个「隧道出口强光」场景,后来测试时才发现...嗯,补上花了三周 |
| 风险等级 | 每个危害的严重度、暴露率、可控性评估 | 风险等级直接决定你后续投入多少资源去解决 |
| 安全目标 | 为了降低风险,系统必须满足的行为要求 | 安全目标写得好不好,直接影响工程师能不能看懂并执行 |
避坑指南:我曾经见过一个团队,HARA做了200多条危害,但每条都写着「风险可接受」。你想想,这跟没做有什么区别?HARA不是用来交差的,是用来真正发现问题的。如果一条危害都没筛出来,要么是你场景想得不够全,要么是你评估标准太宽松。
1.5 HARA与功能安全HARA的区别
很多刚接触SOTIF的朋友会问:ISO 26262也有HARA啊,跟这个有什么区别?
我直接给你列个表:
| 对比项 | 功能安全HARA (ISO 26262) | 预期功能安全HARA (ISO 21448) |
|---|---|---|
| 分析对象 | 系统故障(硬件失效、软件错误) | 系统功能不足(感知局限、算法缺陷、场景覆盖不全) |
| 触发条件 | 故障发生 | 触发场景出现(天气、光照、道路条件等) |
| 风险参数 | S(严重度)+ E(暴露率)+ C(可控性)→ ASIL等级 | S(严重度)+ E(暴露率)+ C(可控性)→ 风险等级(类似但不等同于ASIL) |
| 输出用途 | 确定安全完整性等级,指导硬件/软件开发 | 确定功能改进方向,指导验证确认策略 |
说白了,功能安全HARA问的是「坏了会怎样」,SOTIF的HARA问的是「不够好会怎样」。两个都得做,谁也替代不了谁。
1.6 一个真实的HARA案例片段
我拿之前做的一个AEB(自动紧急制动)项目举例。传统AEB的HARA主要分析传感器故障、制动系统失效这些。但SOTIF的HARA会问:
- 如果前方是一辆载着自行车架的SUV,AEB能不能正确识别?
- 如果路面有薄冰,AEB触发制动但刹不住怎么办?
- 如果太阳直射摄像头导致过曝,AEB会不会漏检行人?
你看,这些问题都不是「系统坏了」,而是「系统在特定场景下能力不够」。这就是SOTIF HARA要干的事。
一个小技巧:做SOTIF HARA时,我习惯先列场景清单——天气、光照、道路类型、交通参与者、特殊事件...然后针对每个场景问:我的系统在这个场景下,会不会做出不安全的行为?
1.7 本章小结
HARA是SOTIF的起点,也是最重要的环节。它帮你回答三个问题:
- 什么情况下会出事?(危害识别)
- 出事有多严重?(风险评估)
- 怎么才算安全?(安全目标)
后面几章,我会带你一步步走完HARA的完整流程。从场景分析到危害识别,从风险评级到安全目标定义,每个环节我都会拿实际项目经验来讲。嗯,准备好了吗?
公众号:蓝海资料掘金营,微信deep3321