SASETECH
是国内首个由汽车安全专家发起组建的技术社区,致力于为汽车安全的从业者提供交流、学习、合作的中立性平台。
引言 功能安全开发入门系列 (2)——危害分析与风险评估的步骤和常见误区
系列文章的定位是“功能安全开发入门”,旨在借助SESETECH的平台,围绕着ISO 26262的标准框架,结合实例对功能安全开发的方法论的实践运用中的要点展开说明,为功能安全初学者提供一个可以参考的视角。同时也希望在分享的过程中能让读者深刻体会功能安全开发的关键不是流程,而是技术。欢迎感兴趣的读者订阅专栏,同时欢迎所有指正文章问题或者进行技术讨论的声音,相互交流,共同进步。
➡本文主要内容分为4个部分(约5400字,12钟阅读)
本文要点
ISO 26262对功能安全(Functional Safety)的定义为:
Absence of unreasonable risk due to hazards caused by malfunctioning behavior of E/E systems.(不存在由电子电气系统的功能异常表现引起的危害而导致不合理的风险。)
要想避免“不合理的风险”,首要工作就是要正确地识别风险。在ISO 26262,part3 细致地归纳了识别风险的步骤,该活动被称为“对危害分析与风险评估_(Hazard Analysis and Risk Assessment)_”。但是归纳中又包含了很多抽象拗口的功能安全的关键概念,给理解造成了阻碍甚至容易进入误区。基于此,本文将结合实例来梳理危害分析与风险评估的步骤,并结合开发经验总结常见的理解误区并加以澄清,希望能为读者提供一些有价值的参考。
01 相关项定义 (Item definition)
在对某个产品展开功能安全分析与开发之前,需要先明确产品的功能以及产品的边界。这一活动被称为“相关项定义(Item definition)”。
为方便文章展开,选取线控制动产品eBooster作为分析对象。eBooster作为取代传统真空助力器的电控系统,其工作原理可简要概括为:当驾驶员踩下制动踏板时,推动输入推杆产生位移,踏板行程传感器记录输入推杆位移,将其发送至eBooster ECU,ECU根据位移计算并控制助力电机产生力矩推动制动主缸推杆,使得主缸释放液压到轮缸以实现液压制动。工作过程可以概况为:踩制动踏板→产生位移信号→电机转动提供助力→实现制动。
Bosch第二代eBooster,又称i-Booster
eBooster主要提供三个功能:
- 驾驶员制动或者外部ECU请求制动时提供制动助力
- 电子助力失效的情况下,机械部件仍然要保证驾驶员在用500Nm踩制动踏板时能产生 2.44 m/s² 的减速度。(法规强制要求)
- 通过HMI反馈eBooster状态信息给驾驶员
另外,搭载eBooster系统的车辆同时装配了电子稳定性系统_(ESC, Electric Stability Controller)_,ESC和eBooster在车上共用一套液压系统,两者协调工作,eBooster提供动态响应更加快速准确的建压能力,ESC保证制动过程中的车辆稳定。
根据上述eBooster的工作原理及功能定义可以定义以下关键接口:
02 危害分析与风险评估的步骤
总结来看,危害分析与风险识别_(Hazard analysis and risk assessment)_的步骤可以概括如下:
- Step1: 危害识别
- Step2: 危害事件分类与风险分析
- Step3: 导出安全目标
本节将对这三个步骤展开说明,总结出各个步骤的关键点。
危害分析和风险评估基于相关项定义的功能和接口来展开,目的是通过识别出相关项的功能失效可能引起的车辆危害及潜在的风险,并对风险进行ASIL等级评估,为后续进行功能安全开发来降低或避免风险奠定基础。
危害识别
对于危害识别,ISO 26262特别强调了两点:
ISO 26262 part3,6.4.2.2
The hazards shall be determined systematically based on possible malfunctioning behaviour of the item._(危害应由相关项的功能异常表现决定)_
ISO 26262 part3,6.4.2.3
Hazards caused by malfunctioning behaviour of the item shall be defined at the vehicle level._( 应以能在整车层面观察到的条件或行为来定义危害)_
相关项的功能异常可以从相关项的输出接口可能的异常表现展开分析,常用的分析方法包括FMEA,HAZOP等。而既然是以整车层面观察到的行为来定义危害,那么首先需要考虑的是车辆所有可能的运动行为。从整车动力学的角度,汽车所有的运动行为可以被下图中的运动坐标系准确描述。
以eBooster系统为例,当eBooster提供的制动助力出现异常时,可能引起车辆在纵向坐标系上的表现异常。
需要补充一点,整车除了在运动坐标系上所能识别出来的危害外,还有其他类型的危害需要考虑。比如,复杂的E/E系统下人机交互界面_(HMI: Human Machine Interface)_越来越受重视,当某个系统失效后,如果没有通过HMI及时告知驾驶员可能引起危害;抑或是制动灯没有及时点亮,导致后车驾驶员在前车紧急刹车时制动不及时也可能造成危害。
在识别相关项可能引起的整车危害的过程中,ISO 26262特别强调不能考虑相关项的内部安全机制。
ISO 26262 part3,6.4.1.2
The item without internal safety mechanisms shall be evaluated during the hazard analysis and risk assessment, i.e. safety mechanisms intended to be implemented or that have already been implemented in predecessor items shall not be considered in the hazard analysis and risk assessment.(在危害分析和风险评估过程中,应对不含内部安全机制的相关项进行评估,即在危害分析和风险评估过程中不应考虑将要实施或已经在前代相关项中实施的安全机制)
这一要求中包含了一个明确的因果关系,即先识别危害,再考虑设计安全机制。拿eBooster制动助力过小造成的整车制动力不足的危害来说,正是识别出助力过小可能引起整车制动力不足的危害,才需要设计安全机制去避免eBooster造成制动力不足的危害的发生,而不是颠倒因果,去考虑在eBooster内部的安全机制的加持下eBooster是否会造成制动力不足的危害。
虽然不能考虑相关项的内部安全措施,但是ISO 26262是允许在识别危害时考虑外部措施(external measures)的。
ISO 26262 part3,6.4.1.2 NOTE 1
In the evaluation of an item, available and sufficiently independent external measures can be beneficial._(在对相关项进行评估过程中, 可用的且充分独立的外部措施是有益的)_
对于同时装备eBooster和ESC的车辆,如果eBooster制动助力过大可能引起两个整车危害:
- 制动力过大导致后车躲闪不及时而追尾
- 制动力过大导致车轮抱死从而引起车辆失稳
在ESC有效且和eBooster充分独立的前提下,可以认为,由于ESC的存在所以eBooster不需要考虑第二个危害_(由ESC考虑)。_
危害事件分类与风险分析
功能安全的定义中指出,功能安全关注的是不合理的风险_(unreasonable risk)_。此处的风险指的是对驾驶员或者路人或周边车辆内人员造成的健康伤害。那么接下来的问题是:
- 是否所有的整车危害都会造成不合理的风险呢?
答案是否定的。拿eBooster举例来说,对于eBooster因为制动助力输出过大造成的整车非预期制动或者制动力过大的危害,假如危害发生在空旷低速的停车场,顶多制动力过大会让驾驶员受到惊吓,不会造成后车追尾的风险;而危害发生在高速时,如果后车始终保持安全距离,后车驾驶员有很大的可能避免追尾的风险,反之则不然。更进一步地,当危害造成追尾事故时,碰撞瞬间两车碰撞的相对速度的大小不同,造成的人身伤害的严重程度也不同。
从上面的例子可以看出,整车危害并不一定会带来不合理的风险,这取决于多方面的因素:车辆运行场景;运行场景下参与者的表现;风险造成的人身伤害的严重程度。
因此,当整车危害被识别出来后,需要结合危害和场危害发生时刻车辆运行的场景来分析造成的潜在风险是否可被接受,这一活动被称为“危害事件分类(Classification of hazardous events)”。
车辆的运行场景,可以理解为是下图各个因素的排列组合。简单来说,运行场景 = 道路场景 + 驾驶场景,比如“高速公路+直行加速”或者“高速公路+直线制动”等。
ISO 26262定义了三个维度的指标来对危害事件进行分类。这三个维度正对应上面例子中识别出来的影响风险合理性界定的三个因素。
基于这三个维度的评分,即可确定ASIL等级即汽车安全完整性等级_( automotive safety integrity level)_。ASIL一共分为四个等级,D代表最高严格等级,即风险最高,A 代表最低严格等级,即风险最低。
如果相关项对应的危害事件的ASIL等级为ASIL A及ASIL A以上,则功能安全开发需要予以考虑;对于QM_(质量管理,quality management)_,只要按照企业流程开发就认为可以满足ISO 26262要求,无需额外进行功能安全开发。
导出安全目标
通过危害事件分类识别出的不合理的风险,正是功能安全开发所要避免的风险,即功能安全的开发目标。ISO 26262对导出安全目标_(Safety Goal)_的要求如下。
ISO 26262 part3,6.4.4.2
The ASIL determined for the hazardous event shall be assigned to the corresponding safety goal. If similar safety goals are combined into a single one, in accordance with 6.4.4.1, the highest ASIL shall be assigned to the combined safety goal. (应将为危害事件所确定的ASIL等级分配给对应的安全目标。如果将类似的安全目标合并为一个安全目标,按照6.4.4.1,应将最高的ASIL等级分配给合并后的安全目标)
拿eBooster举例,基于下表的危害分析与风险评估,导出如下安全目标:
SG: eBooster应该避免非预期的减速, ASIL C.
安全目标可以认为是整车层的功能安全需求,有了安全目标后,接下来将对相关项定义功能安全需求,进行功能安全设计,以避免相关项违背安全目标而造成不合理的风险。
03 危害分析与风险评估中的常见误区
误区1:认为Exposure的评定和装配相关项的车辆数量有关
在和客户讨论某个安全目标的Exposure的评级时,曾经收到过客户这样的反馈:我们搭载自动泊车功能的车辆只占该车型总数的20%,所以对于XX系统由于功能异常导致制动力不足而撞到行人的风险,Exposure可以适当降低。
实际上这个说法违背了ISO 26262中对Exposure评级的要求。ISO 26262明确指出:
ISO 26262 part3,6.4.3.6
The number of vehicles equipped with the item shall not be considered when estimating the probability of exposure.(当预估暴露概率时,不应考虑装备该相关项的车辆数量)
这意味着“因为该相关项未装备在每个车辆上(只有一些车辆装备该相关项),所以暴露概率会降低”的观点是不成立的。
误区2:认为Exposure的评定和某个相关项发生故障的概率有关
先举个例子:自动驾驶系统对制动系统提出了制动冗余的需求,即制动系统需要保证主系统功能降级后备份系统能够及时接管。那么在对制动冗余系统“制动力丢失”进行危害分析与风险评估时,以下说法是否正确?
由于主系统出错降级的概率比较低,因此对备份系统而言,需要备份系统接管制动的场景的Exposure大大降低,所以备份系统“避免制动力过低”的安全目标是ASIL B甚至是ASIL A而不是ASIL D。
如果读者朋友认为这个说法正确,那么意味着你掉入了陷阱。有意思的是,可以说绝大多数功能安全工程师都经历过从这个陷阱中爬出来的过程,包括笔者自己。因此可以说这是一个理解功能安全之路上“必经之坑”。
为什么上述说法是错误的呢?2018版ISO 26262, part3的附录B补充了明确的说明。
ISO 26262 part3,Annex B
The number of vehicles equipped with the item shall not be considered when estimating the probability of exposure.( 当预估暴露概率时,不应考虑装备该相关项的车辆数量)
此处明确提到,相关项发生故障的概率不能被考虑在危害分析和风险评估的Exposure评定中,Exposure始终只与车辆运行场景在日常驾驶中发生的概率有关。
带着这样的理解回到前面制动冗余系统的分析中,主系统出现故障的概率与备份系统对“制动力过低”的危害分析和风险评估无关,仍然要聚焦于备份系统接管后的运行场景的Exposure。因此,除非自动驾驶系统明确定义了备份系统接管后的运行场景有限制(比如运行XX分钟或者运行最大速度不超过XXkph),否则备份系统运行的Exposure应该和主系统运行时的Exposure相同。
误区3:认为ASIL等级的评定只有唯一答案
一些功能安全工程师一开始接触自己公司的安全目标时,往往会认为安全目标的ASIL等级是不可变的。但是在功能安全开发合作中,经常出现一个现象:对于同一个相关项的同一个安全目标,主机厂和供应商评定的ASIL等级不同。
这一现象实际上包含了ASIL等级评定的本质:ASIL等级评定只是定性分析而不是定量分析。
这里首先简单对比定性分析和定量分析的区别。
实际上ISO 26262有很多地方体现了ASIL等级评定是定性分析而不是定量分析。比如下图中对S值的评定,充斥着“低速”、“中速”等模糊的名词,不同的公司对这些词的定义不同。再加上不同的公司在定义S/E/C时参考的数据源也有区别,比如外企参考的是欧美市场的道路数据,而中国企业参考的是中国市场的道路数据,种种因素都会导致ASIL等级评定的差异。这些差异是客观存在的。
但是,定性分析并不意味着ASIL等级评定是完全主观的,它仍然是建立在客观数据的基础之上,对数据进行合理的使用并对其中可能存在争议的点做出合理的主观评估,只有这样才能认为不同公司导出的ASIL等级的差异才能称得上是合理存在的。
作者:小青的风筝
校阅:闻继伟
文章来源:sasetech
推荐阅读
更多物联网安全,PSA等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA技术交流群,请备注研究方向。