陈柱,徐国华,王冠学,刘炎,翟云峰,郑煜
华中科技大学 船舶与海洋工程学院,湖北 武汉 430074
水下机器人是海洋资源勘探和开发的重要工具之一,其中自主式水下机器人(AUV)已被广泛运用于海洋探测、开发、搜救等领域。然而,水下作业环境复杂多变,AUV的控制难度大,因此AUV的安全航行和应急回收成为亟待解决的难题。关于传统的AUV安全设计[1],向先波等[2]基于PC/104工控机硬件平台建立了智能自救系统,但无法在AUV控制系统出现失电等严重故障时进行应急自救。Li等[3]设计了以系统电源检测为核心的安全自救系统,并配置了应急气囊,但无法针对中央控制器故障采取应急措施。
本文拟基于一艘高速AUV研制相应的主动应急自救系统,采用硬件冗余、机械冗余、通信信道冗余等多种冗余方式提高应急自救系统的可靠性,以弥补传统应急手段的不足;将对不同工况下可能出现的多种故障进行优先级自动整定,以保证应急系统采取更合理的响应措施;提出合理的智能应急策略,包括每条决策的起始动作、中间动作和最终动作,并将应急决策存储于专家决策规则库中,以便在试验过程中进行在线修改和对比分析。同时,在应急操舵上浮操纵过程中,将采用离散操舵控制方法实现AUV的上浮和纵倾角双重控制,以降低应急工况对AUV的精度控制要求,由此保证AUV的安全航行和快速应急自救回收。
应急自救系统由应急备用电源、应急计算机、驱动信号开关、执行机构和执行对象组成,如图1所示。其中,应急执行机构分为艏部充气气囊装置和应急缆释放装置,均安装于艏部透水舱中,如图2所示。
应急自救系统的功能包括:实时采集AUV全机数据并进行数据融合;实时检测AUV机载设备工作状态、通信状态、舱室环境状态、轴系环境状态及位姿状态;对检测故障进行优先级整定;依据故障优先级输出应急专家决策;视情执行应急操舵上浮、艏部气囊充气和释放应急缆这3种应急指令,完成应急回收。
图3所示为应急自救系统的功能流程图。
AUV航行是一个典型的多阶段任务系统[4]。在正常航行工况下,水下调度的核心为水下主控单元,此时应急单元仅用于获取全机信息、故障检测、应急决策、通过水声信道反馈数据至水面、监听并接收水上干预指令。在应急航行工况下,水下主控单元停止工作,水下调度的核心改为应急单元,用于执行应急决策动作。
在正常航行工况下,应急系统将针对获取的AUV全机原始传感器数据进行故障检测和故障优先级整定,一旦检测出需应急处理的高优先级故障,则仲裁切换模块立即将AUV作业工况切换至应急工况,同时根据故障优先级进行应急决策,输出应急结论并执行应急处理。应急自救系统的处理机制如图4所示。
为提高应急系统的可靠性,应在如下5个方面进行冗余设计:
1)供电冗余。
应急系统由AUV主电源和独立的应急备用电源进行冗余供电。当主电源失电时由应急备用电源进行供电,以保证应急执行机构正常动作。
2)应急执行机构的驱动信号冗余。
应急执行机构采用电信号和压力开关信号冗余驱动。当电信号失效时,若外界水压触发压力开关输出动作信号,即可驱动执行机构。
3)应急缆释放装置的执行机构冗余。
应急缆释放装置采用电磁铁驱动和机械式水压缸冗余驱动。当电信号驱动装置动作无效时,若外界水压触发水压缸动作,即可执行应急缆释放动作。
4)应急通信信道冗余。
应急计算机与水下主控单元计算机采用以太网和串口双信道通信,以太网信道为主用,串口信道为备用。当主信道故障时,可自动切换至备用信道。
5)应急数据源冗余。
AUV的深度和高度数据是应急系统的决策输入,应急单元可以从导航单元、深度计和高度计获取AUV的深度和高度数据,由此实现应急信息数据源的冗余。
AUV搭载水下主控单元,在正常工况下是水下定时周期调度的核心;搭载导航单元,采用组合导航算法采集并输出AUV运动过程中的经纬度、速度等信息;搭载操舵控制单元,用于控制舵机并采集舱室环境信息和轴系信息;搭载动力与电力系统控制单元,用于控制推进器转速并反馈推进系统和电力系统的信息;搭载数据存储单元,用于存储AUV的水下运动数据;搭载应急单元,作为应急自救系统的核心。为实现硬件冗余[5],所有参与判断处理的器件均配置2套。
正常工况下,应急单元从水下主控单元获取AUV全机信息。应急工况下,应急单元可通过与导航单元建立串口信道,以获取AUV位姿、速度等信息;与操舵控制单元建立串口信道,执行应急操舵动作和舵机安全保护动作;与动力系统控制单元建立CAN总线通信信道,执行应急控制推进器动作和电力系统控制动作;与数据存储单元建立串口信道,以存储应急工况下的全机数据。
应急单元获取的信息包括:
1)电力系统信息,包括配电系统状态、低电量报警状态、锂电池系统状态、600 V失电状态、6个供电回路开关状态、6个回路熔断器状态及变频器运行状态。
2)动力系统信息,包括推进系统状态、电机实时转速、电机实时功率及电机温度。
3)舵机系统信息,包括4个舵机(围壳舵、方向舵、左艉舵和右艉舵)的通信状态、卡舵状态、舵机温度信息及舵机电源信息。
5)导航传感器工作状态信息,包括GPS工作状态、DVL工作状态、深度计工作状态、高度计工作状态及避碰声呐工作状态。
6)舱室环境信息,包括舱室烟雾信息、舱室温度信息、舱室湿度信息及舱室漏水信息。
7)轴系信息,包括轴系温度、轴系转速、轴系扭矩及推力轴承压力信息。
8)AUV水下控制单元的通信状态信息,包括以太网通信状态、串口通信状态及CAN总线通信状态。
9)AUV位姿信息,包括纵倾角值、距水面深度值、离底高度值及避碰距离。
10)应急处理的上浮效果信息。
数据融合,即利用计算机对各种信息源进行处理、控制和决策的一体化过程[6],主要包括:
1)应急单元和水下主控单元采用以太网信道通信时,具备失联后重连的功能。
2)应急单元对部分数据源的选择具备自主判断能力。以获取深度信息为例,将优先获取导航单元信息,其次为深度计信息。
3)应急单元挂接于CAN总线上,可以根据CAN总线的收发心跳报文来监测其他总线上的通信单元状态。
4)应急单元通信时具备一定的容错能力,允许信号恢复。
部分数据融合方式如图5所示。
故障诊断的方法有很多,Sun等[7]提出了一种高斯粒子滤波方法用于对船舶推进器进行故障诊断,Frank[8]将故障诊断方法分为了基于模型分析、基于信号处理和基于知识这3类。
在故障诊断中,普通冲突消解策略[9]仅根据故障概率对故障进行排序,忽视了故障验证时间对系统诊断效率的影响,有一定的局限性[10]。而故障树策略,即采用适当的逻辑门将顶事件、中间事件和底事件自上而下逐级连接起来构成的逻辑关系,虽然可以在系统管理和维修中有效指导故障分析、寻找故障原因、制定维修策略及故障预防[11],但并不适用于多故障并发且故障处理优先级动态变化的系统。AUV在航行过程中的故障具有并发特性,且故障优先级会随着AUV位姿等状态变化,故宜采用基于故障优先级的诊断机制。
正常工况下,需检测的故障分为设备故障A1、通信故障A2、舱室环境失常A3、轴系环境失常A4和位姿超限A5共5类。其中,设备故障包括电力系统故障B1、舵机系统和推进系统故障B2、导航设备故障B3;通信故障包括控制器和设备之间的以太网通信故障B4,CAN总线通信故障B5和串口通信故障B6。故障优先级分为4级,其中1级故障最严重,需优先处理;4级故障最轻微,可视情处理。所有故障可以细分为近百种故障子事件,典型的故障子事件如表1所示。
表1 典型故障子事件Table 1 Typical fault events
1级故障发生时,应急单元需立刻执行应急动作并保证AUV快速上浮;2级故障发生时,应急单元需首先保障设备安全,对故障设备进行断电处理后再进行操舵上浮处理;3级故障发生时,应急单元需在设定的时间内等待故障消除和信号恢复,若无法消除故障则进行应急操舵上浮处理;4级故障发生时,AUV改为低速航行并等待故障消除或等待水声干预指令回收AUV。
在应急处理使AUV快速上浮的过程中,应急单元将启动应急处理效果监测模块以监测应急执行的效果,同时定义新的故障子事件并对其分配优先级。一般将应急操舵上浮无效、操舵控制单元与应急单元通信故障定义为1级故障,将应急单元与动力和电力系统控制单元通信故障定义为2级故障,将导航单元与应急单元通信故障、数据存储单元与应急单元通信故障定义为3级故障。若应急操舵上浮和气囊充气上浮这2种措施均无效,且AUV离地高度小于2 m,则定义为0级故障,即最危险的故障,此时应急单元将立即释放应急缆回收AUV。
对于是否将AUV由正常工况切换至应急工况,应急单元会基于故障优先级进行决策。通过仲裁切换模块可以实现主动和被动2种切换模式,若水下主控单元和应急单元的通信信道正常,则应急单元命令水下主控单元停止水下调度工作,改为由应急单元接管,此为主动切换;若水下主控单元和应急单元均检测出两者之间的主、备用信道故障,则水下主控单元先自行停止调度工作,应急单元随后自行接管,此为被动切换。
为合理地应急决策,基于专家知识设计了专家应急决策模型(图6),该模型由元知识库、用户接口、专家知识库、推理机和数据库组成,可以针对输入故障输出应急决策结论。
元知识库代表单一的应急决策基础知识,例如深度超限时,基于元知识库仅能输出操舵上浮减小深度的应急决策,若同时出现舵机故障的情况,则将无法处理,故需同时调用专家决策规则库。依据专家知识所设计的决策规则如下:
1)规则1。如果双艉舵通信故障,且围壳舵和推进器工作正常,则操纵围壳舵和推进器进行上浮。
2)规则2。如果艏倾纵倾角大于10°,且AUV深度持续快速增加,则将推进器转速设置为0,气囊充气上浮。
每种应急决策动作均可分解为若干步骤,例如初始动作、中间动作和最后动作,其中中间动作和最后动作是初始动作的进一步说明。例如,对于低电量报警故障,初始动作为进行应急操舵上浮决策,中间动作为决定操纵艉舵和围壳舵以及推进器,最后动作为分配舵角和推进器转速指令。
表2所示为根据专家决策规则库建立的应急决策初始动作表。
表2 应急决策初始动作表Table 2 Initial action of emergency decision-making
4级故障将执行应急决策初始动作S141/S142;3级故障将执行S13;2级故障将执行S121/S122;1级故障将执行S11;0级故障将执行S10。在执行过程中,一旦出现更高优先级的故障,应急决策初始动作也将相应地改变;当高优先级故障消失时,将维持执行原应急决策初始动作。
应急自救系统有3种故障应急手段,分别为应急操舵上浮、艏部应急气囊充气和释放应急缆。执行应急手段的的原则为:首先执行应急操舵上浮,若无效则执行气囊充气手段,若还无效则在AUV沉底前释放应急缆。
正常工况下,可以在AUV定深和定向航行过程中考察控制系统的稳定性、准确性和快速性;而在应急工况下,AUV快速上浮时间和上浮过程中的最大纵倾角是考察应急系统的重要指标。目前,在航行器应急操纵研究方面,Altosole等[12]设计了一种适用于船舶快速启动、停止工况的推进器控制策略,可用于缩减加速和减速过程。Putra等[13]采用Bug算法规划了航行器的水下应急路径,可以有效减少路径规划时间。
本文提出了一种简单易行的离散操舵控制方法,可保证尽可能短的应急上浮时间,同时令上浮过程中的最大纵倾角小于设定阈值,从而保护AUV内部设备免受损坏。
离散操舵控制方法的具体思路为:
首先,利用AUV水动力学模型进行定值操舵推进上浮仿真,得到操舵和推进指令与上浮过程中最大纵倾角的对应关系,如表3所示。表3中:Vi(i=0,1,2,…,n)为推进器转速;Vthreshold为推进器转速阈值;CVi为推进器转速系数;θi为围壳舵角;θthreshold为围壳舵角阈值;Cθi为围壳舵角系数;βi为艉舵角;βthreshold为艉舵角阈值;Cβi为艉舵角系数;Pi为最大纵倾角;Pthreshold为最大纵倾角阈值;CPi为最大纵倾角系数。同时,AUV初始深度设为水下10 m。
表3 定值操舵推进上浮仿真Table 3 Steering and propelling simulation under fixed commands
然后,在应急操舵上浮时将预期纵倾角设为最大允许阈值。若当前纵倾角与预期纵倾角不匹配,则应急单元根据离散操舵规则表选取下一条操舵推进指令,直到纵倾角匹配,继而逐渐减小操舵推进指令,循环往复。例如,若AUV当前的操舵推进指令为(V0,θ0,β0),纵倾角为P0(P0<Pthreshold),则操舵过程中的操舵推进指令为
由此可见,离散操舵控制的优点在于:在保证AUV应急上浮时最大纵倾角安全的前提下,可以相对减少定值操舵推进上浮所需的时间;同时简化了应急操舵形式,不需要采用复杂的纵倾控制算法。
为满足实时性要求,应采用实时操作系统运行应急控制软件。目前,VxWorks因其良好的实时性已被广泛应用于AUV的嵌入式控制中,例如张玮康等[14]研制的腹部作业型水下机器人主控软件就是运行于VxWorks系统中。
本试验将基于CPCI总线运行VxWorks实时操作系统,所搭建的AUV控制系统半实物仿真联调平台如图7所示。
正常工况下,AUV定深航行的深度为10 m。在某一时刻引入3级故障,应急单元整定故障后将主动切换至应急工况,并根据专家应急决策执行应急操舵上浮动作,使AUV快速浮出水面,仿真响应的输出结果如图8所示。
由图8可知,应急单元在时刻A开始应急操舵,AUV在时刻B浮出水面(设定AUV模型的出水深度为1.1 m),上浮过程中的最大纵倾角小于安全阈值15°,上浮时间为35 s(半实物仿真机采样周期为100 ms),从艏向速度曲线可知,AUV在上浮过程中有效执行了离散操舵控制策略。
在应急操舵上浮过程中,AUV内部信息流为应急单元告知水下主控单元停止调度,应急单元依次调度导航单元、操舵控制单元、动力与电力系统控制单元、水下数据存储单元,应急单元定时反馈水声报文。
在应急工况下,应急单元从导航单元获取自航模位姿、速度等信息,发送操舵指令至基础控制单元,发送推进器转速指令至动力与电力系统控制单元,存储自航模应急工况数据至水下数据存储单元,并定时通过水声信道反馈自航模位姿、故障等重要信息至水面。在该工况下,应急单元将取代水下主控单元作为AUV的核心调度控制器,而水下主控单元则暂时停止调度工作,其他子控制器将当前工况识别为应急工况并依旧执行各自的任务(包括接收并执行调度核心的指令),从而共同实现操舵上浮动作。
本文基于一台高速AUV研制了应急自救系统,重点介绍了应急机制,包括应急系统多信道采集信息机制、故障优先级自整定机制、正常工况与应急工况的切换机制、基于专家应急决策模型进行的应急决策机制以及应急动作执行机制,其中应急操舵上浮采用离散操舵控制方法实现。基于VxWorks实时操作系统编写应急自救系统软件,进行了系统半实物仿真联调试验,验证了应急自救机制与策略的可靠性、实时性及准确性,可用于指导水下航行器的航行安全与自救回收作业。
下一阶段将开展实物水下试验,进一步验证该应急系统的可靠性与适用性。