一种综合效益优先的任务调度方法转让专利

申请号 : CN201110170079.9

文献号 : CN102298540B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王抒雁杨芳刘胜利赵键阎诚李菊芳陈盈果

申请人 : 航天东方红卫星有限公司

摘要 :

一种综合效益优先的任务调度方法,首先将任务区域划分条带,然后计算各任务的最佳观测时刻。根据当前任务与最后一个已安排任务之间的姿态机动时间,判断如果当前任务安排在最佳观测时间点与最后一个已安排任务是否冲突,如果冲突,当前任务不用前瞻且不能安排,如果不冲突,则对当前任务进行前瞻,获取前瞻结果。对于前瞻结果为保留但对后续任务有影响的任务,判断当前任务是否能安排在该当前任务的可见时间窗口内,如果不能则对下一个任务进行处理。对于能够安排在最佳观测时刻点或者可见窗口之内的当前任务写入卫星动作序列,最后输出所有任务的处理结果作为任务调度的结果。

权利要求 :

1.一种综合效益优先的任务调度方法,其特征在于步骤如下:

(1)根据相机幅宽将任务区域划分条带;

(2)根据卫星的最大俯仰角和最大滚动角以及任务条带信息计算卫星对各条带的可见时间区间[t0,tn],剔除无可见时间区间及时间区间在地影区的任务;每个条带的可见时间区间[t0,tn]由卫星对该条带四个顶点的可见时间区间[t1,t2]k,k=1,2,3,4求交集并剔除在地影区的时间区间后得到;卫星对条带单个顶点的可见时间区间由卫星的最大俯仰角和最大滚动角确定;然后按照可见时间窗口的开始时刻的先后,将所有任务排序,得到任务序列TaskList;

(3)采用弦截法计算任务序列TaskList中每个任务条带的观测持续时间Tlast,Tlast为从该条带最先观测的顶点开始到该条带最后观测的顶点结束所持续的时间;

(4)根据可见时间窗口和观测持续时间,获取各任务的最佳成像质量的观测时刻tbest;

(5)对任务序列TaskList中的任务依次进行处理,如果当前任务Task(i)是任务序列TaskList中的第一个任务,令tend=0,姿态 等于卫星的初始姿态 如果当前任务Task(i)不是任务序列TaskList中的第一个任务,可以从前一个任务的处理结果中获得最后一个已安排任务的结束时间tend,以及执行完任务后的卫星姿态 根据当前任务与最后一个已安排任务之间的姿态机动时间,判断如果当前任务安排在最佳观测时间点,与最后一个已安排任务是否冲突,如果冲突,当前任务不用前瞻且不能安排,转步骤(10);如果不冲突,转步骤(6);

(6)获取当前任务的前瞻任务组Group,判断当前任务与前瞻任务组中的任务是否存在冲突,如果不冲突,转步骤(8),如果存在冲突,转步骤(7);所述的前瞻任务组Group为任务序列TaskList中的排在当前任务之后的全部或者部分可执行任务;

(7)根据设定的规则取舍当前任务,如果当前任务被舍弃转步骤(9);如果当前任务被保留,转步骤(8);

(8)计算如果当前任务安排在其最佳观测时刻点,当前任务的下一个任务是否也能安排在该下一个任务的最佳观测时刻点,如果能,转步骤(11),如果不能,转步骤(9);

(9)判断当前任务是否能安排在该当前任务的可见时间窗口内,如果能,转步骤(11);

如果不能,转步骤(10)

(10)处理任务序列TaskList中的下一个任务,转步骤(5);若任务序列TaskList中的所有任务全部处理完毕,转步骤(12)(11)将卫星执行当前任务的姿态机动动作以及观测动作写入卫星动作序列,转步骤(10);

(12)输出卫星动作序列以及未安排的任务不能完成的原因,作为任务调度的结果。

说明书 :

一种综合效益优先的任务调度方法

技术领域

[0001] 本发明属于卫星任务规划与调度领域,涉及一种卫星任务调度方法。

背景技术

[0002] 快速姿态机动成像卫星借助快速姿态机动能力,可实现多种复杂成像模式。与采用星下点成像的传统对地观测卫星相比,快速姿态机动能力大大增加了卫星对目标的观测机会,因而具有更强的观测能力。快速姿态机动成像卫星的每一种成像模式都伴随着多个姿态机动、相机开关机等操作,这些操作形成一个前后连贯的控制指令序列。由于指令繁多,无法保证指令编排和上注的可靠性和指令执行的实时性问题,因此必须建立一套任务规划与调度系统,完成大批量观测任务的自动化分析与处理。
[0003] 为了便于快速姿态机动成像卫星的任务调度,对观测任务进行预处理,包括将任务分解为多个可以通过一次观测完成的原子任务,即分割成多个单任务条带,计算每个条带的可见时间窗口、观测持续时间、可观测机会等。
[0004] 任务调度方法是任务规划与调度系统的核心部分,由于卫星任务调度问题是一个十分复杂的组合优化问题,即使当任务数目较少,要想求得问题的最优解也是十分困难的,问题的规模通常使得完整的枚举式方法不可行,因此几乎所有的现有研究都采用了不完全算法(或近似算法),如Bensana等人在1996年和1999年发表的文章《Exact and Approximate Methods for the Daily Management of an Earth Observing Satellite》和《Earth Observing Satellite Management》中,研究了SPOT-5卫星的日常调度问题,分别比较了完全搜索算法(深度优先搜索、动态规划、Russian Doll Search)和不完全搜索算法(贪婪搜索、禁忌搜索)在不同规模问题实例下的计算性能。结果表明,当问题规模不大时,采用完全搜索算法可以较短的时间内得到一个最优解,但当问题规模较大时,采用完全搜索算法就不能在合理的时间内得到问题的解,而禁忌搜索可以在合理的时间内得到问题的一个满意解。Pemberton在2000年第2届国际空间规划与调度会议上发表的《Towards scheduling over-constrained remote sensing satellites》一文中,提出了一种对大规模问题迭代求解的方法,其基本思想是首先按照某种规则对所有的观测需求进行排序,n个一组,将所有的观测需求分组,然后按分组顺序对每组中的观测需求都采用完全算法求得最优解。在调度过程中,前面分组的调度结果将作为后面分组调度的约束条件。
[0005] 另外还有一些针对在轨卫星的应用设计的任务调度方法,如William Potter 和John Gasch在2001年发表的《A Photo Album of Earth:Sched uling LANSDAT 7 Mission Daily A ctivities》一文中,讨论了Landsat 7卫星资源调度问题的求解算法,其主要思想是在考虑长期的全球普查任务和其他任务的需求后,将卫星的任务细分到每天。日常调度问题的求解分步进行:首先计算48小时内卫星所能采集到的所有场景信息,然后基于场景选择因素对场景进行筛选,对场景的默认优先级进行调整,再按时间与优先级顺序根据固存容量排出调度方案,当固存用完时,不考虑低优先级的后续任务,只有出现高优先级的任务时才用高优先级任务取代低优先级任务。R.Sherwood等在1998年和1999年分别发表了《Using ASPEN to automate EO-1activity planning》和《Iterative planning for spacecraft operations using the ASPEN system》,采用ASPEN系统对EO-1卫星的日常活动进行任务调度和安排。ASPEN采用了一种基于修正的局部搜索算法,其基本思想是首先生成一个初始任务调度方案,然后通过调整变量取值不断消解冲突。
[0006] 现有的调度方法都存在一定的局限性,不能很好地满足实际应用需求,主要表现在:
[0007] 第一,大多数任务调度方法假设卫星的所有动作是瞬时完成的,但是卫星遥感器一般都具有一维或二维的侧摆自由度和俯仰自由度,在执行对指定地面目标的观测任务时,可以通过侧摆或俯仰一定的角度来获得更大的可见时间窗口或更好的成像质量。卫星侧摆机动或俯仰机动需要消耗不可忽略的时间,并且这个时间长度与侧摆或俯仰角度的大小以及卫星的姿态机动能力有关,传统的调度方法没有考虑卫星进行不同观测任务之间的姿态机动时间,容易造成计划与实际的脱节;
[0008] 第二,在任务的冲突判断和取舍方面,现有方法基本上以传统人工智能调度问题的表示建模技术为基础,对卫星领域进行统一建模,然后将问题转换为单一的约束规划问题,利用约束求解技术进行求解。这种方法的不足在于由于约束的复杂性而导致问题规模较大,求解难度高、时间长。例如在ASPEN系统中,由于采用的冲突识别和消解规则比较麻烦,其求解效率较低,在EO-1的应用中,每天只能对4个任务进行调度,难以满足多任务调度的要求;
[0009] 第三,现有调度方法大多同具体的应用卫星相关联,模型的设计同具体星载设备密切相关,不具有一般性和通用性。
[0010] 此外,传统的调度方法通常假设观测目标都是点目标,对任务的观测持续时间可以忽略不计。快速姿态机动成像卫星借助整星的快速姿态机动性能,可实现多种复杂的成像模式,如多条带拼接成像和连续条带成像等,快速姿态机动成像卫星面对的观测目标不仅是点目标,还包括区域目标,长条带目标等,一般来说,目标越大,需要的观测时间就越长,因此任务的观测持续时间不能再忽略,否则将导致计划与实际情况的完全脱节。传统的调度方法对于快速姿态机动成像卫星不适用,无法满足快速姿态机动成像卫星任务调度的需求。

发明内容

[0011] 本发明的技术解决问题是:克服现有技术的不足,提供了一种综合效益优先的卫星任务调度方法,可以满足快速姿态机动成像卫星任务调度的需要。
[0012] 本发明的技术解决方案是:一种综合效益优先的任务调度方法,步骤如下:
[0013] (1)根据相机幅宽将任务区域划分条带;
[0014] (2)根据卫星的最大俯仰角和最大滚动角以及任务条带信息计算卫星对各条带的可见时间区间[t0,tn],剔除无可见时间区间及时间区间在地影区的任务;每个条带的可见时间区间[t0,tn]由卫星对该条带四个顶点的可见时间区间[t1,t2]k,k=1,2,3,4求交集并剔除在地影区的时间区间后得到;卫星对条带单个顶点的可见时间区间由卫星的最大俯仰角和最大滚动角确定;然后按照可见时间窗口的开始时刻的先后,将所有任务排序,得到任务序列TaskList;
[0015] (3)采用弦截法计算任务序列TaskList中每个任务条带的观测持续时间Tlast,Tlast为从该条带最先观测的顶点开始到该条带最后观测的顶点结束所持续的时间;
[0016] (4)根据可见时间窗口和观测持续时间,获取各任务的最佳成像质量的观测时刻tbest;
[0017] (5)根据当前任务与最后一个已安排任务之间的姿态机动时间,判断如果当前任务安排在最佳观测时间点,与最后一个已安排任务是否冲突,如果冲突,当前任务不用前瞻且不能安排,转步骤(10);如果不冲突,转步骤(6);
[0018] (6)获取当前任务的前瞻任务组Group,判断当前任务与前瞻任务组中的任务是否存在冲突,如果不冲突,转步骤(8),如果存在冲突,转步骤(7);所述的前瞻任务组Group为任务序列TaskList中的排在当前任务之后的全部或者部分可执行任务;
[0019] (7)根据设定的规则取舍当前任务,如果当前任务被舍弃转步骤(9);如果当前任务被保留,转步骤(8);
[0020] (8)计算如果当前任务安排在其最佳观测时刻点,当前任务的下一个任务是否也能安排在该下一个任务的最佳观测时刻点,如果能,转步骤(11),如果不能,转步骤(9);
[0021] (9)判断当前任务是否能安排在该当前任务的可见时间窗口内,如果能,转步骤(11);如果不能,转步骤(10)
[0022] (10)处理任务序列TaskList中的下一个任务,转步骤(5);若任务序列TaskList中的所有任务全部处理完毕,转步骤(12)
[0023] (11)将卫星执行当前任务的姿态机动动作以及观测动作写入卫星动作序列,转步骤(10);
[0024] (12)输出卫星动作序列以及未安排的任务不能完成的原因,作为任务调度的结果。
[0025] 本发明与现有技术相比的优点在于:
[0026] (1)本发明方法针对快速姿态机动成像卫星的任务调度面临任务数量众多,问题规模较大的特点,采用前瞻的方式对任务进行分析比较,决定是否安排当前任务,前瞻步长由用户根据实际情况设定,不仅有效地解决了任务之间的冲突判断与取舍,而且过程简单,计算速度快,能够满足大规模优化问题对于算法时间复杂度的约束;
[0027] (2)快速姿态机动成像卫星具备多种复杂成像模式,任务之间姿态机动频繁,耗费的时间各不相同,并且观测目标的大小不一,观测持续时间也有较大差别。本发明方法根据卫星及任务的具体信息,计算出精确的任务间的姿态机动时间,再根据精确的任务观测持续时间,判断任务是否存在冲突,提高了调度的精度,满足了快速姿态机动成像卫星任务调度的需要;
[0028] (3)本发明方法适用于单条带任务和多条带任务混合的规划,具有较强的通用性;
[0029] (4)本发明方法首先将任务安排在可见时间窗口的中点,以获取最佳质量的观测图像,如果对后续任务有影响,则将该任务安排在可见时间窗口内最接近前一个已安排任务的时刻点,实现成像质量与任务数量的综合效益最大,发挥快速姿态机动成像卫星高效能的优势,并且所有模型的设计都不依赖具体的卫星,具有较强的通用性。

附图说明

[0030] 图1为本发明方法的流程图;
[0031] 图2为本发明可见时间窗口计算流程图;
[0032] 图3为本发明判断前瞻任务组与当前任务是否冲突的流程图;
[0033] 图4为本发明根据规则取舍当前任务的流程图。

具体实施方式

[0034] 如图1所示,本发明方法的流程包括:1.任务区域条带划分;2.计算卫星的位置及速度;3.计算卫星对每个任务条带的可见时间区间;4.计算对任务区域的观测持续时间;5.计算最佳观测时刻点;6.判断是否对当前任务(正在处理的任务)进行前瞻;7.判断前瞻任务组与当前任务是否存在冲突;8.根据规则取舍当前任务;9.判断当前任务是否能安排在最佳时刻点;10.计算对后续任务的影响;11.判断当前任务是否能安排在可见时间窗口内;12.判断是否安排当前任务;13.安排当前任务;14.输出任务调度结果。本发明方法的详细步骤如下:
[0035] 一、任务区域条带划分
[0036] 通常,观测任务区域通过多个顶点的经纬度描述,将这些顶点依次连接即得到任务区域。本发明中,采用如下的方法将任务区域划分为平行于卫星轨道的条带,便于卫星实施观测:
[0037] 1.从卫星星下线出发,以星下点相机幅宽(卫星侧摆角为0时的相机幅宽)为宽度,做星下线的平行线,直至覆盖任务区域;星下线即星下点(卫星位置点在地球表面上的垂直投影点)的集合;
[0038] 2.从任务区域的每个顶点做卫星星下线的垂线,并计算垂足之间的距离,记垂足之间距离最长的两个垂足分别为L1和L2,与L1对应的任务区域顶点为D1,与L2对应的任务区域顶点为D2;
[0039] 3.分别连接L1和D1,L2和D2,得到与步骤1中星下线平行线的交点,构成四边形的4个交点即组成一个任务条带,由此对任务区域进行划分;
[0040] 4.选择能够完全覆盖任务区域的一个或多个任务条带,作为任务规划与调度的基本单元。
[0041] 二、计算卫星的位置及速度
[0042] 采用对轨道动力学方程数值积分求解的方法预报限定时间段内卫星在J2000惯性坐标系下的轨道位置和速度。
[0043] 根据卫星的轨道根数,能够推算出任务调度初始时刻J2000惯性坐标系下的轨道位置Rsat和速度Vsat,再采用Cowell方法求解轨道动力学方程(选用高斯型摄动运动方程),得到限定时间段内卫星在J2000惯性坐标系下的轨道位置Rsat和速度Vsat。高斯型摄动运动方程及Cowell方法在国防工业出版社出版的《航天器轨道理论》(刘林著,2000年)一书中有详细的说明。J2000惯性坐标系定义见参考文献“地球卫星运动中坐标系附加摄动与参考系选择问题”(《空间科学学报》2008年第28卷第2期,作者刘林、汤靖师)。
[0044] 三、计算卫星对每个任务条带的可见时间区间
[0045] 对每个条带,根据第二部分得到的轨道位置Rsat和速度Vsat,计算各离散时刻点卫星指向各条带顶点的姿态角,再根据卫星姿态机动范围对各离散时刻点进行遍历,得到各条带的可见时间窗口,最后根据目标太阳高度角的计算结果,剔除在地影区的观测窗口。下面以一个条带的计算为例进行说明。
[0046] 1.根据J2000坐标系下的轨道位置Rsat和速度Vsat,计算限定时间段内各时刻点卫星指向条带各顶点的姿态角。下面仅以一个点的计算为例进行说明。已知卫星的轨道位置Rsat、速度Vsat,地面目标点的大地经纬度 及协调世界时UTC时间t。首先根据目标点的大地经纬度,计算出t时刻目标点在J2000惯性坐标系下的位置矢量RT,f(t),然后根据RT,f(t)与卫星t时刻的位置矢量Rsat,得到t时刻卫星指向该目标点的姿态角。具体步骤如下:
[0047] 将地面目标点大地经纬度转化为地心经纬度 计算公式为:
[0048] λc=λd,
[0049] 其中 表示地球扁率,然后计算目标点地心距:
[0050]
[0051] Re=6378.140km,为地球赤道半径。
[0052] 根据UTC时间计算地固坐标系到J2000惯性坐标系的转换矩阵Rif(t),计算方法在国防工业出版社出版的《航天器轨道理论》(刘林著,2000年)中有详细描述。通过坐标变换,得到目标点在J2000惯性坐标系下的位置矢量:
[0053]
[0054] Rx(α)、Ry(α)、Rz(α)分别表示绕x、y、z轴旋转的基元变换矩阵:
[0055]
[0056] 然后计算J2000惯性坐标系下卫星指向地面目标点的矢量:
[0057] Rf(t)=RT,f(t))-Rsat
[0058] 将矢量Rf(t)由J2000惯性坐标系变换到卫星轨道坐标系:
[0059]
[0060] 其中,Roi表示J2000惯性坐标系到卫星轨道坐标系的转换矩阵。上述地固坐标系定义、卫星轨道坐标系定义及J2000惯性坐标系到卫星轨道坐标系的变换推导见北京航空航天大学出版社出版的《卫星轨道姿态动力学与控制》(章仁为编著,1998年)。
[0061] 偏航角为0时,根据姿态欧拉角之间几何关系,得到卫星对目标的观测姿态角(转序为312):
[0062]
[0063] 上式中yaw(t)、roll(t)和pitch(t)分别表示卫星指向目标点的姿态角中时间t与偏航角、滚动角和俯仰角的对应关系。
[0064] 2.根据卫星姿态机动范围和步骤1得到的各时刻点卫星指向条带各顶点的姿态角,计算卫星对条带各顶点的可见时间区间[t1,t2]k,k=1,2,3,4。
[0065] 卫星对目标的观测受限于卫星的姿态机动能力,因此只有当卫星指向目标的姿态在卫星的姿态机动范围内,才能执行观测任务。对于第k个顶点, T表示限定的时间范围,如果对应姿态角[yaw roll pitch]满足|roll|≤rollmax,|pitch|≤pitchmax,其中rollmax、pitchmax表示卫星最大滚动角和最大俯仰角,则t∈[t1,t2]k,即[t1,t2]k为满足上述条件的t的集合。计算流程如图2所示。
[0066] 3.根据卫星对条带各顶点的可见时间区间[t1,t2]k,k=1,2,3,4,计算卫星对条带的可见时间区间[t0,tn]。
[0067] 对卫星对各顶点的可见时间区间[t1,t2]k,k=1,2,3,4求交集,即得到卫星对条带的可见时间区间[t0,tn]。
[0068] 4.根据地面太阳高度角计算结果,剔除在地影区的时间区间。
[0069] 通常情况下步骤3计算得到的可见区间[t0,tn]存在多个解,其中部分可见区间在地影区内,无法满足光学相机的成像条件,应予以剔除。
[0070] 对步骤3得到的可见区间[t0,tn],从其中任选一点,计算该时刻点观测目标的太阳高度角ε,如果ε<0,则该点在地影区内,予以剔除,否则保留。
[0071] 太阳高度角与时间有关,计算过程见宇航出版社出版的《航天器飞行动力学原理》(肖业伦编著,1995年)。
[0072] 5.得到所有任务区域的可见时间窗口[t0,tn]后,按照此窗口的开始时刻t0的先后,将所有任务排序,得到按时间顺序排列的任务序列TaskList。
[0073] 四、计算每个任务条带的观测持续时间
[0074] 条带的观测持续时间,即从开始观测到结束观测的持续时间,取决于条带的长短。对一个多条带任务,由于所有条带的长度相等,因此只需任选一个条带计算,即能得到所有条带的观测持续时间。对每个条带,首先根据第三部分的步骤1得到的卫星指向各顶点的姿态角,再采用弦截法计算条带的开始观测时间和结束观测时间,得到条带的观测持续时间,最后判断条带的可见时间窗口是否能包含条带的观测持续时间,如果不能,则该任务不能执行。下面以一个条带为例进行说明:
[0075] 1.根据第三部分的步骤1得到的各时刻点卫星指向条带各顶点的姿态角,在第三部分的步骤2得到的[t1,t2]k,k=1,2,3,4内,采用弦截法计算俯仰角为0时,卫星指向条带各顶点的时间。
[0076] 卫星对目标的可见时间由卫星的姿态机动能力决定,卫星在轨运动过程中,对固定目标的观测俯仰角由正的最大值变化为0,再由0变为负的最大值,也即在顶点k的可见时间区间[t1,t2]k上,卫星在第一点t1的俯仰角为rollmax,在最后一点t2的俯仰角为-rollmax,因此区间[t1,t2]k内必有卫星俯仰角为0的时刻点,即当Pitch(t1)·Pitch(t2)<0时, 且满足Pitch(tp)=0,采用弦截法即可得到tp。
[0077] 弦截法(也称割线法)是求解复杂非线性方程常用的一种数值解法,其优点在于收敛速度较快,收敛速度的阶至少为1.618,且避免了牛顿法需计算函数导数的不足。弦截法在北京航空航天大学出版社出版的《数值分析》(颜庆津编著,2000年)一书中有详细的说明。
[0078] 2.由于卫星对条带的观测必定开始于某个顶点,也结束于某个顶点,因此根据卫星对各顶点的可见时间,能够确定卫星对条带的开始观测时间和结束观测时间。
[0079] 将tp按照先后顺序排序,记最早的时间为Tstart,最晚的时间为Tend,分别表示条带的开始观测时间以及结束观测时间。
[0080] 3.根据下式计算条带的持续观测时间
[0081] Tlast=Tend-Tstart
[0082] 五、计算最佳观测时刻点tbest
[0083] 根据条带划分结果,任务分为单条带和多条带任务,对于单条带任务,根据下面的步骤(一)计算最佳观测时刻点,对于多条带任务,根据步骤(二)采用迭代法计算最佳观测时刻点。
[0084] (一)计算单条带任务的最佳观测时刻点
[0085] 卫星对指定目标的可观测时间区间取决于卫星的侧摆和俯仰机动能力,在整个可观测时间区间内,成像质量呈现先上升后下降的趋势,在可观测时间区间的中点达到最高。因此对于单条带任务,对条带中点的观测时刻与可观测时间区间的中点重合时成像质量最佳,即
[0086]
[0087] 于是有
[0088]
[0089] (二)迭代法计算多条带任务的最佳观测时刻点
[0090] 对于多条带任务,取所有条带的可观测时间区间的并集,作为整个任务的可观测时间,同样记为[t0,tn]。以可观测时间区间的起始点t0为初始解,计算条带间的姿态机动时间以及整个任务的执行时间,然后采用迭代法计算任务的最佳观测时刻点,具体步骤如下:
[0091] 1.令任务的开始观测时刻tb0=t0;
[0092] 2.根据tb0计算条带间的姿态机动时间tmi,i=1,…,N-1,N为条带的个数,tmi为条带i与条带i+1之间的姿态机动时间。下面仅以条带1和条带2之间的姿态机动时间的计算为例进行说明。
[0093] 条带1的开始观测时间即为任务的开始观测时刻tb0,首先根据条带1的观测持续时间Tlast1,得到卫星观测完条带1的时刻tend1,再计算tend1时刻卫星观测完条带1的姿态作为姿态机动的起始姿态,通过迭代得到条带1与条带2之间的姿态机动时间,具体步骤如下:
[0094] (1)为姿态机动时间 设置一个经验值;
[0095] (2)记 tend1为条带1的观测结束时间
[0096] tend1=tb0+Tlast1
[0097] 根据第二部分的结果得到t时刻卫星的轨道位置Rsat和速度Vsat;
[0098] (3)根据卫星t时刻在J2000坐标系下的轨道位置、速度计算t时刻卫星指向条带2第一个可观测顶点的姿态角 具体计算方法同第三部分步骤1;
[0099] (4)计算 时间内卫星姿态机动的欧拉转动角ΔΩ。
[0100] 已知卫星观测完条带1的姿态角 和卫星开始观测条带2的姿态角可以得到这两个矢量间的欧拉角,即卫星在 时间内的欧拉转动角ΔΩ,方法如下:
[0101] 令
[0102]
[0103] 矢量V1与V2的点积即为欧拉转动角ΔΩ的余弦值,因此可根据下式得到ΔΩ:
[0104]
[0105] (5)基于卫星姿控能力曲线(Timei,Al),i=1,2,3,…,采用线性插值方法计算*卫星姿态机动 时间后的欧拉转动角的变化值ΔΩ ;
[0106] (6)记ε为设定的容许误差,令 若 转(7);若即为所求的姿态机动时间,迭代结束;
[0107] (7)采用牛顿法求解方程 转步骤(2)。牛顿法在北京航空航天大学出版社出版的《数值分析》(颜庆津编著,2000年)一书中有详细的说明。
[0108] 3.根据下式计算整个任务的观测执行时间T,包括所有条带的观测持续时间以及条带间的姿态机动时间,
[0109]
[0110] 其中N为任务包含的条带数,为条带i和条带i+1之间的姿态机动时间;
[0111] 4.根据下式计算tb1,tb1为任务的观测执行时间为T时,对应的观测开始时刻,[0112]
[0113]
[0114] 5.计算Δt=tb1-tb0,如果Δt≤σt,σt为许可的计算误差,终止迭代,最佳观测时间tbest=tb1,否则,令tb0=tb1,转步骤2。
[0115] 六、判断是否对当前任务进行前瞻
[0116] 对任务序列TaskList中的任务依次进行处理。如果当前任务Task(i)是任务序列TaskList中的第一个任务,令tend=0,姿态 等于卫星的初始姿态 (输入值);如果当前任务Task(i)不是任务序列TaskList中的第一个任务,可以从前一个任务的处理结果中获得最后一个已安排任务的结束时间tend,以及执行完任务后的卫星姿态[0117] 根据当前任务与最后一个已安排任务之间的姿态机动时间,判断与最后一个已安排任务是否冲突,如果冲突,当前任务不用前瞻且不能安排,将当前任务标记为“与已安排任务冲突”,转第十二部分;如果不冲突,转第七部分。
[0118] 前瞻的目的是为了在考虑当前任务时,预先考虑其对后续观测任务的影响和可能发生的冲突,以提高效率。
[0119] 具体步骤如下:
[0120] 1.计算任务间的姿态机动时间tm
[0121] 计算方法与第五部分(二)中计算条带间的姿态机动时间相同。
[0122] 2.判断当前任务是否与已安排任务冲突
[0123] 记t=tend+tm,根据t与最佳观测时刻tbest的关系,判断当前任务与最后一个已安排任务是否冲突。
[0124] (1)如果t≤tbest,当前任务与已安排任务不冲突,转第七部分;
[0125] (2)如果t>tbest,当前任务与已安排任务冲突,将当前任务标记为“与已安排任务冲突”,转第十二部分。
[0126] 七、判断前瞻任务组与当前任务是否存在冲突
[0127] 前瞻任务组是根据任务的密集程度、算法的执行效率等综合考虑,从任务序列TaskList中选取当前任务之后一定数量(称为前瞻步长M)的任务组成的任务组,用来与当前任务进行比较,减少可能的冲突。
[0128] 流程如图3所示,具体步骤如下:
[0129] 1.设置前瞻步长M,从任务序列TaskList中获取当前任务Task(i)后的M个任务,放入前瞻队列Group中;
[0130] 2.对前瞻队列中的任务Group(k),k=1,…,M,执行:
[0131] (1)判断Group(k)与Task(i)是否冲突,具体方法与第六部分中判断当前任务与最后一个已安排任务是否冲突的方法一致(视Task(i)为最后一个已安排任务)。如果冲突转(2);如果不冲突且k≠M,令k=k+1转2,k=M转第九部分;
[0132] (2)判断Group(k)与已安排的最后一个任务是否冲突,具体方法与第六部分中判断当前任务与最后一个已安排任务是否冲突的方法一致。如果不冲突,转第八部分,如果冲突则Group(k)不能安排,令k=k+1,转2。
[0133] 八、根据规则取舍当前任务
[0134] 根据任务冲突时的取舍规则,将Task(i)与Group(k)进行比较,确定是否安排当前任务,具体规则根据需要制定,例如,先安排优先级高的任务,然后安排剩余观测机会较少的任务,再安排观测持续时间较短的任务,等等。优先级是任务调度的输入参数,可观测机会和观测持续时间等来源于预处理。下面以上述规则为例,如图4所示,说明如何取舍任务:
[0135] 1.比较Group(k)与Task(i)的优先级PRI(Group(k))和PRI(Task(i)):
[0136] (1)如果PRI(Group(k))>PRI(Task(i)),则Task(i)不能安排,被标记为“时间冲突无法完成”,转第十二部分;
[0137] (2)如果PRI(Group(k))<PRI(Task(i)),需要比较k和M的大小,如果k<M,令k=k+1,转步骤七的2,如果k=M,转第九部分;
[0138] (3)如果PRI(Group(k))=PRI(Task(i)),转2;
[0139] 2.比较Group(k)与Task(i)的观测持续时间:
[0140] (1)如果Tlast(Group(k))<Tlast(Task(i)),Task(i)不能安排,被标记为“时间冲突无法完成”,转第十二部分;
[0141] (2)如果Tlast(Group(k))>Tlast(Task(i)),且k<M,令k=k+1,转第七部分的2,如果k=M,转第九部分;
[0142] (3)如果Tlast(Group(k))=Tlast(Task(i)),在两个任务中任选一个作为被舍弃者,如果Task(i)被选中,则将其标记为“时间冲突无法完成”,转第十二部分,如果Group(k)被选中,如果k<M,令k=k+1,转第七部分的2,如果k=M,转第九部分;
[0143] 九、判断当前任务是否能安排在最佳时刻点
[0144] 如果当前任务不能安排在最佳观测时刻点,转第十一部分;如果当前任务能安排在最佳时刻点,令tbegin=tbest,转第十部分;
[0145] 十、计算对后续任务的影响
[0146] 计算如果当前任务Task(i)安排在最佳观测时刻点tbest,下一个任务Task(i+1)是否也能安排在其最佳观测时刻点。
[0147] 1.计算当前任务Task(i)与Task(i+1)间的姿态机动时间tm′,具体方法同第六部分的1,令tend′=tbest+Tob, 替代其中的tend和
[0148] 2.判断Task(i+1)是否与Task(i)冲突
[0149] 记t′=tbest+tob+tm′,根据t′与Task(i+1)的最佳观测时刻tbest′的关系,判断Task(i+1)与Task(i)是否冲突。
[0150] (1)如果t′≤tbest′,Task(i+1)与Task(i)不冲突,转第十二部分;
[0151] (2)如果t′>tbest′,Task(i+1)与Task(i)冲突,转第十一部分。
[0152] 十一、判断当前任务是否能安排在可见时间窗口内
[0153] 记t=tend+tm(tm为第六部分的1的计算结果),根据t与t0,判断当前任务与最后一个已安排任务是否冲突,然后转第十二部分:
[0154] 1.如果t≤t0,当前任务与已安排任务不冲突,令tbegin=t0;
[0155] 2.如果t0≤t≤t+tlast≤tn,当前任务与已安排任务不冲突,令tbegin=t;
[0156] 3.如果t0≤t≤tn<t+tlast当前任务与已安排任务冲突,将当前任务标记为“与已安排任务冲突”;
[0157] 4.如果tn≤t,当前任务与已安排任务冲突,将当前任务标记为“与已安排任务冲突”。
[0158] 十二、判断是否安排当前任务
[0159] 如果当前任务被标记,转处理任务序列TaskList中的下一个任务,转第六部分;如果当前任务未被标记,转第十三部分。
[0160] 十三、安排当前任务
[0161] 对于单条带任务,观测结束时刻te=tbegin+Tlast,对于多条带任务,观测结束时刻te=tbegin+tm′+Tlast,tm′为当前任务的条带间的姿态机动时间之和,具体计算方法同第六部分的1。
[0162] 以最后一个已安排任务的结束时间tend为卫星执行当前任务的姿态机动开始时刻,以当前任务的观测时刻tbegin为观测开始时刻,将卫星执行当前任务的姿态机动动作以及观测动作写入卫星动作序列:tend至tend+tm之间卫星进行姿态机动,达到目标姿态然后在tbegin时刻开始观测,在te时刻结束观测。
[0163] 十四、输出任务调度结果
[0164] 处理完任务序列TaskList中的所有任务后,输出卫星动作序列以及被标记的任务不能完成的原因,作为任务调度的结果。
[0165] 实施例
[0166] 考虑一颗运行于太阳同步圆轨道的快速姿态机动成像卫星,历元时刻2009年7月26日00:00:00.000UTC瞬根数为半长轴7051.2km,轨道倾角97.3087°,升交点赤经249.758°,纬度辐角0°。卫星姿态机动范围为俯仰方向和滚动方向±45°,姿控能力为
0°/15s,15°/25s,30°/35s,45°/45s。
[0167] 目标的地理经纬度信息如表1所示,每个目标的四个顶点的经度和纬度按次序一一对应。
[0168] 表1目标地理经纬度
[0169]
[0170] 综合效益优先的任务调度方法步骤如下:
[0171] (1)任务区域条带划分
[0172] 根据相机幅宽、任务区域的经纬度及卫星星下点,对任务区域进行条带划分,划分结果如表2所示。
[0173] 表2任务区域条带划分结果
[0174]
[0175]
[0176] (2)计算可见时间窗口
[0177] 根据卫星轨道根数,推算2009年7月26日00:00:00.000UTC至2009年7月27日00:00:00.000UTC时间段内卫星在J2000坐标系下的轨道位置、速度,然后计算各整秒时刻卫星对各任务的观测角度。根据卫星姿态机动范围,得到卫星与任务的可见窗口,计算结果如表3所示。
[0178] 表3任务的可见时间窗口
[0179]任务序号 可见开始时刻t0 可见结束时刻tn
1 03:51:26.397 03:54:51.815
2 03:55:14.229 03:58:37.684
3 03:56:09.833 03:59:35.814
4 03:56:18.049 03:59:43.984
5 03:56:28.176 03:59:51.465
6 03:56:57.775 04:00:22.775
7 03:51:41.532 03:55:08.828
8 03:52:11.926 03:55:36.956
9 03:54:10.381 03:57:36.511
10 03:57:16.509 04:00:39.41
[0180] 按照可见时间窗口的开始时刻排列的任务序列TaskList为:1,7,8,9,2,3,4,5,6,10。
[0181] (3)计算任务的观测持续时间
[0182] 根据卫星指向任务的姿态角,采用弦截法得到任务的观测持续时间,结果如表4所示。
[0183] 表4观测持续时间
[0184]任务序号 观测持续时间tlast(s)
1 1.944
2 29.807(4条带)
3 28.194(4条带)
4 32.359(4条带)
5 6.825(2条带)
6 1.775
7 0.848
8 9.875(2条带)
9 4.734(2条带)
10 14.338(3条带)
[0185] (4)计算最佳观测时刻点
[0186] 根据任务的可见时间窗口和观测持续时间,计算任务的最佳观测时刻点,结果如表5所示。
[0187] 表5最佳观测时刻
[0188]任务序号 最佳观测时刻tbest
1 03:53:08.134
2 03:56:56.062
3 03:57:01.473
4 03:57:07.111
5 03:59:21.252
6 03:58:39.388
7 03:53:24.756
8 03:53:17.620
9 03:55:39.008
10 03:58:58.466
[0189] (5)依次对任务序列TaskList中的任务进行处理
[0190] 下面以3号任务作为当前任务,说明本发明方法的具体流程。
[0191] (6)判断是否对当前任务进行前瞻
[0192] 按照TaskList序列的顺序,已对1号、7号、8号、9号和2号任务进行了处理,从前面的处理结果中获得最后一个已安排任务是2号任务,其观测结束时间tend=03:56:58.646,观测结束时卫星姿态
[0193] 根据2号任务的观测结束时间和姿态,计算卫星从 姿态机动到观测3号任务的姿态机动时间tm=29.677s。
[0194] 由于t=tend+tm=03:57:28.323,t≤tbest因此3号任务与2号任务不冲突,转步骤(7)。
[0195] (7)判断前瞻任务组与当前任务是否存在冲突,并根据规则取舍当前任务[0196] 设置前瞻步长M=3,前瞻任务组由4号、5号和6号任务组成。
[0197] 第一步,将4号任务与3号任务进行比较。3号任务的观测结束时间tend=03:58:51.252,观测结束姿态 3号任务与4号任务之间的姿态机
动时间tm=15.61s,对于4号任务,t=tend+tm=03:59:06.862,t0≤t≤tn<t+tlast,因此3号任务与4号任务冲突。根据相同的方法判断,4号任务与2号任务不冲突,因此必须根据规则在3号任务和4号任务之间进行取舍。根据规则的顺序,3号任务与4号任务的优先级相同,可观测机会也相同,3号任务的观测持续时间小于4号任务,因此舍弃4号任务。
[0198] 第二步,将5号任务与3号任务进行比较。3号任务的观测结束时间tend=03:58:51.252,观测结束姿态 3号任务与5号任务之间的姿态机
动时间tm=15.63s,对于5号任务,t=tend+tm=03:59:06.882,t0≤t<t+tlast≤tn,因此3号任务与5号任务不冲突。
[0199] 第三步,将6号任务与3号任务进行比较。3号任务的观测结束时间tend=03:58:51.252,观测结束姿态 3号任务与6号任务之间的姿态机
动时间tm=16.08s,t=03:59:07.332,t0≤t<t+tlast≤tn,3号任务与6号任务不冲突。
[0200] (8)判断当前任务是否能安排在最佳时刻点
[0201] 3号任务未被标记,可以安排,令tbegln=tbest=03:57:01.473,转下一步。
[0202] (9)计算对后续任务的影响
[0203] 任务序列TaskList中的下一个任务是4号任务。计算如果3号任务安排在最佳观测时刻点tbest,3号任务和4号任务间的姿态机动时间tm′=15.61s,4号任务的最佳观测时刻tbest′=03:57:07.111,tbest+tlast+tm′>tbest′,3号任务与4号任务冲突,转下一步。
[0204] (10)判断当前任务是否能安排在可见时间窗口内
[0205] 根据步骤(3),2号任务与3号任务之间的姿态机动时间tm=29.677s。
[0206] 由于t=tend+tm=03:57:28.323,t0≤t≤t+tlast≤tn,因此3号任务与2号任务不冲突,可以安排在可见时间窗口内,tbegin=t,转下一步。
[0207] (11)判断是否安排当前任务
[0208] 3号任务未被标记,可以安排,转下一步。
[0209] (12)安排当前任务
[0210] 3号任务是一个4条带任务,计算得到条带间的姿态机动时间分别为:28.56s,27.249s和23.582s,因此tm′=79.391s,观测结束时刻te=ts+tm′+tlast=
03:59:15.908。
[0211] 以tend=03:56:58.646为卫星执行3号任务的姿态机动开始时刻,ts=03:57:28.323为观测开始时刻,将卫星执行当前任务的姿态机动动作以及观测动作写入卫星动作序列:03:56:58.646至03:57:28.323之间卫星进行姿态机动,达到目标姿态然后在03:57:28.323时刻开始观测,在03:59:15.908时刻结束观
测。
[0212] (13)输出任务调度结果
[0213] 处理完任务序列TaskList中的所有任务后,输出卫星动作序列(如表6所示),以及被标记的任务不能完成的原因(如表7所示),作为任务调度的结果。
[0214] 表6卫星动作序列
[0215]
[0216] 表7无法完成的任务
[0217]任务序号 无法完成的原因
4 “时间冲突无法完成”
5 “时间冲突无法完成”
6 “时间冲突无法完成”
[0218] 本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。