简介:ISO 21448:2022官方标准PDF,面向自动驾驶、智能网联汽车研发者和功能安全工程师,系统介绍预期功能安全(SOTIF)的评估与管理方法。这份国际标准在ISO 26262基础上,针对AEB、ACC、LKA等高级驾驶辅助功能的风险来源,提出“四类场景区域”与“感知—规划—执行”分析模型,指导团队从需求分析、系统设计、验证确认识别非预期行为,并持续改进;同时配有完整的术语和定义,帮助读者统一SOTIF相关概念。资源为单个PDF全文,体积约14.29MB,保留标准正文、图表和条款编号,方便按章节检索与引用;已有553人学习。无论是功能安全初学者还是正在开展SOTIF开发的工程团队,都可以以此为基线,梳理危险场景清单、制定验证策略、编写安全论证文档,补齐ISO 26262之外“预期功能安全”的关键技术拼图。
1. 当系统没有故障,却仍然出了事故——SOTIF到底是什么
做ADAS或自动驾驶系统的工程师,基本都遇到过这样的局面:测试报告显示系统所有零部件工作正常,功能安全分析也挑不出硬件或者软件故障,但实车跑起来就是发生了事故。传感器没坏、算法没崩溃、执行器响应也正常,可车辆在雨天的隧道口突然来了一脚急刹,后车躲闪不及直接追尾。
这个问题,传统的ISO 26262管不了。因为它研究的对象是系统内部的失效——电子元件损坏、软件跑飞、信号传输出错。而真正的麻烦在于:系统本身是完好的,但它在某些场景下对环境的感知和判断出了偏差,这种偏差带来的风险,就是预期功能安全(SOTIF,Safety Of The Intended Functionality)要处理的范畴。
我手里的这份ISO 21448:2022,就是这个领域最核心的参考文件。它是国际标准化组织在2022年发布的正式版本,全称是Road vehicles — Safety of the intended functionality,中文通常翻译为《道路车辆——预期功能安全》。早在2019年,ISO曾经发布过一份DIS草案版,那会儿很多企业就已经参照草案在推进工作了,2022版是在此基础上正式确认,同时也增加了一些更细化的条款。
这篇内容的目标读者,不是想搞理论研究的人,而是那些正在把L2+级别辅助驾驶或者L3级自动驾驶从纸面推向量产的人。我会结合自己对这份标准的理解,从框架、核心机制、落地痛点、文档审核这些维度,把它拆开来讲。看完之后,你至少能搞清楚:ISO 21448到底在要求我们做什么,以及为什么很多所谓的SOTIF工作,其实没有做到点子上。
2. 标准解决的问题:ISO 26262覆盖不到的那块盲区
2.1 一个典型的“功能不足”的场景
先回到开头那个例子。雨天,隧道口,光线剧烈变化,摄像头因为眩光,在一小段时间内丢失了前方静止车辆的目标。AEB(自动紧急制动)算法把这个漏检当成“前方畅通”,于是不制动或者太晚制动,导致碰撞。
这里有没有系统故障?没有。摄像头是好的,算法代码逻辑也是对的,AEB的标定参数都符合规格,执行器响应也正常。但危害就是发生了。问题出在“预期的功能在不同条件下可能不足以应对所有情况”——这就是SOTIF定义里的核心概念:功能不足(functional insufficiency)。
这类情况的难点在于,它不像硬件失效那样有明确的对象可以更换。你很难说“哪个部件坏了”,因为部件都是好的,只是系统的能力边界和现实世界之间,存在一个灰色地带。ISO 21448存在的意义,就是逼着开发团队正视这个灰色地带,系统地识别它、评估它、并且在力所能及的范围内让它变得可接受。
2.2 故障失效与功能不足的本质区别
ISO 26262关注的是随机硬件失效和系统性失效,而ISO 21448关注的是正常运行的系统,因为性能极限、环境限制、逻辑缺陷或者使用者误用导致的风险。
两者不是替代关系,而是互补关系。在工程实践中,我的理解是一个完整的自动驾驶安全主张,必须同时覆盖“坏了也安全”(ISO 26262)和“没坏也要安全”(ISO 21448)两个维度。
做一个简单的对比:
| 对比维度 | ISO 26262(功能安全) | ISO 21448(预期功能安全) |
|---|---|---|
| 关注对象 | 系统故障、硬件失效、软件错误 | 功能不足、性能局限、可合理预见的误用 |
| 分析起点 | 相关项定义与HARA | 功能规范与场景分析 |
| 安全目标 | E/E系统失效时达成安全状态 | 无故障情况下避免不合理风险 |
| 核心分析方法 | FMEA、FTA、FMEDA | STPA、场景分析、触发条件识别 |
| 输出物 | 安全需求、ASIL等级、安全档案 | SOTIF案例、验证确认报告、发布准则 |
在实际项目里,这两套分析经常需要互相引用。比如AEB系统的传感器,ISO 26262分析它硬件失效时如何进入安全状态,ISO 21448则要分析当它因为雨雾遮挡而感知能力下降时,算法如何补偿,或者驾驶员如何接管。两者共同构成一套完整的证据链。
2.3 可合理预见的人员误用,这点经常被忽略
ISO 21448里还有一个容易被忽略的关键词:可合理预见的人员误用。它不要求系统应对所有滥用行为,比如故意拿车去撞墙这种,但要求系统考虑到普通人可能在无意中做出的不合理操作。
举个例子。现在很多车都有驾驶员监测系统(DMS),按理说能识别驾驶员是否分心。但如果驾驶员虽然手握方向盘,眼睛却一直盯着旁边的屏幕,系统的判定延迟超过几秒,这在SOTIF分析中就是一条需要被记录的误用场景。再比如,驾驶员以为开启了自适应巡航,实际上只开启了车道保持,这种对系统功能的错误理解,同样属于可合理预见的误用范畴,开发时需要在人机交互和显示逻辑上做针对性设计。
3. 核心机制解析:场景与触发条件如何驱动全流程
3.1 四象限场景分类法
ISO 21448里有一套非常经典的场景分类逻辑,很多人第一次读标准时容易绕晕,我用大白话来讲。
把一个系统的运行场景按照“是否被知晓”和“是否安全”两个维度,划分为四个象限:
| 象限 | 定义 | 处理策略 |
|---|---|---|
| 已知安全场景 | 开发团队知道、测试过、确认安全 | 保持并持续回归验证 |
| 已知不安全场景 | 开发团队知道,现实中会发生危险 | 必须改进功能或限定使用条件,把风险降到可接受 |
| 未知不安全场景 | 开发团队不知道,但现实中有可能在特定条件下发生危险 | 通过大量测试、数据分析、运行监控去识别,并转化为已知不安全场景 |
| 未知安全场景 | 未知但无害 | 无需处理 |
标准的整个逻辑,本质上就是推动系统从“已知安全+未知不安全”的状态,向“已知安全+已知安全”的状态迁移。这个迁移过程不是一蹴而就的,它依赖于三个手段:规范完善、功能改进、验证和确认。
在实际操作中,企业不可能等把所有未知不安全场景都找齐了再上市,那是无限循环。所以标准里引入了一个务实的判断原则:发布准则(release criteria)。只要已知不安全场景都处理到可接受水平,未知不安全场景的残余风险通过测试和论证被充分降低,就可以考虑上市,然后通过售后数据持续监控。
3.2 触发条件:SOTIF分析的核心抓手
想要把上面的场景分类落地,关键动作就是识别触发条件(triggering condition)。这个词在ISO 21448里是一个核心术语,指“可能导致危害发生的特定条件或环境因素”。
触发条件通常分几类:
- 传感器层面的局限:比如摄像头在逆光、夜晚、雨雾、脏污遮挡时的性能退化;毫米波雷达在隧道内、金属护栏附近的多径反射;激光雷达在扬尘、雨滴中的噪点。
- 感知算法的局限:比如目标分类器对异形车、带自行车的人、奇装异服的儿童识别率下降;多传感器融合算法在置信度冲突时选择了错误源。
- 整车行为层面的局限:比如过弯时减速不足、上下匝道时路线规划的犹豫、汇入车流时对后方来车距离估计偏差。
- 环境条件与道路设施:比如车道线磨损、临时施工路牌遮挡交通标识、高精度地图数据与实况不匹配。
- 组合型触发条件:最常见也最麻烦的是多种限制同时出现,比如雨天+逆光+前方目标对比度低,这种组合会降低单一传感器补盲的有效性。
标准要求开发团队对每一类触发条件做系统性的识别和归档。在项目会议上,很多团队容易把触发条件分析做成一张表格填完了事,其实这是错误的。触发条件必须与具体的场景结合起来,推导出对系统行为的具体影响,才能导向后续的设计改进和测试用例。
3.3 从功能规范到验证确认的闭环链路
ISO 21448的框架,和ISO 26262一样建基于V模型,但侧重点不同。整个流程可以概括为:
- 第一步,定义预期功能与系统边界。明确系统在什么运行设计域(ODD)下工作,具备哪些功能,外部接口是什么。
- 第二步,进行危害识别与风险分析。识别在功能不足或误用情况下可能导致的危害事件,评估严重度、暴露度和可控性。
- 第三步,基于触发条件分析,确定潜在的SOTIF相关风险点。
- 第四步,通过功能修改或规格约束,降低已知不安全场景的风险。
- 第五步,制定验证与确认策略,用测试、仿真、实车等手段证明残余风险可接受。
- 第六步,建立发布准则,并在上市后进行运行阶段监控。
闭合这个链路的关键动作,是把每一份分析文档和测试报告建立起可追溯的关联。比如你分析了一个“雨天隧道口误触发AEB”的场景,那在测试计划里就必须有对应的仿真用例或实车用例,在测试结果里必须能看到对该场景通过或降级的明确结论。缺少这种闭环,审核专家一眼就能看穿你的SOTIF工作只是“纸面合规”。
4. 实操落地:把标准要求翻译成工程动作
4.1 场景库搭建:先有数量,再谈质量
场景库是SOTIF工作的底座。我见过一些团队,场景库的内容基本就是法规标准和NCAP测试条件的复制品,做出来的验证报告很漂亮,但对真实风险的覆盖度极其有限。
正确的做法是把场景库分为几层:
- 法规场景:比如E-NCAP、C-NCAP、FMVSS里规定的测试工况,这是底线,必须过。
- 自然驾驶场景:从大量真实道路数据中挖掘出来的典型驾驶场景。比如城市快速路的汇入场景、无保护左转场景、鬼探头场景。这类数据越多,对真实分布的反映越充分。
- 边缘场景(corner case):根据工程经验人工构造的极端场景。比如“广告牌上的人形图案”“路面上喷涂的假减速带”“前方车辆托着自行车导致轮廓异常”。边缘场景的数量和多样性,往往决定了SOTIF工作的深度。
搭建场景库不是一次性工作,它是持续积累的。每一次实车路测遇到的危险情况、每一个售后事故案例、每一篇行业论文里披露的已知难题,都应该被拆解成参数化场景补进库里。
在工具层面,ASAM OpenSCENARIO和OpenDRIVE是目前比较主流的场景描述标准,能够把场景中的道路几何、交通参与者行为、环境条件这些要素以结构化格式表达出来,方便在仿真平台(CarMaker、VTD、CARLA、Prescan等)之间流转复用。
4.2 传感器感知局限的量化方法
对传感器局限做量化评估,是SOTIF分析和验证中最硬核的部分。因为这个结论直接决定系统的安全边界到底划在哪里。
以摄像头为例,需要评估在不同光照、天气、遮挡、目标距离条件下,检测算法对目标的检出概率(POD)、误检率、分类置信度等指标。方法上通常是“仿真+真实路采”双路并进:仿真用于大量覆盖不同参数组合,真实路采用于标定仿真模型和验证关键工况。
对于毫米波雷达,症状表现不同,通常是速度估计正确但方位角分辨能力弱,或者对静止目标有过滤(静态杂波抑制),导致在前方静止障碍物的场景中出现漏检。这类问题的量化,需要区分场景来分析,不能也不应该对传感器本身提不切实际的要求。SOTIF真正强调的,是通过功能融合、冗余设计、算法补偿和系统降级策略来消化传感器局限带来的风险。
举个例子:一个L2级ACC系统的纵向控制,如果单独依赖毫米波雷达,它对静止目标的漏检风险很难完全消除。但如果加入前视摄像头的融合输入,并且在后端逻辑里设计了“雷达无回波但视觉连续检测到目标”的仲裁规则,风险就能明显下降。这一步在SOTIF分析里,对应的是“功能修改与规格完善”章节。
4.3 安全接受准则:不能只说“尽可能安全”
ISO 21448要求建立可量化的安全接受准则(safety acceptance criteria),但具体怎么定,标准没有给出一个泛用公式。这给工程团队留了很大的裁量空间,但也是争议最多的部分。
在实践中,团队通常会从两个维度来设定:
- 风险接受维度:采用类似ISO 26262的ASIL风险评估矩阵,对危害事件的严重度(S)、暴露率(E)、可控性(C)打分,要求残余风险处在可接受区域。
- 功能表现维度:对特定性能指标定阈值。比如AEB系统,要求对所有正向碰撞测试场景的误触发率低于每万公里0.1次;对行人夜间横穿场景的检出率不低于某个百分比;对“隧道口静止车辆”场景的漏触发导致碰撞的风险处于可接受水平。
这些阈值的设定,需要考虑行业基准、法规要求、保险公司数据、社会可容忍风险水平等因素。不同企业的容忍度不一样,但有一点是确定的:把准则定得模模糊糊,后面写验证报告时一定会含糊其辞,最终在审核阶段很难通过。
4.4 工具链与数据管理:SOTIF不是文档游戏
SOTIF工作涉及海量的场景数据、仿真任务、测试报告,如果没有一套扎实的工具链和管理平台,项目会陷在文档的泥潭里。
我建议至少三件套:
- 需求与追溯管理工具:用DOORS或类似平台,把SOTIF分析中的每一条风险、每一个需求、每一个测试用例串起来,保证从分析到验证的端到端可追溯。
- 场景管理与测试管理平台:统一存放场景库、仿真用例、测试结果,支持自动化批量回归。
- 数据回传与监控系统:车辆上市后,通过车端日志、远程监控、事故报告等渠道持续收集运行数据,用于识别未知不安全场景,反哺下一代产品的SOTIF迭代。
5. 拿到ISO 21448:2022,审核时会重点看什么
5.1 与ISO 26262的接口是否清晰
审核专家第一件会确认的事,是你的SOTIF工作是否与ISO 26262工作做了明确的边界划分。很多团队把两套工作交给同一个工程师做,文档里概念混用、分析边界模糊,一出问题就会发现职责不清。
最理想的状态,是在项目启动初期就定义一份接口文档,明确哪些系统功能走功能安全流程,哪些走SOTIF流程,两者之间的信息如何交换、证据如何共享。比如针对同一个AEB传感器,硬件引脚失效分析归ISO 26262,感知性能在雨雾中的退化分析归ISO 21448。边界清楚了,审核时就不会被挑战。
5.2 触发条件分析的完整性与合理性
审核方会抽查你的触发条件分析是不是覆盖了本应覆盖的范围。常见的不合格项包括:只做了单一触发条件分析,没有考虑多条件组合;只覆盖了传感器,没有覆盖决策算法和执行器;对运行设计域以外的场景直接忽略,但没有给出合理的排除论证。
我这里举个常见的组合触发条件例子:AEB系统在雨天行驶,前方有一辆两轮车,骑车人穿着和道路颜色相近的雨衣,同时对面车道有对向车辆大灯直射摄像头。单独看每个因素,传感器的性能可能都能容忍,但组合起来以后,感知算法很可能会漏检或延迟检测。这类场景,光靠单一的传感器测试是发现不了的,必须做场景级的联合分析。
5.3 验证与确认证据链是否充分
标准里明确要求验证与确认(V&V)活动,但审核时最容易“翻车”的是证据链不闭合。团队做了大量路测,但每一公里路测对应覆盖了哪些具体场景,哪些触发条件被验证过、哪些还没被验证,如果答不上来,测试里程再长也很难有说服力。
好的做法是把每一轮V&V活动的输入、输出和目标标准都记录下来,做到可追溯。比如这样一张追踪表:
| 编号 | 触发条件场景 | 分析结论 | 验证方式 | 测试用例编号 | 通过标准 | 结论 |
|---|---|---|---|---|---|---|
| TC-01 | 雨天隧道口逆光 | 感知延迟风险较高 | 仿真+实车 | SiL-TC-01 | 误触发率<0.1次/万公里 | 通过 |
| TC-02 | 夜间无路灯对向眩光 | 行人漏检风险中 | 仿真 | SiL-TC-02 | 漏检率<2% | 待优化 |
这类表格做扎实了,审核只是走个过场,它真正体现的是团队对自己产品安全性的掌控程度。
6. 个人体会:SOTIF这件事,最怕的是“为了合规而合规”
接触ISO 21448这么长时间,我最大的感受是:如果只是把它当成一个必须完成的合规流程,那就浪费了这个标准真正的价值。
它本质上是在逼着整个开发团队用一种更诚实的方式面对自己系统的能力边界。传感器会看不清,算法会判断错,环境会超出预期——这些不是咒骂一句“算法工程师不行”就能解决的问题。真正健康的SOTIF工作方式,是感知团队、算法团队、测试团队和系统安全团队坐在一起,把每个关键场景的参数边界摊开来讨论,敢于承认自己系统的短板,然后设计对应的降级策略和冗余机制。
另外,SOTIF的验证不能信“堆里程”。我在实际操作中发现,十万公里的自然驾驶路测,如果不做场景细分,它对边缘场景的覆盖贡献是很低的。真正有效的做法,是把路测车辆上装好数据采集设备,回来后对海量数据进行场景挖掘和聚类分析,把有价值的安全相关事件提取出来,反过来补充到场景库里。这样每一公里的路测,才能真正变成产品的安全资产。
如果你所在的公司正在按照ISO 21448推进项目,不妨先检查一下自己的场景库里到底有多少是真实世界来的、多少是法规标准抄来的、多少是凭经验编出来的。这个比例,基本决定了SOTIF工作的天花板。
本文还有配套的精品资源,点击获取