1、SOTIF基础:什么是预期功能安全?SOTIF的起源与ISO 21448标准概述

1.1 从功能安全到预期功能安全——我们到底在防什么?

做自动驾驶的同行,应该都有过这种体验:

明明传感器没坏,算法也没报错,车却突然来个急刹——因为系统把路边的广告牌当成了行人。

这算不算安全问题?

按传统功能安全(ISO 26262)的思路,这不算。因为硬件没故障,软件也没跑飞。但实际体验呢?吓死人。

这就是预期功能安全要解决的问题。

我个人的理解很简单:功能安全防的是“系统坏了”,预期功能安全防的是“系统没坏但干蠢事”

举个例子你就明白了:

  • 功能安全场景:摄像头被泥巴糊住了,系统应该检测到“视觉失效”并降级。这是硬件故障。
  • 预期功能安全场景:摄像头干干净净,但逆光时把白色卡车识别成天空,直接撞上去。这是性能局限。

说白了,SOTIF(Safety Of The Intended Functionality)就是针对“系统在正常工作时,因为功能本身的设计不足或性能局限,导致的安全风险”。

核心定义:预期功能安全关注的是——当系统没有故障时,由于功能不足(功能缺陷)或性能局限(传感器能力、算法边界等)引发的危害。

1.2 SOTIF的起源——为什么会有这个标准?

说来话长。我记得2016年左右,行业内出了好几起自动驾驶测试事故。

事故调查结果很有意思:系统没有故障,传感器也正常,但就是“没识别出来”。

传统功能安全标准ISO 26262对此无能为力。因为它只覆盖“系统性故障”和“随机硬件故障”。

那“功能本身就不够安全”谁来管?

于是ISO 21448应运而生。它的正式名称是:“预期功能安全(SOTIF)”

我参与过几个早期项目的SOTIF试点,说实话,当时大家都很迷茫。因为标准草案一直在变,2019年才正式发布第一版。

标准的核心思路其实就一句话:找出那些“系统没坏但会出事”的场景,然后要么改设计,要么加限制

我的经验:别把SOTIF想得太玄乎。它本质上就是“场景探索 + 危险分析 + 验证确认”。跟功能安全最大的区别是——功能安全分析的是“失效模式”,SOTIF分析的是“能力边界”。

1.3 ISO 21448标准概述——它到底讲了什么?

ISO 21448的结构,我习惯把它分成三大块:

模块 核心内容 我的理解
第1-4章 范围、引用、术语 定义清楚什么是“预期功能”,什么是“触发条件”
第5-8章 规范与设计 告诉你如何定义功能、分析场景、识别危险
第9-12章 验证与确认 怎么证明你的系统在已知/未知场景下是安全的

嗯,这里要注意:ISO 21448并不是要替代ISO 26262。它们是互补关系。

  • ISO 26262:系统坏了怎么办?
  • ISO 21448:系统没坏但不够聪明怎么办?

你想想看,一个L4级自动驾驶系统,如果只做功能安全不做SOTIF,那就像一个人“身体很健康但智商有问题”——不出事才怪。

1.4 核心概念:触发条件与危险事件

SOTIF里有两个概念,我建议你刻在脑子里:

触发条件:导致系统进入不安全状态的那些“外部因素”或“系统自身局限”。

比如:

  • 传感器被强光直射(性能局限)
  • 道路标线模糊不清(场景复杂)
  • 算法对异形车辆漏检(功能不足)

危险事件:触发条件 + 系统行为不当 + 人的误操作,最终导致伤害。

我曾经在一个项目中遇到过这种情况:

系统在雨天夜间(触发条件)把路面积水误判为路面(功能不足),然后没有减速直接冲过去,导致车辆失控。这就是一个典型的SOTIF危险事件。

避坑指南:我曾经见过很多团队把SOTIF分析做成了“功能安全分析的翻版”。这是大错特错的。SOTIF分析的核心是“场景”,不是“故障”。你分析的不是“传感器坏了会怎样”,而是“传感器在什么条件下会看不清”。

1.5 已知危险与未知危险——SOTIF的核心挑战

ISO 21448把危险场景分成四类:

  1. 已知安全场景:我们知道它安全,也验证过。
  2. 已知危险场景:我们知道它危险,通过设计或限制来规避。
  3. 未知安全场景:我们不知道它安全,但实际是安全的——这不用管。
  4. 未知危险场景:我们不知道它危险,但实际会出事——这是SOTIF要消灭的核心目标。

说白了,SOTIF的终极目标就是:把“未知危险”变成“已知危险”,然后干掉它

怎么干?

  • 场景探索:用仿真、路测、数据挖掘,把那些“没想到的场景”找出来。
  • 危险分析:分析这些场景下系统会不会出问题。
  • 验证确认:证明系统在这些场景下是安全的,或者根本不会遇到这些场景。

我的建议:做SOTIF别想着一步到位。先聚焦“已知危险”,把能想到的场景都分析透。然后通过路测和仿真不断发现“未知危险”。这是一个迭代过程,不是一次性交付。

1.6 小结——SOTIF到底在做什么?

用一句话总结:

SOTIF就是“找茬”——找出系统在正常工作时,因为不够聪明而可能犯的错误,然后逼着它变聪明,或者限制它的活动范围

ISO 21448给了我们一套方法论:

  • 怎么定义功能边界
  • 怎么分析场景
  • 怎么验证安全
  • 怎么接受残余风险

我个人觉得,SOTIF比功能安全更难落地。因为功能安全有明确的故障模型和覆盖率要求,而SOTIF面对的是“无限场景”。

但反过来想,这也正是它的魅力所在——你永远有新的场景要去探索,永远有未知的危险要去发现。

下一章,我会详细讲场景探索的具体方法——怎么系统地找出那些“要命”的场景。到时候我会分享一些我在实际项目中踩过的坑,希望对你有帮助。