基于模型的设计在无人潜器安全系统上的应用

2019-04-01 09:10
计算机应用与软件 2019年3期
关键词:状态机无人应急

陈 莺

(武汉软件工程职业学院 湖北 武汉 430205)

0 引 言

由于无人潜器在水下工作时需面临复杂并且不确定的工作环境,有时需要完成复杂的水下作业任务,因此水下无人潜器在水下作业时丢失或损坏的风险性极高。历史上水下无人潜器的损失事故已多次发生,如美国“Nereus”HROV、美国“ABE”AUV和英国“Autosub-2”AUV[1]。为了提高水下无人潜器工作时的安全性,降低丢失或损坏的几率,一种高效可靠的安全系统对水下无人潜器是必不可少的。

一套完整的安全系统包含故障诊断和故障决策两部分。故障诊断和决策方法可分为基于信号处理的方法、基于模型分析的方法和基于知识的方法[2]。基于信号处理的方法是一种定量分析法,其通过分析传感器信号来提取诸如幅度、频率及方差的特征值进而确定故障类型。基于模型的分析方法也需要利用实际传感器的测量信号来训练故障分析模型。然而,实际对象通常是难以建模的非线性系统,且在实际试验前传感器真实数据是无法获取的,而这是通过基于信号处理方法或基于模型分析的方法设计诊断系统时所必须的输入条件。相比之下,基于知识的方法,如专家系统、模糊推理和模式识别,因为不需要准确的对象模型,成为了一种更易实现且更合适的方法[3]。这种方法可被用于为具有不完整知识的复杂系统设计故障诊断系统。

专家系统是一种计算机程序系统,它模拟人类对问题的推理过程,进而完成对人类知识的表征,并采用启发式知识而非精确匹配的关系来解决问题,更准确地反映了大多数人类知识。通常,诊断专家系统的设计有三种类型:基于规则的诊断专家系统、基于模型的诊断专家系统和在线诊断专家系统。在基于规则的诊断专家系统中,推理策略包括前向推理(即遵循规则从原始数据到结论的推理过程),后向推理(即通过假设验证实现从目标到数据的推理过程)和双向推理。之后又出现了一种新的专家系统,称为基于模型的诊断专家系统。这种方法的前提是测量传感器是高精度的,这也是基于模型的诊断专家系统的关键问题。在线诊断专家系统是传统专家系统的知识库和与目标对象交互过程的组合,因为在线专家系统与动态过程并行,响应时间成为这类专家系统的一个关键问题[4]。针对该问题,本文提出了一种将有限状态机算法应用于在线专家系统推理机的方法,以提高在线专家系统的推理性能,并将其应用于无人潜器的安全系统中。有限状态机FSM包含有限数量的系统状态,可以在获得输入事件后根据状态迁移表推理得到输出并完成状态迁移。它具备以清晰简洁的形式描述极其复杂的逻辑推理关系的能力,十分适用于水下无人潜器复杂安全系统的设计。

本文通过分析水下无人潜器的工作模式,梳理并列出水下无人潜器可能遭遇的各种故障事件,然后完成了故障事件分类及故障等级的定义。设计安全系统的工作原理,根据故障事件分类及故障等级定义确定有限状态机的状态集合及输入事件集合,并完成有限状态机的状态迁移图。最后在stateflow建模工具中搭建了安全系统的模型进行模型验证,并完成了控制器代码的自动生成与部署。

1 基于有限状态机的安全系统设计

本文中的无人潜器工作时可分为两种模式:遥控模式和自主模式。遥控模式下,由水面作业人员遥控操作无人潜器完成试验任务;自主模式下,无人潜器自主完成装订得到的试验任务。上述任一模式下,无人潜器都可能在正常工况和应急工况下工作。应急工况是指无人潜器在水下工作时遭遇突发故障或险情,需要根据突发情况完成决策与自救,降低损坏或丢失的风险。此时,水下无人潜器中的安全系统应发挥必要的作用。

本文中的安全系统由应急控制器EMU(Emergency Control Unit)、执行机构和应急电源组成,如图1所示。其中,执行机构包含操舵系统、潜浮系统、高压吹除系统及抛载系统。本文提出的基于有限状态机的故障诊断在线专家系统运行在应急控制器(可编程逻辑控制器PLC)中。

图1 安全系统组成

实际应用中,一些故障诊断专家系统依据故障事件的等级顺序完成诊断与决策,这个过程需要花费大量时间[5]。基于二元决策图和故障树分类的专家系统是一种有效的故障诊断专家系统,它可以指导故障分析,定位故障并决定应急策略[6]。然而,本文中的水下无人潜器在工作过程中,可能出现许多并发故障事件,甚至故障等级会随时间变化。对于这种动态的系统,二元决策图和故障树分类方法显现出它们在时变系统中的不足。为了解决该问题,本文提出了一种改进的在线故障诊断专家系统(ODES),它可被用于这种多重故障并发或故障等级随时间变化的复杂系统中,并具有灵活度高、响应速度快、功能拓展方便等特点。

如图2所示,本文中的ODES有两种类型的输入:由无人潜器主控系统生成的实时故障或报警信号;由应急控制器生成的应急效果监测信号。它们都被存入故障数据库中作为专家系统的输入。元知识库和专家决策规则库则构成了安全系统中专家系统的知识库。

图2 在线诊断专家系统原理图

在专家系统的知识库中,将造成水下无人潜器丧失工作能力的故障事件定义为顶层故障类别T;将中层故障类别A细分为:动力和推进系统故障(A1)、液压操舵系统故障(A2)、潜浮和高压空气系统故障(A3)、均衡和疏水系统故障(A4)、通信系统故障(A5)、潜器位姿异常(A6)、轴系故障(A7)。最后,我们可以分析得到近240种基本故障事件X,分别对应实际系统中可能出现的各种故障事件。根据以往的经验和知识,以上基本故障事件及它们间的组合可被划分为四个层次,包括:预防层故障事件、A级故障事件、B级故障事件和C级故障事件。四个层次对应的故障示例见表1。当出现预防层故障时,安全系统无需动作,潜器上的主控系统具备自行解决问题的能力。当出现A级、B级或C级故障时,应急控制器将根据当前情况采取不同的应急措施,使潜器脱离危险。

表1 故障等级与对应故障事件列表(部分)

尽管知识库中的所有规则都能被一一列出,但由于规则数量之大,仅通过简单编程已很难清晰地将所有规则表现出来,且由于规则数量造成推理过程复杂,推理机的响应时间会大大增加。有限状态机(FSM)是一种计算模型,它可以有效地降低推理混沌,为复杂系统的逻辑提供了建模的可能性。目前,FSM已被广泛应用于各种领域,包括人工四足机器人、自动驾驶及时序电路等[7]。FSM可分为确定性有限状态机(DFSM)和非确定性有限状态机(NDFSM),它们都可用5个元素进行描述,见式(1)。区别在于是否需要为每一个输入信号设置迁移函数,以及在相同状态下对于相同的输入信号是否有多个迁移函数[20]。

A=(∑,Q,q0,δ,F)

(1)

式中:∑表示非空有穷输入事件集合,∀a⊆∑ ,a是∑的一个事件;Q表示非空有穷状态集合,对于∀q⊆Q,q是Q的一个状态;q0是唯一的初始状态;δ表示状态迁移函数δ(q,a)=p,代表状态q接受事件a后迁移到状态p;F⊂Q是接受状态集合,对于∀q⊆F,q是F的一个终止状态。

本文中在线诊断专家系统的推理机是基于NDFSM设计的,依据本文中水下无人潜器的工作模式,其状态集合、输入事件集合如下:

1) 状态集合:

• Normal:状态正常;

• Test:自检中;

• A级故障状态:存在A级警报,进行操舵上浮;

• B级故障状态:存在B级警报,进行短路吹除;

• C级故障状态:存在C级警报,进行抛载;

• 故障解除状态:故障排除后,处于待机状态。

2) 输入事件集合:

• A级故障报警: fault1;

• B级故障报警: fault2;

• C级故障报警: fault3;

• 自救完成;

• 复位操作;

• 应急模拟试验开始;

• 报警或应急模拟试验结束。

由此,我们得到安全系统推理机中NDFSM的原理图,如图3所示。

图3 安全系统NDFSM状态迁移图

2 安全系统建模与代码部署

基于模型的设计方法是一种先进的系统开发方法,可以将研发人员从编程工作中解脱出来。由于采用了图形化的设计方法,使得开发的目标变得清晰、明确而且唯一,同时也便于交流和维护[8]。基于模型的设计方法的核心在于对目标对象及算法进行建模及模型验证,之后是数据管理及参数配置工作,保证生成高效、高质量、高可用性的代码,最后进行等效性验证。

Stateflow是一种控制逻辑建模工具,它通过状态机和模拟模型中的流程图实现对目标系统的建模[9]。它是一种图形化建模工具,在对复杂系统的逻辑进行建模时具有无可比拟的优越性,能为本文中基于有限状态机的在线诊断专家系统提供极大的建模便利性。此外,它还能提供仿真环境用于模型验证,最后生成目标控制器的代码,而不需要开发人员手动编写代码实现算法功能。在Stateflow中搭建安全系统推理机的模型并进行封装,如图4所示,模型左侧为输入信号,右侧为输出信号,即决策结果。

图4 安全系统Stateflow模型

PLC Coder是simulink中一款面向PLC的代码生成工具[10],将其中的IDE设置为西门子Step 7,便能自动生成得到SCL源文件。若再将该程序源文件导入到博途软件中,可生成对应的PLC程序块,见图5。该程序块的输入输出与stateflow中封装的模块的输入输出是一致的。

图5 SCL部分程序代码及生成的程序块(Step 7)

3 安全系统功能验证

安全系统是一个双闭环的系统,见图6。闭环1是安全系统对主控系统生成的实时故障或报警信号的响应回路;闭环2是安全系统对采取应急措施后应急效果优劣的响应的回路。若通过闭环1决策所得的应急措施有效,则闭环2不会决策出应急措施,否则闭环2会将应急故障等级升级并采取进一步的应急措施,以保证无人潜器的安全。

图6 安全系统仿真原理图

为了对应用基于模型的设计方法开发的安全系统的功能进行验证,对如下应急过程进行仿真验证,依据安全系统决策所得结果判断功能是否满足要求。

1) 单一故障的应急过程 单一故障的应急过程是指无人潜器出现单一故障,安全系统根据故障事件确定故障等级,进而采取对应的应急措施。以出现I类故障为例,安全系统的期望响应过程如下:

fault1 → A级故障事件 → A级故障状态 → 操舵上浮 → 故障解除

将相同的故障事件输入到对所设计的安全系统中,系统响应情况如图7所示。当t=1 526 s时,无人潜器出现I类故障,FSM的状态由“normal”转入“A级故障状态”。同时安全系统将对应应急舵角发送至底层运动控制器,由此可以说明安全系统针对输入的故障采取了正确的应急措施。

图7 单一故障的应急过程

2) 故障等级的演变过程 故障等级的演变是指无人潜器出现故障事件并采取对应措施的应急过程中,无人潜器遭遇了另一个更危险的故障事件。以出现I类故障后又出现II类故障为例,安全系统的期望响应过程如下:

fault1 → A级故障事件 → A级故障状态 → 操舵上浮 → fault2 → B级故障事件 → B级故障状态 → 短路吹除

将相同的故障事件输入到对所设计的安全系统中,系统响应情况如图8所示。安全系统的响应情况表明系统能正确地在不同故障等级间切换并采取对应的应急措施。

图8 故障等级的演变过程

3) 应急失效过程 应急失效过程是指安全系统采取应急措施后,无人潜器并没有脱离险情或没有显现出脱离险情的趋势。此时安全系统将采取进一步安全措施,比如用抛弃压载替代打舵上浮,安全系统期望的响应过程如下:

Fault1 → A级故障事件 → A级故障状态 → 操舵上浮 → 上浮失败 → B级故障事件 → B级故障状态 → 短路吹除

将相同的故障事件输入安全系统中,系统响应情况如图9所示。安全系统的响应情况表明,系统能正确地对应急失效情况进行识别并采取进一步的应急措施。

图9 应急失效过程

仿真结果表明,应用基于模型的设计方法开发的安全系统准确地融合了专家知识,在安全系统可能遭遇的各种决策情况下,都表现出了决策的正确性,证明它具备为无人潜器安全作业提供有效保障的能力。

4 结 语

本文采用了有限状态机技术对传统的在线诊断专家系统进行了改进,应用了基于模型的设计方法,方便高效地实现控制器代码的生成与部署,以一种更快速、更清晰、更准确、更可靠的设计方法完成了水下无人潜器安全系统的设计工作。该安全系统经过多种典型决策情况下的验证,表明它具备准确故障定位和快速故障决策的能力,能为水下无人潜器进行作业提供实时有效可靠的基本安全保障。目前,该安全系统偏向于决策与逻辑控制,然而水下无人潜器也可能面临更为复杂的情况,如自救过程中也需要考虑障碍物的规避、安全姿态的控制等。此时需要安全系统具备执行机构失效时的运动控制功能,而这些都尚未考虑到安全系统的设计中。因此,集成决策、逻辑控制、传感器信息采集及处理和闭环运动控制,为水下无人潜器开发更全面、更智能的安全系统将是以后的主要研究内容。

猜你喜欢
状态机无人应急
HUMS在无人直升机上的应用与展望
FPGA状态机综合可靠性探究 ①
基于有限状态机的交会对接飞行任务规划方法
情景构建在应急管理中的应用
反击无人机
基于Spring StateMachine的有限状态机应用研究
应急救援要诀“少 快 短”
应急管理部6个“怎么看”
诗到无人爱处工
无人岛上的试验