基于AADL的失效概率分配及安全性评估方法*
2020-09-23魏晓敏董泽乾肖明睿
魏晓敏 , 董泽乾 , 肖明睿 , 田 聪
1(西北工业大学 计算机学院,陕西 西安 710072)2(西安电子科技大学 计算机科学与技术学院,陕西 西安 710071)
信息物理融合系统(cyber-physical system,简称CPS)[1]融合了物理过程和计算过程,能够感知环境信息,可以响应真实世界的动态变化.CPS 已经广泛应用到航空、汽车、医疗卫生和物流等多个领域,其安全性问题受到越来越多的关注[2,3].当代航空系统是复杂的安全关键CPS,在设计过程中,需要非常注重系统安全性.ARP 4754A[4]标准将安全性评估过程作为飞机和系统研制过程的一部分,以确保实现的飞机满足安全性需求.ARP 4754A 标准指出:依据ARP 4761[5]标准在开发阶段实施安全性评估,将ARP 4761 标准作为安全性评估的指南和方法.因为民用飞机的研制过程必须严格遵循ARP 4754A 标准规定的流程才能取得美国和欧洲的适航认证,所以研究航空系统的安全性评估方法非常必要,可以为完成规定的安全性评估过程提供经验和技术.
航空领域常用的安全性分析方法有故障树分析(fault tree analysis,简称FTA)、故障模式和影响分析(failure mode and effects analysis,简称FMEA)、依赖图(dependence diagram,简称DD)和马尔可夫分析(Markov analysis,简称MA)等.ARP 4761 标准将这些方法运用到民用航空系统及设备安全性评估过程中,并给出系统安全性评估的 3 个过程,依次为功能危险性评估(function hazard assessment,简称 FHA)过程、初步系统安全性评估(preliminary system safety assessment,简称PSSA)过程和系统安全性评估(system safety assessment,简称SSA)过程.PSSA 的主要目的是确认系统架构满足FHA 过程得到的安全性目标,并将安全性目标分解为子系统/项目(item)的安全性需求.
AADL(architecture analysis and design language)[6,7]是一种支持航空系统设计、可信属性分析、功能验证和实现的架构模型设计语言,可用于CPS 建模、分析与验证[8,9],也可用于系统架构虚拟集成[10],以识别系统各部分设计模型之间的一致性问题.AADL 已受到空客、波音、Honeywell、欧洲航天局和卡耐基梅隆大学等科研和工业机构的广泛关注[11].基于AADL 模型的设计和开发方法可以降低大规模航空系统设计的复杂度,提高从系统设计到实现的可追踪性.本文主要针对ARP 4761 标准中PSSA 过程的不足:它仅给出了基于FTA,DD 和MA的PSSA 过程,但是没有给出从失效概率分配到评估的完整的安全性评估过程,也没有明确的建议以何种方式将系统失效概率分配给子系统/项目.同时,它未提供基于Petri 网的评估方法,FTA 和DD 很难刻画多种失效模式之间的依赖关系,而MA 和确定性随机Petri 网(deterministic stochastic Petri-net,简称DSPN)可以自然地刻画顺序依赖事件.DSPN 比连续时间马尔可夫链(continuous-time Markov chain,简称CTMC)具有更强的建模和分析能力,因此,本文针对安全关键系统AADL 模型提出失效概率分配方法,并且研究基于DSPN 的安全性评估方法.当前,尽管FTA 很难刻画出一个完整的系统(例如可修复系统),但是工业界仍然主要采用基于FTA 的安全性评估过程,因为FTA 是一种结构化的、易于理解的分析工具,而MA 和DSPN 分析对工程人员的理论要求较高且没有明确的文献指导说明.但是,Petri 网既有严格的数学表达形式,也有直观的图形化表达形式,能够描述依赖行为、并发行为等,可用于系统设计和可信属性分析.本文将明确给出基于DSPN 的安全性评估流程,并实现该方法,以便于工程人员参考和使用DSPN 理论评估系统的安全性.
目前,关于失效概率分配的研究文献比较少,尤其针对航空CPS 领域,但是与其相关的可靠性分配领域有许多成熟的方法[12]可供参考,如等同分配法、模糊分配法和AGREE(advisory group of reliability of electronic equipment)分配方法等.等同分配法操作简单,但是航空子系统可靠性水平差异较大,不适合直接使用此方法对整个系统进行分配.模糊分配法主要依赖于已有经验,对设计人员要求较高.文献[13]针对串联系统提出了基于模糊数学的可靠性分配方法.AGREE 分配方法是美国国防部电子设备可靠性顾问团提出,用于串联系统可靠度分配.尽管AGREE 方法考虑了子系统复杂度和系统对整机的重要程度,但是它仅仅用子系统包含的单元数刻画复杂度,不能直接应用于同时包含子构件和构件之间的交互连接的AADL 模型.此外,因为复杂的航电系统内部是串联结构和并联结构的混合体,只考虑串联或者并联无法满足实际需求,并且本文需要的失效概率分配方法要能够适用于层次化的AADL 模型结构.已有相关研究人员对AGREE 分配方法进行扩展.文献[14]对AGREE 方法进行改进,结合复杂度和重要度,但是在复杂度方面只考虑构件数量,不适用于具有复杂交互连接关系的AADL 模型.文献[15]也对AGREE 方法进行改进,以技术成熟度作为复杂度,以构件在电路循环中的重要性和相邻构件的重要性进行确定构件自身的重要度.这种可靠性分配方法是针对电源转换器的特征而提出,不适用于AADL 模型.此外,文献[16]对主要的可靠性分配方法进行综述,包括ARINC(aeronautical radio,Inc.)、AGREE、目标可行性法(feasibility-of-objectives)、Bracha、平均加权分配法(average weighting allocation method)和最大熵有序加权平均(maximal entropy ordered weighted averaging)等方法,其中,ARINC 和AGREE 方法不能适用于并行系统.文献[17]提出基于广义伯恩鲍姆重要测度(generalized birnbaum importance measure)的系统可靠性分配方法,综合考虑了可靠性范围、制造复杂度和技术可行性,可以应用于串联和并联系统.但是该方法不适用于层次化的AADL 模型,也不适用于包含大量软件系统的安全关键系统.
在基于AADL 的安全性分析和评估方面的研究,文献[18,19]提出了基于AADL 的危险分析方法,制定出从AADL 模型到DSPN[20]模型的转换规则,并实现了自动的模型转换工具,然后对DSPN 模型进行仿真计算,得到危险的发生概率.文献[21]为可重构系统建立AADL 模型,提出了基于系统安全性的动态重构方法,并将AADL动态重构模型转换为DSPN 模型,利用DSPN 模型对系统进行仿真,分析系统的安全性.针对电网CPS 的安全性,文献[9]将系统的正常运行与外部环境威胁刻画为相互博弈的过程,提出了基于AADL 建模技术和双人博弈理论的安全性分析方法.文献[22]将概率模型检验方法结合到安全性分析方法中,通过制定模型转换规则,将AADL 模型转换为CTMC,并且能自动生成属性公式,然后基于概率模型的检验结果分析系统安全性.文献[23]基于AADL 模型和概率模型检验,提出了自动的系统安全性分析方法,将AADL 模型转换为概率模型,通过模型检验评估系统的安全性,最后生成代码支持软件仿真,对安全性评估进行确认.该方法覆盖了从高级建模到代码生成的整个设计过程,从平台独立模型到平台描述模型,再到平台相关模型,其中:平台独立模型由AADL 软件构件刻画,平台描述模型由AADL 硬件构件和AADL 错误模型刻画,平台相关模型由AADL 绑定属性刻画.文献[24]针对一类不确定性敏感(uncertainty-aware)的混成AADL 模型,提出了一种基于统计模型检验的定量性能评估方法,扩展了AADL 混成模型语义,制定了规则,将AADL 模型转为NPTA(network of priced timed automata)模型.文献[25]利用基于广义随机Petri 网(generalized stochastic Petri net,简称GSPN),提出了AADL 模型可靠性分析评估工具.文献[26]扩展了AADL 属性,提出了基于AADL 的FMECA(failure modes,effects and criticality analysis)方法,可以定性地分析系统安全性.文献[27]对FMEA 进行了扩展,提出了基于AADL 的安全关键嵌入式系统定量分析方法.COMPASS(correctness,modeling and performance of AeroSpace systems)是安全关键系统分析验证工具集[28,29],针对AADL 语言的子集,在安全性分析方面支持FTA 和FMEA 分析方法.以上这些方法都不是针对PSSA 过程而提出的.文献[30]依据ARP 4761 标准提出了基于AADL 的安全性评估方法,包括基于AADL 的FTA,FMEA,CTMC 和离散时间马尔可夫链(discrete-time Markov chain,简称DTMC)等,但是没有考虑如何将系统失效概率分配给子构件.本文对此提出了解决方案,并进一步提出了基于Petri 网的AADL 模型安全性评估方法.
本文针对安全关键系统,提出了基于AADL 的失效概率分配方法.该方法综合考虑AADL 架构的层次化设计、模型复杂度和构件失效造成影响的严重程度,解决了安全性评估过程中如何分配失效概率的问题.结合失效概率分配方法,又提出了基于DSPN 的AADL 模型安全性评估方法,可以有效地评估系统安全性,将FHA 过程得到的安全性目标分解为具体的子构件(包括子系统类型)安全性需求,也为ARP 4761 标准补充了基于Petri网的安全性评估过程方法,为系统安全性评估的实际运用提供指导和参考案例.
本文第1 节介绍AADL 和经典的AGREE 可靠性分配方法.第2 节给出基于AADL 失效概率分配方法及安全性评估方法的框架.第3 节对本文提出的面向AADL 模型的失效概率分配方法进行详细论述,包括串联结构和并联结构的失效概率分配方法.第4 节首先给出本文所提方法的实现算法和工具实现结构图,然后以简单的飞行控制系统为典型的CPS 应用案例解释说明失效概率分配和安全性评估方法,并与ARP 4761 标准给出的安全性评估方法进行比较分析,再对一个复杂的飞行控制系统进行安全性评估,进一步说明方法的可用性.最后,在第5 节总结全文和展望未来研究工作.
1 AADL 和AGREE 分配方法
1.1 AADL
AADL[6,7]是架构分析与设计语言,可以将系统刻画为一种层次化的架构模型.下层构件(子构件)嵌套于上层构件(复合构件)内.AADL 模型中包含子构件的构件称为复合构件,复合构件可以包含的子构件有系统构件、硬件构件和软件构件.硬件构件也称为执行平台构件,包括设备、处理器、总线和存储器等.软件构件包括系统、进程、线程、数据和子程序等.子构件也可以包含子构件,AADL 允许构件之间层层嵌套.构件交互连接方式包括端口连接(connection)、数据访问、总线访问和子程序调用等.
错误模型附录(error model annex)[31]是AADL 语言的一个补充,用于支持基于AADL 模型的安全性、可靠性和可用性等可信分析.错误模型附录能够为架构模型刻画非功能属性信息:(1) 通过构件错误行为(component error behavior)语句,可以描述构件内的错误行为状态机,包括错误、错误事件和错误变迁;(2) 通过错误传播语句,基于构件之间的连接,可以描述构件之间的错误传播关系;(3) 通过复合错误行为(composite error behavior)语句,可以为复合构件建立复合错误行为,描述子构件的错误状态对复合构件错误状态的影响;(4) 通过错误模型属性描述语句,可以为错误行为描述属性信息,例如描述错误事件发生服从的概率分布类型和参数,以支持随机错误行为的刻画.通过在AADL 架构模型的构件中建立错误模型,从而支持在早期设计阶段分析系统的可信属性.
1.2 AGREE分配方法
AGREE 分配方法是系统单元寿命服从指数分布的经典可靠性分配方法,提出该方法的目的是解决电子设备的可靠性分配问题,可以表示为
其中,R表示系统可靠度,ωi表示子系统i的重要度,θi表示子系统i的平均无故障时间,ti表示系统要求子系统i的工作时间,ni表示子系统i所包含的单元数,N表示系统所包含的单元数.
根据公式(1)可以发现:AGREE 方法是按照各子系统的复杂性和重要性进行可靠度分配,不仅考虑了子系统的复杂性和重要性,而且考虑了它们与系统之间的失效关系.
2 基于AADL 的失效概率分配及安全性评估方法
本文提出的基于AADL 的安全性评估方法框架如图1 所示,针对FHA 给系统指定的安全性目标,将目标分解为具体的安全性需求,并评估子构件是否能够满足安全性需求,确认系统满足安全性目标:
第①步,为系统建立架构模型,包含子构件以及子构件之间的交互连接.再为子构件建立错误模型,为每个子构件描述正常状态、失效状态和状态之间的变迁关系以及变迁发生服从的分布与参数.同时,要根据ARP 4754A 标准为失效状态定义严酷度等级,并刻画于模型中;还要为复合构件建立复合错误行为,描述上层构件失效与子构件失效之间的关系,由此建立系统的AADL 模型.
第②步,为了分配失效概率,以系统的AADL 模型作为输入,利用面向AADL 模型的失效概率分配方法,根据模型的复杂度,为下一层构件生成失效概率分配表,作为子构件的安全性需求,详细的失效率概率分配方法将在第3 节介绍.
第③步,借助文献[18,19]实现的从AADL 模型到DSPN 模型的转换工具,将AADL 模型转换为DSPN 模型,包括子构件内的错误行为状态机、子构件之间的错误传播、复合错误行为和触发条件中的逻辑表达式等,生成系统的DSPN 模型.利用TimeNet[32]工具对DSPN 模型仿真计算,得到系统和子构件失效状态的发生概率.
第④步,生成安全性评估列表,包括失效状态、分配的失效概率Pa、计算得到的失效概率Pc和这两类概率值的比较结果,由此判断系统的架构设计是否能够满足安全性需求.
· 如果Pa · 如果Pa≥Pc,即,AADL 模型能够满足安全性需求,那么此时既保证系统设计模型能够满足系统安全性需求,也完成将系统失效概率分配到各个子构件的目的.分配给子构件的失效概率将作为更低层级模型(子构件)安全性评估过程需要满足的安全性目标. Fig.1 Framework of AADL-based safety assessment approach图1 基于AADL 的安全评估方法框架 假设AADL 模型中各构件的可靠性服从指数分布,本文提出了面向AADL 模型的综合的失效概率分配方法,其中,改进AGREE 分配方法提出了AADL 串联构件分配失效概率,还基于等同分配思想提出了AADL 并联构件失效概率分配方法. AADL 系统模型中,复合构件的复合错误行为能够描述复合构件失效状态与其直接子构件失效状态之间的关系.本文提出的失效概率分配方法基于系统的复合错误行为.如果子构件的失效状态没有在复合错误行为中出现,那么不需要为其分配失效概率,因为它不会对复合构件失效状态造成影响.在复合错误行为中,子构件的状态组合(复合错误行为的发生条件)对复合构件状态的影响既可以通过逻辑连接词AND(与)和OR(或),也可以通过逻辑原语ORMORE(或者多于)和ORLESS(或者少于),其中,逻辑原语可以转换为逻辑连接词AND 和OR 的组合[18].因此,在失效概率分配过程中,只需要考虑复合错误行为包含AND 和OR 的情况.本文提出的AADL 模型失效概率分配方法主要包括以下3 步. 1)首先,为了分配失效概率,对复合错误行为的触发条件进行拆分,每个AND 部分作为一个整体,将发生条件改写为只包含OR 的逻辑表达式,即析取式.错误行为的触发条件tc可以表示为析取式tc=es1ORes2OR…OResm,其中,es可以是子构件的失效状态,也可以是子构件失效状态的AND 组合.通过将tc转换为析取式,实现子构件之间串联和并联关系的重新划分; 2)其次,从复合构件的角度来看,OR 逻辑表达式的各个组成部分是串联的关系,即复合构件由子构件串联而成.复合构件失效的发生概率受串联的子构件的发生概率影响.因此,对于OR 逻辑表达式中的各个子构件,利用第3.2 节提出的针对AADL 串联构件的改进过的AGREE 分配方法分配失效概率,运用后文公式(9)将失效概率分配给子构件的失效状态esi(0 3)最后,对于每个AND 组合,其相当于多个子构件并联而成.当AND 组合内各个组成部分都失效时,AND 组合失效,所以各组成部分的失效概率的累积等于AND 组合的失效概率.利用第3.3 节提出的针对AADL 并联构件的失效概率分配方法分配失效概率,运用后文公式(13)为AND 组成的各个组成部分分配失效概率. 在AADL 模型的复合错误行为中,OR 逻辑表达式的多个组成部分可能都包含同一个子构件的失效状态,即同一个子构件的失效状态出现了多次.对于这种情况,上述面向AADL 的失效概率分配方法会为同一个子构件分配多个失效概率.系统安全性是安全关键系统必须要保证的属性,所以当子构件被分配了多个失效概率时,选取最小的失效概率值作为子构件的安全性需求,也就是以最高的安全性要求约束子构件. 由此,通过结合面向AADL 串联结构的改进过的AGREE 失效概率分配方法和面向AADL 并联结构的失效概率分配方法,可对AADL 模型进行失效概率分配. FHA 分配给系统的失效概率,作为PSSA 过程的输入,由此可以进一步得到复合构件的可靠度.可靠度与失效概率的关系可以表示为[5] 其中,R表示构件可靠度,FP表示构件失效概率. 子构件i的失效率fi与其平均无故障时间θi之间的关系表示为 将公式(2)和公式(3)带入公式(1),子构件i的失效率fi可以表示为 AADL 模型是一种层次化结构模型,构件之间存在交互连接,本文主要考虑端口连接(数据端口、事件端口和事件数据端口连接)、数据访问、总线访问和子程序调用.子构件之间以及子构件内部的交互连接数之和(ci)以及子构件包含的子构件数(si)都是由架构设计决定,这里用ci和si代表架构模型的复杂度,将架构的设计和复杂度结合到失效概率分配方法中.为了将ci和si结合到失效概率分配公式,公式(1)中的N和ni修改为 公式(5)中,ci表示子构件i与其他子构件的交互连接数和子构件内部的交互连接数之和,si表示子构件i自身构件及其所包含的子构件数之和.公式(6)中,m表示复合构件所包含m个子构件. 对于安全关键系统,系统的安全性极为重要,因此,本文根据失效状态的严酷度等级定义子构件的重要程度.失效发生所造成的影响分为5 个等级:catastrophic(致命性的)、hazardous(灾难性的)、major(严重的)、minor(轻度的)和no effect(没有影响),catastrophic 表示最严重,往后依次降低.本文制定了严酷度等级与重要度ωi的对应关系,它们分别对应重要度值0.9,0.7,0.5,0.2 和0.001,严酷度等级越高,重要程度越高.重要度值可以针对不同的系统,根据专家的经验进行重新调整和设定.当子构件失效状态的严酷度等级是no effect 时,不需要考虑其失效概率,因为它不会对系统造成影响,在计算过程中直接忽略此子构件.此外,OR 逻辑表达式中AND 组合的ωi值,取AND 组合的各组成部分的重要度平均值. 将公式(5)和公式(6)带入公式(4),新的失效率计算公式表示为 已知子构件失效率fi与可靠度Ri的关系为 将公式(8)带入公式(2),子构件失效概率计算方法是 其中,FPi表示子构件i的失效概率,Ri表示子构件i的可靠度. 由此,通过计算架构模型的复杂度(子构件数和交互连接数)和子构件的重要度(失效状态发生的严酷度等级),进而根据公式(9)可以将失效概率分配给子构件.这也符合ARP 4761 标准提出的:PSSA 的实施依赖于架构设计、复杂度和失效状态的严酷度等级等.传统的方法考虑了复杂度和重要度等因素,主要用于可靠性分配,目前没有文献针对AADL 提出失效概率分配方法.经典的AGREE 方法仅仅以子系统包含的单元数作为复杂度,不能充分反映架构设计.本节针对AADL 串联构件提出的改进的AGREE 分配方法,综合考虑子构件数和交互连接数,用它们衡量AADL 模型复杂度,更符合AADL 模型层次化、构件互连的特征.为了对整个AADL 模型分配失效概率,后文还提出了AADL 并联构件失效概率分配方法. 本文提出改进的AGREE 分配方法的前提是:各构件的可靠性要服从指数分布.然而,AADL 模型中可能存在服从确定性时间分布的错误事件,使得从AADL 模型转换得到的DSPN 模型可能包含确定性时间迁移(非指数迁移).这也是合理的,因为在计算稳态(steady-state)概率时,可用指数迁移替代确定性时间迁移,即通过对确定性时间迁移的延迟时间参数,即发生率(firing rate)取倒数作为对应的指数分布的率参数(rate parameter)[20]. OR 逻辑表达式中的AND 组合相当于一组并联构件.改进的AGREE 分配方法能够对串联的子构件分配失效概率,不适用于并联的子构件.等同分配法适用于并联结构,但是其假设各个子模块的失效概率相同,没有考虑子模块之间的可靠度差异,不适用于复杂安全关键CPS.因此,本节基于等同分配思想提出了AADL 并联构件失效概率分配方法,并联结构的整体失效概率计算公式为 其中,FPp表示第p个AND 组合的失效概率,h表示第p个AND 组合有h个组成部分,FPp,t表示分配给第p个AND 组合的第t个组成部分的失效概率. 实际的子构件之间的可靠度差异较大,所以本文将架构模型的设计和复杂度结合到并联构件分配方法中,子构件的复杂度越高,其失效概率越大,同时要将构件的重要性考虑在内,重要性越高,其失效概率越小.利用公式(5)的ni(ci与si之和)表示模型设计和复杂度,AND 组合中子构件失效概率之间的关系表示为 其中,np,t表示第p个AND 组合的第t个组成部分的复杂度,而wp,t是其重要度值. 将公式(11)带入公式(10),得到公式(12): 根据公式(5)和公式(12),得到第p个AND 组合的第k个组成部分的失效概率计算公式为 由此,按照公式(13),依据AND 组合(合取式)中子构件的复杂度差异,将失效概率分配给AADL 并联子构件. 本文提出的失效概率分配方法和AADL 模型安全性评估方法已实现为Eclipse 插件,第4.1 节介绍实现算法以及工具实现结构图.然后,以简单的飞行控制系统[33]为典型CPS 案例,在第4.2 节~第4.4 节对提出的基于AADL 的失效概率分配及安全性评估方法进行解释说明,第4.5 节将所提方法与ARP 4761 标准中的安全性评估方法进行对比分析.最后,第4.6 节对一个复杂飞行控制系统进行分析与验证,进一步说明所提方法的可用性. 基于AADL 的失效概率分配及安全性评估方法的实现算法如图2 所示. Fig.2 Algorithm of the AADL-based safety assessment approach图2 基于AADL 的安全性评估方法实现算法 首先,在第1 行将系统复杂错误行为的触发条件改写为析取式,由此进一步实施失效概率分配和安全性评估.第4 行~第27 行,利用本文提出的基于AADL 的失效概率分配方法,将失效概率分配给子构件,作为安全性需求.其中:第4 行~第8 行计算每个子构件的ci,si和ωi,以支持后续的失效概率分配;第9 行~第17 行利用面向AADL 串联构件失效概率分配方法,将失效概率分配给析取式中的每个部分;第18 行~第27 行利用AADL 并联构件失效概率分配方法,将概率值分配给AND 组合中的子构件.第28 行、第29 行利用DSPN 转换工具[18]生成DSPN 模型,并计算得到子构件的失效概率.第30 行对比分配的失效概率和计算得到的失效概率,生成安全性评估列表,结束一次安全性评估. 依据安全性评估列表,如果AADL 模型不能满足安全性需求,那么修改AADL 模型,然后按照图2 给出的算法重新对系统模型进行评估.以这种方式不断重复模型修改过程和安全性评估过程,直到建立的AADL 模型能够满足安全性需求. 本文提出的基于AADL 的安全性评估方法工具实现结构图,分为4 个层次,如图3 所示:工具在Eclipse 集成开发环境(第1 层)上开发;基于AADL 开源工具OSATE(open source AADL tool environment)[34]进行扩充,OSATE 提供了基本的模型设计功能(第2 层),支持第3 层的AADL 建模和模型实例化;第4 层的AADL 模型安全性评估功能,以AADL 实例模型为输入,能够为子构件自动分配失效概率,能够将AADL 实例化模型转换为DSPN[18],CTMC[22],DTMC 和随机多人博弈(stochastic multi-players game,简称SMG)[9]等模型.本文主要关注DSPN 转换.为了计算AADL 模型中子构件的失效概率,可以利用现有的计算工具,如TimeNet、概率模型检验工具和SMG 验证工具等.由此,在第4 层的失效概率分配、模型转换和失效概率计算等功能的基础上,可以进一步实施AADL 模型安全性评估. Fig.3 Structure of the tool for the proposed approach图3 本文提出方法的工具结构图 作为CPS 系统,飞行控制系统(flight control system,简称FCS)的AADL 架构模型如图4 所示.系统包含了两个通道(channel1 和channel2)、一个数据采集系统(DataCollect)和一个数据输出系统(output),每个通道包含3个子构件,数据采集系统包含一个子构件,数据输出系统包含两个子构件.飞行控制CPS 通过数据采集系统从外界采集数据,并将数据传输给两个通道;两个通道分别处理数据,然后将处理结果传给输出系统;飞控CPS 通过输出系统将控制数据发送给作动设备.FCS 内部构件之间的连接如图4 所示. 本文采用的一次飞行时间是参照ARP 4761 标准的案例,平均飞行时长为5 小时,按一次飞行对飞行控制系统进行失效概率分配.假设从FHA 得到飞行控制系统的一次飞行的失效概率是1.0E-4. 为飞行控制系统的每个子构件建立错误模型,每个构件包含3 个状态:正常状态(operational,简写为O)、瞬时错误状态(transient,简写为T)和失效状态(failed,简写为F).正常状态由一个错误事件(ee1)触发到达瞬时错误状态,瞬时错误状态由一个恢复事件(re1)回到正常状态;瞬时错误状态可能会由一个错误事件(ee2)触发到达失效状态,失效状态由一个修复事件(re2)回到正常状态.各个子构件中的ee1,re1,ee2 和re2 服从的概率分布、发生概率和事件发生需要的时间,如表1 的第3 列~第5 列所示.其中,两个通道发生瞬时错误或失效的概率不一样.因为实际应用过程中,为了防止两个通道因为相同的原因失效,通常以不同的方式实现相互冗余的系统.此外,按确定性时间延迟分布发生的事件是在一定时间之后必然发生的,所以发生概率是1.0. Fig.4 AADL architecture model of FCS图4 飞行控制系统AADL 架构模型 已知指数分布的发生概率和发生需要的时间,根据指数分布公式可以计算出DSPN 模型中迁移(指数迁移和确定性时间延迟迁移)的参数值.要先计算出各个迁移的指数分布率参数λ,由指数分布概率公式(14)可以计算出,如下: 其中,t是时间,F(t)是发生概率. 根据公式(15)可以计算出率参数λ,见表1 第6 列.因为DSPN 计算工具TimeNet 把所有类型的迁移发生时间统一描述为延迟时间,所以要将指数分布迁移的率参数要取倒数,作为延迟时间.对于确定性时间延迟分布迁移的参数,迁移的延迟时间就是其延迟参数[20].依据ARP 4754A[4]标准,为每个子构件失效状态发生的影响确定严酷度等级,两个通道的严酷度等级都是hazardous,另外两个子系统的严酷等级都是major,见表2 第5 列.飞行控制系统发生失效的复合错误行为是:当数据采集系统失效、数据输出系统失效或者两个通道同时失效时,飞行控制系统失效,即: [DataCollect.DF1 OR channel.C1F1 AND channel2.C2F1 OR Output.OF1]→FCS.SF. Table 2 List of failure probabilities allocation (one flight time)表2 失效概率分配列表 (一次飞行时间) 由此构建出AADL 模型如图5 所示. Fig.5 AADL model of FCS图5 飞行控制系统AADL 模型 各个圆圈(〇)表示错误状态,中间有一个黑点的圆圈(·)是初始错误状态,错误状态之间带实心箭头(→)的连线表示错误变迁,连线上的事件表示触发错误变迁的条件,逻辑AND 组合表示通道1 和通道2 的失效状态的“与”关系,逻辑OR 组合表示数据采集系统的失效状态、AND 组合的结果以及输出系统的失效状态三者的“或”关系并得到系统失效状态(SF).这里,系统的复合错误行为使用逻辑AND 组合和OR 组合表示. 根据第3 节提出的基于AADL 的失效概率分配方法,将系统失效概率分配给子构件.依据飞行控制系统的复合错误行为,因为两个通道构成了一个AND 组合,所以看作一个整体,使得复合错误行为由3 部分的OR 组合,即DataCollect.DF1 OR (channel1.C1F1 AND channel2.C2F1) OR Output.OF1.对第4.2 节构建的AADL 架构模型和错误模型进行分析,可以得到公式(9)和公式(13)所需的参数(ci,si和ωi)如表2 所示.进而根据第3.2 节的公式(9),利用本文在第3.2 节改进过的AGREE 分配方法,为数据采集子系统、由两通道的AND 组合和数据输出子系统分配失效概率,分配的失效概率值(FPi)如表2 前3 行的倒数第2 列所示.然后,对于两个通道的AND 组合,根据第3.3 节的公式(13),利用AADL 并联构件失效概率分配法为两个通道分配失效概率,见表2 第4 行、第5行的倒数第2 列所示,两个通道在一次飞行时间内的失效概率都是9.45E-3.表2 中,构件每秒的失效概率FPi(见最后一列)根据一次飞行的失效概率计算得到. 将飞行控制系统的AADL 模型转换为DSPN 模型如图6 所示. Fig.6 DSPN model transformed from the AADL model of FCS图6 从飞行控制系统AADL 模型转换得到的DSPN 模型 子系统的错误模型对应到长方形方框中的DSPN 模型,系统的复合错误行为由两个圆角长方形圈出,一个对应两个通道失效的AND 组合,一个对应数据采集系统失效、AND 组合的结果和输出系统失效三者构成的OR 组合. 模型转换功能依据文献[18]给出的规则,错误状态转换为DSPN 的位置(place),初始错误状态对应到带一个标记(token)的位置;错误事件转换为一个迁移(transition),可以是瞬时迁移(黑色细实心矩形)、指数迁移(宽空心矩形)和确定性时间迁移(黑色宽实心矩形),并且每个迁移可以带有一个延迟参数(见表1 第6 列);错误状态的逻辑AND 组合按照一个模板进行转换,如图6 中对应两通道失效AND 组合的DSPN 模型,为其添加一个带单个标记的位置(P4)、3 个瞬时迁移(T7~T9)和一个表示AND 组合结果的位置C1C2F,然后使用弧(空心箭头和圆圈箭头)作为它们的连接;同样的,错误状态逻辑OR 组合也可以按照一个模板进行转换,最后得到与图5 的错误状态OR 组合对应的DSPN 模型,详细的规则请参照文献[18]. 采用TimeNet 的稳态仿真(stationary simulation)功能的标准(standard)模式[35],通过仿真DSPN 模型的稳态行为进行仿真计算.仿真计算工具配置为:置信度(confidence level)为99%,最大相对误差(maximal relative error)为5%,概率测度的允许差异(permitted difference for probability measures)为5%,其他参数采用默认值.实验运行的环境是在Intel(R)Core(TM)i7-3770 CPU@3.40GHz 和16G 内存的平台上.通过对转换得到的DSPN 模型进行仿真计算,得到系统和各个子系统的失效概率,见表3 第3 列. 系统的失效概率以及第4.3 节分配的失效概率是一次飞行时间的失效概率,即5 小时内的失效概率,转换为每秒的失效概率,见表2 的最后一列.计算值与分配值进行比较,所有计算值都小于对应的分配值,因此,架构设计满足安全性需求,安全性评估列表见表3. Table 3 List of safety assessment(s)表3 安全性评估列表(秒) 从上述分析可以看出:本文提出的基于AADL 的安全性评估方法可以对系统有效地实施评估,其中的失效概率分配方法也是可行的;同时,能够通过安全性评估的AADL 模型是满足系统安全性的系统设计模型,在设计阶段保证了系统安全性.在实际运用过程中,可能要多次重复失效概率分配和安全性评估过程,才能最终完成安全性需求分解的过程和获得一个满足安全性需求的AADL 模型. 本节主要将本文所提方法与ARP 4761 标准中的安全性评估方法进行对比分析.ARP 4761 标准描述了利用FTA,DD 和MA 实施PSSA 的过程,但是没有提供明确的方法指导工程人员如何将上层系统的失效概率分配给子系统或者项目,FTA,DD 和MA 只是被用于验证分配的失效概率是否能够满足安全性需求.本文提出的基于AADL 的安全性评估方法在两个方面优于ARP 4761 给出的方法:(1) 本文提出了基于AADL 的失效概率分配方法,综合考虑了模型的复杂度和系统架构模型特性,而ARP 4761 标准没有给出失效概率分配方法;(2) 提供了详细的AADL 模型安全性评估实施流程,能够指导实际的评估过程,实现了安全性评估工具,能够降低工程人员的DSPN 理论学习要求,并且能够辅助评估过程.此外,通过结合DSPN 计算方法,使得本文提出的安全性评估方法具备足够的安全性评估能力,与ARP 4761 标准提出的方法具有相同的评估能力,详细的原因如下. ARP 4761 标准明确说明了FTA,DD 和MA3 种方法可以相互替代,同时也说明了FTA 和DD 存在一些不足:FTA 和DD 很难刻画多种失效模式之间的依赖关系;FTA 只能评估单个顶事件的原因和发生概率;FTA 很难刻画出一个完整的系统,例如可修复系统,因为这种系统的失效率和修复率是状态依赖的.而MA 没有这些问题,可以很自然地刻画顺序依赖事件,具有更强的建模和分析能力.因此,这里主要将本文使用的DSPN 分析方法与MA 方法进行比较. 随机Petri 网(stochastic Petri-net,简称SPN)是状态之间变迁的发生满足指数分布延迟时间的Petri 网,SPN与连续时间马尔可夫链(CTMC)同构[36].广义随机Petri 网(GSPN)[37]由SPN 扩展而来,位置(place)状态之间迁移的发生既可以满足指数分布延迟时间的时间迁移(timed transition),也可以是立即发生的立即迁移(immediate transition).立即迁移的发生需要的时间为0,它的优先级高于时间迁移.同样,可以将GSPN 转换为一个等价的CTMC,而且转换难度会比将SPN 转换为CTMC 更简单[36].DSPN 由GSPN 扩展而来,在GSPN 的基础上增加了一种时间迁移,迁移发生前的延迟时间是一个常量,即确定性时间延迟.本文使用的DSPN,同一个位置状态上只能有一个确定性时间延迟分布的迁移.由此,基于DSPN 与半马尔可夫链(semi-Markov chain)同构[36]的理论,可以将DSPN 转换为等价的半马尔可夫链.半马尔可夫链是状态之间变迁的发生可以服从一般概率分布(general distribution)的时间延迟,即状态逗留时间可以是一般概率分布.当半马尔可夫链中状态变迁之间的时间分布是指数分布分布时,这个半马尔可夫链是一个CTMC.当半马尔可夫链中状态变迁之间的时间分布只是一个时间点时,这个半马尔可夫链是一个DTMC. 由上述内容可知:DSPN 的描述能力比GSPN 强,GSPN 与CTMC 同构,所以DSPN 的描述能力比CTMC 强.此外,在分析DSPN 模型时,许多计算工具需要将DSPN 转换为同构的半马尔可夫链,而不是CTMC.所以基于现有的DSPN 分析工具,本文提出的利用DSPN 模型的安全性评估方法也能比利用CTMC 的方法好.从整体方法的角度来看,本文提出的安全性评估方法比ARP 4761 中的方法更为明确,包含了失效概率分配和验证失效概率是否满足安全性需求,实施过程更为具体、清晰. 为了更好地验证本文所提方法可用于复杂系统,本节依据文献[18]给出的复杂飞行控制系统(FCS),对该复杂系统进行安全性评估,系统内部可以不是子系统,可以是进程和设备等,符合ARP 4761 标准的要求,对子系统/项目分配失效概率并评估安全性.为系统建立AADL 模型,如图7 所示,包括架构模型和错误模型. Fig.7 AADL model of the complex FCS图7 复杂飞行控制系统AADL 模型 FCS 架构模型包括9 个设备和11 个进程,设备包括空气数据系统(ADS)、姿态和航向参考系统(AHRS)、惯导系统(INS)、无线电测高仪(RA)、电子飞行信息系统(EFIS)和伺服作动器(SA),进程包括输入同步、输入表决、控制率计算、输出同步、输出表决、机内测试(BIT)和输出(OP).错误模型由图中的圆圈、方框和带箭头的连线构成,圆圈表示错误状态(O 表示正常状态,F 表示失效状态),方框表示错误事件(IE 表示构件内导致失效的错误事件,R 是恢复事件,IP 是错误传播导致的向内传播点),黑线表示错误变迁,红线表示错误传播.为了使图7更为清晰,直接用线程的失效状态表示进程的失效状态.依据文献[18]使用的参数,错误事件的分布类型和参数(Exp 表示指数分布),如图中所示.各个构件的严酷度等级见表4 第5 列.FCS 的复合错误行为是:[AHRS.F and RA.F and INS1.F and INS2.F or ADS1.F and ADS2.F and EFIS1.F and EFIS2.F or CLC1.F and CLC2.F or ISn1.F and ISn2.F and IV1.F and IV2.F or OSn1.F and OSn2.F and OV1.F and OV2.F or BIT1.F and BIT2.F and OP.F and SA.F]→FCS_F. Table 4 List of failure probabilities allocation (one flight time)表4 失效概率分配列表 (一次飞行时间) 与第4.2 节相同,假设从FHA 得到飞行控制系统的一次飞行的失效概率是1.0E-4.依据第3 节提出的失效概率分配方法,分配的一次飞行时间失效概率见表4,进一步计算得到每秒的失效概率.再将AADL 模型转换为DSPN 模型,包括108 个位置、141 个迁移和413 条弧.通过使用TimeNet 仿真计算得到各失效状态的发生概率(运行环境和工具配置与第4.4 节相同),见表5,耗时4'16". 由表5 的第9 行、第10 行、第13 行、第14 行和第22 行可见,CLC1,CLC2,IV1,IV2 和SA 不能满足安全性需求. 为了使系统AADL 模型满足安全性要求,需要修改模型,通过调节参数值的形式来改进模型设计.降低IV1和IV2 构件的错误事件IE 的率参数,增加恢复事件R 的率参数,提高它们的质量要求,即,要求在设计和开发过程中使IE 发生的可能性足够低和R 发生的可能性足够高.在详细设计IV1 和IV2 时,可以采用的方式有添加冗余构件或者增加防护措施等.对于CLC1,CLC2 和SA,也采用同样的方式.因此,通过将IV1 和IV2 的IE 事件参数值调整为5.0E-6,R 事件的参数调整为30.0;CLC1 和CLC2 的R 事件的参数调整为30.0;SA 的IE 参数值调整为1.0E-5,R 事件参数调整为30.0.AADL 模型的其余部分不变,所以分配的失效概率也保持不变.最后进行仿真计算,CLC1.F,CLC2.F,IV1.F,IV2.F 和 SA.F 的发生概率分别是 1.656396E-7,1.657927E-7,3.322293E-7,3.327276E-7 和3.353078E-7,系统及其子构件都满足安全性需求.为节省空间,不再列出新的安全性评估列表. 本文提出一种面向安全关键CPS 的AADL 模型失效概率分配方法,同时,利用失效概率分配方法和DSPN计算方法进一步提出基于AADL 的安全性评估方法.分析AADL 模型的特性,针对串联构件改进经典的AGREE分配方法,基于等同分配思想,提出AADL 并联构件失效概率分配方法.结合这两种方法提出针对AADL 模型的失效概率分配方法,在失效概率分配过程中综合考虑AADL 模型的架构设计和复杂度,将子构件的交互连接数量和子构件数量综合到失效概率分配公式中.以此为基础,本文提出AADL 模型安全性评估方法,能够先为子构件分配失效概率作为安全性需求,再将AADL 模型转换为DSPN 模型,然后计算每个子构件的失效概率,进而将计算的失效概率与分配的安全性需求进行比较,判断架构模型是否满足安全性需求.若不满足,修改AADL 模型,重复进行面向AADL 模型的失效概率分配和利用DSPN 模型的失效概率计算,直到AADL 模型满足安全性需求,完成对系统的安全性评估,将FHA 过程得到的安全性目标分解为具体的子构件安全性需求.案例分析表明:本文提出的方法能够应用于失效概率分配,提出的AADL 模型安全性评估方法结合了失效概率分配方法和DSPN 计算模型,可以有效地运用到飞行控制系统安全性评估过程中,可作为ARP 4761 标准中失效概率分配和基于Petri 网的PSSA 过程的参考方法. Table 5 List of safety assessment (s)表5 安全性评估列表 (秒) 下一步,我们计划将本文提出的方法应用到更多类别的安全关键CPS 系统中,为研究人员和工程人员提供更多的分析和评估案例.我们也将把更多的安全性分析方法结合到安全性评估过程中,例如基于随机多人博弈理论的安全性分析方法[9],在早期设计阶段将外部威胁考虑在内.另外,当通过模型计算得到的失效概率不能满足分配的失效概率时,如何重新设计和优化AADL 模型结构以满足安全性需求,是我们需要进一步研究的工作.此外,随着系统开发过程的推进,AADL 模型被不断细化,模型包含的信息越来越多,如参数连接等,针对系统开发后期更为详细的AADL 模型,需要改进AADL 模型失效概率分配方法.3 面向AADL 模型的失效概率分配方法
3.1 AADL模型失效概率分配方法
3.2 AGREE分配方法的改进
3.3 AADL并联构件失效概率分配方法
4 工具实现与案例分析
4.1 工具实现
4.2 建立飞行控制系统的AADL模型
4.3 分配系统失效概率
4.4 生成DSPN模型和安全性评估列表
4.5 安全性评估方法对比分析
4.6 复杂飞行控制系统分析
5 总结与展望