发明名称 一种适用于复杂低空下飞行器的路径规划方法
摘要 本发明公开了一种适用于复杂低空下飞行器的路径规划方法,属于飞行管理方法和系统技术领域。所述方法首先建立飞行器路径规划模型;然后采用自适应差分目标进化算法对单架飞行器进行路径规划。基于所述的单架飞行器路径规划方法,本发明还提供一种多架飞行器路径规划方法。本发明是一种多机协同进化的冲突解脱方法,运算效率高,能够满足预规划路径的需求;能够满足低空空域自由飞行条件下的单机和多机路径规划需求;具有一定的反馈设置,能够在保证规划路径的安全性的同时也获得较高的飞行效率。
申请公布号 CN103913172B 申请公布日期 2016.09.21
申请号 CN201410147792.5 申请日期 2014.04.14
申请人 北京航空航天大学 发明人 张学军;曾捷;管祥民
分类号 G01C21/20(2006.01)I 主分类号 G01C21/20(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 姜荣丽
主权项 一种适用于复杂低空下飞行器的路径规划方法,其特征在于:假设(1)所有飞行器都在同一高度层以不同速度飞行,且各自在飞行过程中飞行速度不发生改变;(2)每架飞行器都确定了各自的起点和终点;(3)低空空域飞行环境已知,包括禁止飞行区域位置和范围、威胁点位置和辐射半径;(4)通用飞行器物理性能限制包括最大偏转角和最大飞行距离;所述路径规划方法具体包括如下步骤:第一步,建立飞行器路径规划模型;第二步,采用自适应差分目标进化算法对单架飞行器进行路径规划,具体步骤如下:S1:确定规划空间、起始点S和目标点E,利用启发式初始化算法初始化种群,并完成相对极坐标个体向绝对值坐标个体转化的种群预处理;S2:根据航行速度v和采样时间步长Δt,对种群个体完成航迹点离散化;S3:根据第一步中所建立的飞行器路径规划模型,利用初始种群的个体的离散化航迹点进行航迹约束验证和目标值计算,并计算每个个体的所有约束的约束值之和err_ind;S4:对父代种群进行按照自适应差分算子进行遗传交叉与变异操作,形成子种群;S5:完成子种群中子代个体航迹点离散化,将离散化的航迹点带入问题模型,完成与个体约束、目标函数值及所有约束的约束值之和err_ind的计算;S6:父代与子代形成混合群,对混合群实施改进的快速非支配排序,确定混合群各个体所分布的Pareto层;S7:对混合群每一层的个体进行改进的聚集距离与排挤机制,根据支配关系及个体拥挤度从混合群中选取种群大小数目的个体组成新的父代种群;S8:判断进化过程是否结束,如果达到最大迭代的代数,转入S9;否则转入S4;S9:从种群中非支配层中选出个体,其代表的航迹即为所求航迹;步骤S1中所述的初始化种群,采用两种初始种群个体表达方式,即相对极坐标编码方式和绝对值坐标编码方式,包含相对极坐标生成初始染色体和初始种群个体坐标转换两步:(S101)航迹节点初始化按式(26)获得相对极坐标(r,θ,z)的值表示其对应的三维航迹节点,其中rand()代表均匀分布取值,r的下限Minseg和上限<img file="FDA0000951455110000011.GIF" wi="104" he="94" />代表相邻航迹点间的最短允许距离,turn_θ的上下限和飞行器机动性相关,得到的θ<sub>i</sub>的正负代表了下一航迹段较前一航迹段的偏转方向,逆时针为正,顺时针为负;<maths num="0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>r</mi><mi>i</mi></msub><mo>=</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mrow><mo>(</mo><mi>M</mi><mi>i</mi><mi>n</mi><mi>s</mi><mi>e</mi><mi>g</mi><mo>,</mo><mfrac><mrow><mi>M</mi><mi>a</mi><mi>x</mi><mi>L</mi></mrow><msub><mi>N</mi><mi>w</mi></msub></mfrac><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&theta;</mi><mi>i</mi></msub><mo>=</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mrow><mo>(</mo><mo>-</mo><mi>t</mi><mi>u</mi><mi>r</mi><mi>n</mi><mo>_</mo><mi>&theta;</mi><mo>,</mo><mi>t</mi><mi>u</mi><mi>r</mi><mi>n</mi><mo>_</mo><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>z</mi><mi>i</mi></msub><mo>=</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mrow><mo>(</mo><mi>min</mi><mo>(</mo><mrow><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>z</mi><mo>,</mo><mi>e</mi><mi>n</mi><mi>d</mi><mo>.</mo><mi>z</mi></mrow><mo>)</mo><mo>,</mo><mi>max</mi><mo>(</mo><mrow><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>z</mi><mo>,</mo><mi>e</mi><mi>n</mi><mi>d</mi><mo>.</mo><mi>z</mi></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>26</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000012.GIF" wi="1422" he="227" /></maths>其中,(start.z,end.z)代表起始点和目标点的高度坐标值;(S102)初始种群个体坐标系转换:利用相对极坐标法生成初始种群后,利用相对极坐标和绝对值坐标的对应关系,通过式(27)和式(28)对生成的相对极坐标表示的个体的二维航迹进行坐标系转化,将生成的相对极坐标初始种群转化成绝对值坐标表示的初始种群;第一个航迹节点W<sub>1</sub>的绝对值坐标(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>)由其相对极坐标(r<sub>1</sub>,θ<sub>1</sub>,z<sub>1</sub>)由式(27)和式(28)得到,其中(start.x,start.y)和(end.x,end.y)为起始点和目标点的二维坐标;<maths num="0002"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>&alpha;</mi><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><mrow><mi>e</mi><mi>n</mi><mi>d</mi><mo>.</mo><mi>y</mi><mo>-</mo><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>y</mi></mrow><mrow><mi>e</mi><mi>n</mi><mi>d</mi><mo>.</mo><mi>x</mi><mo>-</mo><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>=</mo><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>x</mi><mo>+</mo><msub><mi>r</mi><mn>1</mn></msub><mo>*</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>+</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mn>1</mn></msub><mo>=</mo><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi><mo>.</mo><mi>y</mi><mo>+</mo><msub><mi>r</mi><mn>1</mn></msub><mo>*</mo><mi>s</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>+</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>z</mi><mn>1</mn></msub><mo>=</mo><msub><mi>z</mi><mn>1</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>27</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000021.GIF" wi="1203" he="282" /></maths>基于已求得的W<sub>1</sub>(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),得到后续航迹点W<sub>i</sub>的绝对值坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>):<maths num="0003"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>s</mi><mi>u</mi><mi>m</mi><mi>&theta;</mi><mo>=</mo><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msubsup><msub><mi>&theta;</mi><mi>k</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>=</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>r</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>*</mo><mi>cos</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>+</mo><mi>s</mi><mi>u</mi><mi>m</mi><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mi>i</mi></msub><mo>=</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>r</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>*</mo><mi>sin</mi><mrow><mo>(</mo><mi>&alpha;</mi><mo>+</mo><mi>s</mi><mi>u</mi><mi>m</mi><mi>&theta;</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>z</mi><mi>i</mi></msub><mo>=</mo><msub><mi>z</mi><mi>i</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>28</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000022.GIF" wi="1190" he="251" /></maths>其中,i=2,…,N‑1;步骤S2中所述的种群个体航迹节点离散化,具体是指:在假定飞行器以速度v匀速飞行的前提下,将航迹节点离散化,得到进行约束验证的离散化点序列dis{S,P<sub>1</sub>,P<sub>2</sub>,…,P<sub>N‑2</sub>,E};以由两连续的航迹点P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>)和P<sub>i+1</sub>(x<sub>i+1</sub>,y<sub>i+1</sub>,z<sub>i+1</sub>)构成的航迹段l<sub>i</sub>为例,i=0,…,N‑1,航迹段l<sub>i</sub>的离散点序列disp_l<sub>i</sub>{P<sub>i1</sub>(x<sub>i1</sub>,y<sub>i1</sub>,z<sub>i1</sub>),P<sub>i2</sub>(x<sub>i2</sub>,y<sub>i2</sub>,z<sub>i2</sub>),…,P<sub>im</sub>(x<sub>im</sub>,y<sub>im</sub>,z<sub>im</sub>)}的坐标值由下式得到:<img file="FDA0000951455110000023.GIF" wi="1549" he="189" /><img file="FDA0000951455110000024.GIF" wi="1181" he="169" /><maths num="0004"><math><![CDATA[<mrow><msub><mi>&theta;</mi><mi>i</mi></msub><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mrow></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>31</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000025.GIF" wi="1158" he="93" /></maths><maths num="0005"><math><![CDATA[<mrow><mi>m</mi><mo>=</mo><mi>f</mi><mi>l</mi><mi>o</mi><mi>o</mi><mi>r</mi><mrow><mo>(</mo><mfrac><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mrow><mi>&Delta;</mi><mi>t</mi><mo>*</mo><mi>v</mi></mrow></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>32</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000026.GIF" wi="1357" he="194" /></maths>其中<img file="FDA0000951455110000027.GIF" wi="53" he="46" />为航迹段l<sub>i</sub>在竖直方向上的偏移角度,θ<sub>i</sub>为航迹段l<sub>i</sub>在二维平面上的相对于x轴正向的偏移角度,Δt为取样时间步,floor()为向下取整函数;所述的步骤S4中种群自适应差分遗传交叉与变异操作,形成子种群,具体为:S401:对初始种群进行评价,即计算初始种群中每个个体的目标函数值;S402:进行变异操作,对每个目标个体<img file="FDA0000951455110000028.GIF" wi="53" he="70" />通过式(33)产生其对应的变异个体<img file="FDA0000951455110000029.GIF" wi="123" he="70" /><maths num="0006"><math><![CDATA[<mrow><msubsup><mi>v</mi><mi>i</mi><mrow><mi>G</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>x</mi><mrow><mi>r</mi><mn>1</mn></mrow><mi>G</mi></msubsup><mo>+</mo><mi>F</mi><mo>*</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>r</mi><mn>2</mn></mrow><mi>G</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mrow><mi>r</mi><mn>3</mn></mrow><mi>G</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>33</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000031.GIF" wi="1014" he="67" /></maths>其中:<img file="FDA0000951455110000032.GIF" wi="186" he="71" />和<img file="FDA0000951455110000033.GIF" wi="72" he="71" />的下标r<sub>1</sub>,r<sub>2</sub>和r<sub>3</sub>是随机选择的不同的数,且与目标向量<img file="FDA00009514551100000310.GIF" wi="58" he="67" />的下标i也不同;F为缩放因子,用来控制偏差变量的放大程度;S403:通过式(34),将目标个体<img file="FDA0000951455110000034.GIF" wi="54" he="70" />和其变异个体<img file="FDA0000951455110000035.GIF" wi="104" he="70" />进行交叉操作,则得到对应的交叉个体<img file="FDA0000951455110000036.GIF" wi="123" he="64" />所有目标个体的交叉操作完成后,其交叉个体形成临时种群;<maths num="0007"><math><![CDATA[<mrow><msubsup><mi>u</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>G</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>G</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mo>(</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&le;</mo><mi>C</mi><mi>R</mi><mo>)</mo><mi> </mi><mi>o</mi><mi>r</mi><mi> </mi><mi>j</mi><mo>=</mo><mi>q</mi></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>G</mi></msubsup><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mo>(</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mo>&gt;</mo><mi>C</mi><mi>R</mi><mo>)</mo><mi> </mi><mi>a</mi><mi>n</mi><mi>d</mi><mi> </mi><mi>j</mi><mo>&NotEqual;</mo><mi>q</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>34</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000951455110000037.GIF" wi="1347" he="147" /></maths>其中:CR为交叉因子,是个体进行交叉操作的控制概率,q是一个在[1,D]之间的随机产生的整数,以确保交叉个体<img file="FDA0000951455110000038.GIF" wi="102" he="70" />至少能从变异个体<img file="FDA0000951455110000039.GIF" wi="103" he="67" />获得一维参数;字母D是指一个常数;所述的步骤S6中的改进的快速非支配排序,具体如下:设a与b是种群中两个个体,使用约束条件下改进的快速排序算子来完成个体a与b的支配关系的比较,流程如下:S601:得到个体a与个体b的与自身相关约束的各约束的约束值之和a.err_ind与b.err_ind;S602:判断个体a与b是否违约,即各自的err_ind值与0的大小关系,若a.err_ind与b.err_ind都大于0,即a和b都违反了约束条件,是不可行解,则转至S603;若只有一个个体的err_ind大于0,则转至S604;若两个个体的err_ind值都等于0,则转至S605;S603:若两个体的err_ind不同,转至S603.1;若两个体err_ind相同,转至S603.2;S603.1:按约束值之和大的个体支配约束值之和小的个体的原则,如果a.err_ind&gt;b.err_ind,则个体a支配个体b,反之,则个体b支配个体a;S603.2:个体a与b支配关系不可比较,互不支配;S604:按没有违反约束条件的个体支配违反约束条件的个体原则,若b.err_ind&gt;0且a.ind_err=0,则个体a支配个体b;若a.err_ind&gt;0且b.ind_err=0,则个体b支配个体a;S605:进行改进的快速非支配排序;改进的快速非支配排序方法算子步骤如下:种群中每个个体p都有两个参数np和Sp,其中np为种群中支配个体p的个体数目,Sp为种群中被p支配的个体的集合,SS1:找到种群中np=0的个体,并保存在当前集合F1中;SS2:临时集合H赋空;对于当前集合F1中的每个个体i,考察它所支配的个体集合Si,将Si中每个个体j的nj减1,若nj‑1=0,则将个体j放入集合H;此时集合H为当前层个体集合的下一层的个体集合;SS3:F1即为第1支配层个体集合,赋予该层内个体相同的非支配排序irank;SS4:以H为当前集合,返回步骤SS2,直至整个种群排序完毕;设计一常数参数为比较精度δ用于改进快速非支配排序算子:如果第j个优化目标的目标函数上,有|f<sub>j</sub>(a)‑f<sub>j</sub>(b)|≤δ,则认为个体a和b在f<sub>j</sub>上的值相等,如果个体a和b在所有的目标之上都有这样的关系,则个体a与b互不支配;其中,f<sub>j</sub>(a)和f<sub>j</sub>(b)分别代表个体a和个体b之于第j个目标函数f<sub>j</sub>的函数值;对于步骤S7中所述的改进的聚集距离计算,以种群某一Pareto层F上个体的聚集距离计算为例,给出改进聚集距离的计算方法:S701:计算出种群某一Pareto层F的个体个数NF;S702:对F内的每个个体的聚集距离赋零值,即:F[i].dis=0,i=1,…,popsize;popsize为种群大小,即种群中个体的数目;S703:对每个目标函数f<sub>j</sub>,j=1,..n,得到每个个体的函数值F[i].f<sub>j</sub>,按F[i].f<sub>j</sub>的大小将F内个体进行排序;S704:根据F层个体的排序情况,将边界点个体的聚集距离赋值无穷大,将其余个体的聚集距离按<img file="FDA0000951455110000041.GIF" wi="787" he="121" />赋值,i=2,…,NF‑1,即用一个个体被包围的矩形的对角线之和表示该个体的聚集距离;其中,f<sub>kmax</sub>和f<sub>kmin</sub>分别代表第k个函数的最大值和最小值。
地址 100191 北京市海淀区学院路37号