基于VxWorks的小天体撞击任务的星载GNC软件设计*
2010-11-07崔平远崔祜涛
高 艾,崔平远,2,崔祜涛
(1.哈尔滨工业大学深空探测基础研究中心,哈尔滨 150001; 2.北京理工大学深空探测技术研究所,北京100081)
小天体撞击任务需要利用在轨星敏感器与陀螺测量信息完成定姿,同时联合导航相机拍摄的目标天体图像信息及加速度计测量值进行轨道确定,并在轨道机动时,根据轨道修正制导律给出的期望机动信息,通过姿态制导控制系统完成机动期望姿态的调整,进而成功执行点火机动,此后,姿态控制系统应将姿态重新调整回对目标天体的定向模式,并利用飞轮进行稳定模式下的控制[1-4].在这一复杂的过程中,星载GNC(制导、导航与控制)系统的设计尤为重要,其肩负着数据采集、姿态确定、轨道确定、轨迹制导、姿态控制、对外数据通讯等诸多任务,是保证最终成功完成撞击任务的关键因素.
以往的近地卫星GNC系统执行任务简单,操作系统运行环境单一[5-7].而小天体撞击任务对星载GNC系统的功能要求变得越来越复杂,组合技术的发展使得操作系统对实时性、稳定性、精度的要求越来越高,采用传统的软件结构来实时准确地实现系统功能已很困难,嵌入式实时操作系统(RTOS)在此方面则有着其突出的优点.VxWorks操作系统是一种嵌入式实时操作系统,提供了高效的实时任务调度、中断管理、实时的系统资源以及任务间通信等功能.高性能的操作系统微内核Wind支持实时特性,其设计减少了系统开销,高效的任务管理保证了对外部事件快速、准确的反应;快速灵活的任务间和进程间通信允许独立的任务在实时系统中与其行动相协调[8-9].VxWorks嵌入式实时操作系统经过广泛的验证,已成功应用在航空、航天中的关键领域.
基于VxWorks嵌入式实时操作系统的上述特点,本文以小天体撞击任务为背景,在PC-104嵌入式计算机与dSPACE实时仿真平台的联合环境下,针对小天体高速撞击任务,应用VxWorks嵌入式实时操作系统对星载软件进行设计.
1 任务划分与通信机制
1.1 星载GNC系统结构
在撞击器接近目标天体的过程中,撞击器通过星敏感器与陀螺联合定姿,可以得到撞击器相对惯性空间的姿态信息,该信息被用来控制姿态的同时,也传送给轨道确定系统,轨道确定系统利用导航相机拍摄的目标天体图像信息(导航相机对目标天体进行拍摄,对获得的图像进行处理,从而提取图像的光心信息)和加速度计测得的作用在撞击器上的控制加速度,确定撞击器相对目标天体的位置和速度信息.在执行轨道修正机动时,轨道修正制导律利用轨道确定系统给出的轨道信息定时计算期望的机动速度增量,并将该速度增量传送给姿态制导系统;姿态制导系统根据该速度机动增量形成期望姿态,姿态控制系统驱动姿控推力器开关,机动到该期望姿态;发动机点火产生期望的速度增量后,姿态控制系统将撞击器的姿态重新调整回导航相机对目标天体的定向模式,之后利用飞轮进行姿态稳定控制.因此,可以把星载GNC系统结构分为非轨道机动模式与轨道机动模式.
在非轨道机动模式下,星敏感器和陀螺分别对撞击器的姿态和姿态角速度进行测量,通过姿态确定滤波器得到姿态信息的估计值;同时导航相机对小天体进行拍照,经过图像处理,并联合拍照时刻撞击器的姿态信息,通过轨道确定滤波器得到轨道信息估计值;姿态制导算法根据轨道信息计算得到期望姿态,将估计姿态与期望姿态共同作为姿态控制器的输入,进而将得到的控制指令发送给飞轮,由飞轮产生的控制力矩作用于撞击器,实现非机动情况下的稳定模式.
在轨道机动模式下,星敏感器与导航相机均停止工作,姿态确定滤波器通过陀螺测得的姿态角速度信息进行姿态估计;同时轨道确定滤波器根据加速度计的测量值得到轨道信息估计值,再经过轨道修正制导律得到机动指令;姿态制导算法根据该指令计算得到机动期望姿态,将估计姿态与期望姿态共同作为姿态控制器的输入,进而将得到的控制指令发送给姿控推力器,由姿控推力器产生的控制力将撞击器姿态调整到机动期望姿态;然后将机动指令发送给轨控发动机,将发动机产生的控制力作用于撞击器,实现轨道机动控制.
1.2 任务的划分、特点及优先级别
根据上述自主导航与制导系统的工作流程,整个系统分为3部分:姿态控制系统、自主导航系统、轨道制导系统.其中,自主导航系统又可细分为姿态确定子系统与轨道确定子系统.考虑到不同飞行模式,系统的软件所涉及到的主要函数有:GNC规划函数、轨道确定函数、轨道递推函数、姿态确定函数、姿态递推函数、姿态制导I函数、姿态制导II函数、姿态控制I函数、姿态控制II函数、撞击制导律函数、机动点火函数.其中,GNC规划函数是整个系统的逻辑中枢,决定了其他函数的调用,姿态递推、轨道递推函数分别是姿态确定子系统和轨道确定子系统的核心函数,姿态确定与轨道确定是对姿态确定子系统和轨道确定子系统估计精度更新的函数,姿态制导和姿态控制函数由于在姿态稳定、姿态机动等不同模式下所采用的执行机构不同,由姿态机动标识位将姿态控制系统的函数分为Ⅰ、Ⅱ两种,Ⅰ为常规飞行模式、Ⅱ为姿态机动模式.根据各个函数之间的数据依赖关系可将星载GNC系统进一步细化,得到系统工作状态数据流图,如图1所示.
图1中的每条线代表各个功能函数对其他函数数据的依赖以及各函数间的执行逻辑关系,根据此数据流图,并结合VxWorks嵌入式实时操作系统中任务的特点与任务划分原则,对小天体撞击任务进行如下模块化分解.
(1)主任务
主任务的优先级最高,用于完成各部分的初始化,设置系统时钟中断频率、系统当前时间及任务调度策略,完成对各信号量、子任务及定时器的创建,并在分别获取得到相关信号量后,启动定时器,结束相关任务.
(2)GNC规划任务
GNC规划任务的优先级仅次于主任务,旨在每个执行周期的首部,根据当前撞击器的轨道/姿态状态量,给出轨道/姿态/点火机动标志位,为确定同周期GNC任务下的功能函数的执行顺序提供判断依据.
(3)数据采集任务
图1 系统工作状态数据流图
数据采集任务的优先级仅次于GNC规划任务,根据敏感器测量数据类型的不同,将数据采集任务分为4个子任务,分别为速率陀螺数据采集任务、加速度计数据采集任务、星敏感器数据采集任务、光学导航相机数据采集任务.4个数据采集任务的优先级相同,任务间采用时间片轮转调度算法,用于在不同采样周期读取各敏感器的测量数据.
(4)GNC任务
GNC任务的优先级仅次于数据采集任务,在该任务中应根据GNC规划任务给出的各个标志位的不同组合来确定不同的飞行模式,并根据数据采集任务得到的当前时刻敏感器更新数据,完成在每个执行周期内对撞击器状态的导航、制导与控制任务.
(5)轨道确定任务
轨道确定任务的优先级最低,该任务用于在稳定状态下,利用光学导航相机数据对轨道进行修正.受到相机图像处理耗时长及传输延时的限制,在满足拍照条件的情况下,轨道确定每15 s进行一次,以提高导航精度.
(6)监控计算机的通信任务
该任务向监控计算机输出监控所需的信息,并接收监控计算机的调试信息.该任务是系统调试和维护的关键,在系统正常工作时可以关闭.
(7)综合显示任务
该任务负责在计算机显示屏幕上以虚拟仪表的方式显示当前的姿态、角速度、速度、位置和各执行器机动等信息,负责向使用人员提供最直接的参数,在线观察该系统的工作状况.该任务占用系统内存量最大,但不直接参与计算,作为整个系统的辅助任务,在系统正常工作时可以关闭.
1.3 各任务间的协调与通信机制
二进制信号量是VxWorks嵌入式实时操作系统中效率最高、使用最广泛的信号量,它需要的系统开销最小,因而特别适于高性能的需求,同时适用于在不需要互斥信号量的高级特征情形下的互斥.本系统主要使用二进制信号量解决各个任务的同步问题,同时使用互斥信号量解决各个任务中变量的保护问题.
系统在接收到定时器信号后,以统一的执行周期为节拍进行工作.不同敏感器的数据采集任务在符合工作要求的前提下,按各自的采样周期采集数据,并给出信号量.等待相应信号量的各个任务被激活后,根据任务的优先级别,分别进行相应作业.此外,各任务之间的数据交换过程采用“共享缓冲区+信号量”的手段实现,以达到效率高、传输数据量大的目的.
2 仿真环境的搭建与结果分析
为了验证所设计的星载GNC软件能够有效运行,在PC-104嵌入式计算机与dSPACE实时仿真平台的联合环境(如图2所示),对初始位置、速度均为随机偏差量的撞击器接近过程进行仿真,其中B平面上初始位置、速度偏差分别服从标准均方差8km、0.1m/s的正态分布.具体仿真参数如表1所示,仿真结果如图3~7所示.
图3是仿真飞行任务过程中逻辑分析仪WindView给出的事件序列采样片段,从控制窗口中可以清晰地看到星载GNC软件执行周期的成功实现过程,其中:Task_GNC_pro为GNC规划任务、Task_SAM_X为数据采集任务、Task_GNC为GNC任务、Task_ORB_fuse为轨道确定任务,其他则为VxWorks嵌入式实时操作系统的系统任务,如tExcTask为异常任务、tLogTask为日志任务、tWdbTask为目标代理任务、tNetTask为网络任务等.具体分析单个执行周期的任务执行流程如下.
表1 综合仿真参数
图2 仿真环境的搭建框图
图3 事件序列采样片段
图4 B平面内的撞击器位置曲线
图5 发动机的开关曲线
图6 撞击器的姿态四元数矢部向量曲线
图7 最终撞击点在B平面内位置示意图
首先,发起主任务(任务优先级为100),用于创建信号量及子任务、创建并启动定时器、设置调度策略,并在获取状态指标信号量资源处进入任务阻塞队列,放弃CPU占用权.
此时,被主任务创建的GNC规划任务(任务优先级为101)获得CPU占用权,该任务根据当前的撞击器状态数据执行GNC任务规划功能函数,给出轨道机动、姿态机动、点火机动标志位.这里通过定时器处理函数释放定时器到期信号量,并结合任务优先级的合理设置,从而保证GNC任务规划在每个控制周期的最初执行.
GNC规划任务在下一次定时器到期释放相应信号量之前,在获取定时器到期信号量资源处进入任务阻塞队列,此时,对应于测量装置的4个数据采集任务(任务优先级均为102)抢占CPU,并根据GNC规划任务给出的机动标志位控制采集任务的执行情况,具体情况为:若轨道机动/姿态机动标志为0,则采集陀螺、星敏感器及相机数据,释放相应的数据更新信号量;否则,采集陀螺、加速度计数据,释放相应的数据更新信号量.
在数据采集任务进入任务阻塞队列后,GNC任务(任务优先级为103)获得CPU占用权,并在获取数据采集任务释放的相关数据更新信号量后,读取当前时刻的相关数据信息,再根据GNC规划任务给出的机动标志位,选择采用不同的飞行模式.此外,在非机动模式下,若定时器到期(即存在星敏感器数据的更新值),则在该子任务的开始阶段,进行姿态确定,对撞击器的姿态及角速度信息进行修正.
轨道确定任务(任务优先级为104)是在非机动模式下,每15 s获得一次相机数据更新值,并利用每个控制周期中的剩余时间占用CPU执行轨道确定功能函数,并在撞击器相应控制周期的初始时刻对撞击器的导航状态估计量进行修正.
此外,通过对仿真结果曲线(见图4~7)的分析可知,撞击器在4次轨道机动模式下成功完成了机动期望姿态的计算、调整与轨控发动机点火过程,同时在每次机动后都能够通过姿态控制系统顺利返回稳定模式,符合GNC系统的工作逻辑模式,最终成功撞击目标小天体.
综上所述,基于VxWorks嵌入式实时操作系统所设计的小天体撞击GNC软件完全可以满足小天体撞击任务的实时性要求,为撞击任务的顺利进行提供有效的保证.
3 结 论
本文在分析了星载GNC系统原理结构的基础上,基于VxWorks嵌入式实时操作系统划分了小天体撞击任务模块并定义了各自的优先级,提出了任务间的同步互斥方式与通信手段,同时给出了星载GNC软件单个执行周期的实现过程.在PC-104嵌入式计算机与dSPACE实时仿真平台联合环境下进行了仿真,结果表明,应用嵌入式实时操作系统VxWorks所开发的星载GNC软件能够为小天体撞击任务的成功完成提供有效保证.