摘要
基于系统理论过程分析(system theory process analysis, STPA), 提出了一种面向高等级自动驾驶决策系统的安全性开发方法。该方法应用在一个城市自动驾驶决策系统的原型开发阶段, 通过安全分析得到系统的70个不安全控制行为。针对其中3个功能状态, 分析得到10个不安全控制行为原因, 提出9个安全策略。应用其中一个典型安全策略进行系统改进, 通过仿真试验对其进行了验证。试验结果表明,基于所提出方法设计的安全策略有效可行, 提出的方法能够提高自动驾驶决策系统的安全性。
安全是汽车的基本要求,自动驾驶系统的出现赋予了汽车安全性新的内涵。其中因外部环境因素、功能局限与人为误用导致的安全问题属于预期功能安全的研究范
决策系统是一个典型的软件密集型系统,相比传统的汽车电子电气系统它承担更高等级的驾驶任务,具备更加复杂的逻辑。传统安全分析方法,例如基于事件链或流行病学模型的分析方法认为事故的根本原因在于系统中单个或多个组件的故障,难以覆盖系统功能局限与环境扰动带来的危险;且在分析逻辑复杂的软件密集型系统时效率有
囿于传统安全分析方法的局限,近年来部分学者将以STPA方法为代表的现代安全分析方法引入自动驾驶系统的安全性研究中。Mahajan
上述研究使用STPA方法对自动驾驶系统的安全性进行分析,但仍有两个关键问题未被解决。一是研究仅进行安全分析,止于导出危险事件或者提出安全要求,缺乏对分析结果的进一步应用,也未验证分析结果的合理性和有效性;二是分析多按照功能展开且多数仅针对较低等级自动驾驶功能,缺少对同时具备巡航、换道、泊车等多种功能的高级自动驾驶决策系统的研究。在更高等级自动驾驶系统中,系统复杂性的提升给分析带来了新的挑战。
针对上述问题,本文提出一种涵盖安全分析、策略设计以及试验验证三个环节的安全性开发方法,并在一个LV4城市自动驾驶决策系统的原型阶段进行了应用。
现有安全标

图 1 本文所提出的安全性开发方法
Fig.1 Proposed safety development method
该方法以系统本身的功能作为分析起点,结合分析对象的具体程序构建控制结构图和过程模型;并基于分析结果增加了策略设计以及试验验证步骤,形成自动驾驶决策系统安全性开发的迭代闭环。方法共包含8个步骤:
(1) 建立系统控制结构。根据系统功能定义建立整车的控制结构,从决策系统的原型程序中提取过程模型;
(2) 确定安全关键控制行为(control action, CA)。在整车控制结构中确定与事故直接相关的控制指令;
(3) 识别不安全控制行为(unsafe control action, UCA)。考察各安全关键控制行为的错误模式,识别系统的不安全控制行为;
(4) 分析不安全控制行为原因。原因可以逐级往前推理,对决策规划系统而言, 可以推理到感知结果;
(5) 识别潜在危险事件;
(6) 试验验证危险事件;
(7) 设计安全策略(safety strategy, SS)。针对经验证有效的危险事件,通过改进原系统或者限制使用场景的方式,使安全性约束(safety constraint, SC)重新得到保证;
(8) 试验验证安全策略。
以上8个步骤最终所得的有效安全策略在系统中经过实现,为一轮完整的安全迭代过程。在系统经过修改后,可进行重新分析和回归测试,通过多次迭代,使得整体系统风险降低至可接受水平。
所提出的安全性开发方法在一个L4级城市自动驾驶决策系
根据上述系统功能定义确定整车控制结构,如

图 2 整车控制结构图
Fig.2 Control structure of autonomous vehicles
本文城市自动驾驶决策系统使用状态机(finite state automata, FSA)构建,从其Simulink程序中提取核心状态机模型,反映系统在决策过程中的控制逻辑;并结合功能定义构建决策系统的过程模型,如

图 3 决策系统状态机过程模型
Fig.3 FSA-based process model of the decision-making system
从整车控制结构图中确定安全关键控制行为,即直接与事故相关的控制信号或指令。依据是否直接与现实世界交互这一条件,控制结构图中的5个层级可以分为物理层和逻辑层。物理层包括执行层和环境层,位于控制结构图的底部;逻辑层包括感知层、 决策层和控制层,位于控制结构图的上游。事故(人身安全、财产损失)发生在物理层中,因此逻辑层对物理层施加的控制行为,是自动驾驶决策系统对现实世界造成影响的途径。如果逻辑层对物理层施加了错误的控制行为,则可能导致事故发生。这一路径上传递的控制行为即安全关键控制行为。对自动驾驶决策系统而言,它包括了期望速度(A1)和期望位置(A2)两个控制行为,记为集合A。
通过考察安全关键控制行为的错误模式,识别不安全控制行为。在STPA通用分类方
(1)M1 需要提供控制信号,但未提供;
(2)M2 不需要提供控制信号,但提供;
(3)M3 提供了正确的控制信号,但时机过早;
(4)M4 提供了正确的控制信号,但时机过晚;
(5)M5 提供的控制信号持续时间过长;
(6)M6 提供的控制信号持续时间过短;
(7)M7 提供的控制信号数值过大;
(8)M8 提供的控制信号数值过小;
值得注意的是,这些错误模式并非所有情况下都会导致危险。例如,在跟车时即使提供较小的期望速度,也不会导致自车与目标车发生碰撞,只是导致行驶效率变低。所以需要对不同运行情况作分别分析。对城市自动驾驶决策系统而言,可以用功能状态指代这些不同的运行情况。从状态机过程模型中可提取出以下9个功能状态,分别为:定速巡航(S1),跟车巡航(S2),换道(S3),换道后保持(S4),交通信号灯处理(S5),路口中决策(S6),寻找车位(S7),平行泊车(S8)和垂直泊车(S9)。用S表示功能状态的集合。
作集合A、M和S的笛卡尔积,可得到潜在不安全控制行为集,记为Up,即
(1) |
STPA方法要求分析人员依据经验对潜在不安全控制行为进行筛选,排除在特定情况下不成立的选项。筛选过程可表示为
(2) |
以自主泊车功能(S7、S8、S9)为例,说明不安全控制行为识别的过程。寻找车位时(S7),车辆保持匀速沿道路前进,通过超声波雷达扫描库位深度,判断泊车是否可行并辨别库位类型,决策系统应该输出恒定为2 m
对于完整系统,共分析获得70个不安全控制行为。各功能状态的不安全控制行为数目如
考察控制结构中决策层的信息流,可知其最终输出结果取决于三个方面:决策系统自身、感知层输入的环境信息和感知层输入的定位导航信息。因此不安全控制行为的原因可被归纳为以下三个类别,记为CR(category of reason):
(1)CR1 决策系统未获得正确的环境信息:感知层未提供给决策层正确的环境信息;或者提供了正确的信息,但传输途径出现问题。结果表现为决策系统不能正确获取周围障碍物与交通参与者的信息;
(2)CR2 决策系统未获得正确的车辆状态:感知层未提供给决策层正确的车辆状态信息;或者提供了正确的信息,但传输途径出现问题。结果表现为决策系统不能正确获取自车的位置与速度信息;
(3)CR3 决策系统自身存在安全缺陷,包括:CR3.1 状态转移条件设置出错或判断出错,结果表现为决策系统转移到了与实际任务不符合的状态;CR3.2 转移条件过于敏感引起状态震荡,表现为决策系统在两个或多个状态之间反复切换,不能正常输出控制指令;CR3.3 处于正确的状态,但计算出了错误的结果。由决策系统参数设置有误或算法设计缺陷造成;CR3.4 设计时缺少必须状态,导致决策系统不具备处理相关危险的能力;CR3.5 决策系统计算得到了正确的输出,但输出通道上存在干扰、时延等问题,导致最终输出的期望速度和期望位置信号与计算结果不一致。
结合所得无人驾驶决策系统自主泊车功能的不安全控制行为,最终分析得到了10个原因,它们各自所属的类别,以及和不安全控制行为之间的关系如
*为通配符,M*即指所有的错误模式。
根据分析获得的不安全控制行为及其原因构建潜在危险事件。将事故定义为车辆与行人、车辆或者障碍物发生碰撞,造成人身安全或财产损失,系统危险为导致事故发生的宏观车辆行为,由不安全控制行为引发。危险事件被定义为因为不安全控制行为原因R,造成系统危险H,与环境中元素发生事故D,可以使用如(Ri, Hj, Dk)的有序元组进行形式化描述。对该城市自动驾驶决策系统可推导出以下系统危险,并提出对应的安全性约束C,如
以危险事件(R9, H8, D3)为例,说明危险事件的验证步骤。危险事件为因决策系统缺少紧急制动状态,导致泊车过程中车辆未避让闯入库位的行人,发生碰撞。使用PreScan联合MATLAB/Simulink的仿真平台进行了验证,试验场景如

图 4 自主泊车工况典型危险试验场景
Fig.4 Testing Scenario of the auto-parking function
安全性分析指出,由于自车在完成库位检测开始倒车入库后,其行为被确定,不再受外界环境影响,也不具备紧急制动机制。如果此时有行人进入车位,自车不会避让。尽管此时车速较低,但仍然可能发生碰撞。通过仿真环境对安全分析结果进行验证,试验结果表明,自车最终会与行人发生碰撞,碰撞过程如

图 5 自主泊车工况典型危险事件下的事故过程
Fig.5 Process of the accident during auto-parking
对经过验证的危险事件,可以针对性设计安全策略,以使安全性约束重新得到保障。安全策略的设计可从正向和反向两个方面进行。正向为提升系统本身的能力,修复其错误,使系统在原本的潜在危险场景下不发生事故;反向为限制系统的运行场景,
通过要求、标准或法规禁止系统在原本的潜在危险场景下运行,达到避免事故的目标。从正向和反向两个角度考虑,本文对分析得到的危险事件提出了以下的安全策略,如
本文以安全策略SS8在泊车规划模块中增加紧急制动状态为例进行说明。该安全策略的作用为,在车辆泊车过程中,实时检测库位中是否存在闯入的行人或车辆等动态物体,如果存在且碰撞检测标志为真,则转移到紧急制动状态,输出0值期望速度,以避免碰撞发生。搭载安全策略后的泊车状态机程序如

图 6 添加紧急制动状态后的泊车状态机程序
Fig.6 FSA of the auto-parking function with AEB state
在与2.6节中相同的危险场景下,对实现了上述安全策略的系统进行了验证试验。自车安全完成泊车任务,

图 7 实现安全策略后的自主泊车全过程
Fig.7 Process of auto-parking with the safety strategy implemented

图 8 搭载安全策略前后泊车过程中的自车速度和相对距离
Fig.8 Speed and relative distance during autoparking
以上测试结果表明,搭载安全策略后车辆及时避让,避免了与行人发生碰撞,提出的安全策略有效避免了事故发生。
针对自动驾驶决策系统的安全性问题,提出了一种基于STPA的安全性开发方法。该方法涵盖安全分析、策略设计和测试验证三个环节,形成完整的安全性开发迭代闭环。所提出的方法在一个城市自动驾驶决策系统的原型开发阶段中进行了实践。针对决策系统的特点,使用状态机构建过程模型,建立了包含了4个功能模块、9个功能状态的控制结构,分析获得了8个错误模式下的70个不安全控制行为。针对其中3个泊车相关的功能状态,分析得到了10个不安全控制行为原因和 8个系统危险,提出了9个安全策略。以在泊车规划模块中增加紧急制动状态这一安全策略为例,进行了系统改进,通过模型在环仿真的方式对实现安全策略前后的系统进行了对照试验。试验结果表明,分析得到的危险事件确实发生,设计的安全策略提高了泊车过程的安全性。
此外, 该研究也存在一定的局限性,将在后续的研究中完善:①安全分析过程中不安全控制行为的筛选依赖分析人员的工程经验或领域知识,后续将进一步研究知识与客观指标相结合的筛选方法;②分析过程中使用自然语言,不同分析人员得出的分析结果难以达到完全一致,后续将研究使用计算机技术和形式化语言进行分析的方法;③安全分析在定性的层面进行,后续将根据定性安全分析的结果进一步研究定量安全分析方法。
作者贡献声明
陈君毅:研究命题的提出与构思,论文修订
刘力豪:安全分析,策略设计和仿真试验,论文撰写
周堂瑞:安全分析,论文修订
邢星宇:策略设计,数据整理,论文修订
参考文献
International Organization for Standardization. Road vehicles-safety of the intended functionality: ISO/PAS 21448: 2019[S]. Geneva: ISO, 2019. [百度学术]
QURESHI Z H. A review of accident modelling approaches for complex socio-technical systems[C/CD] // Twelfth Australian Workshop on Safety Critical Systems & Software & Safety-related Programmable Systems. Adelaide: Australian Computer Society, 2007. [百度学术]
MAHAJAN H S, BRADLEY T, PASRICHA S. Application of systems theoretic process analysis to a lane keeping assist system[J]. Reliability Engineering & System Safety, 2017,167:177 [百度学术]
ABDULKHALEQ A, WAGNER S, LEVESON N. A comprehensive safety engineering approach for software-intensive systems based on STPA[J]. Procedia Engineering, 2015, 128:2. [百度学术]
BAGSCHIK G, STOLTE T, MAURER M. Safety analysis based on systems theory applied to an unmanned protective vehicle[J]. Procedia Engineering, 2017, 179:61. [百度学术]
陈君毅, 周堂瑞, 邢星宇, 等. 基于系统理论过程分析的自动驾驶汽车安全分析方法研究[J]. 汽车技术, 2019(12): 1. [百度学术]
CHEN J Y, ZHOU T R, XING X Y, et al. Research on safety analysis method for autonomous vehicles based on STPA[J]. Automobile Technology, 2019 (12): 1. [百度学术]
中国国家标准化管理委员会.道路车辆功能安全: GB/T 34590-2017 [S]. 北京: 中国标准出版社, 2017. [百度学术]
China Notional Technical Standardization Administration. Road vehicles—functional safety: GB/T 34590-2017[S]. Beijing: China Standard Press, 2017. [百度学术]
LEVESON N. A new accident model for engineering safer systems[J]. Safety Science, 2004, 42(4): 237. [百度学术]
LEVESON N, WILKINSON C, FLEMING C, et al. A Comparison of STPA and the ARP 4761 safety assessment process[R]. Boston: MIT, 2014. [百度学术]