1. SOTIF概述:什么是预期功能安全?

大家好,我是你们这期课程的主讲。在自动驾驶领域摸爬滚打了十几年,我见过太多「功能正常但事故照出」的案例。今天咱们就来聊聊这个让无数工程师头疼的话题——预期功能安全,也就是SOTIF。

先问大家一个问题:一辆车的刹车系统,硬件没坏、软件没bug,但就是在某个特定场景下没刹住车,这算不算安全问题?

算。而且这种问题,传统功能安全(ISO 26262)管不了。为什么?因为它不是「失效」导致的,而是「功能本身在特定场景下表现不足」导致的。这就是SOTIF要解决的核心矛盾。

1.1 从「功能安全」到「预期功能安全」

传统功能安全关注的是「系统出了故障怎么办」。比如传感器坏了、线束断了、芯片死机了——这些都是系统性失效或随机硬件失效。

但自动驾驶不一样。摄像头没坏,但逆光时看不清;雷达正常工作,但遇到金属护栏反射出假目标;算法没bug,但训练数据里没见过这种异形车……这些都不是「失效」,而是「功能在预期使用场景下,性能达不到安全要求」。

我个人习惯把这两者的区别总结成一句话:

功能安全: 系统坏了,会不会出事?

预期功能安全: 系统没坏,但会不会在某些场景下「不够好」而出事?

说白了,SOTIF就是给自动驾驶系统做「能力边界测试」——你得知道你的系统在什么情况下会「力不从心」。

1.2 SOTIF的起源:一场事故引发的标准

SOTIF这个概念真正被行业重视,跟几起自动驾驶测试事故有关。我记得2016年那起特斯拉Autopilot事故,车辆在强光背景下没能识别出白色卡车车厢——传感器没坏、算法没报错,但就是没「看见」。这种事故,传统功能安全分析根本覆盖不到。

于是ISO开始着手制定专门针对「预期功能不足」的安全标准。2019年,ISO 21448第一版发布。2022年,更新版正式成为国际标准。

这个标准的核心逻辑其实很朴素:

  • 场景是无限的,但测试是有限的——你不可能跑遍所有路况
  • 系统性能有边界——传感器有物理极限,算法有能力上限
  • 安全不是「不出错」——而是「在出错时,风险可接受」

我的一点经验: 很多团队刚开始做SOTIF时,总想「把所有场景都测一遍」。这不可能。真正有效的方法是先做场景分析,找出「系统最可能出问题的那些场景」,然后集中资源去攻克。我曾经在一个项目中,光场景清单就列了3000多条,最后发现真正有安全风险的不到50条。所以,别盲目堆测试量。

1.3 ISO 21448标准框架:一张图看懂

下面这张图是我自己画的ISO 21448核心流程框架。你仔细看,它其实就回答了三个问题:

  1. 系统在什么场景下会「不够好」?(场景分析与危害识别)
  2. 这种「不够好」会导致什么后果?(风险评估)
  3. 怎么让它「够好」?(功能改进与验证确认)
ISO 21448 SOTIF核心流程框架 ISO 21448 SOTIF 核心流程框架 阶段1 场景分析与危害识别 阶段2 风险评估与可接受准则 阶段3 功能改进与验证确认 ODD定义 & 场景参数提取 功能不足与触发条件分析 危害事件严重度评估 可控性 & 暴露率分析 功能改进措施(传感器/算法) 验证确认 & 残余风险接受 核心思想:不是所有场景都能「完美处理」, 而是通过分析、评估、改进,将风险降低到可接受水平。 场景库构建 风险排序 改进措施 验证闭环

1.4 SOTIF与传统功能安全的关系

很多新手会问:SOTIF是不是要取代ISO 26262?不是。它们是互补关系。

对比维度 ISO 26262(功能安全) ISO 21448(预期功能安全)
关注对象 系统性失效、随机硬件失效 功能性能不足、场景理解局限
典型问题 传感器坏了、线束断了、芯片死机 逆光看不清、雨雾遮挡、未见过场景
分析方法 FMEA、FTA、FMEDA 场景分析、触发条件分析、STPA
验证手段 故障注入、硬件加速测试 场景库测试、仿真、路测
安全目标 避免因失效导致危害 避免因功能不足导致危害

注意: 千万不要以为做了ISO 26262就可以不做SOTIF。我曾经见过一个项目,功能安全等级做到ASIL D,但上路第一天就在高架匝道口因为「车道线模糊+阳光角度刁钻」导致系统退出——这不是失效,是功能不足。两个标准必须一起做,才能覆盖完整的安全风险。

1.5 为什么自动驾驶必须做SOTIF?

你想想看,传统汽车的功能是「确定的」——踩刹车就减速,打方向盘就转向。但自动驾驶是「基于感知和决策的」,它面对的是无限变化的真实世界。

这就带来几个SOTIF特有的挑战:

  • 传感器物理极限: 摄像头在黑夜、逆光、雨雾下性能会下降,这不是故障,是物理规律
  • 算法认知局限: 深度学习模型对「没见过」的场景可能给出错误输出,而且你不知道它什么时候会错
  • 场景组合爆炸: 天气、光照、道路、交通参与者、自车状态……这些因素组合起来,测试永远做不完

所以,SOTIF的核心方法论就是:承认系统有边界,然后通过系统化的方法找到这些边界,最后在边界内确保安全。

一句话总结本章: SOTIF不是让系统「永远不出错」,而是让系统在「出错的时候,后果可控」。这是自动驾驶安全设计的底层逻辑。