登录 | 注册 退出 投稿

使用符合ISO 26262的STPA为全自动驾驶车辆开发安全架构

专栏作者 2023-05-29

内容提要:在本文中,我们提出了一个关于如何使用STPA来扩展ISO 26262的安全范围并支持危害分析和风险评估(HARA)流程的概念。


摘要

安全性已成为现代汽车系统开发生命周期中的重中之重。然而,现行的汽车安全标准ISO 26262并没有明确规定安全分析的方法,而是推荐了不同的方法。FTA(故障树分析)和 FMEA(失效模式和影响分析)在最新的ISO 26262应用中用于识别导致特定危害(在存在故障的情况下)的组件失效、错误和故障。然而,这些方法基于可靠性理论,不足以解决由功能失调的组件交互、软件失效或人为错误引起的新危害。因此,开发了一种称为STPA(系统理论过程分析)的整体方法,它解决了更多类型的危害并将安全视为动态控制问题,而不是单个组件失效。STPA还解决了在没有失效的情况下的危害原因类型。因此,需要研究像STPA这样的危害分析技术。在本文中,我们提出了一个关于如何使用STPA来扩展ISO 26262的安全范围并支持危害分析和风险评估(HARA)流程的概念。我们将提议的概念应用于大陆集团当前的全自动汽车项目。结果,我们确定了24起系统级事故、176起危害、27起不安全控制行为和129起不安全场景。我们得出结论,STPA是推导详细安全约束的有效且高效的方法。STPA可以支持功能安全工程师评估全自动车辆的架构设计并构建功能安全概念。

1.简介

如今,软件和技术的创新导致汽车系统越来越复杂,例如自动泊车、使用智能手机泊车以及最近的全自动驾驶汽车。全自动驾驶汽车作为一项新技术,可能给我们的社会带来新的安全风险和威胁,在其发展过程中必须加以控制。因此,安全分析成为安全关键系统开发中的一个巨大挑战。过去,汽车系统的失效除了单独的组件故障(如接口问题)外,还会导致安全问题。汽车行业开始关注汽车电子控制系统的功能安全,并引入新标准来解决其系统日益复杂的问题。安全标准ISO 26262“道路车辆-功能安全”是一项基于风险的国际安全标准,用于描述与安全相关的车辆功能开发的最新技术,并解决电气/电子系统故障行为可能造成的危害。

1.1 问题陈述:ISO 26262是旨在实现有关E/E组件的功能安全的文档。它专门解决因硬件(HW)和软件(SW)引起的失效和故障而导致的危害。这些可能是由随机(与硬件相关的)失效/故障和/或系统性软件失效引起的。如果在概念和开发阶段遵循了“最佳实践”指南,则目的是为功能安全提供论据。危害分析和风险评估(HARA)定义了可能的危害;演绎和归纳分析寻找导致这些危害的E/E故障和失效。与一般假设相反,遵循该指南并不意味着产品是“安全的”。作者认为,“安全”的产品不仅是在出现故障时没有危害,而且是在没有故障时没有危害。这就引出了一个问题,即如何识别这些危害,以及它们的原因可能是什么。

1.2 研究目标:这项研究工作通过使用STPA方法来回答这个问题,该方法在早期概念阶段识别符合ISO 26262的全自动车辆的潜在危害,并为如何通过避免这些危害来减轻事故风险提供安全约束。

1.3 贡献:我们提供了如何根据ISO 26262使用STPA的指南。我们将STPA应用于全自动驾驶车辆的现有架构设计,以开发安全概念来增强架构设计。

1.4 背景:这项工作是以德国汽车制造公司大陆集团与斯图加特大学在全自动驾驶汽车项目开发过程中的合作形式进行的。

1.5 术语:

功能安全是“不存在由于电气/电子系统故障行为引起的危害而导致的不合理风险”。

运行安全(适航性):是“任何类型的汽车在适当的运行条件下或满足在道路或街道上安全驾驶和运输人员、行李或货物的可接受标准的属性或能力”。

相关项:“是应用ISO 26262的系统或系统阵列或功能”。

2.背景

2.1 危害分析方法:STPA

STPA(系统理论过程分析)由Leveson于2004年基于STAMP(系统理论事故模型和过程)因果关系事故模型开发,用于识别系统危害和安全相关约束,以确保复杂系统中可接受的风险。STPA有助于识别可能违反安全约束的因果因素和不安全场景。STPA导致识别出更多的原因,其中许多不涉及失效或不可靠性,而传统技术旨在防止因组件失效事故(由一个或多个组件失效)引起的危害。STPA的主要步骤分为三个子步骤:(1)建立分析的基础(例如系统级事故和相关危害)并绘制系统的控制结构图。(2)利用控制结构图识别潜在的不安全控制动作。(3)通过识别每个控制器的过程模型及其变量,并分析控制结构图中的每个路径,确定每个潜在的不安全控制动作(事故原因)是如何发生的。

STPA已在不同领域成功应用和扩展,例如用于汽车系统的STPA、用于网络安全的STPA和用于软件安全的STPA。

2.2 ISO26262安全标准

ISO 26262(道路车辆功能安全)是一项国际功能安全标准,为汽车领域的安全相关产品开发提供指导、建议和论证。安全分类和针对特定安全开发过程的建议,可能有助于将每个新产品的功能安全规定为最先进的。

ISO 26262分为10个部分,并在7个部分(3-9)中描述了安全活动。第3部分详细说明了概念阶段(如图2所示),该阶段从定义相关项(例如系统、阵列或功能)开始,并对相关项执行危害和风险分析。结果是所有危害的安全目标,这些危害是根据ASIL(汽车安全完整性等级)等级得出和分类的,ASIL等级是ISO 26262标准定义的风险分类方案。第4部分规定了汽车应用系统级产品开发的要求。第5部分和第6部分规定了汽车应用在硬件级别和软件级别的产品开发要求。第7部分规定了生产、运行、服务和退役的要求。第8部分规定了支持过程(例如硬件和软件工具确认)。第9部分规定了面向汽车安全完整性等级(ASIL)和面向安全的分析。

3.相关工作

Hommes强调了在汽车领域应用STPA以及在ISO 26262生命周期中使用STPA作为危害分析技术的好处,尤其是在概念阶段(ISO 26262第3部分)。Hommes还对ISO 26262标准在确保复杂软件密集型E/E系统安全方面应对挑战的能力进行了评估。Hommes提到,在概念阶段缺乏对危害识别和消除的指导,这使得ISO 26262标准不足以提供安全保证。这让我们有强烈的动机去研究STPA的使用是否符合ISO 26262标准,以更深入地了解使用STPA作为危害分析方法来支持ISO 26262中的HARA流程的好处和局限性。

最近,研究人员分析了如何在符合ISO 26262的流程中使用STPA。他们绘制了HARA流程要求或推荐的每个相关活动和工件,这些活动和工件可以通过应用STPA来满足。他们强调STPA和HARA之间的主要区别在于风险评估过程。但是,STPA和HARA在识别危害方面有不同的基本假设。基于这项工作,我们探讨了STPA如何通过考虑在车辆运行期间导致控制不充分的不同因素(例如人、环境)来扩展ISO 26262的安全范围。我们还提出了一个概念,即如何使用STPA支持ISO 26262中的HARA活动,而不是将STPA活动映射到HARA流程。

我们已将STPA应用于汽车领域中一个著名的安全关键系统示例:自适应巡航控制系统(ACC)。本案例研究是根据MAN Truck & Bus AG的现有案例研究进行的,在该案例研究中,作者对ACC系统应用安全案例进行了探索性案例研究。我们将STAMP/STPA的结果与同一系统上的安全案例进行了比较。在参考资料1中(关注牛喀网公众号,微信后台咨询下载),我们提出了一种基于STPA安全分析的安全验证方法。我们将STPA应用于车辆巡航控制软件,以识别系统级别的软件安全要求,并在设计级别验证这些安全要求。最近,我们在参考资料2中(关注牛喀网公众号,微信后台咨询下载)提出了一种基于STPA的软件密集型系统的安全工程方法,称为STPA SwISs,它结合了安全工程和软件工程的活动。因此,反过来,它将有助于将相关的软件风险降低到较低的水平。这种方法可以在软件级别应用,以符合ISO 26262第6部分。

4.在ISO 26262生命周期中使用STPA的概念

STPA的主要目标是识别可能导致事故的不充分控制场景,并制定详细的安全约束以消除和控制这些不安全场景。STPA的主要出发点是识别系统层面的潜在事故和危害,并绘制出系统的分级安全控制结构。ISO 26262概念阶段的主要活动是定义一个相关项,识别需要消除或控制的危害事件,并在系统级开发安全概念。ISO 26262中的危害分析和风险评估(HARA)过程包括以下活动:(1)情况分析和危害识别,(2)危害分类,(3)危害确定,以及(4)安全目标确定。在本文中,我们使用STPA作为一种危害分析技术,通过定义一个相关项并在系统级别识别该相关项的危害和不安全场景来支持HARA。这里使用术语“相关项”来指代系统。

表1.jpg

表1:STPA使用的术语和ISO 26262第3部分:概念阶段使用的术语

图1.png

图1:ISO 26262中STPA和HARA的安全范围

图1显示了STPA和HARA的安全范围。STPA侧重于识别可能导致危害的潜在不充分控制。不充分的控制可能是由人为错误、交互失效、环境、软件失效引起的。STPA还侧重于在没有单个组件失效(例如功能失调的交互或未处理的情况)的情况下识别不充分的控制。ISO 26262中HARA的安全范围是识别电子和电气系统(单个组件)的故障行为可能造成的危害。要在ISO 26262生命周期中使用STPA,我们首先定义STPA和ISO 26262的重要术语(如表1 所示)。基于我们在STPA和ISO 26262方面的专业知识,我们映射了STPA和ISO 26262具有相同含义的术语。在下文中,我们总结了在第3部分概念阶段(如图2所示)使用符合ISO 26262标准的STPA的主要步骤:

1.应用STPA步骤0(基础分析):

1.1.识别事故和系统级危害。

1.2.确定高级系统安全约束。

1.3.画出系统的控制结构图。

2.使用STPA步骤0的结果来定义相关项和所需的相关项信息(例如目的、相关项内容、功能要求等)。STPA步骤0中的控制结构图显示了构成所分析系统的主要组件。此图包含帮助功能安全工程师定义相关项及其边界的信息。

图2.png

图2:将STPA集成到ISO 26262第3部分概念阶段

3.使用STPA步骤0中确定的危害、事故和高级系统安全约束列表作为HARA方法的输入。

4.应用HARA方法:

4.1确定相关项的故障行为可能导致潜在危害的运行情况和运行模式。

4.2根据三个因素的估计对步骤0中识别的危害进行分类:严重性(S)、暴露概率(E)和可控性(C)。

a)通过考虑不同情况下的危害来识别危害事件。

4.3使用四个ASIL确定每个危害事件的ASIL(汽车安全完整性等级):A(最低安全完整性等级)到D(最高安全等级)。如果危害事件不是不合理的,我们将其称为QM(质量管理)。

4.4制定每个危害事件的安全目标。

5.使用危害事件、安全目标、情况和模式作为STPA步骤1的输入。

6.应用STPA步骤1来识别相关项的不安全控制行为。

7.应用STPA步骤2来确定STPA步骤1中确定的每个不安全控制行为的起因和不安全场景。

8.使用STPA步骤1和步骤2的结果在此级别开发系统功能安全概念和安全要求。

5.应用实例:全自动驾驶汽车

研究对象:半自动和全自动驾驶需要符合基本的系统特性,如可靠性、可用性、防护性和安全性。全自动驾驶系统(SAE 5级)涉及在没有人类驾驶员的任何输入的情况下,通过感知环境、执行和计算所需的驾驶路径(轨迹)以及将所需的控制发送到执行器来导航汽车的行为(如图3所示)。因此,全自动驾驶系统所需的组件可分为三大类:1)感知:需要多个传感器来收集环境信息、车辆状态感知和交通参与者。例如,轮速传感器、摄像头、近程和远程雷达甚至激光雷达技术都被用来获得细粒度的环境模型;2)计划:计划部分由多层次的决策组成。驾驶策略计划即将进行的操作,是汽车计算行为的核心要素。它作为轨迹规划子模块的输入。轨迹规划的功能是处理相对于周围环境(避免碰撞)和给定机动的安全车辆轨迹。运动控制器根据所需轨迹计算运动请求。3)动作:在动作组中,所有需要的执行器,例如制动系统、转向系统和发动机控制,可以概括为纵向和横向运动。运动控制器的输出为执行器提供扭矩请求。

图3.png

图3:全自动驾驶车辆的功能架构

表2.jpg

表2:系统级事故示例

应用STPA步骤0:基本面分析  首先,我们执行STPA步骤0的第1部分(识别系统级事故)。因此,我们确定了全自动驾驶系统可能导致或促成的24起系统级事故。表2显示了系统级事故的示例。例如,AC.1:全自动车辆在高速公路上与前方移动的物体相撞。其次,我们执行步骤0的第2部分(识别危害)。结果,我们确定了176种可能导致这些事故的危害。例如,危害可能导致事故AC.1,HA.1:全自动车辆失去转向控制,因为它接收到错误的自我纵向扭矩。第三,我们执行步骤0的第3部分(确定系统级安全约束)。高级系统安全约束的一个示例是SC.1:全自动驾驶车辆在道路上行驶时必须始终接收正确的数据。

表3.jpg

表3:系统级危害示例

图4.png

图4:全自动驾驶系统安全控制结构图

第四,我们做步骤0的第4部分(绘制高层安全控制结构图)。图4)展示了全自动驾驶系统在架构设计层面的控制结构图。控制结构图显示了与车辆中全自动驾驶系统交互的主要组件。我们使用STPA步骤0的结果来定义相关项。例如,全自动驾驶功能平台就是可以应用ISO 26262的相关项。控制结构图显示了全自动驾驶功能平台及其接口的边界。全自动驾驶功能平台的目的是通过向运动控制发出控制动作,并接收来自不同传感器的反馈来控制自动驾驶车辆。

使用STPA步骤0的结果:我们还使用STPA步骤0的结果(事故列表、危害列表)作为HARA方法的输入。首先,我们确定运营情况和运营模式。例如,从事故AC.1中的运行情况可以确定为OS1:在高速公路上撞车。运行模式为OM.1:驾驶。我们使用两个因素(严重性和暴露)对STPA步骤0中确定的每个危害进行分类。例如,我们将危害HA1的严重程度估计为S3(危及生命的伤害或致命伤害),将运行情况(在高速公路上)暴露率估计为E3(中等概率)。然后,我们从危害HA.1中识别出一个危害事件HE.1,将事故AC.1识别为HE.1:全自动车辆在高速公路上行驶时失去了转向控制。接下来,我们估计了每个危害事件的可控性(C0:简单可控到C3:难以控制)。可控性是一种评估危害情况通常可控或不可控的可能性的方法。作为全自动车辆(SAE 5级)的假设,预计驾驶员不会在任何时候接管控制权。因此,我们将全自动驾驶系统的每一个危害事件的可控性定为C3(难以控制或不可控)。例如,危害事件HE.1的可控性为C3。我们还为每个危害事件分配了ASIL。比如危害事件HE.1的ASIL是ASIL C。我们为每一个危害事件制定了安全目标。比如危害事件HE.1的安全目标是SG.1:全自动驾驶车辆在高速公路上行驶时不得失去转向控制。

应用STPA步骤1和步骤2:我们使用HARA方法的输出(例如危害事件和运行情况列表)作为STPA步骤1的输入来制定不安全控制措施。我们使用控制结构图来识别全自动驾驶车辆(STPA步骤1)的不安全控制动作。为了识别不安全的控制行为,我们首先在高抽象层次上识别关键的安全控制行为。例如,全自动驾驶功能平台有一个控制动作叫做轨迹。轨迹主要包含状态空间点的时间序列,具有时间戳、x和y位置、速度、加速度、轨道角、急动、曲率和曲率率。轨迹由自动驾驶功能平台下发给运动控制器。

我们在四种一般危害类型(例如,不提供、提供不正确、在错误的时间/顺序提供以及停止过早/应用时间过长)中评估了这些控制措施中的每一个,以检查它们是否会导致危害事件。我们确定了27项不安全的控制行为。例如,UCA-1:全自动驾驶功能平台在高速公路上超速行驶时无法为运动控制提供有效轨迹。这种不安全的控制行为(故障行为)可能导致潜在危害HA.1。

为了生成相应的安全约束,我们通过使用引导词将每个不安全的控制动作翻译成相应的安全约束,例如 “应”或“必须”。例如,不安全控制动作UCA-1对应的安全约束SC-1为:全自动功能平台在高速公路上行驶时,必须始终为运动控制提供有效轨迹。我们根据态势分析的结果,确定了自动驾驶(AD)功能平台的流程模型。例如,AD功能平台的一个流程模型变量是道路类型,有以下取值:高速公路、停车场、十字路口、山区、城市、城镇。我们使用STPA步骤0和步骤1的结果作为STPA步骤2的输入来确定起因和场景。我们还确定了每个不安全控制动作的事故原因(STPA步骤2),以更深入地了解它们如何在全自动驾驶车辆中发生。例如,不安全控制动作UCA-1的因果场景是:由于在高速公路上超速行驶时缺乏通信,全自动驾驶功能平台从后端接收到错误信号。然后,可以得出一个新的安全约束,因为全自动驾驶功能平台应在驾驶过程中毫不延迟地从后端接收正确的数据。

使用STPA步骤2的结果:我们使用STPA步骤2的结果来构建安全概念并满足新的安全要求。例如,UCA-1的因果场景CS.1为:AD功能平台在系统处于活动状态,车辆正在行驶,且高速公路上有前方车辆时,未向运动控制提供有效轨迹。然后,我们确定了每个因果场景的安全约束(SC)。例如,CS.1的安全约束(SC.1)是:AD功能平台必须始终提供轨迹,使运动控制能够在车辆行驶且前方有交通时调整油门位置并施加制动摩擦力,从而避免潜在的碰撞。我们使用STPA步骤2的结果来构建功能安全概念并确定功能安全要求。

6.讨论

根据我们的工作,我们发现STPA和HARA有不同的基本假设。HARA分为两部分:1)危害分析,旨在识别导致伤害的危害。然而,这些危害与单个组件失效有关,并且没有根据其他事故原因进行描述,例如车辆与其环境和驾驶员(全自动车辆中的乘客)之间的交互失效。第二部分是风险评估,旨在识别每个已识别危害的风险。而STPA侧重于控制问题,而不是组件失效。STPA旨在识别由系统组件之间的组件失效、人为错误和组件交互错误引起的不充分控制。它还能够识别在没有组件失效的情况下,由于系统组件之间的不安全交互而产生的危害。因此,STPA可以识别更多类型的危害,不仅是由于组件失效可能发生的危害,还可以识别没有组件失效时可能发生的危害。为了填补HARA和STPA之间的差距,我们展示了如何使用STPA的结果作为输入来支持HARA流程活动,而不是将HARA活动和工件映射到STPA。此外,STPA不支持风险分析,而HARA支持此类活动。此处的工作表明STPA和HARA相互补充,STPA可用于扩展ISO 26262的安全范围。

ISO 26262概念阶段的另一个缺陷是没有系统的方法来定义相关项。我们发现STPA可以通过在开始概念阶段之前应用STPA步骤0来填补这一空白。STPA步骤0可以定义相关项并建立相关项所需的信息。此外,STPA步骤0可以为每个相关项定义安全约束。

STPA步骤2要求定义控制器的过程模型,它确定受控过程的当前状态以及控制器将如何发出控制动作。该模型还用于确定STPA步骤1中识别的每个不安全控制行为的因果场景。但是,没有关于如何定义过程模型及其应在过程模型中扩充的变量的指南。我们发现HARA可以通过使用情况分析来填补这一空白,该分析确定相关项的故障行为将导致危害事件的运行情况和运行模式。这些情况和模式可以用作STPA过程模型的输入。

STPA的一个假设是它可以应用于系统开发过程的所有阶段,尤其是在早期阶段。这个假设类似于HARA过程的假设,也可以在系统开发的早期阶段应用。然而,STPA有助于推导更详细的安全要求,而不仅仅是功能安全要求,这是ISO 26262概念阶段的主要输出。因此,映射STPA步骤1和步骤2的结果以构建功能安全概念需要STPA和HARA方面的高度专业知识。此外,STPA 是一个自上而下的过程,在将STPA应用于相关项之前,无需了解相关项的详细设计。这个假设也类似于HARA过程的假设,可以在对相关项的详细设计有一点了解的情况下应用。

总之,我们相信STPA可以支持ISO 26262活动中的HARA流程,并帮助功能安全工程师根据 STPA步骤0的结果,为概念阶段早期确定的每个相关项制定功能安全要求。事实上,将STPA整合到HARA活动中仍然需要修改STPA和HARA的假设和条款,以将STPA的结果直接映射到HARA。

7.结论

在本文中,我们探索了使用STPA方法作为符合ISO 26262的危害分析,以改进大陆集团全自动驾驶车辆相关项的安全架构。我们的工作表明,STPA是一种强大的危害分析技术,可用于支持ISO 26262中的安全生命周期和HARA流程,方法是提供有关定义相关项、推导详细安全约束以及制定安全目标和功能安全概念的系统指导。这有助于我们在开发过程的早期阶段评估新型全自动驾驶系统的架构设计。作为未来的工作,我们计划探索在全自动驾驶架构的不同级别(例如软件级别)使用符合ISO 26262的STPA方法来制定详细的安全要求。我们还计划与大陆集团的功能安全工程师一起开展实证案例研究,评估我们提出的概念,以了解使用STPA支持HARA流程的优势和局限性,并扩展ISO26262的安全范围。我们还计划开发XSTAMPP的扩展以支持HARA流程活动。




作者:牛喀网专栏作者
牛喀网文章,未经授权不得转载!


下一篇: 牛喀学城功能安全工程师认证培训线下精品班圆满结束
上一篇: “蔚小理”大PK,谁是亏损王?谁最敢花钱?谁将先“上岸”?
相关文章
返回顶部小火箭