三余度飞控系统余度管理算法设计与研究

2018-02-05 01:45,,,
计算机测量与控制 2018年1期
关键词:板卡控系统时钟

,,,

(南京航空航天大学 自动化学院,南京 210016)

0 引言

随着技术的发展和对无人机飞行功能的需求日益增加,飞行控制计算机所承担的任务越来越复杂,飞行控制系统的复杂度也越来越高,从而故障出现的概率也越来越频繁,因此飞控系统的可靠性急需提高[1]。目前,最广泛的方法是从系统的层面入手,即采用余度技术实现系统容错[2]。

从软硬件实现角度,通过余度实现容错的技术可分为相似余度和非相似余度容错技术[3]。相似余度采用同构型的硬件平台,各平台运行同一版本软件,通过增加冗余实现容错。非相似余度采用不同硬件或不同软件版本来构成余度容错[4]。基于对成本控制和系统复杂度的考虑,相似余度更适用于样例飞控计算机。相似余度容错技术依赖于高可靠度的软件设计[5],基于该要求,本文在实时嵌入式操作系统VxWorks上搭建余度管理层和应用层,便于余度管理策略的规划和实施。余度管理的设计中,时间同步是前提条件,对同步精度要求较高且需要抑制干扰;封装表决是具体措施,需要易于开发移植,便于实现;系统重构是安全保障,在重构过程中仍要保证系统正常运行。本文从上述三方面出发,以问题为导向,对样例飞控系统余度管理算法的设计进行了详细的阐述。

1 系统架构

1.1 硬件架构

基于CAN总线的相似三余度飞行控制计算机硬件架构如图1所示,飞控系统由CPU板卡和接口板卡组成,CPU板卡采用三余度设计,实施余度管理策略,各接口板卡唯一,无冗余备份,完成对封装数据的表决输出。所有板卡均采用了PowerPC架构的MPC565的微处理器,其性能足够支撑余度扩展带来的负载变化。各板卡之间采用分布式架构,相对独立,通过CAN总线进行数据通信,便于余度扩展的实现。CAN总线的高可靠性、高实时性和较强的抗干扰能力满足飞控系统的要求,数据重发机制和非破坏总线仲裁机制[6-7]保证了板卡间数据交互的安全、可靠,满足余度扩展对数据传输的性能要求。

图1 飞控计算机硬件架构示意图

1.2 软件架构

为了满足飞行控制计算机对实时性和可靠性的严格要求,飞控系统采用嵌入式实时操作系统VxWorks作为飞控软件的运行平台。VxWorks具备强实时性和高可靠性的优点,可通过裁剪在保证其完整性的前提下大幅缩小其规模[7],减少对飞控计算机有限内存的占用。此外,其基于优先级抢占和基于时间片轮转的任务调度方式,有利于实现飞控软件的任务管理,便于余度管理的实现。

飞控系统结构层次划分如图2所示。自下而上依次是硬件层、操作系统层、余度管理层、应用层。余度管理作为核心层,管理着应用层的冗余资源,各CPU板卡在余度管理层的指导下运行控制软件,通过数据采集、同步、控制律解算等步骤,将结果汇总于管理层加以表决,最终输出可靠的控制指令,完成精确控制[8]。

图2 系统结构层次划分示意图

2 余度管理算法设计

2.1 同步算法设计

同步是三余度飞行控制计算机余度管理的基础和前提条件,只有在同步的情况下,对解算结果的监控表决才有意义。对于执行周期较短的控制律解算任务而言,时间延迟最好控制在1 ms以下,以免对控制品质造成影响。鉴于样例飞行控制计算机采用的是VxWorks嵌入式实时操作系统,该操作系统以任务调度为核心,所以任务同步方式更适合于本系统。同时,通过周期性地调用时钟同步任务,校正本地时钟,尽可能地减少与主CPU的时钟偏差,为任务同步提供良好的同步环境。其中,时钟同步算法中最为经典的是TPSN算法[9],该算法相比与其他算法实现难度小且稳定性好,可以达到全局时钟同步,但无法补偿由于电压波动、温度变化、制作工艺等导致的相对时钟漂移误差,误差的积累最终会造成故障的蔓延。本文提出将任务同步算法与TPSN算法相结合的方法,二者相互辅助,可以在保证时钟同步的同时补偿时漂带来的累积误差,为之后的表决提供前提条件。

任务同步是在余度管理程序的指导下进行的。当运行到需要表决的关键任务时,各CPU板广播任务同步帧,任务同步帧信息包括CPU板卡ID号、任务ID号、任务执行周期序号、同步状态等,然后在限定时间内查询接收到的任务同步帧情况。如果在超时前接收到其余两通道CPU的本次任务同步帧,则表示本次同步成功,结束同步等待,三块CPU同时开始执行本次任务;若等待超时,则在执行任务的同时将同步情况发送至表决板卡。同步算法流程图如图3所示。

图3 任务同步算法流程图

虽然任务同步过程中对于非本地CPU的任务同步帧是实时接收的,但仍可能出现因CPU之间异步度过大而导致时钟偏差超过同步等待时间的情况,因此各板卡之间的时钟同步也是必要的。本文采用发送者-接受者同步机制,在TPSN时钟同步算法基础上加以简化,采用定周期循环方式,每隔10 s执行一次时钟同步任务,任务执行过程中若检测到时钟异步度大于1 ms则执行时钟同步操作,否则不执行该操作,同步过程如图4所示,

图4 时钟同步过程

以CPU_B的同步过程为例,同步周期时间到时,CPU_B向主CPU发送时钟同步帧,帧中包含本CPU发送时间信息(TB1),主CPU接收到后记录下接收时间TB2,并在TB3时刻发送时钟响应帧,帧中包含信息(TB1,TB2,TB3),CPU_B在TB4时刻接收到响应帧,由此满足关系:

TB1+Td+θ=TB2

TB3+Td-θ=TB4

设传输延迟为Td,两CPU板时间偏差为θ,CPU_B可通过上述关系得出相比于主CPU的时间偏差θ:

CPU_B根据θ值,调用VxWorks提供的API函数sysClkRateSet(int rate),通过设置每秒产生的时间片数量来拨快或拨慢时钟[10],实现与主CPU的时钟同步。

2.2 封装表决设计

表决是通过故障屏蔽来实现系统在故障情况下正常输出的重要环节,是余度管理的具体实现措施。表决的基本工作原理是:对系统中同时工作的N个余度部件,基于某种规则,对其输出结果投票表决,以多取胜,达到决策输出正常的目的。

本飞控系统对输出结果进行表决,表决项包括模拟量输出、离散量输出以及PWM信号输出,表决过程由各CPU板卡将解算结果分别发送至对应的接口板卡上,在各接口板卡表决空间中完成决策输出。

1)离散量输出表决:由于离散量为二值信号量(0或1),故可以采用简便的相加策略,将三块CPU板输出的DO信号量对应相加,当结果为0或3时,直接取输出值;当结果值为1时,则决策输出0,同时输出值为1的板卡记一次瞬态故障;当结果值为2时,则决策输出1,同时输出值为0的板卡记一次瞬态故障。

2)模拟量和PWM信号输出表决:由于模拟量和PWM信号输出值均为浮点类型,故需要考虑数据精度的影响。将原始数据除以数据表示精度,转换成整数再通过CAN标准帧封装传输。表决空间收到各CPU输出结果后,直接比对封装值,仅将最终表决结果转化为原始数据通过接口板卡输出,减少了运算量,有利于减少表决环节的耗时,提高系统实时性,相比于传统方式,减少了代码冗余,降低了开发的难度。表决过程如下:

表1 得票数与表决结果及故障评价对应关系

2.3 系统重构设计

根据样例飞控计算机的硬件架构可以得知,本飞控系统包括3块CPU板卡和4块接口板卡。各CPU板卡实时解算,将解算结果分类通过CAN总线传输至各接口板卡,接口板卡通过表决决策输出,同时建立故障评价表。各接口板卡每秒向主CPU输送一次各自的评价结果,由主CPU综合评判,同时清空评价表,开始下一秒故障计数。

在无故障情况下,样例飞控计算机的3块CPU同步运行,通过余度管理决策出最终输出,保证了输出结果的可靠性。当某块CPU板卡每秒瞬态故障次数超过10次且故障现象维持连续3秒以上,该CPU板卡被判别为故障并进行屏蔽处理,飞控计算机转换为主从备份的双机运行状态,其中ID号较小的为主CPU。同时对故障CPU实行故障恢复措施,恢复完成后重新加入余度管理网络并加以监控。若该CPU连续10秒运行正常,则系统重新恢复为三余度,反之则表示恢复失败,将该CPU板卡置永久故障,系统维持双机运行状态。同理,双机运行状态下出现CPU故障,系统继续降级为单机工作模式。系统降级与恢复逻辑如图5所示。

图5 系统降级与恢复逻辑

由于系统采用分布式架构设计,各板卡之间的信息与资源交互均通过三路CAN总线实现,所以总线的可靠度尤为重要,总线冗余必不可少。本系统中,三路CAN总线以热备份的工作模式进行冗余,优先级由高到低为CAN0、CAN1、CAN2。初始使用CAN0通信,当故障检测判断总线故障,则降级为双总线热备份,使用CAN1通信,再发生故障时进入CAN2单总线工作模式。降级过程中,将故障总线重新初始化并通过总线检测帧检查其状态,检测正常则重新加入总线网络,同时置优先级为最低,否则该总线判故,不再使用。

3 测试验证

为了验证所设计的余度管理策略的合理性,本文对上述各关键环节进行单独测试,通过测试结果验证设计方案。

3.1 同步功能测试

三机同步是余度管理的前提条件,为了便于观察,在三块CPU中运行周期为10 ms的同步测试任务,每个任务周期开始时输出高电平信号,同步完成后输出低电平信号。在无故障运行状态下,通过示波器监控三块CPU的GPIO口电平,得到的输出情况如图6(a)所示。由于时钟异步度是时漂长时间累积的过程,所以为了在短时间内得到测试结果,人为地将CPU_B的时钟节拍调慢,经过一段时间的运行后,时钟偏差的累积超过了1 ms,时钟同步任务检测到异步度超出允许范围,进行时钟同步操作,使时钟偏差缩小到1 ms内。如图6(b)所示,CPU之间的异步度经过时钟同步操作缩小到了0.4 ms内,此时定周期运行的同步测试任务通过任务同步算法将时间异步度进一步缩小至0.1 ms内,二者协同完成了本轮时间同步的操作。在无故障运行状态下,三块CPU运行的测试任务分别调用不同的延时任务,使各CPU处于异步状态,通过示波器监控3个GPIO口电平,得到的输出情况如图6所示,其中(a)为三机电平信号波形图,(b)为其中一个任务周期同步过程放大后的波形图。

3.2 表决功能测试

封装表决是余度管理的重要实施环节,为了便于观察,将余度管理层表决处理模块单独提出,通过输入各CPU实际数据,在开发工具Visual Studio 2008上运行表决模块,将表决过程中的关键数据打印输出,验证表决算法。其中待表决数据为执行机构控制量,判决阈值H为100,数据精度要求R为0.01。

图6 同步测试验证结果

运行结果如图7所示,从图(a)中可以看出,在注入三块CPU输出的原始数据的情况下,表决计算得出CPU之间的数据总差均小于判别阈值H,因而三块CPU得票数均为2,CPU_A由于优先级最高而胜出,决策输出CPU_A的数据,其余两CPU落选;接着向CPU_A和CPU_C中注入常规故障数据后,根据表决算法,应该决策输出CPU_B的数据,由图(b)可以看出,CPU_A和CPU_C得票数均降至1票,CPU_B胜出,与预测结果一致;同理,如图(c)所示,单独向CPU_B注入严重错误数据后,CPU_B得票数降为0,CPU_A胜出且置CPU_B一次瞬态故障,与设计结果一致;最后,将上述故障分别注入三块CPU,由图(d)可以看出,各CPU得票数均为0,因而其输出均不可信,表决结果在输出安全值的同时记三块CPU各一次瞬态故障,与算法设计相符。其中(a)为原始无故障数据表决结果,(b)为向CPU_A、CPU_C注入常规故障数据后的表决结果,(c)为向CPU_B单独注入严重故障数据后的表决结果,(d)为综合注入上述故障数据后的表决结果。

图7 封装表决测试验证结果

分析上述测试结果可以得知,同步算法可以实现三机的任务级时间同步,同步精度小于0.1 ms,同步过程耗时小于0.8 ms,多次执行同步任务后没有出现时漂误差的累积,满足系统控制需求。封装表决算法可以很好地完成表决功能,多次测试结果无误,可以用于实现余度管理策略。

4 结论

本文基于样例三余度飞行控制计算机,结合VxWorks实时嵌入式操作系统,设计了余度管理策略,并通过测试验证了所设计的余度管理策略。试验结果表明,设计合理有效,余度管理策略各关键环节可很好地完成相应功能,提高了飞行控制系统的容错能力和可靠度。

[1] 胡靖枫, 陈 楸, 段晓军. 无人机3×1架构余度管理软件设计与开发[J]. 计算机测量与控制, 2013, 21(3):809-810.

[2] Kristina Ahlstrom, Jan Torin. Future architecture for flight control system[A]. The 20th Digital Avionics Systems Conference [C]. Daytona Beach: IEEE, 2001.

[3] 杨文涛, 李志宇, 李洪冬. 基于PowerPC和x86非相似余度无人机飞控计算机设计[J]. 计算机测量与控制, 2013(2):451-453.

[4] 孙 波, 石 鑫. 非相似余度计算机的研究[J]. 装备制造技术, 2015(4):257-259.

[5] 安金霞, 朱纪洪, 王国庆,等. 多余度飞控计算机系统分级组合可靠性建模方法[J]. 航空学报, 2010, 31(2):301-309.

[6] 雷 霖. 现场总线控制网络技术.第2版[M]. 北京:电子工业出版社, 2015.

[7] 孟 冲. 小型无人机负荷分担式容错飞行控制软件设计[D]. 南京:南京航空航天大学, 2015.

[8] 尹永鑫. 针对长航时无人机的简易余度飞控系统故障重构方法: CN, CN 103529692 A[P]. 2014.

[9] Ganeriwal S, Kumar R, Srivastava M B. Timing-sync Protocol for Sensor Networks[A].International Conference on Embedded Networked Sensor Systems[C]. ACM, 2004:138-149.

[10] 张 杨, 于银涛. VxWorks内核、设备驱动与BSP开发详解.第2版[M]. 北京:人民邮电出版社, 2011.

猜你喜欢
板卡控系统时钟
关于DALI灯控系统的问答精选
多型号车控系统统型设计实践
古代的时钟
HCM3000板卡固件智能化下载系统设计与实现
RTX系统下并行I/O卡驱动程序的开发
数字电视播控系统关键技术探究
这个时钟一根针
基于Arduino的智能家居灯控系统设计
基于FC-AE-ASM协议的两种通讯板卡对比及应用
有趣的时钟