汽车EPAS ECU功能安全建模分析:Gamma框架+深度概率编程落地ISO 26262(含寿命预测案例)

摘要

系统工程方法会采用高层级模型来捕捉系统的架构与行为。然而,当安全工程师开展安全性和可靠性分析时,他们必须依据高层级工程模型所描述的行为以及环境 / 故障假设,构建诸如故障树之类的形式化模型。我们的方法并非构建低层级分析模型,而是借助最新的概率编程与仿真技术的仿真能力,在安全性分析中充分利用工程模型。因此,该方法能够符合相关标准与最佳实践,用于分析关键汽车系统(这是一项工业合作项目的一部分),同时还能利用工程师构建的高层级框图和状态图模型。我们通过一个源于该合作项目中汽车系统的案例研究,验证了此方法的适用性。

1、引言

汽车领域中的嵌入式控制系统等安全关键型网络物理系统,除了要满足功能需求外,还必须满足众多严格的非功能需求,如安全性、可靠性和可用性。针对汽车系统的 ISO 26262标准要求在系统设计过程中,遵循推荐的开发流程并证明其合规性,以此解决这些问题。为满足标准和相关方的要求,系统的认证过程会采用自上而下的演绎式可靠性建模方法,对系统架构和行为进行分析,从而验证安全属性。

嵌入式汽车系统日益复杂的行为,尤其是在故障规避和其他安全机制方面,给这些分析工作带来了巨大挑战。目前,人们不仅采用传统的硬件冗余机制,还运用容错传感器融合算法和自适应重构技术。因此,我们需要有效的建模方法来精确描述系统行为和故障,同时也需要相应的工具支持来计算可靠性指标。

本研究的目标是在安全性和可靠性分析过程中运用基于高层级状态图的语言,并支持复用系统设计阶段定义的工程模型,例如状态机和框图。为此,我们开发了一种集成的汽车可靠性建模与分析方法,该方法能够利用高层级工程模型捕捉系统的架构和行为。我们在 Gamma 框架中提供了一种状态图语言,工程师不仅可以利用该语言设计工程模型,还能设计误差传播模型以及故障 / 环境假设模型。我们的方法充分利用了最新概率编程和仿真技术的仿真能力,并且提供工具支持,为这些技术生成输入数据。因此,我们不仅能够计算安全需求的合规性,还能在系统开发过程的各个阶段为决策过程提供支持。

我们在一个安全关键型汽车电子电气(E/E)系统的背景下,对我们提出的建模与分析方法进行了验证。此外,该方法具有通用性,也可应用于其他自适应网络物理系统以及其他领域。

1.1 案例研究

我们以汽车行业的一个实际案例,即蒂森克虏伯零部件公司开发的电子助力转向(EPAS)单元的电子控制单元(ECU)为例,对自上而下的建模与分析方法进行验证。由于其在汽车中的关键作用,该 ECU 具备多项安全功能,包括自适应重构和高度的硬件冗余。在本案例研究中,我们计算了 ISO 26262 标准所要求的概率指标。需要说明的是,为保护知识产权,该案例研究与实际系统相比略有改动,但这些改动并未对系统的结构和行为产生实质性影响。

图1:EPAS的结构和行为模型

图 1a 展示了典型且广泛使用的 EPAS ECU 的简化结构模型。该 ECU 包含两个相互独立且可单独运行的微控制器(uC)。每个微控制器配备三个冗余传感器,每个传感器都有一个正常运行状态和两个失效状态,即 "关闭(Shutdown)" 状态和 "漂移(Drift)" 状态。如果传感器因失效停止工作,模型将进入 "关闭" 状态,该状态每次都能被检测到。相反,"漂移" 状态代表一种潜在失效模式:在这种状态下,传感器看似正常工作,但输出数据存在错误。因此,要检测这种失效模式,需要借助冗余传感器和表决机制。微控制器通过传感器,利用闭环控制回路(一项安全关键功能,SCF)实现转向驱动功能,该功能在汽车的整个使用寿命期间必须持续运行。

图 1b 展示了微控制器行为的简化状态图。初始状态为 "正常运行(Normal operation)"。如果微控制器发生失效,或者所有传感器都出现失效(进入 "关闭" 状态),模型将进入 "助力丢失(AssistLoss)" 状态。相反,如果至少有两个传感器出现潜在失效(此时失效传感器会否决正常传感器的信号),微控制器将进入 "潜在错误(LatentError)" 状态。在这种情况下,微控制器会在控制回路中使用错误的输入数据,导致 EPAS(其状态在评估状态图中建模)进入 "失控自转向(Uncontrolled self-steering)" 状态。从图 1c 中可以看出,EPAS 系统有两种失效方式:

· 如果两个微控制器都进入 "助力丢失" 状态,转向助力也将停止工作,导致转向体验不佳。EPAS 的这种状态被称为 "助力丢失(LoA)"。

· 如果一个微控制器进入 "潜在错误" 状态,整个 EPAS 将进入 "失控自转向(SS)" 状态。这种情况极其危险,必须采取一切措施加以避免,因为此时驾驶员将失去对汽车的控制。

1.2 安全性分析面临的挑战

在复杂的汽车电子电气(E/E)系统设计中,技术人员非常熟悉传统的自上而下的故障树故障建模方法,以及自下而上的失效模式、影响与诊断分析(FMEDA)方法。通过手动创建和审查分析模型,然后利用软件工具对这些模型进行评估,这些技术能够证明系统在安全性方面符合适用标准的要求。

然而,系统日益复杂,例如 EPAS 中的分布式故障检测和故障转移机制,给传统方法带来了巨大挑战。

首先,传统模型可能会变得非常庞大且难以处理。例如,在 EPAS 案例研究中,即使对系统行为进行了简化,故障树模型仍需要 92 个逻辑门;而要描述完整的行为和诊断过程,故障树模型更是无能为力,因为它无法支持基于状态的行为定义。尽管存在一些更有效的随机系统建模形式化方法,但这些方法通常需要特定的专业知识,无法被工程师广泛应用。因此,专家必须基于高层级架构模型创建(无论是自动创建还是通过代码生成)并审查随机模型。

其次,在整个系统设计过程中,需要进行各种随机分析,这些分析不仅是为了证明系统的安全性,也是为了为设计决策提供依据并修正错误。例如,帕累托分析和敏感性分析可以找出最常导致安全目标失效的组件,这些组件便是需要改进的对象。此外,在威布尔分析中拟合参数分布可以为产品生命周期提供相关信息。这些分析通常需要为特定目的构建具有定制抽象的模型,例如在传统方法中,针对每个分析问题都需要构建不同的故障树,这无疑增加了专家的工作量。

最后,大量的硬件和软件组件给分析工具带来了挑战,导致状态空间爆炸。由于罕见失效模式之间的差异可能超过四个数量级,迭代数值分析方法可能会失去效用,而基于仿真的方法则需要支持罕见事件采样。

这些挑战促使我们寻求一种集成的建模与分析方法,该方法可供参与 EPAS 项目的工程师使用,同时又能高效地回答开发和认证过程中出现的各种分析问题。

1.3 方法概述

为克服这些挑战,我们针对汽车电子电气组件等复杂关键系统,提出了一种集成的自上而下的安全建模与分析方法(如图 2 所示)。该方法支持利用工程师熟悉的高层级建模语言(如框图和状态图),对由功能模型定义的系统进行安全性评估。

图2:安全性评估方法中的活动和产物

我们方法的第一步是构建高层级可靠性模型,该模型将硬件组件的失效模式、安全机制的行为以及误差传播描述为相互关联的状态图。由此产生的三层、基于状态的可靠性模型(将在 2.3 节中介绍)定义了硬件组件和安全机制的可能状态,而系统配置则规定了软件组件之间的连接以及它们的交互模式。尽管大多数此类模型(如安全机制的行为和结构模型)在分析之初就以设计产物的形式存在,例如 SysML 状态机和内部框图,但其中一些模型仍需在演绎式安全分析过程中创建。因此,用于创建分析模型的系统工程工具与用于设计的工具是相同的。

第二步,故障分布(将在 3.3 节中介绍)定义了基于状态的可靠性模型中状态转移的随机行为。与更传统的方法类似,分布参数可从标准或 FMEDA 分析中获取。

为便于分析,我们开发了一个概率运行时环境(PRE),该环境采用深度概率编程范式,对用于可靠性分析的高层级模型进行处理。可以将各种分析任务指定为概率程序,并且推理引擎能够处理具有大型状态空间和罕见事件的模型。因此,我们提出的分析方法既可以用于设计过程中解决复杂的分析问题,也可以用于证明系统的安全性。

据我们所知,这是首次将深度概率编程应用于安全关键型系统的可靠性分析。

2、背景与相关工作

2.1 安全指标

关键系统必须满足各种功能需求和非功能需求。与可靠性相关的非功能需求确保系统能够稳定地提供其功能 / 服务。本文重点关注可靠性和可用性分析。系统的可靠性指的是系统持续提供正确服务的能力,而可用性则指系统随时准备提供正确服务的能力。

在安全性评估过程中,需要运用多种技术对所有这些概念进行分析,例如寿命预测,即确定系统可能发生失效的时间和方式。这些分析方法能够得出系统的多种属性,例如首次失效平均时间(MTFF)和失效发生概率(FIT)。首次失效平均时间用于确定系统发生首次失效的平均时间,而失效发生概率则用于确定系统在特定时间段内发生失效的概率。要计算这些指标,必须采用自上而下的演绎式分析方法。

2.2 分析方法

故障树分析(FTA)是最常用的演绎式分析方法之一。它支持对静态系统进行建模,但无法对具有内部状态的组件进行建模。这在对可重构和自诊断系统进行建模时会受到限制。连续时间马尔可夫链(CTMCs)及相关形式化方法能够对多种行为进行建模。然而,由于所分析系统的复杂性,状态数量会变得极大,导致状态空间爆炸,从而难以对连续时间马尔可夫链进行显式求解。人们已经开发了各种抽象技术来应对这一挑战,但这些技术通常需要大量的建模和分析专业知识。

人们还开发了统计模型检查方法和工具,如 UPPAAL-SMC:这些方法依靠随机采样来模拟系统的行为。然后,可以利用标准的统计分析方法(如统计测试和威布尔分析)对得到的数据集进行分析。UPPAAL-SMC 广泛应用于铁路、汽车和航空航天领域。尽管它通过提供一种低层级建模语言能够对多种行为进行建模,但直接对大型系统进行建模可能会比较繁琐。虽然可以将高层级模型转换为 UPPAAL 模型,但这可能会大大增加模型的规模。

此外,基于仿真的方法也广泛应用于核动力、配电系统和废水处理领域的故障树分析。这些方法的共同缺点是必须分别对系统的每种失效模式和运行模式进行建模。因此,针对每种失效模式都必须创建一个单独的故障树,并且无法对失效模式的联合分布进行分析。遗憾的是,标准的统计方法无法对条件模型进行分析,尽管在关键系统的安全性评估中,条件模型的应用十分广泛。

2.3 基于状态的建模

状态机为反应式系统的行为建模提供了一种便捷的形式化方法。状态机模型会处理输入事件,并根据其内部状态对这些事件做出反应。状态图是状态机的一种常见扩展,它提供了复杂的结构,支持对反应式系统进行高层级设计。这种形式化方法包含多种有效的建模元素,如变量、算术表达式和带有参数事件的接口。

Gamma 状态图组合框架是一个开源的集成建模工具集,支持对异构状态图组件进行语义正确的组合。该框架复用了第三方工具及其代码生成器(如 MagicDraw 和 Yakindu Statechart Tools)的状态图建模语言,用于处理各个独立的组件。该框架的核心元素是 Gamma 组合语言,它支持基于精确语义对组件进行分层互连。Gamma 还提供了自动代码生成器和测试用例生成器,用于分析组件之间的交互。此外,通过将状态图和组合模型映射到验证后端的输入表示,Gamma 还支持系统级的形式化验证与确认(V&V)功能,即可以根据形式化需求对系统模型进行全面分析。

2.4 概率编程

为了将贝叶斯机器学习和差分隐私应用等复杂的统计推理问题表述为计算机程序,人们开发了一种新的编程范式,即概率编程。在这种编程范式中,可以明确地将从概率分布中采样作为程序的一部分。在过去十年中,出现了许多支持这种范式的工具,例如 Stan、Edward、Anglican、PyMC和 Pyro。

与其他工具和方法相比,概率编程工具最大的优势在于其通用的推理算法,该算法能够对条件模型进行分析,并计算后验分布,而不受模型具体形式的限制。这些条件模型是通过在程序中设置观测语句来创建的,这些观测语句定义了随机变量的观测(条件)分布。通过在推理环境中运行概率程序,可以得到相应的后验分布。

大多数推理算法采用基于梯度的蒙特卡洛方法,例如哈密顿蒙特卡洛和无回跳采样算法。最近,一种名为深度概率编程的新方法应运而生,它依靠深度学习算法来实现快速高效的计算。在本研究中,我们采用了该领域中的随机变分推理算法(SVI),该算法会将一个参数分布拟合到概率程序的输出。它会优化参数化引导函数qϕ(z) a与采样后验pθ (x, z)取决于参数 φ 和 θ)之间的证据下界(ELBO),其中pθ (x, z)是概率程序输出的分布,x 和 z 分别是条件随机变量和潜在随机变量:

通过选择合适的引导函数qϕ(z)和条件 x,可以对程序的不同方面进行分析。在概率编程环境 Pyro中,引导函数、程序和条件都可以以 Python 程序的形式进行指定,使用起来十分便捷。

3、EPAS ECU建模

3.1 基于状态的系统建模

我们提出的方法引入了一种基于高层级状态(状态图)模型的故障建模技术。我们利用 Gamma 组合框架,通过 Yakindu 状态图和 Gamma 建模语言,将所分析的系统描述为软件和硬件元素的组合。状态图提供了一种有效的语言,可以捕捉系统复杂的误差传播场景。因此,在我们的方法中,可以应用基于状态图的建模(互连状态图)来描述系统中的故障行为,例如潜在失效、级联失效、多点失效和共因失效。

利用上述语言的有效建模元素,我们可以对复杂的安全机制进行建模。我们使用变量和算术表达式来描述重构策略和传感器融合算法中复杂的决策算法。此外,状态图接口中的参数事件可以对组件之间的通信和故障传播进行建模。

我们基于系统模型和安全需求,提出了一种自上而下的三步法来对 EPAS 系统进行建模。第一步(步骤 I)定义系统的高层级状态和组件;第二步(步骤 II)规定安全机制;最后一步(步骤 III)对基本硬件组件进行建模。

I. 系统级行为

在第一步中,我们从功能需求和非功能需求的角度出发,对系统的高层级状态进行建模。因此,我们创建了系统状态图(如图 4 所示),其中包含 EPAS 的运行状态和失效状态,即 "正常(Normal)"、"助力丢失(Loss of Assist)" 和 "自转向(Self-steering)"。

图3:使用模拟进行寿命预测和条件寿命预测

图4:EPAS的系统级状态图

之后,我们定义了系统的组合模型,该模型包含每个状态图模型通信端口之间的通信通道。根据 Gamma 组合语言的语义,误差事件和重构事件会从低层级组件(如硬件和安全机制)传播到高层级组件(如系统级状态图)。

组件由状态图表示,这些状态图将在后续的建模步骤中获取或定义。组合模型描述了整个系统的行为,而工程师在进行自上而下(演绎式)分析时,可以专注于不同抽象层级的不同状态图模型。该模型包含系统中所有可能导致整个系统故障的组件,并定义了这些组件之间的交互方式。图 5 展示了 EPAS ECU 的误差传播模型。

图5:EPAS模型的分层结构。箭头上的标签是指定义传播的错误和重新配置事件的接口

II. 安全级行为

在第二步中,我们利用系统工程师创建的状态图模型来规定安全机制的行为。在我们的分析中,这些模型已作为系统工程模型的一部分存在。

EPAS ECU 的状态由电机控制器的状态决定。因此,系统状态图与控制器的状态图模型(如图 7 所示)相连。如果微控制器出现故障,或者传感器诊断系统发送错误状态消息,该控制器将关闭驱动装置。因此,控制器的行为在很大程度上受到诊断功能行为的影响。所以,控制器状态图与诊断状态图(如图 8 所示)相连,该诊断状态图定义了诊断功能中的表决机制。需要注意的是,状态图的有效建模元素(如正交区域、变量和算术表达式)极大地简化了传感器诊断复杂行为的规定过程。

图6:EPAS接口的Gamma文本模型

图7:电机控制器状态图

图8:传感器诊断状态图

III. 硬件级行为

在最后一步中,我们对系统的基本硬件子组件进行建模,这些子组件是安全性分析中考虑的最小硬件单元。从安全性分析的角度来看,这些硬件组件具有独立且独特的功能。我们可以利用状态图对这些硬件元素进行建模,这些状态图包含硬件组件的运行模式和失效模式。此类状态图可基于标准、供应商信息以及其他分析方法(如 FMEDA)的结果来创建。

通常,大多数硬件组件(如 ECU 中的微控制器,如图 10 所示)的状态图只有两个状态:"正常(Good)" 和 "故障(Faulty)"。然而,在复杂的自适应系统中,失效模式对系统状态的影响很大。传感器(如图 9 所示)有一个运行状态和两个截然不同的失效状态:"关闭(Shutdown)" 和 "漂移(Drift)"。"关闭" 状态只会导致 "助力丢失" 故障,而 "漂移" 状态是 "自转向" 故障的唯一根源。

图9:基于状态图的传感器失效模型

图10:uC传感器基于状态图的失效模型

3.2 复合模型

根据第一步中定义的组合模型,将第一步、第二步和第三步中介绍的状态图模型组合成一个单一的、确定性的、基于状态的系统模型。

组合的语义由 Gamma 框架定义,与 SysML 框图、扩展时序自动机以及 UPPAAL 等工具提供的组合功能类似,但支持端口、接口以及各种同步和异步通信语义。

以系统复合模型中的事件传播为例,考虑系统级状态图(图 4)和电机控制器(图 7)中名为 "自转向(SelfSteering)" 的状态转移。两个电机控制器状态图实例(分别对应 EPAS 的两个冗余微控制器)中的任何一个进入 "自转向" 状态,都会在其各自的 "监控(Monitor)" 端口上触发 "自转向(selfsteering)" 事件。系统级状态图通过其 "监控 A(MonitorA)" 和 "监控 B(MonitorB)" 端口(这两个端口与两个控制器的输出相连)监听这些事件。这些事件中的任何一个都会触发从 "运行(Operation)" 状态到 "自转向" 状态的转移,并在 "评估(Eval)" 端口上触发 "自转向(SS)" 事件,表明安全目标已被违反。

3.3 故障分布

为了不仅对系统的功能和服务进行建模,还对系统的非功能方面(包括可靠性和可用性)进行建模,我们必须在模型中为低层级硬件故障附加故障发生分布。

Yakindu 和 Gamma 建模语言无法表示随机行为。因此,我们通过在外部表格(见表1)中对随机转移进行标注,来单独对其进行建模。在基于仿真的分析过程中,对分布进行采样以生成(定时的)故障序列,并将其作为低层级硬件事件序列输入到复合的基于状态的模型中。可以将模型的输出事件确定为安全目标违反事件。

表1:案例研究中分布与状态转换之间的联系

4、系统分析

在本节中,我们将介绍一种针对带有故障分布标注的确定性、基于状态的复合模型的分析方法,该模型可通过上一节中介绍的方法获得。

我们的分析基于深度概率编程。虽然概率程序(如 PRISM 保护命令语言)广泛应用于可靠性分析,但据我们所知,这是首次将带有观测语句的推理引擎用于条件可靠性分析和分布拟合。

4.1 概率运行时环境

为了利用深度概率编程对带有随机采样故障序列的系统复合模型进行分析,我们在基于状态的模型和概率编程环境之间搭建了一个桥梁,称为概率运行时环境(PRE)。该环境允许将基于状态的模型作为深度概率程序的一部分运行。概率运行时环境既可以单独运行以计算系统的平均寿命,也可以作为包含观测语句的概率程序的一部分运行,以便进行条件分析和分布拟合推理。

概率运行时环境采用 Python 实现,以与最流行的随机分析工具兼容。该实现基于 Pyro 语言构建,因为 Pyro 包含分析所需的推理算法(详见 2.4 节)以及最先进的推理工具,例如支持 GPU 加速的深度概率编程工具。

4.2 转换为概率程序

在 Gamma 框架中定义离散模型,并生成 Java 实现。该实现可以通过接口函数评估硬件故障对系统级的影响。然后,将系统模型直接转换为概率程序,该程序可模拟随机硬件故障和系统行为。

我们的方法基于连续时间异步仿真。概率程序会一次性为系统中所有组件的所有失效模式随机生成组件失效事件。因此,我们对每个组件的每种失效模式分布进行采样,并将生成的事件按时间顺序排列,为离散模型生成随机事件序列,该序列决定了故障发生时间和失效模式。然而,随着系统中硬件组件数量的增加,可能的故障组合数量会呈指数级增长。Pyro 提供了多种可缓解此问题的算法,例如兴趣采样和随机变分推理(SVI)。

概率仿真器程序的伪代码如算法 1 所示。该算法包括以下步骤:

  1. 首先,对每个硬件组件的每种失效模式的故障分布进行采样,并将采样结果收集到失效集中。

  2. 然后,将失效事件按时间顺序排列,得到故障序列。此过程对于我们的可靠性评估至关重要,因为在仿真过程中,每个失效事件都会单独发送到软件组件模型。

  3. 最后,在循环中评估组件失效序列的结果。如果系统在评估周期内达到失效状态,循环将停止,仿真将返回失效状态和达到该失效状态所花费的时间。

所有这些步骤都集成到概率运行时环境的 "仿真(simulate)" 函数中。因此,生成的概率程序可用于分析脚本,这些脚本既可以验证系统需求,也可以识别系统中的薄弱环节。

4.3 案例研究的随机分析

4.3.1 寿命预测

为了预测系统的失效时间(TFF),可以重复运行算法 1 中的概率程序,从失效时间分布中采样,并通过统计模型检查方法估算首次失效平均时间(MTFF)。结果以直方图的形式呈现(见图 3)。

图3:使用模拟进行寿命预测和条件寿命预测

为了揭示 EPAS 失效的老化规律,我们利用 Pyro 中的随机变分推理(SVI)(详见 2.4 节)进行威布尔分析。我们将引导函数设置为q{η,β} (time) = Weibull(η,β;time),其中 Weibull (η,β;time) 是威布尔分布随机变量的概率密度函数,η 和 β 分别是尺度参数和形状参数。在这种情况下,条件变量集为空,即x = /,因为我们既不使用条件,也不使用观测语句。

概率运行时环境中的随机变分推理优化算法会寻找最优的威布尔形状参数(β)和尺度参数(η),从而得到拟合的寿命分布。该方法有助于了解系统故障率随时间的变化情况,形状参数 β 可反映这一变化。

4.3.2 条件分析

在安全性评估中,我们可以分析所研究系统中复杂的低概率事件,例如特定失效模式下的首次失效平均时间。通过在概率运行时环境中利用 Pyro 深度概率编程算法,我们能够分析联合分布和条件分布。我们可以利用 Pyro 中实现的所有推理算法(例如重要性采样、哈密顿蒙特卡洛和随机变分推理),有效分析复杂的条件分布和参数分布,即使这些分布的出现概率很低。

要应用这些推理算法,我们首先必须在概率运行时环境中创建后验模型,即条件仿真模型。在该模型中,我们假设仿真中的某些随机变量将具有特定值(例如,我们假设系统将进入特定的失效模式状态)。为了创建这样的模型,我们在生成的 "仿真(simulate)" 函数中为每个条件随机变量设置观测语句。之后,我们要么将条件仿真模型代入 Pyro 推理算法并运行蒙特卡洛仿真,要么将其与 Pyro 的模型拟合(随机变分推理)算法(上一小节介绍)结合使用,并选择合适的引导函数。

条件分析可用于组件敏感性计算。该方法的主要目的是研究特定组件发生故障时系统寿命的变化情况。我们创建了一个条件模型,在该模型中,我们假设(观测到)特定组件在任务时间内发生失效。通过这种方式,可以识别并弥补系统设计中的薄弱环节。

5、评估

5.1 与 ISO 26262 安全性分析要求的兼容性

关键组件的安全性分析必须获得多项行业特定标准的批准。因此,我们将分析方法定义为符合 ISO 26262-2018 标准,因为该标准是最现代且最相关的标准之一。下文将介绍我们的方法与 ISO 26262 标准的一致性:

· 我们的分析技术支持系统全生命周期的开发,包括在系统模型不完整的情况下,通过模块化分析对新想法进行检验。

· 如果安全需求未得到满足,我们可以进行条件分析,以识别系统设计中的薄弱环节。此外,借助 Gamma 框架,我们能够对系统组件进行单独的功能分析。

· 使用我们的分析方法不需要特殊的专业技能。因此,安全性分析可以成为开发过程的一个有机组成部分。结果,工程师可以直接审查基于状态图的组件模型,并且无需培训即可自行创建组件模型。

5.2 EPAS ECU 分析

5.2.1 寿命预测

我们在概率运行时环境中运行了 10000 次独立仿真,并将结果以蓝色直方图的形式呈现在图 3a 中。如图所示,结果具有威布尔分布的特征。因此,我们可以利用 Pyro 优化器和随机变分推理,对系统行为拟合威布尔分布。我们运行随机变分推理算法 10000 步以拟合模型。图 3a 展示了实际分布与拟合威布尔模型的对比,其中拟合的威布尔模型用橙色图表表示。如图所示,得到的模型虽非完美,但能很好地近似尺度参数和形状参数。这些参数有助于了解系统随时间的变化情况。此外,这些参数还可用于系统级分析,包括汽车的所有子系统。

(a)仿真寿命分布与拟合寿命分布的对比 (b)不同失效模式寿命分布的对比 图 3:仿真寿命预测和条件寿命预测

为了验证结果,我们还手动对 EPAS 模型进行了故障树分析(FTA)。如图 3a 所示,故障树分析的结果与仿真结果非常接近。

5.2.2 条件寿命预测

ISO 26262 标准要求对失效模式进行详细分析,因此我们必须从预期发生时间的角度对 "失控自转向" 和 "助力丢失" 这两种失效模式的条件行为进行分析。

我们在概率运行时环境中创建了两个条件模型,用于获取寿命的后验分布,假设失效模式分别为 "助力丢失" 和 "失控自转向"。我们运行推理算法 10000 次。图 3b 展示了两个得到的后验寿命分布的对比。结果符合预期,"失控自转向" 的发生时间远早于 "助力丢失",原因如下:如果一个传感器出现潜在故障,且其他任何一个传感器出现任何类型的问题,系统将立即进入 "失控自转向" 状态。而 "助力丢失" 失效模式只有在两侧微控制器都发生失效,或者三个传感器都出现 "关闭" 类型失效时才会发生。因此,系统进入 "助力丢失" 状态所需的时间远长于进入 "失控自转向" 状态所需的时间。

5.3 算法的运行时测量

为了验证我们的分析方法,我们进行了多次运行时测量。我们考察了故障时间分析和条件故障时间分析的运行时。我们将所有分析脚本运行五次,计算中位数,并检查结果的一致性。

我们在多个不同的模型上对分析方法进行了评估。我们以 1.1 节中定义的 EPAS 模型作为基准模型的模板,创建了该模型的三个新版本。每个新版本模型都增加了一些传感器和新的微控制器。与原始 EPAS 模型类似,每个微控制器都为其传感器配备了表决机制;如果没有微控制器正常运行,系统将进入 "助力丢失" 状态;如果至少有一个微控制器在转向控制中使用错误的传感器数据,系统将进入 "失控自转向" 状态。测量使用的是普通个人计算机配置。分析的中位运行时间如表2 所示。

表2:基准模型仿真的运行时间(秒)

结果表明,随着模型规模的增大,单次仿真的运行时增长平稳,因此该分析方法即使对于大型模型也同样适用。

运行时测量结果如表 2 所示。需要注意的是,所有分析脚本都能在 10 分钟内成功运行。

6、结论

由于硬件具有高度冗余性,且软件采用了复杂的重构策略,因此对自适应关键嵌入式汽车系统进行自上而下的分析是一项具有挑战性的任务。传统的建模和分析方法不支持传感器融合算法、失效运行自适应以及相关失效。在本研究中,我们提出了一种基于 Gamma 框架的新型自上而下分析方法,并对其进行了扩展,加入了随机分布。为了进行分析,我们创建了概率运行时环境(PRE),该环境为复杂分析技术(如随机变分推理)提供了易于使用的接口。最后,我们将所实现的算法应用于汽车行业的动力转向模型,结果表明,我们的算法即使对于大型模型也具有良好的可扩展性。在未来的工作中,我们计划将传感器融合算法的分析以及系统对硬件失效的影响纳入研究范围,其中建模控制器可以选择性地修改失效 / 环境分布。

相关推荐
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954481 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star1 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
安当加密6 天前
智能网联汽车如何守住“信任根”? CAS 构建汽车行业专用密钥管理体系
汽车