一种利用遗传算法优化的脉冲矢量控制器点火控制方法转让专利

申请号 : CN201110035900.6

文献号 : CN102168938B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于剑桥梅跃松胡文斌罗冠辰

申请人 : 北京理工大学

摘要 :

本发明涉及一种利用遗传算法优化的脉冲矢量控制器点火控制方法,包括以下步骤:(1)根据每列脉冲发动机的个数确定种群中个体的编码长度;(2)将每个脉冲发动机的使用状态用一个二进制字符表示,1表示该发动机未使用,0表示已使用;然后沿弹轴方向将每一列脉冲发动机的使用状态编码成有序的0-1字符串;(3)生成初始种群,种群中每个个体均表示成n位0-1字符串的形式,反映的是对脉冲矢量控制器的点火指令要求;(4)确定适应函数;(5)对种群进行进化操作;(6)将进化结果作为当前发动机序列的实际点火指令。本发明能够直观的反应出脉冲发动机的可用和需用情况,编码方式简洁实用,计算简单易行,提高了脉冲点火的判断效率。

权利要求 :

1.一种利用遗传算法优化的脉冲矢量控制器点火控制方法,其特征在于,包括以下步骤:(1)根据脉冲矢量控制器中每列脉冲发动机的个数确定种群中个体的编码长度,假设脉冲矢量控制器中每列包含n个脉冲发动机,则个体编码长度设成n;

(2)将每个脉冲发动机的使用状态用一个二进制字符表示,字符1表示该发动机未使用过,字符0表示该发动机已使用;然后沿弹轴方向将每一列脉冲发动机的使用状态编码成有序的0-1字符串;

(3)确定一定的种群规模m,并生成初始种群,种群中每个个体均表示成n位0-1字符串的形式,个体对应的0-1字符串反映的是对脉冲矢量控制器的点火指令要求;

(4)确定优化算法的适应函数,适应函数根据点火代价函数构造,点火代价函数根据点火模型提出;

(5)设置进化代数,对种群进行进化操作,具体包含选择、交叉、变异三个步骤,直至进化到最终代数,获得最优结果;每次进化操作包括:a)选择

将种群中的每个个体对应的0-1字符串和当前的发动机序列对应的0-1字符串进行按位逻辑“与”运算,根据适应函数公式计算每个逻辑“与”运算后个体的适应函数值,由适应函数值确定每个个体的选择概率;得到个体选择概率后,利用轮盘赌的方式对各选择概率进行非线性排名选择;

b)交叉

对于父代中的一对个体,随机产生一个或多个整数,把父代个体中与随机数对应的基因位置进行基因交叉,得到新的个体构成子代;

如某个体在交叉后,该个体对应的0-1字符串中字符1的个数超过了脉冲发动机点火上限要求,则需要重新选择一个个体进行交叉操作,直至满足矢量控制器点火上限要求;

c)变异

在种群中随机确定进行变异的个体,并针对变异个体生成一随机数,而后对该个体中与此随机数对应的基因位置进行变异操作,即把该基因位置对应的字符进行求反运算;

如某个体在变异后,该个体对应的0-1字符串中字符1的个数超过了脉冲发动机点火上限要求,则需要重新选择一个个体进行变异操作,直至满足矢量控制器点火上限要求;

(6)将步骤(5)获得的最优结果作为当前发动机序列的实际点火指令,最优结果中,字符1的位置即对应需要点火的发动机的位置。

2.根据权利要求1所述的一种利用遗传算法优化的脉冲矢量控制器点火控制方法,其特征在于:在步骤(3)中,每个个体对应的0-1字符串中,字符1在字符串中的位置即对应脉冲矢量控制器需要点火的位置,字符1的个数即对应需要同时点燃的脉冲发动机个数。

3.根据权利要求2所述的一种利用遗传算法优化的脉冲矢量控制器点火控制方法,其特征在于:在初始种群生成过程中引入限制条件,使生成的0-1字符串中字符1的个数不超过要求的上限值。

说明书 :

一种利用遗传算法优化的脉冲矢量控制器点火控制方法

技术领域

[0001] 本发明涉及一种脉冲矢量控制器点火控制方法,特别涉及一种采用独特编码方式的遗传算法进行优化计算的导弹脉冲矢量控制器点火控制方法,可广泛应用于以脉冲矢量发动机作为控制执行机构的导弹控制系统优化设计等领域。

背景技术

[0002] 脉冲矢量控制技术是一种先进的导弹控制技术,具有结构简单、响应速度快、成本低的优点,但其控制过程既要求控制指令生成速度快、控制精确高,又要求脉冲发动机消耗个数少。脉冲矢量控制器由多组均匀分布的脉冲发动机构成。随着矢量控制器中脉冲发动机个数的增加,脉冲控制问题的求解规模会急剧扩大,有时在现有计算机上利用枚举法难以实现其求解过程,而利用优化算法对点火过程进行优化是得到满意解的一种有效方法。
[0003] 脉冲矢量控制寻优点火问题可归结为组合优化问题,相比于其他优化算法,遗传算法在组合优化问题的求解中具有独特的优势,而编码问题是遗传算法应用中的首要问题,也是设计遗传算法时的一个关键步骤。遗传算法有多种编码方式,如二进制编码,将实数表示成二进制的形式;整数编码,个体中的每一基因位取一定范围内的整数;数字串编码,将各实数按照一定的顺序排成数字串。
[0004] 现有遗传算法的编码存在着一定的局限性,不能直接用于脉冲矢量控制优化点火问题。虽然目前已经有不少研究者根据一些实际问题的特性对遗传算法编码方案进行改进设计,但脉冲矢量控制具有脉冲矢量控制的控制力的非连续性,脉冲发动机不可重复利用,不同时刻点火组合情况复杂等特点,这些特点使得现有编码方式不能直接应用于遗传算法对脉冲矢量控制点火过程进行优化,遗传算法在脉冲矢量控制中的应用难以实现。

发明内容

[0005] 本发明的目的是针对现有技术的不足,根据脉冲矢量控制器自身特点对遗传算法的编码进行设计,解决遗传算法在脉冲矢量控制中应用的关键问题,为遗传算法应用于脉冲矢量控制器控制点火过程提出一条完整有效,且具有工程应用价值的途径和方法。
[0006] 脉冲矢量控制器分布形式见图1,图1(a)为脉冲矢量控制器在弹体上的作用位置示意图,图1(b)为矢量控制器的分布示意图。脉冲发动机沿轴方向和周向均匀交错排列。每个点火周期内只能同时点燃沿轴向的同一列中的若干发动机。图中,1为奇数列,2为偶数列。
[0007] 脉冲矢量控制有如下特点:脉冲发动机为一次性发动机,不可重复使用;可同时点燃若干脉冲发动机,考虑弹体稳定性,同时点燃的发动机个数有上限要求;脉冲控制力幅值一定,且脉冲控制力是非连续的。本发明根据以上特点,将每个小脉冲发动机的使用状态用一个二进制字符表示。字符1表示该发动机未使用过,字符0表示该发动机已使用。
[0008] 本发明提供了一种利用遗传算法优化的脉冲矢量控制器点火控制方法,包括以下步骤:
[0009] (1)根据脉冲矢量控制器中每列脉冲发动机的个数确定种群中个体的编码长度,假设脉冲矢量控制器中每列包含n个脉冲发动机,则个体编码长度设成n;
[0010] (2)将每个脉冲发动机的使用状态用一个二进制字符表示,字符1表示该发动机未使用过,字符0表示该发动机已使用;然后沿弹轴方向将每一列脉冲发动机的使用状态编码成有序的0-1字符串;
[0011] 脉冲矢量控制器起始工作时刻,因为发动机均未使用,所以各位置脉冲发动机使用状态均为1;脉冲矢量控制器工作过程中,如某脉冲发动机已经使用过,则将该位置脉冲发动机使用状态置0,使用状态置0后不可恢复。每一列脉冲发动机对应的0-1字符串能够清楚地记录任意时刻脉冲发动机序列的使用情况,即哪些位置的发动机已使用,哪些位置的发动机可用。
[0012] (3)确定一定的种群规模m,并生成初始种群,种群中每个个体均表示成n位0-1字符串的形式,个体对应的0-1字符串反映的是对脉冲矢量控制器的点火指令要求;每个个体对应的0-1字符串中,字符1在字符串中的位置即对应脉冲矢量控制器需要点火的位置,字符1的个数即对应需要同时点燃的脉冲发动机个数;由于同时点燃的发动机个数有上限要求,故初始种群生成过程中应引入限制条件,使生成的0-1字符串中字符1的个数不超过要求的上限值;
[0013] m取值小则计算效率高,但是较难获得好的优化效果;相反,m取值大可以较好的进行优化,但是计算时间长。m具体的取值根据具体应用系统的要求确定。
[0014] (4)确定优化算法的适应函数,适应函数根据点火代价函数构造,点火代价函数根据点火模型提出;
[0015] 例如,点火代价函数要求取最大,则适应函数可直接取为点火代价函数或点火代价函数的简单变形;如果点火代价函数要求取最小,则构造适应函数时,要对代价函数进行取反或取倒数等操作。
[0016] (5)设置一定的进化代数,对种群进行进化操作,具体包含选择、交叉、变异三个步骤,直至进化到最终代数,获得最优结果;每次进化操作的具体方法包括:
[0017] a)选择
[0018] 将种群中的每个个体对应的0-1字符串和当前的发动机序列对应的0-1字符串进行按位逻辑“与”运算,根据适应函数公式计算每个逻辑“与”运算后个体的适应函数值,由适应函数值确定每个个体的选择概率;得到个体选择概率后,利用轮盘赌的方式对各选择概率进行非线性排名选择;
[0019] 执行选择操作后,适应函数值较大的个体以较大的选择概率被保留,适应函数值较小的个体被剔出。在计算个体适应函数值的过程中,种群中的每个个体对应的0-1字符串需要和当前的发动机序列对应的0-1字符串进行按位逻辑“与”运算,该运算操作的本质是将脉冲发动机的需用情况与可用情况综合考虑,将种群中每个个体对应的点火指令与当前点火发动机序列中的可用发动机进行匹配,在需用情况为基础的前提下,提取出实际可用脉冲点火位置和点火个数。
[0020] b)交叉
[0021] 对于父代中的一对个体,随机产生一个或多个整数,把父代个体中与随机数对应的基因位置进行基因交叉,得到新的个体构成子代;
[0022] 如某个体在交叉后,该个体对应的0-1字符串中字符1的个数超过了脉冲发动机点火上限要求,则需要重新选择一个个体进行交叉操作,直至满足矢量控制器点火上限要求;
[0023] 交叉运算后可能产生优于父代的个体,优于父代的个体在下一次的进化中会以较大概率保留。交叉方式有多种策略,如双亲双子法、变化交配法、多交配位法、单亲遗传法等。
[0024] c)变异
[0025] 在种群中随机确定进行变异的个体,并针对变异个体生成一随机数,而后对该个体中与此随机数对应的基因位置进行变异操作,即把该基因位置对应的字符进行求反运算;
[0026] 如某个体在变异后,该个体对应的0-1字符串中字符1的个数超过了脉冲发动机点火上限要求,则需要重新选择一个个体进行变异操作,直至满足矢量控制器点火上限要求;
[0027] 变异操作模拟生物的基因突变现象,具有防止陷入局部最优解的作用。
[0028] (6)将步骤(5)获得的最优结果作为当前发动机序列的实际点火指令,最优结果中,字符1的位置即对应需要点火的发动机的位置。
[0029] 有益效果
[0030] 本发明主要用于利用遗传算法对脉冲矢量控制器点火过程进行优化计算。在对遗传算法编码的过程中,考虑了脉冲发动机位置分布对点火过程的影响,符合脉冲发动机的实际工作特点。且将脉冲发动机序列和种群中的个体表示成了有序的0-1字符串,能够直观的反应出脉冲发动机的可用和需用情况,编码方式简洁实用,后续操作中只进行0-1字符串的二进制运算,计算简单易行,为遗传进化带来便捷,提高了脉冲点火的判断效率。
[0031] 本发明主要解决了以脉冲矢量控制器作为控制执行机构的导弹的控制器优化点火逻辑的问题。可广泛应用于以脉冲矢量发动机作为控制执行机构的导弹控制系统控制过程的优化计算,为该类型导弹的理论研究和工程应用提供了一条有效的途径和方法。

附图说明

[0032] 图1为脉冲矢量控制器示意图;
[0033] 图2为导弹纵向过载跟踪曲线对比图;
[0034] 图3为控制力变化规律对比图;
[0035] 图4为导弹发射1s后,脉冲发动机工作顺序示意对比图;
[0036] 图5为导弹发射2s后,脉冲发动机工作顺序示意对比图。

具体实施方式

[0037] 下面结合附图,具体说明本发明的优选实施方式。
[0038] 以某脉冲矢量控制导弹模型为例对本发明做一具体说明。具体方法包含下述步骤:
[0039] (1)为与采用枚举法得到的结果进行对照,取一较为简单的矢量控制器模型。模型中,每列包含8个脉冲发动机,相邻两列交错排列,共20列,160个小脉冲发动机。限制每列中至多同时点燃5个脉冲发动机,单列发动机中共包含218种组合点火情况;
[0040] (2)将20列发动机表示成20个8位的有序0-1字符串,脉冲矢量控制器起始工作时刻,各位置脉冲发动机状态用字符1表示,随着矢量控制器工作,使用过的脉冲发动机对应的二进制字符置0,置0字符不能恢复;
[0041] (3)个体编码长度取为8位,种群中包含12个个体,随机生成初始群体,群体中每个个体对应一个8位0-1字符串,每个字符串应满足字符1的个数应小于等于5的约束条件;
[0042] (4)根据矢量控制器代价函数设计适应函数,并以适应函数为依据进行遗传进化。代价函数可根据具体问题自行构造,此处代价函数取为:式中,t0为脉
冲发动机开始工作时刻,tf为脉冲发动机工作结束时刻,X(t)和X(tf)为通过状态空间模型实时计算得到的状态值及tf时刻的状态值,u(t)为脉冲推力,Xc、uc为平衡状态下的状态值及控制输入。适应函数表达式如下:Fitness(i)=maxJ-J(i),i=1,2...,12。其中,maxJ为每个点火判断周期内代价函数J(i)的最大值;
[0043] (5)进化代数取为20代,每一代的进化过程中,对每个个体对应的0-1字符串和当前使用的发动机列对应的0-1字符串进行按位逻辑“与”运算;
[0044] (6)进行选择操作。此处种群中每个个体的选择概率取为Pi=μ·(1-q)(i-1),i=1,2...,12,其中, m为种群大小,fitness为适应函数值。得到个体选择概率后,利用轮盘赌的方式对各选择概率进行非线性排名选择,适应函数值较大的个体以较大的选择概率被保留;
[0045] (7)进行交叉操作。采用双亲双子的交叉操作规则,随机生成一个与个体长度相同的0-1字符串掩码,参照随机掩码字符串中的0-1分布情况进行交叉操作。掩码为1的字符位置,子代1的基因由父代1提供,子代2的基因由父代2提供;掩码为0的字符位置,子代1的基因由父代2提供,子代2的基因由父代1提供。例如父代1为11011011,父代2为10100010,随机生成字符串掩码为01000101,则子代1为11100111,子代2为10010010;交叉操作过程中应引入限制条件,如交叉得到的新个体不满足发动机点火个数的上限要求,则应重新生成随机掩码,再次执行交叉操作。
[0046] (8)进行变异操作。此处变异操作采用如下方法:取变异概率为0.2,而后生成12个0-1之间的随机数ri(i=1,2...,12),对ri<0.2的个体进行变异操作。提取出将要进行变异的个体,确定其将要变异的基因位置,变异方法如下:随机生成一个整数N,N位于整数1-8之间,对变异个体位置N上的基因进行变异操作,如果是0则变为1,如果是1则变为0。变异过程中,如果个体对应的点火发动机的个数超过了点火要求的上限值,则应避免对该个体进行变异,需重新随机选择一个个体进行变异操作。个体变异后,返回步骤(5),进行下一代进化操作;
[0047] 采用如上步骤对此脉冲矢量控制导弹模型进行数学仿真,由于枚举法是最可靠的算法,将其作为评判标准来衡量使用本发明进行脉冲矢量控制器点火过程优化的效果。主要仿真结果如下:
[0048] 图2给出了阶跃信号作用下利用枚举算法和优化算法得到的过载跟踪对比曲线,(a)为枚举法,(b)为本发明所述遗传优化算法;从图中可见,本发明所述遗传优化算法和枚举法过载结果相近;
[0049] 图3为枚举算法和优化算法下的控制力变化规律,(a)为枚举法,(b)为本发明所述遗传优化算法;从图中可见,本发明所述遗传优化算法和枚举法控制力变化规律相近;
[0050] 图4为导弹发射1s后,枚举算法和优化算法下脉冲发动机工作顺序示意对比。图5为导弹发射导弹发射2s后,枚举算法和优化算法下脉冲发动机工作顺序示意对比。图中,(a)为枚举法,(b)为本发明所述遗传优化算法;黑色代表发动机尚未使用,白色代表发动机已使用。图中显示,导弹发射1s后,枚举法得到的结果为脉冲发动机消耗54个,遗传算法得到的结果为脉冲发动机消耗55个。导弹发射2.5s后,枚举法得到的结果为脉冲发动机消耗135个,遗传算法得到的结果为脉冲发动机消耗143个。
[0051] 通过枚举法和遗传算法仿真对比发现,采用此编码方式下的遗传算法优化脉冲矢量控制器点火过程,过载跟踪与矢量控制器点火情况接近枚举效果。在相同的运算环境下,应用改进遗传算法求解该问题的时间为利用枚举法求解时间的1/3,达到了导弹系统响应速度快、能耗低、跟踪精度高的技术要求。
[0052] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。