技术文章

基于STPA的安全性可靠性分析应用

时间:2024-06-13

作者·石闪闪

一、应用背景

首先,在介绍STPA之前,我们先来看几个经典的案例。

案例一:火星极地着陆器坠毁事件。  

火星极地着陆器是NASA“火星勘测98计划”中的探测器,1999年12月3日,在运行过程中,火星极地着陆器要穿越火星大气层、打开降落伞、启动下降发动机(由软件控制)。前两个过程基本上是成功的,但当探测器到达火星附近,在准备进入火星大气前几分钟与地面失去联系,随后坠毁在火星表面。调查表明,探测器在降落期间打开着陆架时,产生的噪音导致发送了错误信号,使制动发动机提前关机,导致探测器下降速度过快而坠毁。

案例二:Boeing 787 锂电池起火。

此事件的锂离子电池制造商提供的可靠性数据是,电池单元通风将在1000 万飞行小时内发生一次,但2013年仅两周就有两个电池发生了故障。正常情况下,若电池发生故障,环境控制系统可以通过制动某些阀门来冷却管道风扇以去除烟雾。虽然事故涉及的因素很多,其中一个关键因素是:由于电池故障,向环境控制系统供电的单元同时关闭。结果,阀门不能被制动,导致APU(辅助动力装置) 电池产生的烟雾不能有效地引导到客舱和电池室外,从而导致电池起火。

 

随着技术的不断发展,无论航空航天领域,还是汽车电子、轨道交通、工业系统等都向着综合化、智能化和模块化方向发展,系统的复杂程度成级数增长,系统交联、信息融合、人机结合、软硬件结合等方面引起的系统性风险愈加突出,许多新型系统的事故并不来源于单一的系统组件故障,而是因为非故障组件之间的不安全相互作用所致,而表现为系统交联不良、系统组件之间非期望相互作用、系统能力不及等非故障因素,因此传统的系统安全方法正受到新技术的引入和所建立系统日益复杂的挑战,需要新的安全性评估和分析技术来解决复杂系统的安全性问题,需要充分考虑组件故障、组建不良交联、软件需求分析不充分、组件性能变化共振、系统内外部协调以及人为差错等带来的影响或后果。

 

二、STPA简介

STPA (systems - theory Process Analysis),系统理论过程分析,是一种基于STAMP的相对较新的危害分析技术。STAMP (systems - theory Accident Model and Processes),是一种基于系统理论和系统思维的事故因果模型,由麻省理工学院的Nancy Leveson教授于《engineering a safer World》(MIT出版社,2012年1月)中提出的,它将传统的因果关系模型扩展到一系列直接相关的故障事件或组件故障之外,以包括更复杂的流程和系统组件之间的不安全交互。STAMP提出了三个关键的概念即安全约束、控制反馈结构和过程模型。在STAMP中安全被视为动态控制问题而不是故障预防问题,STAMP模型中包含更多的原因,其重点从防止故障变为对系统行为进行限制。

 

如上图所示,STPA与传统的危险分析方法(例如故障树分析(FTA)、故障模式及其影响关键性分析(FMECA)、以及危险性和可操作性分析(HAZOP))进行评估和比较,STPA既可以发现传统分析发现的所有不可靠、不安全的场景,也可以发现这些传统方法没有发现的不安全的非故障的场景。

STPA是一种主动分析方法,可分析开发过程中事故的潜在原因,从而消除或控制危险源。它假定事故(accidents)也可能因为系统中不同部件之间的交互引起,即使这些部件均未失效。STPA基本的分析步骤如下:

 

 

步骤一:定义分析的目的。

要明确分析是避免何种损失?是将STPA仅应用于传统的安全目标,如防止人员伤亡,还是将STPA更广泛地应用于安保、隐私、性能和其他系统特性?被分析的系统是什么?系统边界是什么?这些问题和其他基本问题需要在这一步骤进行明确。

步骤二:建立控制结构。

需要建立一个称为控制结构的系统模型。控制结构通过将系统建模为一组反馈控制回路来捕获功能关系和相互作用。控制结构通常从非常抽象的层次开始,然后迭代地进行细化,以获取有关系统的更多细节。无论STPA应用于安全、安保、隐私还是其他属性,这一步都是相同的。

步骤三:识别不安全的控制行为。

分析、识别控制结构中的控制行为,以验证这些行为是如何导致第一步中定义的损失。这些不安全的控制行为用于生成系统的功能需求和约束。无论STPA应用于安全、安保、隐私还是其他属性,这一步也都是相同的。

步骤四:识别致因场景。

该步骤主要识别系统中可能出现的不安全控制的原因。主要包括:

  1. 识别导致不安全控制行为的致因场景。例如,不充分的控制算法、不安全的控制输入、不充分的过程模型等;
  2. 识别控制行为执行不当或未被执行的致因场景。

各步骤中详细过程就不再赘述,可参考《STPA Handbook》。

 

三、在Medini Analyze中如何开展STPA?

Medini Analyze是Ansys公司的一款专业的用于安全性、可靠性分析的平台工具。自2022R2版本开始支持STPA,能够完全覆盖以上STPA的分析步骤。

 

 

步骤一:在Medini工具中定义分析目的,包括

  1. 定义损失:损失涉及对利益相关者具有价值的东西。损失可能包括失去生命或人身伤害、财产损失、环境污染、任务失败、声誉受损、敏感信息丢失或泄露或利益相关者无法接受的其他损失。
  2. 识别系统层的危害:危害指的是一种系统状态或是一系列条件,在特定的最不利环境条件下,会导致事故(损失)。 
  3. 确定系统层级的安全约束:系统级约束规定了需要满足以预防危险(最终防止损失)的系统条件或行为。一旦识别了系统级危害,需直接识别必须强制实施的系统级约束,通常只需简单地反转条件。

 

步骤二:建立控制结构。控制结构通过一套反馈控制回路为系统建模捕捉功能性关系及相互作用。控制结构通常起始于较为抽象的层级并通过迭代调整以捕捉更多系统细节。原则就是:自顶向下,逐步细化。

  1. 识别控制元素:Medini支持SysML,使用SysML元素构建系统控制结构。
  2. 识别控制行为:为识别的元素创建端口及控制行为,并建立关联关系。
  3. 识别反馈:创建反馈端口,并建立关联关系。

按照以上方法,逐步建立系统中有交互、关联关系的所有控制结构。

 

步骤三:识别不安全的控制行为。

不安全控制行为(Unsafe Control Action,简称UCA):指的是在特定情境及最坏环境下可能导致危险的控制行为。出现以下四种情况,代表控制行为可能存在安全隐患:

  • 未提供控制行为导致危险
  • 提供控制行为后导致危险
  • 提供可能安全的控制行为,但提供节点过早、过晚或顺序错误
  • 控制行为持续太久或停止过早(仅针对持续性控制行为而非离散行为)

UCA表格中,识别所有的UCA,并将其与Hazards进行关联。

 

对于识别出的不安全控制行为,需要给出对应的控制约束,在Medini使用Requirement表示控制约束。每个UCA应该至少定义一条控制约束。

 

 

步骤四:识别致因场景。

首先,需要创建控制回路主图,可以拖拽步骤二控制结构模型元素来创建一张新的图,也可以创建新的元素。

 

每个控制器应有一个控制算法和一个过程模型,可以在两边添加执行器和传感器以增加可理解性,从而构建完整的控制回路。

 

接下来是创建各个控制回路子图,分别进行分析。控制回路图应包括直接影响控制动作的所有元素。

 

 

结合控制回路视图,对致因场景进行分析,并与UCA或者Hazard进行关联。

 

一旦识别了致因场景,就可以用它们来派生其他的需求,识别缓解措施,改进系统架构,提出设计建议和新的设计决策(如在研发期间使用STPA),评估或重新审视现有的设计决策并识别差距(如在设计完成后使用STPA),定义测试用例并创建测试计划,形成风险主要指标等。

 

四、STPA的优势总结

与传统的危险/风险分析技术相比,开展STPA 的优势如下:

  • Medini支持STPA所有的分析步骤,且通过Medini现有的分析元素类型可以构建STPA相关的元素类型,支持使用现有的特征来构建STAMP模型。
  • 基于SysML模型的STPA, 可以轻松融入系统工程过程和基于模型的系统工程中。
  • 可用于分析非常复杂的系统。之前仅在运行中才能发现的“Unknown unknowns”可在开发早期就被识别出来,并且可以得到消除或缓解。预期的和非预期的功能都得到了处理。
  • STPA 在分析中包含了人员、软件、组织、安全文化等,从而确保危险分析包括所有潜在的损失因果因素。
  • 可在早期概念分析中启动STPA,以帮助确定安全要求和制约因素,用于增加系统架构和设计的安全性,从而降低在开发后期或运行期间识别出设计缺陷时的返工成本。

技术文章

姓名

公司

电话

邮箱