内容发布更新时间 : 2024/12/23 6:41:30星期一 下面是文章的全部内容请认真阅读。
遗传算法在阵列天线方向图综合中的应用
李峰
(信息产业部电子第十研究所,成都610036)
摘要:本文采用遗传算法对阵列天线方向图综合进行优化设计。遗传算法于六十年代由Holland教授创立,九十年代其理论已基本成熟。它是一种高效的搜索算法。作者用遗传算法对18元天线阵列方向图进行综合设计,并与用Woodward法得到的结果进行了比较。 关键词:遗传算法,阵列天线,方向图综合
Using Genetic Algorithm to Synthesize the Radiation Pattern of an Array Antenna
Li Feng
(The Electronic 10th Institute of Ministry of Information Industry, Cheng Du 610036)
Abstract: The optimized synthetic design method is described in this paper for the shaping of radiation pattern of array antenna using genetic algorithm. The genetic algorithm was built by the professor Holland in the 60s. It has almost matured for the 90s.It is a high efficiency searching method. This paper used the method to design an 18-elements array antenna. The solution is compared with the result using Woodward method.
Keyword: genetic algorithm, array antenna, synthetic radiation pattern
1. 引言
在通信系统中,经常采用一种平方余割方向图的天线,它的特点是在相同的高度、不同距离上可以得到一致的电平。我们知道天线阵的每一个单元都有不同的馈电电流,由此形成各种组合。每一组合对应不同的方向图。天线方向图综合的目的,就是根据一给定的方向图找出对应的各天线单元馈电电流来。当阵元数较大时,常用的一些经典方法有诸多不满意的地方。如Woodward法,它由于在所求的仰角范围内非零抽样点稀少并且有尖锐凸点,综合出的方向图起伏较大。而经典优化算法,如随机爬山法,它是单点搜索算法,即根据一些变动规则,从解空间中的一点移到另一点来进行。这样的方式对于多峰函数来说,可能会陷入局部的一个单峰的优解。遗传算法从一初始化的群体出发,选取性能优良的个体,在这些优良个体之间进行生物化的繁殖,使它们一代代地进化到解空间中越来越好的区域,已经经过严格的数学证明,只要搜索时间足够长,并保留第一代的最优解,最终能达到全局最优解点。
2. 遗传算法GA(Genetic Algorithm)
遗传算法[1],[2],[3],[4]是从六十年代开始,由密歇根大学教授Holland开创的一种新理论。它是基于生物进化的原理,遗传与变异,通过物竟天择得到优秀的结果。GA从80年代中后期引起了人们的广泛兴趣。它的主要特点有:
(1)
GA使用所求解问题的参数集合的编码形式,而不是使用问题的参数本身,其操作是在给定字符串上进行的。
(2)
GA只需要一个适应性函数(性能指标),而不需要导数或其它辅助信息,也不要求目标函数的连续性。因而具有广泛的适应性。
(3)
GA不是从一点开始,而是从问题的解空间中的多点开始搜索问题的解。因而能够快速全局收敛。
(4) GA使用概率规则指导搜索而不是确定性规则。因此能搜索离散的有噪声的多峰值复杂空间。
(5) GA在解空间内进行充分的搜索,但并不是盲目的穷举或瞎碰(评价为选择提供了依据)。因此其搜索时耗和效率往往优于其他优化算法。
一个简单的基因算法包含以下四步过程:
变量编码[5];群体成员的再生产或繁殖;个体成员之间的基因交换;个体成员的变异。 与其它搜索方法相比,GA表现出了较高的效率[6](约为随机爬山法的三倍)。
首先,以随机形式产生出第一代群体。用一个适应度函数对群体中的每一个个体进行评价。根据适应度值对个体进行选择。然后在选出的优良个体之间和基因交换位置上,交换个体成员间的一部分基因。例如,有两个个体成员被选出实现配对,p11和p12:
p11=11000101 p12=10001110
随机选位置4为基因交换位置(从左至右),两个体成员从第四位以前的所有各位全部交换。得到
p21=10000101 p22=11001110
这样,通过基因交换产生了两个全新的个体,实现了个体成员的再生产。而这样的繁殖又是建立在优质父本的基础上,适合于生存环境的优良个体将有更多的繁殖后代的机会,从而使优良特性得以遗传。因而经过一代一代的进化,最终得到解空间中的最优解。选择是遗传算法的关键,它体现了自然界中适者生存的思想。
其次,以一定的概率从群体中随机选取若干个体,对于选中的个体,随机选取某一位进行取反运算,即由1变为0或由0变为1,同自然界一样,每一位发生变异的概率是很小的,变异模拟了生物进化过程中的偶然基因突变现象。在算法中,个体变异的作用主要是为了避免在随机性的基因交换中发生恶性变化的情况,此时得出的解是个局部收敛值。加入了变异算子可以防止有效基因的缺失[7],使得算法能够搜索到问题解空间的每一点,从而使算法具有全局最优性,它进一步增强了GA的能力。
对产生的新一代群体进行重新评价,选择、交叉、变异,如此循环往复,使群体中最优个体的适应度和平均适应度不断提高,直到最优个体的适应度达到某一限定值或最优个体的适应度和群体的平均适应度值不再提高,则迭代过程收敛,算法结束。 3. 举例
我们使用遗传算法对18元等间距线阵激励系数进行优化。各个参数为: 群体规模Sp=1000;变异概率Pm=0.01;码长Lc=12;间距d=0.5λ
目标函数为:在12Km高度上,仰角为-35-0度(水平面为0度,顺时针为正向)信号电平一致。 适应度函数Fitness(i)采用最小二乘法,考虑到遗传算法中适应度函数值要比较排序并在此基础上进行选择,必须取非负值。选择的具体实现方式采用轮盘赌(Roulette Wheel)的正比选择法,这样做,可以使适应度值较大的串被选中的概率较大。
第一步,随机得出0到
?Fitness(i)之间的一个正数X。
i其中,Fitness(i)为群体中最大均方差值?max与第i个天线阵方向图目标函数的均方差值?i的差,当?i趋于零时,我们就得到了最逼近目标函数的结果。
第二步,将该数与
?Fitness(i)和?Fitness(i)比较,如果满足:
i?1i?1nn?1?Fitness(i)?X??Fitness(i)
i?1i?1n?1n则将第N个体选出作为父本。如此循环重复运算得到足够多的父本。需要特别指出的是,同自然界的生物系统一样,近亲杂交(Inbreeding)[8]会产生不良后代。因此,有必要在选择过程中加入双亲资格判断程序。从轮盘赌得到的双亲要经过一个比较,若相同,则再一次进入选择过程。当选择失败次数超过一个阈值时,就强行地从一个双亲个体周围选择另一个体,然后才进入交叉(Crossover)操作。传统的GA通常将变异(Mutation)概率Pm取到0.001或更小的数量级。但为了防止过早收敛(Premature)的发生,我们将Pm取为0.01。
GA的收敛判断不同于传统的数学规划方法,它是一种启发式搜索,目前,除了在几种特定条件下的简单标准GA,还没有严格的数学收敛依据,尤其对一些复杂问题[9]。目前采用的收敛依据较多,如根据迭代的次数和每代解群中数字串的数目;根据质量来判断,即当连续几次迭代过程中最好的解没有发生变化;或根据解群中最好的解的适应值与其平均适应值之差对平均值的比来确定。 4. 对比
我们采用第二种收敛依据,即根据质量来判断。由此得到的各单元电流分布如表1
表1 GA综合的激励电流分布(归一化值)
单元序号 1 2 3 4 5 6 7 8 9 电流幅度 0.278 0.698 0.845 0.925 0.952 0.925 0.730 0.683 0.841 电流相位 单元序号 45 10 77.5 11 87.5 12 75 13 1 7.5 62.5 14 50 15 60 16 47.5 17 57.5 18 电流幅度 0.754 0.885 0.468 电流相位 45 32.5 20 0.921 0.786 0.968 0.921 0.778 17.5 5 15 317.5 305
单元序号 1 表2 Woodward法综合的激励电流分布(归一化值)
2 3 4 5 6 7 8 9 1 8.20 18 电流幅度 0.51973 0.55081 0.54225 0.55028 0.61274 0.63542 0.65492 0.81970 电流相位 单元序号 电流幅度 电流相位 2.92 10 1 -8.20 4.67 11 5.48 12 11.22 13 13.36 14 12.02 15 17.07 16 19.35 17 0.81970 0.65492 0.63542 0.61274 0.55028 0.54225 0.55081 0.51973 -19.35 -17.07 -12.02 -13.36 -11.22 -5.48 -4.67 -2.92 为方便比较两种方法的优劣,从如下两方面量化对比 1波动幅度: ○
R=|Fobject(?)-F(?)|Max
其中Fobject(?)为目标函数(??[?35?,0?])