一种基于粒子群算法的主动降噪算法参数优化方法

文档序号:1230195 发布日期:2020-09-08 浏览:31次 >En<

阅读说明:本技术 一种基于粒子群算法的主动降噪算法参数优化方法 (Active noise reduction algorithm parameter optimization method based on particle swarm optimization ) 是由 陈书明 蒋尧 周政道 张瑞 于 2020-06-03 设计创作,主要内容包括:本发明公开了一种基于粒子群算法的主动降噪算法参数优化方法,步骤1:种群的随机初始化;步骤2:将群体赋值给待求参数;步骤3:运行主动噪声控制算法,并计算适应度函数对应适应度值;步骤4:确定个体最优位置和全局最优位置;步骤5:判断迭代次数是否达到上限;若未达到则继续执行以下步骤6;若达到,则输出优化变量值;步骤6:对粒子的速度与位置进行更新,得到新的群体,之后再次执行步骤2至步骤5。(The invention discloses an active noise reduction algorithm parameter optimization method based on a particle swarm algorithm, which comprises the following steps of 1: randomly initializing a population; step 2: assigning the group to the parameter to be solved; and step 3: operating an active noise control algorithm and calculating a fitness value corresponding to a fitness function; and 4, step 4: determining an individual optimal position and a global optimal position; and 5: judging whether the iteration number reaches an upper limit or not; if not, continuing to execute the following step 6; if so, outputting an optimization variable value; step 6: and updating the speed and the position of the particles to obtain a new population, and then executing the steps 2 to 5 again.)

一种基于粒子群算法的主动降噪算法参数优化方法

技术领域

本发明涉及本发明属于主动噪声控制技术领域,特别涉及一种基于粒子群算法的主动降噪算法参数优化方法。

背景技术

随着人们对汽车车内舒适性及NVH性能的追求,车内噪声得到了越来越多的重视。长期处于噪声环境中,不仅影响驾驶安全,还会给人们身心健康造成很大程度上的危害。因此,控制车内噪声已经成为汽车行业中一个重要的研究方向。传统的被动噪声控制对高频噪声的控制效果很有效,但对低频噪声的控制却不理想。而主动噪声控制利用声波干涉的原理,可以对低频噪声起到很好的抑制作用,并且能够有效提升车内声品质。其中,自适应滤波算法是主动噪声控制的核心,而最小均方(Least Mean Square,LMS)算法以其算法简单、计算量小的特点被广泛应用。但在主动噪声控制实际应用中存在次级声通道,出现不稳定的问题。Widrow基于该特点,将LMS算法改进为滤波-x最小均方(Filter-x Least MeanSquare,FxLMS)算法消除了次级通道的影响。

对于采用定步长FxLMS算法的车内噪声主动控制系统存在收敛速度与稳态误差无法兼顾的缺陷,本技术方案在算法初始收敛阶段时予以较大的步长以得到较快的收敛速度,而在算法收敛之后,权矢量逐渐达到最优值,予以较小的步长以获得较小的稳态误差,并且当残余误差逐渐接近于0时,要求具有缓慢变化的特性,避免在稳态过程因误差偶尔的波动而造成步长的大幅变化。将类似的步长调节方式应用于传统车内噪声主动控制系统采用的FxLMS算法中,将有利于改善实际的降噪效果。

而在试验研究或实际应用中,对于算法中涉及的多个参数,普遍采用试凑法或正交法来确定最优值,这些方法操作繁琐且精度不高。而粒子群优化算法(PSO)是基于个体与群体的社会行为来进行寻优的一种算法,其属于智能优化算法类别。类似于其它群体搜索算法,粒子群优化算法也是根据群体对环境的适应度来指引个体动态移动到最优区间。但该算法的独特不同之处在于,算法中的每个个体仅被认为是整个寻优空间中以特定速度与方向飞行的粒子,整个优化过程不存在粒子间的交叉变异和重组等进化过程。粒子群优化算法具有编程简单、容易实现、寻优速度快、优化效果显著等优点,能有效地解决复杂优化问题。将PSO算法应用于主动降噪算法的参数选取中,不仅能提高精度,而且能大大缩短参数选择的时间,提高算法研究或系统调试的效率。

发明内容

本发明提出一种基于粒子群算法的主动降噪算法参数优化方法,针对主动噪声控制算法中涉及的参数通过粒子群优化算法进行选取,旨在寻找使得该目标函数最小的最优参数。

一种基于粒子群算法的主动降噪算法参数优化方法,

步骤1:种群的随机初始化;

步骤2:将群体赋值给待求参数;

步骤3:代入步骤2中所得参数,采用的主动噪声控制算法,并计算适应度函数对应适应度值;

步骤4:确定个体最优位置和全局最优位置;

步骤5:判断迭代次数是否达到上限;若未达到则继续执行以下步骤6;若达到,则输出优化变量值;

步骤6:对粒子的速度与位置进行更新,得到新的群体,之后再次执行步骤2至步骤5。

作为进一步的优选,所述步骤1中生成一定种群规模的粒子,随机初始化每个粒子的初始速度vij(t=0)与位置xij(t=0);其中,i为优化参数的编号,即第i个优化参数,j为每个粒子的编号,即第j个粒子,vij(t)表示在第t次迭代时第i维优化参数的第j个粒子的速度和xij(t)表示在第t次迭代时第i维优化参数的第j个粒子的位置。

作为进一步的优选,采用定步长FxLMS算法时,当μ(n)=μ0,μ0为定值,利用步骤2中的参数vari,令μ0=var1;或者

采用不定步长FxLMS算法时当μ(n)不为定值时,此时:

其中,α和β为大于零的常数。

利用步骤二的参数,令α=var1,β=var2

作为进一步的优选,所述步骤3中,所述适应度函数的适应度值fitv:

其中n指的是当前迭代次数,M指的是总的迭代次数,e(n)指迭代到第n次时主动降噪仿真算法所输出的残余误差值。

作为进一步的优选,所述步骤4中,初次迭代时,将每个粒子的当前位置设为个体最优位置pbest,初次迭代后,对每个粒子的当前位置与其历史最优位置进行比较,若当前位置更优,则将其替代pbest,否则个体最优位置不变;将所有个体的最优值pest与整个群体的当前的全局最优位置gbest进行对比,若某个个体的最优值pest更优,则将其替换gbest,否则全局最优位置不变。

作为进一步的优选,所述步骤6中,调节每个粒子的位置与速度,使每个粒子朝向其自身历史最佳位置和种群的最优位置,所述更新的公式如下:

vij(t+1)=w·vij(t)+r1·c1·(pbestij(t)-xij(t))+r2·c2·(gbesti(t)-xij(t))

xij(t+1)=xij(t)+vij(t+1)

其中i为每个优化参数的编号,即第i个优化参数,j为每个粒子的编号,即第j个粒子,vij(t)和xij(t)分别表示在第t次迭代时第i维优化变量的粒子j的速度和位置,pbestij(t)和pbesti(t)分别代表在第t次迭代时第i个优化参数第j个粒子的最优位置和整个群体第i个优化变量的最优位置;w为惯性权重,c1与c2分别为认知学习因子和社会学习因子、r1与r2均为[0,1]内的随机数。

作为进一步的优选,其中,惯性权重w通过线性调整法进行控制,w初始值应取得较大,随着迭代的进行逐渐减小w值,采用以下线性调节法对w值进行控制:

其中w1和w2分别代表惯性权重的初值与终值,t与T分别为当前的迭代次数与整个寻优过程的最大迭代次数。

本发明所述的有益效果:

本发明提供的一种基于粒子群算法的主动降噪算法参数优化方法与传统普遍采用的试凑法和正交法相比,其优势在于通过程序可以实现最优参数的智能选取,提高参数选取的效率和精度。

将类似的步长调节方式应用于传统车内噪声主动控制系统采用的FxLMS算法中,将有利于改善实际的降噪效果。

该方法将粒子群算法与主动噪声控制算法相结合,把主动噪声控制算法对降噪效果有直接影响的待定参数设为粒子群算法中的优化参数,把主动噪声控制算法输出的残余误差的均方值设定为粒子群算法的适应度函数或目标函数,粒子群优化算法也是根据群体对环境的适应度来指引个体动态移动到最优区间。

附图说明

图1为本发明的参数优化方法流程图。

图2为本发明所述的FxLMS算法的框图。

图3为本发明所述的模拟噪声信号。

图4为本发明所述的最优参数对应的主动降噪效果图。

图5为本发明所述的最优参数对应的前1000次迭代的主动降噪效果。

图6为本发明所述的最优参数对应的前1000-8000次迭代的主动降噪效果。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

如图1所示,本发明提供了一种基于粒子群算法的主动降噪算法参数优化方法,该方法将粒子群算法与主动噪声控制算法相结合,把主动噪声控制算法对降噪效果有直接影响的待定参数设为粒子群算法中的优化参数,把主动噪声控制输出的残余误差的均方值设定为粒子群算法的适应度函数或目标函数,旨在寻找使得该目标函数最小的最优参数。

其步骤包括:

步骤1:种群的随机初始化;

步骤2:将群体赋值给待求参数vari

步骤3:利用步骤2中所得参数,调用所采用的主动噪声控制算法,如图2所示,并计算适应度函数对应适应度值;

主动噪声控制算法采用FxLMS算法,参考信号x(n)经初级通路P(z)后得到估计初级信号d(n),即

d(n)=p(n)*x(n)

其中,p(n)为初级通路P(z)的脉冲响应函数。

同时将初始权值系数w(n)与参考信号x(n)进行卷积,并以此得到输出信号y(n),结果如下:

y(n)=wT(n)x(n)

输出信号y(n)经过次级通道S(z)滤波后得到次级抵消信号ys(n)

ys(n)=s(n)*y(n)

其中,s(n)为次级通道S(z)的脉冲响应函数。

将初级信号d(n)和次级抵消信号ys(n)作差,得到误差信号e(n)

e(n)=d(n)-ys(n)

同时对参考信号与次级通路的估计

Figure BDA0002521980580000062

进行卷积运算获得滤波信号

Figure BDA0002521980580000063

其中,

Figure BDA0002521980580000064

为次级通道的脉冲响应函数。

利用滤波信号xf(n)和误差信号e(n),对权系数进行更新

w(n+1)=w(n)+2μ(n)xf(n)e(n)

不断重复上述过程,可实现噪声的主动控制。其中,μ(n)为步长参数,当μ(n)=μ0,μ0为定值,则算法称为定步长FxLMS算法,利用步骤2中的参数vari,令μ0=vari,进行定步长FxLMS算法运算。其中vari中i是指待求参数的编号,FXLMS算法中只有μ0待求,因此,i为1,求出e(n)。

当μ(n)不为定值时,则称算法为变步长FxLMS算法。在本例中,变步长FxLMS算法中的算法取:

其中,α和β为大于零的常数。

变步长FxLMS算法中的待求参数α、β;利用步骤二的参数,令α=var1,β=var2,带入变步长FxLMS算法运行,求出e(n)。

因而,在定步长FxLMS算法和变步长FxLMS算法中的待求参数分别为μ0和α、β。

这里的适应度函数定义为:

Figure BDA0002521980580000071

其中n指的是当前迭代次数,M指的是总的迭代次数,e(n)指迭代到第n次时主动降噪仿真算法所输出的残余误差值。n=1,2,3……M(参见上述fitv的公式);这里的自适应度函数或目标函数所代表的含义为残余误差的均方值;计算出适应度函数对应适应度值fitv。

步骤4:确定个体最优位置和全局最优位置;

步骤5:判断迭代次数是否达到上限。若未达到则继续执行以下步骤;若达到,则输出优化变量值,算法结束;

步骤6:对粒子的速度与位置进行更新,得到新的群体,之后再次执行步骤2至步骤5。

在针对车内发动机阶次噪声进行主动降噪的FxLMS算法,其参数选择过程如下:

步骤1:种群的随机初始化。算法首先生成一定种群规模的m粒子,随机初始化每个粒子的初始速度vij(t=0)与位置xij(t=0)。

其中,i为优化参数(或优化维度)的编号,即第i个优化参数,j为每个粒子的编号,即第j个粒子,vij(t)和xij(t)分别表示在第t次迭代时第i维优化参数的第j个粒子的速度和位置。

步骤2:将群体赋值给待求参数vari

这里i指的是第待求参数编号,它与前述优化参数的编号一致,待求参数供主动噪声控制算法使用。

步骤3:采用主动噪声控制算法,并计算适应度函数对应适应度值。

这里的适应度函数定义为:其中n指的是当前迭代次数,M指的是总的迭代次数,e(n)指迭代到第n次时主动降噪仿真算法所输出的残余误差值。这里的自适应度函数或目标函数所代表的含义为残余误差的均方值。

步骤4:确定个体最优位置和全局最优位置。

初次迭代时,将每个粒子的当前位置设为个体最优位置pbest,初次迭代后,对每个粒子的当前位置与其历史最优位置进行比较,若当前位置更优,则将其替代pbest,否则个体最优位置不变;将所有个体的最优值pest与整个群体的当前的全局最优位置gbest进行对比,若某个个体的最优值pest更优,则将其替换gbest,否则全局最优位置不变。值得注意的是,主动噪声控制算法中最终采用的数值为全局最优位置所对应的数值。

步骤5:判断迭代次数是否达到上限;若未达到则继续执行以下步骤6;若达到,则输出优化变量值,算法结束。

步骤6:对粒子的速度与位置进行更新,得到新的群体,之后执行步骤2。调节每个粒子的位置与速度,使每个粒子朝向其自身历史最佳位置和种群的最优位置,更新公式如下:

vij(t+1)=w·vij(t)+r1·c1·(pbestij(t)-xij(t))+r2·c2·(gbesti(t)-xij(t))

xij(t+1)=xij(t)+vij(t+1)

其中i为每个优化参数(或优化维度)的编号,即第i个优化参数,j为每个粒子的编号,即第j个粒子,vij(t)和xij(t)分别表示在第t次迭代时第i维优化变量的粒子j的速度和位置,pbestij(t)和pbesti(t)分别代表在第t次迭代时第i个优化参数第j个粒子的最优位置和整个群体第i个优化变量的最优位置。w为惯性权重,c1与c2分别为认知学习因子和社会学习因子、r1与r2为[0,1]内的随机数。

惯性权重w一般通过线性调整法进行控制,w初始值应取得较大,随着迭代的进行逐渐减小w值,采用以下线性调节法对w值进行控制:

其中w1和w2分别代表惯性权重的初值与终值,t与T分别为当前的迭代次数与整个寻优过程的最大迭代次数。作为优选,通常选取权重线性范围是w∈[0.4,0.9];C1、c2是学习因子,c1和c2的取值范围为[0,4],通常取c1=c2=2。

不断重复上述过程,即可找到使该目标函数最小的最优参数。

现采用本发明所提方法对定步长FxLMS算法和变步长FxLMS算法中的步长参数进行选择。

其中,FxLMS算法的框图如图2所示,x(n)为参考信号,d(n)为初级噪声信号,y(n)为输出信号,ys(n)为次级抵消信号,e(n)为误差信号,P(z)为初级通路传递函数,S(z)次级通路传递函数,

Figure BDA0002521980580000092

次级通路传递函数的估计。定步长FxLMS算法和变步长FxLMS算法的区别在于其权系数更新公式中的步长是否为定值。

定步长FxLMS算法的权系数更新公式为:

w(n+1)=w(n)+2μe(n)xf(n)

其中,n为时间指数,w(n)为n时刻算法的权系数,w(n+1)为(n+1)时刻算法的权系数,μ为步长,它是不随时间变化的定值,是FxLMS算法中的待求参数,同时也是粒子群算法中的优化参数。

变步长FxLMS算法的权系数更新公式为:

w(n+1)=w(n)+2μ(n)e(n)xf(n)

μ(n)为n时刻的权值更新步长,这里的步长函数μ(n)的表达式为

根据车内噪声特性,利用发动机转速与车内峰值频率之间的关系合成如图3的稳态工况下的车内模拟噪声信号。针对该噪声信号,分别以定步长FxLMS算法和变步长FxLMS算法进行主动噪声控制仿真,主动降噪算法中,取滤波器阶数为N=32,采样频率为8000Hz,定步长FxLMS算法的待求参数为步长μ0,以及变步长FxLMS算法的待求参数为α、β。其中,粒子群算法的基本参数设置为:种群规模取为30,惯性权重采用线性调整法,初值w1取为0.9,终值w2取为0.4,迭代次数取30,加速因子c1与c2均取为1.5,根据经验值,FxLMS算法中参数μ的范围为[0.01,0.04],变步长FxLMS算法中参数α的范围为[0.01,0.04],参数β的范围为[200,1000]。经算法迭代计算,得如表1所示的最优参数以及对应目标函数值MSE。最终所获得的最优参数如表1所示,其对应的主动降噪结果如图4,图5和图6所示。

表1由粒子群算法求得的主动噪声控制算法参数及其对应的目标函数值MSE

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子设备、控制装置、控制方法及记录介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!