李 立,朱 野,赵灵峰,潘小彤,张 铭,王 硕
(1.中国科学院 上海微系统与信息技术研究所,上海 200050; 2.上海微小卫星工程中心,上海 201203)
对地观测卫星携带可见光、电子侦察、合成孔径雷达等星载传感器,获取地面目标的图像和信号等信息,并将这些信息传回地面站供分析使用[1]。因卫星成本高昂,故卫星资源显得尤为宝贵。为充分利用星地资源,最大限度发挥卫星效能,有必要对卫星进行任务规划以最大化利用卫星资源。卫星任务规划是卫星运控系统的核心部分,指根据用户需求规划未来一段时间内卫星的工作模式[2]。由于星地资源有限,在任务规划过程中需要考虑很多约束,例如卫星姿态约束、载荷工作能力约束及卫星能源约束[3-4]。在过去,卫星姿态机动能力和星上载荷工作能力限制了单轨的任务执行数量,卫星能源对任务的约束并非卫星任务实现能力的主要限制因素[5]。卫星任务规划不考虑能源约束[6],或者只是简单考虑载荷工作期间的能源消耗,以单圈或多圈能源平衡作为约束[7]。随着卫星姿态机动能力和载荷性能的提升,卫星工作水平得到大幅提升,但同时卫星的能源消耗也有所增加。因此,有必要对卫星能源预期使用情况进行估计,以防卫星在执行任务时出现能源不足的状况,导致卫星故障或任务无法顺利完成。
文献[5]提出了一种遥感卫星能源平衡约束分析系统,可针对卫星任务规划进行能源约束检查。文献[8-10]提出了卫星能源平衡计算方法,可计算一段时间内卫星的能源能否平衡,此结果将用于指导电源系统的设计。然而,上述方法在能源约束运用中面临三方面问题:一是每次进行能源约束计算时需人为给定初始能源值,而规划任务时往往不知道任务开始时的能源情况;二是若规划的任务不能满足能源约束条件,则能源约束检查模型只给出不通过的结果,不提供规划任务调整建议,不利于后期对任务进行快速调整;三是由于建模的简化及卫星功耗变化,使得计算结果与实际结果出现偏差,不进行校正会导致误差积累。针对上述问题,本研究对能源消耗模型进行改进,提出了一种改进的能源约束检查模型,该模型能自动计算卫星长时间内的能源消耗情况,并引入了卫星遥测量对计算结果进行校正,以消除计算结果和实际结果的误差。改进的能源约束检查模型还能按照任务优先级,从能源约束角度提出规划任务调整建议。
卫星能源约束检查模型旨在对规划的任务进行能源约束检查,使得卫星能源能保证规划任务顺利完成。已有的能源约束检查模型在设定计算初始时间及初始值后,根据轨道信息和任务表确定卫星工作模式,结合各工作模式下的卫星功耗,计算任务期间的能源消耗,计算完毕或能源约束不满足时,则停止计算返回结果,其计算流程如图1所示[5]。
图1 已有的能源约束检查模型流程图Fig.1 Flowchart of existing energy constraint checking model
已有的能源约束模型针对单次能源约束检查设计,而在使用卫星的实际场景中,工作人员需多次使用任务规划系统进行任务规划。使用已有的能源约束检查模型需指定计算初始值,无法实现能源约束的准确计算,且在能源约束不通过的情况下,能源约束检查模型未给出调整意见,规划任务系统不能对任务进行快速调整,导致整个规划周期较长,影响卫星的使用效能。为克服已有能源约束检查模型存在的问题,对该模型进行了改进。改进模型以能源数据库为中心,由任务期能源约束检查、非任务期能源计算、遥测校正和数据库维护4部分组成。
任务期能源约束检查部分在规划任务时被任务规划系统调用,计算完毕后向任务规划系统返回能源约束检查结果和任务调整建议,实现规划任务能源约束检查计算和规划任务调整功能。非任务期能源计算部分由模型定时启动,该部分用于检测能源数据库中数据是否为最新数据,如果否,则启动计算,使任务期能源约束检查部分获取到最近时刻的计算初始值。遥测校正部分利用卫星能源遥测数据对能源数据库中的能源值进行校正,消除计算误差。数据库维护部分实现对能源数据库的管理,对模型各部分产生的能源数据进行处理,包括合并重合数据、删除多余数据、更新能源数据等操作。经过改进的能源约束检查模型如图2所示。
图2 改进的能源约束检查模型流程图Fig.2 Flowchart of improved energy constraint checking model
任务期能源约束检查是改进的能源约束检查模型的核心部分,用于实现任务期能源消耗计算和规划任务调整2个功能。
2.1.1 能源消耗计算
能源消耗计算的流程如下。首先从规划任务表中读取任务开始时间和结束时间,并从本地能源数据库中获取开始时间的能源值,以此作为计算初始值,而非人为指定计算的初始能源值。本地能源数据库中的能源数据由任务期能源约束检查和非任务期能源计算模块共同插入更新,以保证能源数据库中的数据持续更新到最近时间。初始值的确定方式具体为:查询本地数据库中早于开始时间T1和晚于开始时间T2的最近能源值记录,采用插值计算开始时间的能源值;若没有查询到T2,则采用非任务期能源计算模块中的计算方法计算开始时间,获取开始时间的能源值。由于非任务期能源计算模块的定期更新,后一种情况下的计算开销较小。之后,根据输入的规划任务表和轨道信息表,结合卫星姿态调整策略,综合得到卫星的工作模式,判断卫星充放电情况。最后,结合各个工作模式下的功耗表,计算卫星的能源变化直到计算结束。
对于多任务且姿态需要相应机动的卫星,多个任务相互影响,姿态调整错综复杂,能源计算的难点在于对卫星工作模式的判断。文献[5,8-10]都未给出判断卫星工作模式的方法。在改进模型中利用一种通过查询数据库进行工作模式判断的方法[11],该方法操作简单,可扩展性好,具有一定的通用性。其思路为考虑各个载荷任务、轨道信息和姿态调整的所有组合,建立各个状态组合和卫星工作模式的对应表,将轨道信息和规划任务时间信息分别注入数据库表,查询某时刻各个数据库表中的卫星工作状态,由对应表得到当前卫星工作模式。工作模式判断方法如图3所示。
图3 卫星工作模式判别方法示意图Fig.3 Schematic diagram of working pattern discrimination
轨道时间包含卫星进出地影的时间。在进出地影时,载荷1和载荷2执行前后有姿态机动,载荷2还有任务处理操作,上述姿态机动在姿态不需要调整时不会执行。可通过建立工作状态组合与卫星工作模式的对应表处理相互影响的3个序列。轨道时间序列工作状态有4种,载荷1工作状态有4种,载荷2工作状态有6种,共计有4×4×6=96种工作状态组合。时间1工作模式为对地姿态机动,时间2工作模式为载荷任务1……通过穷举的方式可建立各个状态组合与卫星工作模式的对应表。分别查询到某时刻3个时间序列的工作状态后,即可通过对应表判断卫星工作模式,再结合卫星在各个工作模式下的能源功耗表进行能源消耗计算。
2.1.2 规划任务调整
当规划的任务未通过能源约束检查时,任务调整功能可从能源角度对任务表进行调整,以提供规划任务调整的方向。模型按照优先级对任务进行调整,即当任务不满足能源约束条件时,能源约束检查模型首先对低优先级的任务进行调整,若任务调整后通过能源约束,则对任务表变动部分进行重新计算,否则按照优先级从低到高继续调整。任务调整过程如图4所示。
图4 任务调整示意图Fig.4 Schematic diagram of task adjustment
在T5时刻,计算的能源值低于能源阈值,模型会计算T6时刻,得到在该时刻的能源值V1,利用该值可计算出为满足T6时刻能源值大于能源阈值,需要缩短的任务时间。因T1时刻能源值满,故之前的任务不再调整,模型只对T1~T6之间的任务进行调整。模型首先逐次检索最低优先级的任务,若满足能源约束,则退出调整功能,否则对该优先级或次低优先级任务继续进行调整。任务调整完毕后,对能源数据库中原来有变化的能源数据进行更新。待计算完毕,输出调整任务的代号,任务规划系统据此进行任务调整。图4显示了对T4~T6之间的任务进行调整后的能源值变化。
由于在轨运行状态与地面测量环境的差别,能源模型的计算结果与实际能源情况存在偏差。若不加以校正,则长期的误差积累会导致计算结果不准确。为此,改进的模型引入了卫星遥测对能源数据库中的能源值进行校正。卫星常用锂电池和镍氢电池供电[12],剩余电量与电流、内阻和温度有关,电池内部复杂的电化学反应导致电池剩余电量估计方法复杂,估计结果不准确[13],难以用卫星遥测量对能源剩余量进行估计,但可用卫星方阵电流、负载电流和充放电电流判断卫星电源是否充满。在模型中,获取卫星的能源遥测量,当判断电源充满时,将能源数据库中对应时间点的能源值校正为满。校正过程如图5所示。
图5 能源值校正示意图Fig.5 Schematic diagram of energy value adjustment
校正时不必对校正时间点后的能源重新进行计算。若模型检测到T1时刻的能源为满,则会对能源数据库中T1时刻后的能源值进行校正。若T1~T2期间能源处于充电状态,则能源一直为满。若T2时刻卫星能源值增加了H1,则对后续能源值增加H1一直到能源满。若T4时刻能源值增加了H2,由于增加量H2
改进的模型引入能源数据库对卫星整个运行过程中的能源数据进行记录和预测,2次规划任务时间间隔可能较长。为保证能从数据库中查询到下一次能源约束检查时的初始值,在非任务期间也要计算卫星的能源消耗情况。
在非任务期间,模型定时自动计算,其计算方法与任务期能源消耗计算类似,但只考虑卫星轨道信息和姿态调整策略。模型首先从能源数据库中获取最晚时间点作为计算开始时间,再从轨道信息表中读取卫星在该时间点后的轨道信息,参考卫星姿态调整策略进行能源计算,并将结果上注到能源数据库。
改进的能源约束检查模型以能源数据库为中心,任务期、非任务期能源计算和能源遥测校正都与能源数据库进行数据交互。改进的模型需要对能源数据库进行数据维护。能源数据库中有3个数据表:任务期数据表、非任务期数据表和能源数据表。
任务期的能源计算结果上注在任务期数据表内,任务调整功能会对该数据表中的数据进行删除和更新,待计算完毕后,若任务表通过,则表示任务会最终上注,模型会将该次计算数据拷贝至能源数据表,能源数据表中与任务期数据表中时间相同的数据将被覆盖,模型会对该次任务后续数据进行校正。若任务表未通过,则该次任务不能满足需求,数据无效被丢弃。
非任务期计算时,模型查询能源数据表和非任务期数据表,获取最晚时间作为计算起始时间,以读取相应的轨道信息表进行计算。计算完毕后,查询能源数据表最晚时间和其对应的能源值,将非任务期数据表中晚于该时间点的数据校正后拷贝至能源数据表。
能源数据表存储星上能源值,记录星上能源消耗情况,提供任务期能源约束计算初始值,接收遥测数据校正。
改进后的模型以数据库为中心,实现能源计算、规划任务调整和能源校正功能。本节模拟卫星运行的真实场景,对模型实现的功能进行验证。
能源消耗模型需要输入卫星的规划任务时间表、卫星轨道信息和卫星能源消耗列表。载荷任务时间见表1,表中优先级数字越大表示优先级越高。轨道信息包含卫星进出地影的时间,由STK(system tool kit)软件解算输入。同时,设定卫星能源阈值为满电量的25%,如果计算中能源值低于25%,则认为卫星能源不能满足要求,规划任务需要调整。
表1 载荷任务时间表
3.2.1 规划任务调整功能验证
为验证改进模型的调整效果,首先禁用模型的任务调整功能,利用模型获取规划任务时间表和轨道信息后进行计算,计算结果与预期结果一致,计算结果如图6所示。在2017年8月16日00:25:00时,计算能源值低于设定的能源阈值,不满足能源约束的要求,由表1可见,此时卫星处于载荷任务中的dz3执行期间。
图6 禁止任务调整功能计算结果Fig.6 Result of prohibition on adjustment function
利用使能模型的任务调整功能再次进行计算,根据模型的调整策略,应对dz2和dz3进行调整。因dz2的优先级低于dz3,故模型先计算删除dz2是否满足能源需求,若满足,则dz3保留继续计算。计算结果如图7所示。
图7 调整dz2计算结果Fig.7 Result with the adjustment of dz2
为验证模型对不同优先级的优化策略,将dz2优先级设置为2,dz3优先级设置为1,重新计算得到的结果如图8所示。
图8 调整dz3计算结果Fig.8 Result with the adjustment of dz3
由图6~8可见,改进的模型能准确计算能源消耗,并在规划任务不满足能源约束条件时根据任务优先级给出调整建议,使得任务规划系统可迅速对任务进行合理调整。
3.2.2 能源校正功能验证
为验证模型的能源校正功能,针对图8所示的仿真条件,在dz2后实施能源校正,设定在2017年8月16日04:32:00时卫星能源值满,校正结果如图9所示。
图9 能源校正前后对比Fig.9 Comparison of energy adjustment
由图9可见,在收到能源值满的消息后,模型按照校正策略对能源值进行校正。从收到消息的时间点到下一次能源为满时间点之间的数据会被校正。
本文建立了一种改进的能源约束检查模型。该模型以能源数据库为中心,分为任务期计算部分、遥测校正部分、非任务期计算部分和数据库维护部分,克服了原有模型不能进行任务调整、无校正环节及能源计算时间不连续的缺点,实现了能源约束计算自动管理和任务自动调整功能。仿真结果表明:该模型能按照预期实现能源约束计算和任务调整,且能实现无人干预状态下的自动运行,具备良好的扩展性。该模型在进行能源计算时未考虑卫星整星温度变化对能源消耗的影响,特别是卫星加热制冷设备对能源消耗的影响,且在能源计算时采用单机功耗平均值进行计算,造成模型计算误差,后续需补充针对温度的补偿,并拟合单机能源消耗的实际曲线,减小计算误差。