本发明属于雷达技术领域,更进一步涉及一种逆合成孔径雷达isar资源调度方法,可用于在有限的观测时间内,利用有限的雷达资源对多个目标进行成像。
背景技术:
在面对多个isar成像任务的情况下,由于雷达资源有限,isar需要为各个成像任务留出大量雷达资源,这将导致成像任务的成功执行率较低。isar成像资源调度方法在压缩感知理论指导下将慢时间上的连续观测转化为随机稀疏观测,使用稀疏重构的方法进行isar成像,以此降低成像任务占用的雷达资源,对成功调度目标交替发射和接收脉冲,从而增加了雷达时间资源利用率,提高了成像任务的成功执行率。
陈怡君等人在其发表的论文“基于认知isar成像的相控阵雷达资源自适应调度算法”(电子与信息学报第36卷第7期2014年)中阐述了一种基于稀疏孔径认知isar成像的雷达资源自适应调度方法。该方法步骤如下:1、发射少量脉冲对目标特征进行认知;2、确定成像任务的成像积累时间和优先级;3、按照优先级对成像任务排序,按照各个成像任务的排序结果,依次寻找满足资源调度约束条件的调度结果。该方法虽然提出了一种认知isar成像资源调度方法,但是,该方法仍然存在的不足之处是:优先调度优先级高的成像任务可能使得后续多个低优先级成像任务调度失败,导致任务成功执行率低。
孟迪等人在其发表的论文“基于脉冲交错的isar成像雷达资源自适应调度算法”(空军工程大学报第18卷第2期2017年)中阐述了一种基于稀疏孔径认知isar成像的雷达资源自适应调度方法。该方法步骤如下:1、对目标发射少量脉冲进行特征初始认知;2、确定成像任务优先级与成像任务所需方位向观测观测维度;3、按优先级排列符合要求的调度任务,在调度间隔内分配成像任务的时间资源。该方法由于未考虑雷达发射机瞬时能量损耗约束,且在资源调度的过程中对isar成像任务的脉冲发射时刻在慢时间网格上随机取值,导致了任务成功执行率低,成功调度isar成像任务的集合的评价值不稳定。
技术实现要素:
本发明的目的是针对现有技术的不足,提出一种基于遗传算法的isar资源调度方法,以随机生成调度序列并使用遗传算法求解最优调度序列,提高任务成功执行率,并使用基于遗传算法的子脉冲选择方法求解最优子脉冲发射时刻序列,提高调度成功率低和成功isar成像任务的集合的评价值的稳定性。
实现本发明目的的具体步骤包括如下:
(1)生成调度序列并初始化遗传算法参数:
(1a)将isar成像任务序列[1,2,······,k]进行随机排列,生成n个不同的调度序列,其中,k表示isar成像任务的总数,n表示在[30,100]之间选取的一个偶数值;
(1b)初始化遗传算法的遗传数设置为1,遗传代数为15;
(2)计算每个调度序列的评价值:
(2a)从n个调度序列中依次选取未选过的一个调度序列作为当前调度序列;
(2b)利用启发-遗传算法进行资源调度,分别得到当前调度序列的成功调度isar成像任务集合an、成功调度任务脉冲的发射时刻序列tn及评价值en;
(2c)判断n个调度序列中是否存在未选取的调度序列,若是,则返回(2a),否则,执行(3);
(3)更新调度库:
(3a)判断调度库是否为空集,若是,则执行(3b),否则,执行(3c);
(3b)在调度库中存入n个调度序列及每个调度序列的an、tn、en;
(3c)更新调度库中的调度序列、调度序列的评价值ed、成功调度isar成像任务集合ad、成功调度任务脉冲的发射时刻序列td;
(4)计算每个调度序列的适应度值:
(4a)更新每个调度序列的评价值;
(4b)按照下式,计算更新后的每个调度序列的适应度值:
其中,ui表示更新后第i个调度序列的适应度值,fi表示更新后第i个调度序列的评价值,fmax表示更新后n个调度序列评价值中的最大值,fmin表示更新后n个调度序列评价值中的最小值;
(5)对更新后每个调度序列进行编码:
(5a)从更新后n个调度序列中,依次选取一个未选过的调度序列,作为当前调度序列;
(5b)从当前调度序列中,依次选取一个未选过的isar成像任务,将所选isar成像任务在任务列表中的位置序号,作为基因序列中与所选isar成像任务对应的码字,同时从任务列表中删去所选的isar成像任务;
(5c)判断当前调度序列中是否选完所有的isar成像任务,若是,则执行(5d),否则,返回(5b);
(5d)判断更新后的n个调度序列中是否选完所有的调度序列,若是,则执行(6),否则,返回(5a);
(6)利用单点交叉方法,对n个基因序列的码字进行基因交叉;
(7)对每个交叉后基因序列进行基因解码得到调度序列;
(8)利用自适应变异方法与调度序列,对每个交叉后基因序列的码字进行基因变异:
(9)对每个变异后基因序列进行解码,完成本次遗传;
(10)判断遗传数是否小于遗传算法的终止数,若是,将遗传数加1后返回(2),否则,执行(11);
(11)利用启发-遗传算法进行资源调度,计算出每个解码后调度序列的评价值,更新调度库;
(12)输出调度库中评价值最高的调度序列及成功调度任务脉冲发射时刻序列作为调度结果。
本发明与现有技术相比具有以下优点:
第一,由于本发明随机生成若干调度序列,使用遗传算法求解最优调度序列,克服了现有技术以isar成像任务优先级进行排序为调度序列,导致isar成像任务调度成功率降低问题,提高了isar成像任务的调度成功率。
第二,由于本发明通过更新调度库,克服了现有技术只以一个确定调度序列为顺序依次进行isar成像资源调度,导致调度序列的评价值不稳定的问题,提高了调度序列评价值的稳定性。
第三,由于本发明利用基于遗传算法的子脉冲选择方法调度发射任务,克服了现有技术在慢时间网格上随机取脉冲发射时刻,导致调度序列不稳定和isar成像任务调度成功率降低的问题,提高了调度序列评价值的稳定性和isar成像任务调度成功率。
附图说明
图1为本发明的实现流程图;
图2为本发明中基于启发-遗传算法进行资源调度的子流程图;
图3为本发明中基于遗传算法进行子脉冲选择的子流程图;
图4为用现有技术进行资源调度的调度序列评价值图;
图5为本发明进行资源调度的调度序列评价值图;
图6为分别用本发明与现有技术进行资源调度的isar成像任务调度成功率对比图。
具体实施方式
下面结合附图对发明的实施例及效果做进一步描述。
参照图1,对本发明的具体步骤如下:
步骤1,生成调度序列。
将isar成像任务序列[1,2,······,k]进行随机排列,生成n个不同的调度序列,其中,k表示isar成像任务的总数,n表示在[20,100]之间选取的一个整数值。
将初始化遗传算法的遗传数设置为1。
步骤2,计算每个调度序列的评价值en、成功调度isar成像任务集合an、成功调度任务脉冲的发射时刻序列tn。
2a)从n个调度序列中依次选取未选过的一个调度序列作为当前调度序列;
2b)利用启发-遗传算法进行资源调度,分别得到当前调度序列的成功调度isar成像任务集合an、成功调度任务脉冲的发射时刻序列tn及评价值en:
参照图2,本步骤的具体实现如下:
2b1)从当前调度序列中,依次选取一个未选过的isar成像任务;
2b2)将所选isar成像任务的期望执行时刻ek,作为所选isar成像任务中第一个脉冲的发射时刻;
2b3)判断max(t0,dk)≤ek≤min(dk+wk,t0+t-tk)是否成立,若是,则执行2b4),否则,执行2b11),其中:
t0表示在资源调度时间[t0,t0+t]内isar对每个isar成像任务进行资源调度的起始时刻;t表示isar对每个isar成像任务进行资源调度的时间长度;dk表示第k个isar成像任务中第一个脉冲的发射时刻,wk表示第k个isar成像任务的时间窗;tk表示第k个isar成像任务的积累时间,即isar成像任务对待成像的isar目标进行方位向观测的时间长度;
2b4)按照下式,计算所选isar成像任务中一个脉冲所占用的时间资源:
[ik,ik+xk]∪[ik+xk+wk,ik+xk+wk+rk],
其中,ik表示第k个isar成像任务中一个脉冲的发射时刻,xk表示第k个isar成像任务的脉冲发射期;∪表示对集合求并集;wk表示第k个isar成像任务的脉冲等待期;rk表示第k个isar成像任务的脉冲接收期;
2b5)判断所选isar成像任务中第一个脉冲所占用的时间资源是否与当前成功调度isar成像任务集合中所有isar成像任务占用时间资源交集是否为空集,若是,则执行2b6),否则,执行2b8),该当前成功调度isar成像任务的集合,包含当前已成功调度的isar成像任务,该占用时间资源是指isar成像任务所有脉冲占用的时间资源的并集;
2b6)以所选isar成像任务中第一个脉冲发射时刻为起始时刻,以所选isar成像任务的积累时间为时间长度,以所选isar成像任务的脉冲重复周期为时间间隔,生成所选isar成像任务中连续观测下的除第一个脉冲外所有脉冲的发射时刻,取所得的发射时刻中满足同一时刻不能执行多个任务这一约束条件的发射时刻list,该约束条件,是指按照下式,以该发射时刻生成时间区间:
[c,c+xk]∪[c+xk+wk,c+xk+wk+rk],
其中,c为该发射时刻。所得的时间区间与成功调度isar成像任务集合中所有isar成像任务占用的时间资源的交集应为空集;
2b7)判断满足发射时刻list的个数是否小于所选isar成像任务的方位向观测维度减1,若是,则执行2b8),否则,执行2b9);
2b8)将所选isar成像任务中第一个脉冲的发射时刻以一个步长时间1×10-4s延后,返回2b3);
2b9)对发射时刻list采用基于遗传算法的子脉冲选择方法进行选择得到脉冲发射时刻序列,选择的个数要比所选isar成像任务的方位向观测维度少一个:
参照图3,本步骤的具体实现如下:
2b9.1)将发射时刻list[1,2,······,q-2]进行随机排列,生成l个不同的脉冲发射时刻序列,其中,q表示发射时刻list中发射时刻的总数,l为在[30,100]之间选取的一个偶数值,将初始化遗传算法的遗传数设置为1,遗传代数为15;
2b9.2)计算当前脉冲发射时刻序列评价值:
第一步,从l个发射时刻序列中依次选取未选过的一个脉冲发射时刻序列作为当前脉冲发射时刻序列;
第二步,将当前成功调度isar成像任务集合中每一个isar成像任务的优先级求和,将所得的和作为当前脉冲发射时刻序列的优先级和y1;
第三步,将当前成功调度isar成像任务集合中任务个数除以isar成像任务的总数,将所得的商作为当前脉冲发射时刻序列的调度成功率y2;
第四步,计算当前脉冲发射时刻序列的雷达发射机最大瞬时能量损耗y3:
4.1)按照下式,计算isar的能量消耗函数的第一个局部最大值e1:
e1=-piτexp(-xi/τ)+piτ,
其中,pi表示排序后脉冲的第一个脉冲发射的峰值功率,τ表示isar系统本身的回退参数;xi表示排序后的第一个脉冲的发射期;
4.2)判断isar的能量消耗函数的第一个局部最大值是否小于等于isar系统本身的能量阈值,若是,则执行第c步,否则,令isar的能量消耗函数最大值y3为100,执行第f步,;
4.3)按照下式,计算isar的能量消耗函数的下一个局部最大值es+1:
es+1=exp[((ts+xu)-(ts+1+xv))/τ]es+τpv[1-exp(-ts+1/τ)],
其中,ts表示排序后的第s个脉冲的发射时刻,xu表示排序后第s个脉冲的发射期,ts+1表示排序后的第s+1个脉冲的发射时刻,xv表示排序后第s+1个脉冲的发射期,es表示isar的能量消耗函数的第s个局部最大值,pv表示排序后第s+1个脉冲发射的峰值功率;
4.4)判断es+1是否小于等于isar系统本身的能量阈值,若是,则执行4.5),否则,令isar的能量消耗函数最大值y3为100,执行4.6);
4.5)判断是否计算到isar的能量消耗函数的最后一个局部最大值,若是,则从所有局部最大值中选出最大的一个值作为isar的能量消耗函数的最大值y3,否则,返回4.3);
4.6)输出isar的能量消耗函数最大值y3;
第五步,计算当前脉冲发射时刻序列的评价值:
fl=b1y1+b2y2+b3y3,
其中,b1表示y1的权值,b2表示y2的权值,b3表示y3的权值,取b1为0.4,b2为0.2,b3为0.4;
第六步,判断l个脉冲发射时刻序列中是否存在未选取的脉冲发射时刻序列,若是,则返回第一步,否则,执行2b9.3);
2b9.3)更新发射时刻调度库的脉冲发射时刻序列及评价值:
第1步,判断发射时刻调度库是否为空集,若是,则执行第2步,否则,执行第3步;
第2步,将l个脉冲发射时刻序列和每个脉冲发射时刻序列的评价值,存入到发射时刻调度库中;
第3步,更新发射时刻调度库中的脉冲发射时刻序列和脉冲发射时刻序列的评价值;
2b9.4)利用更新后的发射时刻调度库更新每个脉冲发射时刻序列的评价值,并计算适应度值:
首先,更新每个脉冲发射时刻序列的评价值;
然后,按照下式,计算更新后的每个脉冲发射时刻序列的适应度值:
其中,vi表示更新后的第i个脉冲发射时刻序列的适应度值,hi表示更新后第i个脉冲发射时刻序列的评价值,hmax表示更新后l个脉冲发射时刻序列的评价值中的最大值,hmin表示更新后l个脉冲发射时刻序列的评价值中的最小值;
2b9.5)对更新后的每个脉冲发射时刻序列进行编码;
2b9.6)利用单点交叉方法,对l个基因序列的码字进行基因交叉;
2b9.7)对每个交叉后基因序列进行基因解码得到调度序列;
2b9.8)利用自适应变异方法与调度序列,对每个交叉后基因序列的码字进行基因变异:
2b9.9)对每个变异后基因序列进行解码,完成本次遗传;
2b9.10)判断遗传数是否小于遗传算法的终止数,若是,将遗传数加1后返回2b9.2),否则,执行2b9.11);
2b9.11)更新每个解码后脉冲发射时刻序列的评价值和发射时刻调度库,将评价值大于40的发射时刻序列置为空集,输出更新后发射时刻调度库中评价值最小的脉冲发射时刻序列;
2b10)判断所选发射时刻序列是否为空集,若是,则返回2b1),否则,执行2b11);
2b11)在当前成功调度isar成像任务的集合中加入所选isar成像任务;
2b12)判断是否选完当前调度序列中所有的isar成像任务,若是,则得到当前成功调度isar成像任务的集合为an、成功调度任务脉冲发射时刻序列为tn,执行2b13),否则,返回2b1);
2b13)将an中每一个isar成像任务的优先级求和,将所得的和作为当前调度序列的优先级和x1,将an中任务个数除以isar成像任务的总数,将所得的商作为当前调度序列的调度成功率x2,计算当前调度序列的雷达发射机最大瞬时能量损耗x3;
2b14)按照下式,计算当前调度序列的的评价值:
en=a1x1+a2x2+a3x3,
其中,en表示当前调度序列的评价值,a1表示x1的权值,a2表示x2的权值,a3表示x3的权值,若x3等于100,则取a1为0.6,a2为0.4,反之取a1为0.4,a2为0.2,a3为0.4。
步骤3,更新调度库。
3a)判断调度库是否为空集,若是,则执行3b),否则,执行3c);
3b)在调度库中存入步骤2算出的n个调度序列及每个调度序列的an、tn、en这三个值;
3c)更新调度库中的调度序列、调度序列的评价值ed、成功调度isar成像任务集合ad、成功调度任务脉冲的发射时刻序列td:
3c1)从n个调度序列中依次选取未选过的一个调度序列作为当前调度序列;
3c2)判断调度库中是否存在当前调度序列,若是,则执行3c3),否则,执行3c5);
3c3)判断调度库中当前调度序列的评价值是否小于当前调度序列的en,若是,则执行3c4),否则,执行3c6);
3c4)将调度库中当前调度序列的评价值更新为当前调度序列的评价值en,将调度库中成功调度isar成像任务的集合更新为当前调度序列的an,将调度库中成功调度任务脉冲发射时刻序列更新为当前调度序列的tn,执行3c6);
3c5)在调度库的调度序列中加入当前调度序列,在调度库中加入当前调度序列的en、an、tn;
3c6)判断n个调度序列中是否存在未选取的调度序列,若是,则返回3c1),否则,完成调度库中调度序列及每个调度序列的ed、ad、td的更新。
步骤4,计算每个调度序列的适应度值。
4a)更新每个调度序列的评价值:
4a1)从n个调度序列中依次选取一个未选过的调度序列作为当前调度序列;
4a2)判断更新后调度库中是否存在当前调度序列,若是,执行4a3),否则,执行4a5);
4a3)判断当前调度序列的en是否小于调度库中当前调度序列的评价值,若是,执行4a4),否则,执行4a5);
4a4)将当前调度序列的en更新为调度库中当前调度序列的评价值;
4a5)判断n个调度序列中是否存在未选取的调度序列,若是,则返回4a1),否则,完成对每个当前调度序列en的更新;
4b)按照下式,计算更新后的每个调度序列的适应度值:
其中,ui表示更新后第i个调度序列的适应度值,fi表示更新后第i个调度序列的评价值,fmax表示更新后n个调度序列评价值中的最大值,fmin表示更新后n个调度序列评价值中的最小值。
步骤5,对更新后的每个调度序列进行编码。
5a)从更新后n个调度序列中,依次选取一个未选过的调度序列,作为当前调度序列;
5b)从当前调度序列中,依次选取一个未选过的isar成像任务,将所选isar成像任务在任务列表中的位置序号,作为基因序列中与所选isar成像任务对应的码字,同时从任务列表中删去所选的isar成像任务;
5c)判断当前调度序列中是否选完所有的isar成像任务,若是,则执行5d),否则,返回5b);
5d)判断更新后的n个调度序列中是否选完所有的调度序列,若是,则执行步骤6,否则,返回5a)。
步骤6,利用单点交叉方法,对n个基因序列的码字进行基因交叉。
6a)按照下式,计算每个基因序列被选取进行基因交叉的概率:
其中,
6b)从n个基因序列中以每个基因序列被选取进行基因交叉的概率选取两个基因序列,在基因序列上随机选取一个码位,交换所选两个基因序列在所选码位后的码字,得到交叉后的基因序列;
6c)判断选取基因序列的次数是否超过n/2,若是,则完成对n个基因序列的码字的基因交叉,否则,返回6b)。
步骤7,对每个交叉后基因序列进行基因解码得到调度序列。
7a)在n个基因序列中,依次选取一个未选过的基因序列,作为当前基因序列;
7b)从当前基因序列中,依次选取一个未选过的码字,将所选码字作为位置序号,将任务列表中在该位置序号上的isar成像任务,作为解码后调度序列中与所选码字对应的isar成像任务,同时从任务列表中删去该isar成像任务;
7c)判断是否选完当前基因序列中的所有码字,若是,则执行7d),否则,返回7b);
7d)判断是否选完n个基因序列中所有基因序列,若是,则完成基因解码,否则,返回7a)。
步骤8,利用自适应变异方法与调度序列,对每个交叉后基因序列的码字进行基因变异。
8a)按照步骤2的方法计算每个调度序列的评价值;
8b)利用4b)的方法和n个调度序列的评价值,计算n个调度序列的适应度值qi,i为从1到n的整数;
8c)按照下式,计算每个交叉后基因序列变异概率:
其中,
8d)从n个交叉后基因序列中依次选取未选过的一个交叉后基因序列,对所选基因序列的每个码字以该序列变异概率进行变异,即将每个码字变异为[1,k-i1+1]中的一个随机整数,其中,i1表示码字在该基因序列中的位置序号;
8e)判断n个交叉后基因序列中是否存在未选取的交叉后基因序列,若是,则返回8d),否则,完成对每个交叉后基因序列的基因变异。
步骤9,对每个变异后基因序列进行解码,完成本次遗传。
步骤10,判断遗传数是否小于遗传算法的终止数,若是,将遗传数加1后返回步骤2,否则,执行步骤11。
步骤11,利用启发-遗传算法进行资源调度,计算出每个解码后调度序列的评价值,更新调度库。
本步骤的具体实现与步骤2相同。
步骤12,输出更新后调度库中评价值最高的调度序列及成功调度任务脉冲发射时刻序列,完成调度。
本发明的效果可通过以下仿真实验结果进行验证和说明:
1.仿真参数:
本发明的仿真实验是在软件平台matlab上,利用本发明对10个isar成像任务进行资源调度。
这10个isar成像任务对应的成像目标参数如表1。
这10个isar成像任务对应的雷达参数如表2。
表110个isar成像任务对应的成像目标参数
表210个isar成像任务对应的雷达参数
调度起始时刻为0s,总调度时间为1.3s,10个isar成像任务的时间窗均为0.1s,雷达能量阈值为20j,目标优先级参数qa=0.8,qb=0.2。调度任务序列遗传算法遗传代数为15,种群数为30,子脉冲选择遗传算法遗传代数为15,种群数为30。
2.仿真内容及其结果分析:
仿真实验1:使用现有基于脉冲交错的isar成像雷达资源自适应调度方法,对10个isar成像任务进行资源调度,进行了30次仿真,绘制每一次调度序列评价值,结果如图4所示。
仿真实验2:使用本发明的方法对10个isar成像任务进行资源调度,进行了30次仿真,绘制每一次调度序列评价值,结果如图5所示。
由图4与图5对比可得,现有方法在30次仿真中,调度序列评价值震荡,出现不稳定的情况。而本发明在30次仿真中,调度序列评价值一直稳定为0.82。其原因是现有方法只以一个确定调度序列为顺序,依次进行isar成像资源调度,导致了资源调度结果的评价值不稳定的问题。而本发明通过更新调度库,利用调度库中成功调度isar成像任务集合作为本发明的成功调度isar成像任务的集合,克服了资源调度结果的评价值不稳定的问题,提高了isar成像资源调度结果的评价值的稳定性。
仿真实验3:绘制仿真实验1中30次仿真与仿真实验2中30次仿真的isar成像任务的调度成功率,结果如图6所示。
由图6可见,本发明得到的isar成像任务调度成功率比现有方法得到的isar成像任务调度成功率高,这是因为现有方法将成像任务按照优先级高低依次进行资源调度,优先调度优先级高的成像任务可能使得后续多个低优先级成像任务调度失败,导致任务成功执行率降低,本发明随机生成若干调度序列,并使用基于遗传算法的子脉冲选择方法求解最优子脉冲发射时刻序列,提高了成像任务成功执行率和调度序列评价值的稳定性。