三模冗余计算机系统在深潜救生艇舵机控制中的应用研究
2016-11-17唐照东
张 伟,唐照东
(哈尔滨工程大学 自动化学院海洋装置与控制技术研究所,哈尔滨 150001)
三模冗余计算机系统在深潜救生艇舵机控制中的应用研究
张 伟,唐照东
(哈尔滨工程大学 自动化学院海洋装置与控制技术研究所,哈尔滨 150001)
随着海洋技术的发展,潜艇的应用越来越广泛,在深海下潜艇一旦出事故很难像陆地上一样进行救援,因此深潜救生艇的应用必不可少;而深潜救生艇在水下航行中难免会发生故障,针对舵机可能发生的故障,设计了一种应用于深潜救生艇控制系统的TMR(triple modular redundancy)运动控制计算机系统;该系统以研究能满足于高可靠性系统的冗余技术为立足点,采用故障检测算法和表决算法,研究适用于它的冗余管理方案,以最大限度的提高冗余系统的故障容错能力;最后为验证设计方案的可行性,设计了故障模拟实验,将设计的TMR运动控制计算机系统应用于深潜救生艇的舵机控制中,用于验证冗余设计方案以及故障检测算法和表决算法的可行性;通过仿真结果证明了该控制系统对深潜救生艇舵机控制的有效性。
深潜救生艇;TMR;冗余管理;故障模拟;舵机控制
0 引言
现代海洋探测与军事发展愈加扩展,潜艇的应用也越来越多,并且在海战中起了至关重要的作用。由此而来的潜艇事故也越来越多。深潜救生艇(deep submergence rescue vehicle)作为应对深海事故潜艇的一种手段,在深海潜艇救援中起了不可替代的作用。文献[1-5]介绍了国内外的DSRV的相关应用研究。深潜救生艇的核心部分是深潜救生艇的控制系统,它的先进程度制约着深潜救生艇的性能并且对其自身的安全性起着至关重要的作用。而深潜救生艇由于其自身的任务特点,要求深潜救生艇长时间运作、功能强大、适应性强,这就对控制系统提出了更高的要求,因此,也在一定程度上提升了系统在任务周期内出现故障的概率。而深潜救生艇是无缆且半自主的水下航行器,控制系统一旦出现故障,将会造成巨大损失。因此深潜救生艇控制系统的可靠性和安全性需要相应提高,而冗余技术作为提高系统可靠性和安全性的最有效的方法之一,其成本也不太高,因此被首先考虑。深潜救生艇控制系统的核心是计算机,它主要用来处理传感器数据、进行控制率解算并且产生运动控制指令,所以,本文只针对深潜救生艇控制系统计算机的冗余设计开展研究,并将设计的冗余计算机系统应用到深潜救生艇的舵机控制中,文献[6-8]对计算机冗余和容错控制做了相关研究。
现阶段,冗余技术在深潜救生艇上的应用还只限于关键部件,针对容错计算机的冗余设计还处于探索和研究阶段。文献[9-10]对水下航行器的相关控制做了部分研究取得较好成果。但考虑到国内外的无人机控制系统以及其它要求高可靠性的控制系统大都采用了冗余容错技术,且对系统可靠性的提高效果显著,根据技术的共性,将冗余容错计算机技术应用到深潜救生艇上,对系统的可靠性提高也会有很大帮助。
由于深潜救生艇控制系统要求具有很高的可靠性和安全性,因此从可靠性和安全性指标高的带故障诊断的二取一和三模冗余结构中选取。如果采用带故障诊断的二取一结构,当系统发生故障时,由于没有比较监控点,因此需要对两台计算机分别进行故障诊断,但是故障诊断只能在故障发生之后进行,且要耗费一定时间,这对信息的输出连续性有很大影响。而三模冗余系统可以在一次故障时仍然产生正常输出,并能准确定位故障机,同时在冗余管理软件的控制下,降级为双模冗余系统继续工作。因此,深潜救生艇控制系统的计算机采用三模冗余设计。
1 三模冗余计算机系统的硬件设计
1.1 三模冗余计算机系统
具有表决模块的三模冗余计算机系统的特点是增加了信号的表决对象,可以排除输出结果的不确定性。通过软硬件相结合的方式实现数据表决、故障检测与诊断、故障屏蔽、故障重构等容错机制,以提高系统可靠性。
深潜救生艇控制系统的TMR计算机采用对等同构的结构形式,系统包括三台基于PC104总线的高性能嵌入式计算机(PMP)、一块输出表决电路板以及与PC104配套的数据采集板卡(PMSP-8、ADT882)和通信板卡(CSD)。输出表决电路板可以实现对三台计算机的输入输出数据的同步以及输出数据的表决;数据采集板卡用于对输入数据的采集;通信板卡用于实现三台计算机之间的相互通信以及与表决器之间的通信。深潜救生艇的计算机系统结构采用分布式结构系统,具有易于扩展、资源可共享、处理效率高、可靠性高等优点,采用CAN总线作为内部通信以及与外部通信的总线机制,具有抗干扰性强、安全性高、传输速率快等优点。基于TMR计算机的深潜救生艇控制系统总体架构图如图1所示。
图1 基于TMR计算机的深潜救生艇控制系统总体架构图
1.2 表决器需实现的功能
在TMR计算机系统中,系统中的每台运动控制计算机均与表决器相连,运动控制计算机的控制电压输出通过表决模块的A/D采集之后,进行表决,表决模块根据表决结果使能相应计算机的输出。每台运动控制计算机都作为一个节点挂载在CAN总线通信链路上,表决器通过与每台计算机的CAN通信,有效的协助每台计算机进行故障检测以及三台计算机之间的同步运行。本文只是考虑对运动控制计算机的冗余设计以及运动控制计算机出现故障时的应对措施,暂不考虑表决器故障。
表决器主要实现的功能有以下几种:
1)表决器协助每台运动控制计算机完成自身的故障检测:每台运动控制计算机通过CAN总线定时发送“心跳信息”给表决器,如果表决器在设定的时间内没有收到,则视为计算机故障;每台运动控制计算机的控制电压经CAN总线和D/A双重输出给表决器,在表决器内先进行比较,如果一致则继续进行表决,不一致则视为输出接口故障;
2)表决器使能最佳输出:表决器对比较一致的控制电压进行多数一致表决,根据表决结果使能相应计算机的输出。
2 冗余管理方案
冗余管理技术是实现TMR运动控制计算机系统的功能需求的重要手段,其目的是管理深潜救生艇运动控制系统提供的软硬件冗余资源,将资源利用率最大化,以提高冗余系统的可靠性和安全性,确保冗余系统工作在无故障状态时可以高效率运行并能完成对故障的监控与检测;一旦运动控制系统中的某台运动控制计算机发生故障,运动控制系统可以通过调度冗余资源使其工作在“一次故障运行,二次故障安全”的可靠机制下。
2.1 TMR同步管理
三机同步技术是深潜救生艇运动控制系统进行冗余管理的前提和关键,它主要是用来消除三台运动控制计算机之间因时钟误差或延迟等因素造成的时钟异步,使深潜救生艇的运动控制系统在时间基准、周期定时以及任务执行时达到同步一致的状态,以此来保障三台运动控制计算机在数据采集、控制率解算及数据输出时的同步,确保比较数据的一致性,使表决器可以进行同步表决,真正实现三模冗余功能。
2.1.1 基于任务检测点的同步算法
深潜救生艇的TMR运动控制计算机系统要求三台运动控制计算机同步采集数据、同步运算、同步输出结果。为保证系统的同步运行,在三台运动控制计算机启动之后先进行一次初始同步,确定三台计算机的主从关系,然后开始同步执行任务。
针对每一个任务周期设置两个同步检测点,一个是运动控制计算机采集传感器数据时,即同步输入检测点,另一个是运动控制计算机输出控制电压时,即同步输出检测点。主机的同步流程图如图2所示,从机的同步流程图如图3所示。
图2 主机的任务同步流程图
图3 从机的任务同步流程图
当任务运行至同步输入检测点时,表决器设置一个定时器,从机发布同步申请信号,主机发布同步确认信息,主从机失步时都有相应失步计数单元,
主机等待从机发来的同步申请信号,在设定的时间内,如果主机收到两个从机的同步申请信号则发送同步确认信息,并且清零从机失步计数单元,从机收到同步确认信息则清零主机失步计数单元,然后三台运动控制计算机开始同步采集数据进行同步计算;如果主机在设定的时间内没有收到某个从机的同步申请信号,对应的失步计数单元加1,如果连续五次都没有收到同一台计算机的同步申请信号,则置该计算机故障;如果从机在设定的时间内没有收到主机的同步确认信息,主机失步计数单元加1,如果连续五次都没有收到主机的同步确认信息,则置主机故障;为了避免两个从机都对主机失步计数单元进行修改,设定在每个任务周期内只允许修改一次主机失步计数单元。
当任务运行至同步输出检测点时,同步流程和输入检测点时的同步基本一致。当两台从机接收到主机发送的同步确认信息,三台运动控制计算机开始同步输出控制电压给表决器,表决器根据表决结果使能相应运动控制计算机的输出。
2.2 故障检测
故障检测是判断系统是否发生故障以及定位故障源的过程,是系统重构过程中进行故障隔离和系统降级以及故障修复和系统升级恢复的重要依据。当TMR运动控制计算机系统同步失步,表决器接收不到计算机的心跳信息,表决器对同一台运动控制计算机CAN接收的电压值和A/D采集的电压值不一致(超出一定的阈值),表决器对三台运动控制计算机输出结果表决不一致时,都视为系统出现故障,此时需要运行故障检测程序以定位故障源进而隔离故障或切换计算机输出。
本文将深潜救生艇运动控制计算机的故障简单分为两类:处理器故障和输出接口故障,下面针对这两类故障分别介绍对其检测的方法。
2.2.1 处理器故障的心跳检测
同步失步、心跳信号暂停、表决结果不一致都视为处理器故障,这些故障检测都是在表决器中完成,通过表决器来屏蔽单点故障。同步失步的故障在同步管理时已经阐述,表决结果不一致的故障在下一节的表决管理时再作详细说明,这里只针对处理器故障的心跳检测进行简要介绍。
心跳检测是指表决器对三台运动控制计算机的运行状态进行监控,三台运动控制计算机定时的给表决器发送信息告知表决器自己是否处于正常工作状态。若表决器在一个任务周期内没有收到主机或从机的心跳信息,则认为相应计算机发生瞬时故障,当连续瞬时故障次数超过设定阀值,则视为永久故障。如果故障机为从机,则直接置相应计算机故障;如果故障机为主机,则先置主机故障,再由表决器重新设定主机,设定原则根据表决结果中的故障记录。
在以下3种情况中,可能导致表决器接收不到三台运动控制计算机的心跳信息。
1)主机或从机的处理器发生严重故障,运动控制计算机无法正常运行;
2)主机或从机中负责发送心跳信息的程序因某些瞬时故障的干扰使程序出错;
3)表决器与三台运动控制计算机之间的通信总线出现故障,无法正常接发心跳信息。
针对处理器故障的心跳检测流程图如图4所示。
图4 心跳检测流程图
2.2.2 输出接口故障的比较监控检测
在深潜救生艇的运动控制系统中,运动控制计算机只有模拟量的输出,共有五路D/A,分别用来控制两个舵机、两个推进器和一个升降机构。因此,本文所提到的输出接口故障是指运动控制计算机上的D/A输出接口不能正常输出的情况。本文在运动控制计算机的输出通道上设置了双冗余,即控制电压分别以CAN总线和D/A输出两种方式传输给表决器,以比较监控的方式检测D/A输出接口的故障。
基于比较监控的故障检测是一种借助于相似输出通道之间的差异来检测和识别故障的方法,它以其简单直观和检测覆盖率高的特点在实际工程中得到广泛应用。
输出接口故障的比较监控检测流程图如图5所示。PCx_CanF是表决器接收到CAN数据帧时的标志位,Begin_ADC_Flag是表决器开始A/D采集的标志位,PCx_Data是经CAN总线传输的控制电压,PCx_V是经A/D采集的控制电压。控制电压以一路控制垂直舵的电压为例。
图5 输出接口故障的比较监控检测流程图
由于表决器是在三台运动控制计算机同步输出的前提下接收到的CAN数据帧,因此说明CAN通信通道是无故障的,即PCx_CanF为1。表决器同步接收到CAN数据帧后,Begin_ADC_Flag置1,A/D开始同步采集运动控制计算机的控制电压。如果A/D在设定时间内没有完成数据采集,则视为运动控制计算机的输出接口故障。当A/D采集完成后,先与CAN接收到的PCx_Data进行比较,如果一致,则说明输出接口无故障,可以进行数据表决。如果不一致,判断是否为瞬时故障,如果为瞬时故障,则从寄存器中取上一拍的PCx_V参与数据表决;如果为永久故障,则置输出接口故障。
2.3 表决管理
表决技术是深潜救生艇运动控制系统的冗余管理的重要组成部分,本文是以软硬件表决相结合的方法来实现TMR运动控制计算机系统的表决输出。表决的基本原理:深潜救生艇的运动控制系统中有三台可以实现相同功能的运动控制计算机,表决器对它们的输出控制电压进行比较表决,选择最优解给执行机构,以屏蔽系统的故障机给系统可能带来的危险,达到系统容错的目的。
基于历史信息的多数一致表决算法:在多数一致表决算法中,当M>N/2时才能进行表决,而在基于历史信息的多数一致表决算法中,即使在M≤(N-1)/2时,表决器也可以产生输出。每次表决时,表决器根据表决结果记录每个计算机的状态,如果数据一致,则给相应计算机加一分;如果某个计算机的数据超出阈值,则视为数据不一致,不给该计算机加分。当M≤(N-1)/2时,表决器不能根据多数一致算法产生输出,此时选取分值最高的计算机的输出作为表决器输出。
TMR运动控制计算机系统的输出表决由软硬件共同完成,计算机在每个任务周期执行控制任务产生舵机和推进器控制电压,通过D/A输出给表决器参加表决,每台运动控制计算机的输出使能由继电器控制,而继电器由表决结果控制。
当表决器检测出处理器故障、输出接口故障以及某一台运动控制计算机的表决数据连续五次出现错误,运动控制计算机系统由三模冗余降级为双模冗余。针对TMR运动控制计算机系统和降级后的双冗余运动控制计算机系统的基于历史信息的“三取二”表决算法流程图如图6和图7所示。
图6 三模冗余系统表决算法流程图
图7 三模冗余系统降级之后的表决算法流程图
在图6和图7中,三台运动控制计算机的待表决输出控制电压分别为PC1_V、PC2_V和PC3_V,默认PC1为主机,PC1_V为首选输出信号;在三模冗余系统中,PCx_V代表三台运动控制计算机,在双模冗余系统中代表两台运动控制计算机;将输出电压值按从大到小的顺序排列,假设顺序为PC1_V、PC2_V、PC3_V;设阈值为ε,定义变量ε12、ε13、ε23,令ε12=PC1_V-PC2_V,ε13=PC1_V-PC3_V,ε23=PC2_V-PC3_V;PC_V为系统最终输出的控制电压值。
每次数据比较表决之后,对三台运动控制计算机分别做故障记录和保存最近五拍的表决数据。如果数据正确,则“1”值计数器加1,将表决数据存入寄存器;反之,则“0”值计数器加1,将上一拍数据重写寄存器,此时还要判断是连续第几次改写“0”值计数器,如果是第五次,则置相应计算机故障。
在基于历史信息的“三取二”表决算法中,为了保证输出的连贯性,只要主机输出数据的误差小于阈值,就一直输出主机的输出控制信号,只有当连续错误的次数超过阀值时才切换到其它计算机。切换原则以剩余的运动控制计算机中故障记录有利的作为系统输出。
2.4 软件工作流程
TMR运动控制计算机系统的软件工作流程如图8所示。
图8 TMR计算机系统的软件工作流程
在图8中,故障1是指系统的同步故障,故障2是指处理器故障,故障3是指计算机的输出接口故障,故障4是指表决数据不一致。在表决器检测到系统同步失步、计算机心跳失常、计算机输出接口故障以及表决数据不一致时,系统启动重构,对故障模块进行切除,系统做降级处理。
3 仿真案例
半物理仿真案例:舵机伺服控制实验,设定航向为60°,速度4kn。半物理仿真案例流程图如图9所示。
图9 半物理仿真案例流程图
利用前面介绍的软硬件平台,根据软件工作流程对所设计的实验案例进行验证,通过模拟故障发生的方式验证TMR计算机系统的可行性。
本实验案例主要用来验证TMR运动控制计算机系统在检测到特定故障时是否能够继续不间断输出,使舵机控制受故障的影响在可控范围之内。模拟的故障包括同步故障,处理器故障,输出接口故障以及表决数据不一致。
3.1 TMR计算机系统中的故障模拟
1)同步故障模拟:同步故障的模拟通过软件来实现,当从机是故障机时,在程序中设定不向主机发送同步申请信号;当主机是故障机时,在程序中设定收到从机的同步申请信号时不返回同步确认信号。
2)处理器故障模拟:这里说的处理器故障是指表决器接收不到计算机发来的心跳信息,由前面介绍可知,导致表决器接收不到心跳信息的情况有3种:处理器严重故障、发送心跳信息的程序故障以及表决器与计算机之间的通信总线故障。进行处理器故障模拟时,对第一种情况和第三种情况是将通信线缆拔掉造成通信断路;对第二种情况是在程序中设置故障点,当运行到故障点时停止发送心跳信息。
3)输出接口故障模拟:输出接口故障的表现形式有两种,一种为表决器的A/D采集数据与CAN接收数据不一致,另一种为表决器没有采集到模拟量。在进行故障模拟时我们只是断开了计算机D/A输出与表决器A/D采集的线缆,以此来代表输出接口出现故障。
4)表决数据不一致模拟:模拟时,计算机内不再运行控制算法,而是运行数据包发送程序,专门设置一台计算机的数据与其它两台计算机的数据之间存在误差,这样表决器在运行表决算法之后,就能对模拟的故障机进行判断了。
3.2 试验结果分析
针对瞬时故障和永久故障,主机或从机故障,以及故障之后的降级处理分别用界面显示相应状态。不去判断故障的具体形式或类型,只对故障做容错处理,故将模拟故障在界面中的显示形式简化为没有数据输出及数据出错。
一台运动控制计算机发生故障,三模冗余系统降级为双模冗余系统运行:
1)故障机为从机,输出数据中断(按模拟故障的定义为同步故障、输出接口故障或处理器故障),系统降级处理,继续选择主机输出。
由图10可得,在判定计算机C为永久故障之前,会容忍连续五拍的瞬时故障。
图10 从机发生输出数据中断故障
2)故障机为从机,从机输出数据出错(按模拟故障的定义为数据表决不一致),系统降级处理,继续选择主机输出。
图11 从机发生输出数据不一致故障
3)故障机为主机,输出数据中断,系统降级处理,切换主机,由于计算机B和C的故障记录均为0,假定选择计算机B为主机,表决结果选择计算机B的输出。
图12 主机发生输出数据中断故障
由图12可得,在计算机A发生故障的五拍时间内,表决结果还是计算机A的输出,在判定计算机A发生永久故障之后,切换主机,选择计算机B的输出作为表决结果。
4)故障机为主机,输出数据出错,系统降级,切换主机,表决结果为计算机B的输出。
由图13可得,在计算机A刚出现故障的五拍时间内,表决结果的红色波形是跟随计算机A的波形来变化的,此时与计算机B和C的波形有误差,而判定计算机A为故障机之后,系统完成切换,表决结果选择计算机B的输出。
图13 主机发生输出数据不一致故障
4 结论
通过设计的仿真案例,用故障模拟的方式验证所设计的TMR运动控制计算机系统在仿真案例中的可行性,从界面图中我们可以看出故障检测算法能将所模拟的故障都检测出来,表决算法根据故障检测结果可以做出正确的判断,保证系统在出现一定故障时仍然可以产生正常输出。因此本文所设计的TMR运动控制计算机系统以及故障检测和表决算法是合理并且可行的。
[1] Stephen J. Culver, Charlotte A. Brunner, Charles A. Nittrouer. Observations of a fast burst of the deep western boundary undercurrent and sediment transport in South Wilmington Canyon from DSRV Alvin[J]. Geo-Marine Letters,1988, 83:125-131.
[2] Gaddis, Charles D IV. Naval Undersea Museum Keyport Opens DSRV Mystic To VIPs[J]. U.S. Department of Defense Information / FIND, 2015:412-418.
[3]马伟锋,胡 震. 深潜救生艇的研究现状与发展趋势[J]. 火力与指挥控制, 2008, 33(6): 10-13.
[4]李 娟,边信黔,施小成,等. 援潜救生作业仿真演示系统[J]. 计算机仿真, 2007, 24(9): 195-198.
[5]徐玉如,肖 坤. 智能海洋机器人技术进展[J]. 自动化学报, 2007, 33(5):518-521.[6]薛震寰. 三模冗余计算机技术研究[J]. 中国科技纵横, 2012 (5): 22-23.
[7]戴新发, 袁由光, 杨升春. 容错计算机及其同步机制研究[A]. 第十届全国容错计算学术会议论文集[C]. 2003, 15: 20.
[8]柳振华. 三模冗余容错计算机的设计与实现[D]. 西安:西安电子科技大学, 2010.
[9]Ishaque K, Abdullah S S, Ayob S M, et al. A simplified approach to design fuzzy logic controller for an underwater vehicle[J]. Ocean Engineering, 2011, 38(1): 271-284.
[10]Antonelli G, Chiaverini S. A fuzzy approach to redundancy resolution for underwater vehicle-manipulator systems[J]. Control Engineering Practice, 2003, 11(4): 445-452.
Research on Triple Modular Redundancy Computer System Applied in DSRV Rudder Control
Zhang Wei, Tang Zhaodong
(Institute of Ocean Equipment and Control Technology,College of Automation, Harbin University of Engineering,Harbin 150001,China)
With the development of the technology of ocean, the application of submarine is more and more widely. And once the submarine has problems in deep ocean, it will be difficult to rescue. So, the DSRV(Deep Submergence Rescue Vehicle) plays an important role in this part. For the failure of the DSRV under water, especially in the rudder control, a kind of TMR (Triple Modular Redundancy) motion control computer system which canbe applied to the DSRV control system was designed. The system’s foothold is to study the redundancy technology which can satisfy the high reliability system. And using fault detection algorithm and vote algorithm, researching on the redundancy management scheme used in the redundancy system to improve fault tolerant ability of redundancy system mostly. At last, this paper designs the fault simulation experiments to verify the feasibility of design scheme, in which the TMR motion control computer system was used in the steering control to verify the feasibility of redundancy design scheme, fault detection algorithm and vote algorithm. Through the results of the simulation, the availability of TMR control system is proved.
DSRV; TMR; redundancy management; fault simulation; rudder control
2016-03-12;
2016-05-18。
张 伟(1978-),男,辽宁瓦房店人,副教授,硕士生导师,博士生副导师,主要从事水下无人航行器总体设计、数学建模、智能控制和数据融合等方向的研究。
1671-4598(2016)09-0089-06
10.16526/j.cnki.11-4762/tp.2016.09.025
TP273
A