基于改进人工蜂群算法的扬声器体积优化方法转让专利

申请号 : CN201810209920.2

文献号 : CN108513234B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高浩李昊伦

申请人 : 南京邮电大学

摘要 :

本发明公开了一种基于改进人工蜂群算法的扬声器体积优化方法,首先建立扬声器体积优化模型并初始化人工蜂群,雇佣蜂在当前适应度值最高的h个食物源附近采用多维度更新和贪婪更新策略更新食物源位置,观察蜂利用轮盘赌算法选择食物源,观察蜂在当前适应度值最高的h个食物源附近采用多维度更新和贪婪更新策略来更新食物源位置,当有食物源连续几代没有更新则雇佣蜂变为侦查蜂并随机寻找新的食物源,重复步骤直至满足终止条件,输出最优解;本发明将基于改进人工蜂群算法运用于扬声器的设计中,在取得良好的设计效果的同时,具有收敛速度快、搜索精度高的优点,设计扬声器时能在短时间内最大程度减少铁的使用量和扬声器的体积。

权利要求 :

1.一种基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,包括以下步骤:(1)以扬声器体积为目标函数,结合约束条件建立扬声器体积优化模型,并设置人工蜂群算法的参数,所述扬声器体积优化模型包含16个变量x=(x1,x2,...,x16),其中x1,x2,...,x16分别表示扬声器设计模型中16个边的长度,扬声器体积的公式为f(x)=Viron+Vmagnet,约束条件为Bmin-|Bgap|≤0,其中Viron表示扬声器中纯铁体积,Vmagnet表示扬声器中磁铁体积,Bgap表示纯铁之间间隙区域x9的磁通量密度,Bmin表示设定的磁通量密度下限;

(2)初始化第一代人工蜂群,计算所有食物源的目标函数值和适应度值;

(3)每个雇佣蜂对应一个食物源,雇佣蜂在当前最好的h个食物源附近依次采用多维度更新和贪婪更新策略更新食物源位置,h为设定值;

(4)雇佣蜂分享食物源信息给观察蜂,观察蜂根据全体雇佣蜂提供的食物源的适应度值用轮盘赌算法选择食物源;

(5)观察蜂在当前最好的h个食物源附近采用多维度更新和贪婪更新策略更新食物源位置;

(6)当有食物源连续limit代没有更新则将雇佣蜂变为侦查蜂并随机寻找新的食物源;

(7)重复执行步骤(3)至步骤(6)直至当前迭代次数大于最大迭代次数或计算函数值的次数达到最大评估次数;

(8)输出最优解。

2.根据权利要求1所述的基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,步骤(2)中初始化的方式为在种群上下限范围内随机生成NP个食物源,种群上限为扬声器设计模型16个边的长度对应的最大值集合ub,种群下限为扬声器设计模型16个边的长度对应的最小值集合lb,食物源初始位置为 i∈{1,2,...,NP},j∈{1,2,...,16},其中 表示第i个食物源的第j维分量,lbj表示种群第j维分量的下限,ubj表示种群第j维分量的上限,rand是取值在[0,1]之间的随机数,设置迭代次数iter为1。

3.根据权利要求1所述的基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,步骤(2)中食物源的适应度值fit(i)为:其中fi表示第i个食物源的目标函数值,abs(fi)表示第i个食物源的目标函数值fi的绝对值。

4.根据权利要求1所述的基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,步骤(3)中在当前最好的h个食物源附近采用多维度更新策略的具体步骤为:

31)在当前所有食物源中选出适应度值最高的h个食物源,h=3,将这三个食物源的位置分别记录在食物源xglobal1、食物源xglobal2和食物源xglobal3中;

32)确定当前代的更新维度的数量为ND=floor(1+iter/MAXITER×5),其中iter为当前迭代次数,MAXITER为最大迭代次数,floor(rn)表示取不大于rn的最大整数,rn为任意实数;

33)在所有维中随机选取ND个维数并记录为k1L kND;

34)计算得到迭代新解:

其中i∈{1,2,...,NP},n1,n2是从集合{1,2,...,NP}中随机选取的,且满足i≠n1≠n2,j∈{k1,...,kND},globalr是从集合{global1,global2,global3}中随机选取的,rand是取值在[0,1]之间的随机数, 和 分别代表第n1、n2和第globalr个食物源的第j维分量。

5.根据权利要求1所述的基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,步骤(3)中贪婪更新策略为:其中fitnessvi表示执行贪婪更新策略后第i个食物源的适应度值,fitnessxi表示在执行贪婪更新策略前第i个食物源的适应度值;

更新最优食物源,若新解仍为原食物源,则该食物源的已开采次数增加1。

6.根据权利要求1所述的基于改进人工蜂群算法的扬声器体积优化方法,其特征在于,步骤(4)中食物源信息包括位置、函数值和适应度值,轮盘赌算法的具体步骤为:

41)根据食物源的适应度值计算观察蜂对第i个食物源的跟随概率为

其中fitnessi表示食物源i的适应度值,fitnessk表示食物源k的适应度值,表示NP个食物源的适应度值总和;

42)令 其中i为食物源的序号,i∈{1,2,...,NP},Pii表示观察蜂对第ii个食物源的跟随概率,Pi'为前i个食物源的跟随概率累加和;

43)生成一个0到1之间均匀分布的随机值rand,若rand

说明书 :

基于改进人工蜂群算法的扬声器体积优化方法

技术领域

[0001] 本发明属于扬声器技术领域,具体涉及一种基于改进人工蜂群算法的扬声器体积优化方法。

背景技术

[0002] 扬声器是一种十分常用的电声换能器件,在电子元器件中是一个最薄弱的器件,而对于音响效果而言,又是一个最重要的器件。扬声器的种类繁多且价格相差很大。音频电能通过电磁、压电或静电效应,使其纸盆或膜片振动周围空气造成音响。现如今,人们无论对手机还是其他电子设备的要求都越来越高,故应在提升性能的同时满足用户便捷的需求,设计一种高效的优化算法来优化扬声器等电子元件具有重要意义。
[0003] 电磁装置的优化设计问题通常具有多模态、多维度、不可微分和受约束等特点,传统的优化方法并不能很好地解决此类问题。近年来,启发式算法已被广泛应用于解决逆向电磁问题,启发式算法主要包括遗传算法、蚁群算法、粒子群算法和人工蜂群算法等,上述群体智能算法高效且易于使用。
[0004] 人工蜂群算法是一种新的群体智能优化算法,由于具有全局收敛性强、鲁棒性好等优点,人工蜂群算法被广泛应用于通信领域、信号与图像处理、控制领域和电力系统领域等。与其他智能算法不同的是,人工蜂群算法定义了食物源以及三种蜂:雇佣蜂、观察蜂和侦查蜂,食物源代表一个解向量,其好坏表征着对应的适应度值高低,而三种蜂的作用则是使局部寻优的次数增多,范围更广,从而使该算法具有很强的全局搜索能力。但与此同时人工蜂群算法也存在着收敛速度过慢,搜索精度不高的缺点。

发明内容

[0005] 本发明的目的在于快速优化扬声器体积,提出一种基于改进人工蜂群算法的扬声器体积优化方法,解决由于算法收敛速度慢导致搜索精度不高无法满足体积优化需求的技术问题。
[0006] 本发明采用如下技术方案,通过对传统的雇佣蜂和观察蜂的搜索策略进行改进,即雇佣蜂和观察蜂采用在当前最高的h个食物源附近多维度更新的策略,达到平衡全局搜索和局部寻优能力的效果。采用本方法对扬声器设计模型进行求解,在满足相关约束的条件下,获得优化后的扬声器各个边的长度。
[0007] 一种基于改进人工蜂群算法的扬声器体积优化方法,具体步骤如下:
[0008] (1)以扬声器体积为目标函数,结合约束条件建立扬声器体积优化模型,并设置人工蜂群算法的参数;
[0009] (2)初始化第一代人工蜂群,计算所有食物源的目标函数值和适应度值;
[0010] (3)每个雇佣蜂对应一个食物源,雇佣蜂在当前适应度值最高的h个食物源附近依次采用多维度更新和贪婪更新策略更新食物源位置,h为设定值;
[0011] (4)雇佣蜂分享食物源信息给观察蜂,食物源信息包括位置、函数值和适应度值,观察蜂根据全体雇佣蜂提供的食物源的适应度值用轮盘赌算法选择食物源,食物源适应度值越大,被选择的概率越大;
[0012] (5)观察蜂在当前适应度值最高的h个食物源附近采用多维度更新和贪婪更新策略来更新食物源位置,h为设定值;
[0013] (6)当有食物源连续limit代没有更新则将雇佣蜂变为侦查蜂并随机寻找新的食物源;
[0014] (7)重复执行步骤(3)至步骤(6)直至当前迭代次数大于最大迭代次数或计算函数值的次数达到最大评估次数;
[0015] (8)输出最优解。
[0016] 优选地,所述扬声器体积优化模型包含16个变量x=(x1,x2,…x16),其中x1,x2,…x16分别表示扬声器设计模型中16个边的长度,扬声器体积的公式为f(x)=Viron+Vmagnet,约束条件为Bmin-|Bgap|≤0,其中Viron表示扬声器中纯铁体积,Vmagnet表示扬声器中磁铁体积,Bgap表示间隙区域x9的磁通量密度,Bmin表示设定的磁通量密度下限。
[0017] 优选地,初始化种群的方式为在种群上下限范围内随机生成NP个食物源。种群上限即模型16个边边长对应的最小值集合ub=[3,1,1,0,5,2,1,1,0.5,0,1,2,0.5,5,2,1],种群下限即模型16个边边长对应的最大值集合lb=[12,4,4,3,15,5,10,3,2,3,5,5,2,12,5,5],食物源的初始位置为 i∈{1,2,…,NP},j∈{1,2,…,
16},其中xij表示第i个食物源的第j维分量,lbj表示种群第j维分量的下限,ubj表示种群第j维分量的上限,rand是取值在[0,1]之间的随机数。迭代次数iter设置为1。
[0018] 优选地,食物源的适应度值fit(i)为:
[0019]
[0020] 其中fi表示第i个食物源的目标函数值,abs(fi)表示第i个食物源的目标函数值fi的绝对值。
[0021] 优选地,在当前适应度值最高的h个食物源附近采用多维度更新策略的具体步骤为:
[0022] 31)在当前所有食物源中选出适应度值最高的h个食物源,h=3,将这三个食物源的位置分别记录在食物源xglobal1、食物源xglobal2和食物源xglobal3中;
[0023] 32)确定当前代的更新维度的数量为ND=floor(1+iter/MAXITER×5),其中iter为当前迭代次数,MAXITER为最大迭代次数,floor(rn)表示取不大于rn的最大整数,rn为任意实数;
[0024] 33)在所有维中随机选取ND个维数并记录为k1…kND;
[0025] 34)计算得到迭代新解:
[0026]
[0027] 其中i∈{1,2,…,NP},n1,n2是从集合{1,2,…,NP}中随机选取的,且满足i≠n1≠n2,j∈{k1,…,kND},globalr是从集合{global1,global2,global3}中随机选取的,rand是取值在[0,1]之间的随机数, 和 分别代表第n1、n2和第globalr个食物源的第j维分量。
[0028] 优选地,贪婪更新策略为:
[0029]
[0030] 其中fitnessvi表示执行贪婪更新策略后食物源i的适应度值,fitnessxi表示在执行贪婪更新策略前食物源i的适应度值。
[0031] 更新最优食物源,若新解仍为原食物源,则该食物源的已开采次数增加1。
[0032] 优选地,轮盘赌算法的具体步骤为:
[0033] 41)根据食物源的适应度值计算观察蜂前往第i个食物源的概率为
[0034]
[0035] 其中fitnessi表示食物源i的适应度值,fitnessk表示食物源k的适应度值,表示NP个食物源的适应度值总和;
[0036] 42)令 其中i为食物源的序号,i∈{1,2,…,NP},Pii表示观察蜂对第ii个食物源的跟随概率,Pi'为前i个食物源的跟随概率累加和;
[0037] 43)生成一个0到1之间均匀分布的随机值rand,若rand<Pi',则观察蜂选择前往第i个雇佣蜂所在的食物源;否则令i=i+1,转到步骤41),若i=NP+1则停止。
[0038] 发明所达到的有益效果:本发明是一种基于改进人工蜂群算法的扬声器体积优化方法,实现扬声器体积的快速优化,解决由于算法收敛慢导致搜索精度不高无法满足体积优化需求的技术问题;将基于改进人工蜂群算法运用于扬声器的设计中,在取得良好的设计效果的同时,运用算法的快速收敛特性提升了设计的速度,具有收敛速度快、搜索精度高的优点,在设计扬声器时能在短时间内最大程度的减少铁的使用量和扬声器的体积。

附图说明

[0039] 图1为本发明的扬声器体积优化的流程图;
[0040] 图2为扬声器一般形式的模型图;
[0041] 图3为各种基于群体算法的扬声器设计运行时体积的收敛曲线图;
[0042] 图4为本发明所得到的扬声器模型图。

具体实施方式

[0043] 下面根据附图并结合实施例对本发明的技术方案作进一步阐述。
[0044] 图1为本发明的扬声器体积优化的流程图。基于改进人工蜂群算法的扬声器体积优化方法具体包括以下步骤:
[0045] (1)以扬声器体积为目标函数,结合约束条件建立扬声器体积优化模型,并设置人工蜂群算法的参数;
[0046] 扬声器的一般模型如图2所示,该模型包含了16个变量x=(x1,x2,…x16),其中x1,x2,…x16分别表示扬声器设计模型中16个边的长度。
[0047] 扬声器体积的数学表达式为f(x)=Viron+Vmagnet,约束条件Bmin-|Bgap|≤0,其中Viron表示扬声器中纯铁体积,Vmagnet表示扬声器中磁铁体积,Bgap表示间隙区域x9的磁通量密度,Bmin表示磁通量密度下限,此处设定为0.5T。
[0048] 种群上限ub=[3,1,1,0,5,2,1,1,0.5,0,1,2,0.5,5,2,1],
[0049] 种群下限lb=[12,4,4,3,15,5,10,3,2,3,5,5,2,12,5,5]。
[0050] 人工蜂群算法的食物源规模NP=40,最大迭代次数MAXITER=200,最大评估次数evaluationmax=NP×MAXITER,当迭代次数iter达到最大迭代次数或计算函数值的次数evaluations达到最大评估次数时结束程序。雇佣蜂转化为侦查蜂所需的食物源连续不更新次数limit=100,为防止实验的偶然性,运行多次来说明算法效果,在本发明中令运行次数run=10。
[0051] (2)初始化第一代人工蜂群,计算所有食物源的目标函数值和适应度值;
[0052] 步骤(2)中初始化的方式为在种群上下限范围内随机生成NP个食物源,种群上限为扬声器设计模型16个边的长度对应的最大值集合ub,种群下限为扬声器设计模型16个边的长度对应的最小值集合lb,食物源初始位置为 i∈{1,2,…,NP},j∈{1,2,…,16},其中 表示第i个食物源的第j维分量,lbj表示种群第j维分量的下限,ubj表示种群第j维分量的上限,rand是取值在[0,1]之间的随机数。迭代次数iter设置为1。
[0053] 食物源的适应度值计算公式为:
[0054]
[0055] 其中fi表示第i个食物源的目标函数值,abs(fi)表示第i个食物源的目标函数值fi的绝对值。
[0056] (3)雇佣蜂在当前适应度值最高的三个食物源附近采用多维度更新和贪婪更新策略来更新食物源位置,具体步骤为:
[0057] 31)在当前所有食物源中选出适应度值最高的三个食物源,将这三个食物源的位置分别记录在xglobal1、xglobal2和xglobal3中;
[0058] 32)确定当前代的更新维度的数量为ND=floor(1+iter/MAXITER×5),其中iter为当前迭代次数,MAXITER为最大迭代次数,floor(rn)表示取不大于rn的最大整数,rn为任意实数;
[0059] 33)在所有维中随机选取ND个维数并记录为k1…kND;
[0060] 34)计算得到迭代新解:
[0061]
[0062] 其中i∈{1,2,…,NP},n1,n2是从集合{1,2,…,NP}中随机选取的,且满足i≠n1≠n2,j∈{k1,…,kND},globalr是从集合{global1,global2,global3}中随机选取的,rand是取值在[0,1]之间的随机数, 和 分别代表第n1、n2和globalr个食物源的第j维分量。
[0063] 35)雇佣蜂在当前食物源附近采用贪婪更新原则选择适应度高的食物源作为新的食物源:
[0064]
[0065] 其中fitnessvi表示执行贪婪更新策略后食物源i的适应度值,fitnessxi表示在执行贪婪更新策略前食物源i的适应度值。
[0066] 36)更新最优食物源,若新解仍为原食物源,则该食物源的已开采次数增加1。
[0067] (4)雇佣蜂分享食物源信息给观察蜂,观察蜂计算所有食物源的适应度值并利用轮盘赌算法选择食物源,食物源适应度值越大,被选择的概率越大,具体步骤为:
[0068] 41)根据食物源的适应度值计算观察蜂前往第i个食物源的概率为
[0069]
[0070] 其中fitnessi表示食物源i的适应度值,fitnessk表示食物源k的适应度值,表示NP个食物源的适应度值总和;
[0071] 42)令 其中i为食物源的序号,i∈{1,2,…,NP},Pii表示观察蜂对第ii个食物源的跟随概率,Pi'为前i个食物源的跟随概率累加和;
[0072] 43)生成一个0到1之间均匀分布的随机值rand,若rand<Pi',则观察蜂选择前往第i个雇佣蜂所在的食物源;否则令i=i+1,转到步骤41),若i=NP+1则停止。
[0073] (5)观察蜂在当前最好的三个食物源附近采用多维度更新和贪婪更新策略来更新食物源位置;
[0074] 步骤(5)中的更新策略同步骤(3)完全一致。
[0075] (6)当有食物源连续limit代没有更新则将雇佣蜂变为侦查蜂并随机寻找新的食物源;
[0076] (7)迭代次数iter=iter+1。重复执行步骤(3)至步骤(6)直至当前迭代次数大于最大迭代次数即iter=MAXITER或计算函数值的次数达到最大评估次数即evaluations=evaluationmax时停止;
[0077] (8)输出最优解。
[0078] 本发明提供的基于改进人工蜂群算法的扬声器体积优化方法与其他优化方法相比优点在于该算法在前期全局搜索能力强,后期局部搜索能力强,使算法既有较快的运行速度同时又提高了精度。
[0079] 下面根据图3进一步说明本发明的技术方案具有收敛速度快,搜索精度高等特点。
[0080] 图3为粒子群算法、差分进化算法、人工蜂群算法和本发明中所提出的算法在优化扬声器体积优化过程中体积的收敛曲线图,每种算法分别独立运行10次,算法结束的条件为迭代次数达到200次或函数评估次数达到8000次。
[0081] 从图3中可看出本发明所提出的算法在前期的收敛速度明显快过其他算法,这是由于该算法始终在最好的三个食物源周围进行搜索,而该算法并没有像粒子群算法一样过早地陷入局部最优是因为在前期保留了人工蜂群算法的单维搜索特性,这保证了前期的全局搜索能力。而在实验后期由于几乎所有粒子都围绕在最优解附近所以该算法在后期阶段增加了每次更新的维数,提升了算法的精确搜索能力。
[0082] 表1
[0083] 算法 最优值 平均值 最差值 方差粒子群算法 12.0555 14.8726 17.3331 1.7925
差分进化算法 3.0648 3.1165 3.2254 0.0469
人工蜂群算法 2.8719 2.9046 2.9535 0.0241
本发明提出的算法 2.8699 2.8735 2.8862 0.0048
[0084] 表2
[0085]
[0086]
[0087] 表1中分别记录了4种算法在运行10次中得到的扬声器体积的最小值、平均值、最大值和方差,通过对比可以看出,本发明提出的算法无论在寻找最优值还是稳定性方面均比其余算法有一定优势。
[0088] 表2中记录了四种算法在找到扬声器最优体积时16个变量对应的长度。
[0089] 图4为本发明提出的改进型人工蜂群算法在扬声器体积优化问题中运行10次后得到的扬声器的最优体积的比例模型。
[0090] 以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进应视为本发明的保护范围。