技术文章
基于STPA的安全性可靠性分析应用
一、应用背景
首先,在介绍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应用于安全、安保、隐私还是其他属性,这一步也都是相同的。
步骤四:识别致因场景。
该步骤主要识别系统中可能出现的不安全控制的原因。主要包括:
各步骤中详细过程就不再赘述,可参考《STPA Handbook》。
三、在Medini Analyze中如何开展STPA?
Medini Analyze是Ansys公司的一款专业的用于安全性、可靠性分析的平台工具。自2022R2版本开始支持STPA,能够完全覆盖以上STPA的分析步骤。
步骤一:在Medini工具中定义分析目的,包括:
步骤二:建立控制结构。控制结构通过一套反馈控制回路为系统建模捕捉功能性关系及相互作用。控制结构通常起始于较为抽象的层级并通过迭代调整以捕捉更多系统细节。原则就是:自顶向下,逐步细化。
按照以上方法,逐步建立系统中有交互、关联关系的所有控制结构。
步骤三:识别不安全的控制行为。
不安全控制行为(Unsafe Control Action,简称UCA):指的是在特定情境及最坏环境下可能导致危险的控制行为。出现以下四种情况,代表控制行为可能存在安全隐患:
在UCA表格中,识别所有的UCA,并将其与Hazards进行关联。
对于识别出的不安全控制行为,需要给出对应的控制约束,在Medini使用Requirement表示控制约束。每个UCA应该至少定义一条控制约束。
步骤四:识别致因场景。
首先,需要创建控制回路主图,可以拖拽步骤二控制结构模型元素来创建一张新的图,也可以创建新的元素。
每个控制器应有一个控制算法和一个过程模型,可以在两边添加执行器和传感器以增加可理解性,从而构建完整的控制回路。
接下来是创建各个控制回路子图,分别进行分析。控制回路图应包括直接影响控制动作的所有元素。
结合控制回路视图,对致因场景进行分析,并与UCA或者Hazard进行关联。
一旦识别了致因场景,就可以用它们来派生其他的需求,识别缓解措施,改进系统架构,提出设计建议和新的设计决策(如在研发期间使用STPA),评估或重新审视现有的设计决策并识别差距(如在设计完成后使用STPA),定义测试用例并创建测试计划,形成风险主要指标等。
四、STPA的优势总结
与传统的危险/风险分析技术相比,开展STPA 的优势如下:
技术文章