基于遗传/粒子群算法的多类型变量&多优化目标下的优化仿真实践--- 以波束形成优化为例

说明

    在之前的博文中,我分别探讨了基于遗传&粒子群算法的波束形成优化问题[1][2],不过这两篇博文中所探讨的问题是:只针对单一类型变量以及只有一个优化目标,比如在各阵元幅值和相对位置关系确定的情况下,优化各阵元的相位(这就是单一类型变量)以得到较好的峰值旁瓣比(这是优化目标)。

    本文想探讨的是:把影响波束的全部因素,包括幅值、相位、以及相对位置关系联合起来同时优化,并考虑至少两个优化目标:一是尽可能高的峰值旁瓣比;二是使得主波束尽可能指向需求的方向。

    在之前工作的基础上,从代码编写的角度来说,其实很容易实现,但是得到比较理想的结果是很困难的(本文给出的结果都不是很理想)!不过本博文的目的在于提供一个基础的、对于该问题的解决思路、框架和初步结果。更理想的优化结果,需要做更细节和更深入的工作。

Blog

2024.4.28 博文第一次撰写

目录

说明

目录

一、遗传算法&粒子群算法综述

二、波束形成概述

三、多类型变量&多优化目标问题明确、参数预设

四、仿真结果与讨论

4.1 基于遗传算法的多变量、单一优化目标的仿真结果及其讨论

4.2 基于粒子群算法的多变量、单一优化目标的仿真结果及其讨论

4.3 基于遗传算法的多变量、多优化目标的仿真结果及其讨论

4.4 基于粒子群算法的多变量、多优化目标的仿真结果及其讨论

五、总结

六、参考资料

七、代码


一、遗传算法&粒子群算法综述

   我在之前的博文[3][4]中已经对这两算法有了足够详细的说明,这里不再赘述。读者可移步查看。

二、波束形成概述

    有关波束形成的概念,我也在之前的博文中有过详细介绍,读者可以参考资料[5][6]。和之前在[1][2]中的仿真预设条件一样,本文的仿真下,各阵元为各向同性的,且本文只仿真一维线阵。

三、多类型变量&多优化目标问题明确、参数预设

问题明确:具体地,本博文给出了四个仿真:

1. 基于遗传算法,优化目标为:更高的峰值旁瓣比。同时优化:幅值、相位以及阵元间的相对位置关系。

2. 基于粒子群算法,优化目标为:更高的峰值旁瓣比。同时优化:峰值、相位以及阵元间的相对位置关系。

3. 基于遗传算法,优化目标为:使得波束指向特定的角度,且具有更高的峰值旁瓣比。同时优化:幅值、相位以及阵元间的相对位置关系。

4. 基于粒子群算法,优化目标为:使得波束指向特定的角度,且具有更高的峰值旁瓣比。同时优化:幅值、相位以及阵元间的相对位置关系。

仿真中的参数预设如下(除去所使用的优化算法不同外,这两种算法下关于阵列的预设参数一致)。

表3.1  仿真预设参数列表

参数

阵列参数

波长

载频77GHz对应的波长

阵元个数

8

各阵元馈电幅值范围

[0 10]

各阵元馈电相位范围

[-180 180]

阵列孔径

15*波长

阵列排布类型

稀布阵,不过相邻两阵元之间的间隔>0.5*波长

波束方向图范围

[-90 90]

遗传算法参数

染色体数

20

单条染色体基因数

8*3 = 24 (1:8对应阵元幅值、9:16对应相位、17:24对应位置)

变异率

20%

从上一代直接复制的染色体数占比

20%

选择父代染色体的方法

轮盘赌算法

交叉方法

单点交叉(对幅值、相位以及位置值分别进行)

变异方法

单点变异 (对幅值、相位以及位置值分别进行)

迭代次数

200

粒子群算法参数

粒子群数量

20

单粒子长度

8*3=24

幅值运动速度范围

[-1 1]

相位运动速度范围

[-20 20]

位置运动速度范围

[-1*波长  1*波长]

惯性权重范围

[0.6 1.2] (随迭代次数线性递减,幅值、相位以及位置取同一个值,读者可以在代码中另设)

个体学习因子

0.4(相位以及位置取同一个值,读者可以在代码中另设)

群体学习因子

0.6(相位以及位置取同一个值,读者可以在代码中另设)

迭代次数

200

在前述参数预设值下,分别基于遗传算法和粒子群算法进行波束形成的优化。

四、仿真结果与讨论

4.1 基于遗传算法的多变量、单一优化目标的仿真结果及其讨论

    本节优化的目标是:峰值旁瓣比尽可能地高,并直接用峰值旁瓣比作为适应度值。得到的仿真结果如下:

图4.1  不同迭代次数下各染色体适应度值的分布

图4.2  各迭代次数下最优适应度值的变化

图4.3  迭代完成前后最优适应度染色体对应的波束方向图

    可以看到还是有一些改善的,迭代完成后最优适应度染色体的值如下:(1:8)表示幅值,(9:16)表示相位,(17:24)*λ表示位置。

图4.4 迭代完成后最优适应度的染色体

 读者可以在我的基础上优化参数、增加迭代次数以达到更好的效果。

4.2 基于粒子群算法的多变量、单一优化目标的仿真结果及其讨论

    本节优化的目标是:峰值旁瓣比尽可能地高,并直接用峰值旁瓣比作为适应度值。得到的仿真结果如下:

图4.5  不同迭代次数下各粒子适应度值的分布

图4.6  各迭代次数下最优适应度值的变化

图4.7  迭代完成前后最优适应度粒子对应的波束方向图

图4.8 迭代完成后最优适应度的粒子

    从上面几幅图得到的结果来看,效果远差于遗传算法。当然,这里面有参数设计的原因,读者可以基于所给代码进行更多的参数尝试。

    不过从两种算法的迭代方式来看:针对多变量问题,遗传算法是通过自身变异的方法来寻找最优解,虽然不能确保变异一定朝更好的方向变异,但是一旦出现适应度更高的染色体遗传算法会将之保存下来,所以整体上来说,即便是多变量的问题,遗传算法也是在往更好的方向运动的。而对于粒子群算法,其迭代寻优的方式是朝着群体最优的方向运动,并在运动的过程中不断找全局最优点,这在单变量下(比如单纯优化相位)是没问题的,但是对于多变量问题,往群体最优的方向靠,不代表每个变量在运动的过程中也是这样,更不能保证各变量组合下的粒子会更优,所以该算法解决多变量问题有更多的随机性,更难收敛,体现在上面的结果中就是看起来效果更差。 这是我对这两算法处理多变量问题的一点理解,所以针对多变量问题,遗传算法应该是更好的选择

4.3 基于遗传算法的多变量、多优化目标的仿真结果及其讨论

    本节优化的目标是:使得主波束指向设定的角度(预设角度为10°),并尽可能有更高的峰值旁瓣比。多目标下的优化问题,关键在于如何计算整体的适应度!因为我们基于波束方向图可以得到两个适应度值:一是该波束的峰值旁瓣比A(该值越大,表示适应度越高),二是该波束的主波束指向与预设角度之间的差值B(该值越小,表示适应度越高)。组合好这两适应度很重要,且需要确保这两适应度在整体适应度C下的占比应该接近于1:1,否则整体的优化方向将朝着占比高的方向优化。

    本博文给出的方法是:C = abs(A – B/Bmax), Bmax是差值的理论最大值,该值由前面预设的波束范围以及设定的波束指向得到:我们将波束范围设置在±90°,而预设的波束指向为10°,则此时理论的波束指向最大差值为:100°,B/Bmax的范围就被限定在[0 1]区间,该值越接近于1表示差值越大,适应度值越低。此外,峰值旁瓣比A的范围从仿真的结果来看在[1 2]之间,所以本文我将整体适应度值的计算方法设计为:C = abs(A – B/Bmax),【当然,这种方法不是最优的,读者可以自行设定其它的方法】。

    在前述预设条件下,得到的仿真结果如下:

图4.9  不同迭代次数下各染色体适应度值的分布

图4.10  各迭代次数下最优适应度值的变化

图4.11  迭代完成前后最优适应度染色体对应的波束方向图

图4.12 迭代完成后最优适应度的染色体

    从上面的结果来看,趋势是符合预期的,且波束指向(11°)已经很接近预设的方向(10°)。 更优的结果读者可以通过优化参数设计、设置更多的迭代次数等方法来实现。

4.4 基于粒子群算法的多变量、多优化目标的仿真结果及其讨论

    和4.3的预设条件以及求整体适应度值的方法一样,粒子群算法下得到的结果如下:

图4.13  不同迭代次数下各粒子适应度值的分布

图4.14  各迭代次数下最优适应度值的变化

图4.15  迭代完成前后最优适应度粒子对应的波束方向图

图4.16 迭代完成后最优适应度的粒子

    从上面的结果来看,效果远差于遗传算法。关于该结果的解释以及两种算法针对多变量、多目标函数问题的对比探讨,同4.2节。

五、总结

    本博文对基于遗传算法和粒子群算法的多变量、多目标函数下的优化问题进行了探讨。以波束形成优化为例,使用这两种算法分别仿真了多变量(阵元幅值、相位、位置),单一目标优化(更高的峰值旁瓣比),多目标(设定波束指向&更高的峰值旁瓣比)优化四种情况,给出了仿真结果以及一些简单的探讨。

    本博文的目的在于提供一个基础的、对于该问题的解决思路、框架和初步结果。更理想的优化结果,需要做更细节和更深入的工作。

六、参考资料

[1] 基于遗传算法的波束形成优化-仿真实践-CSDN博客

[2] 基于粒子群算法的波束形成优化 – 仿真实践-CSDN博客

[3] 遗传算法及基于该算法的典型问题的求解实践-CSDN博客

[4] 粒子群算法及基于该算法的典型问题求解实践-CSDN博客

[5] 关于阵列发射端的波束形成(相控阵)研究与仿真实践-CSDN博客

[6] 关于柔性阵列(/三维阵列)波束形成的仿真实践以及稳健波束形成的思考(1)-CSDN博客

七、代码

基于遗传/粒子群算法的多类型变量&多优化目标下的优化仿真实践-以波束形成优化为例博文对应的代码资源-CSDN文库

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨@#≯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值