基于标准粒子群优化算法的主动噪声控制方法 |
|||||||
申请号 | CN201610308347.1 | 申请日 | 2016-05-11 | 公开(公告)号 | CN106023981A | 公开(公告)日 | 2016-10-12 |
申请人 | 浙江工业大学; | 发明人 | 叶宣佐; 管俊轶; 何熊熊; 丁佳骏; 曹全君; | ||||
摘要 | 本 发明 涉及主动噪声控制领域,尤其涉及基于标准 粒子群优化 算法 的主动噪声控制方法,包括:(1)根据实际噪声控制问题建立 迭代 学习主动噪声控制系统;(2)根据广义次级通道的传递函数设计自变量为学习 滤波器 参数的适应度计算公式;(3)根据IIR滤波器数学模型建立标准粒子群优化模型;(4)利用标准粒子群 优化算法 搜索出最佳性能滤波器参数。本发明的优势在于:(1)本发明方法简单,易于实现,能够有效的消除重复噪声;(2)本发明设计一种迭代学习主动噪声控制系统,该系统用频域方法描述系统,用IIR滤波器实现学习滤波器,并通过量子粒子群优化算法设计IIR滤波器的参数,有很好的 稳定性 、鲁棒性,收敛速度快。 | ||||||
权利要求 | 1.基于标准粒子群优化算法的主动噪声控制方法,实施本方法的基于标准粒子群优化算法的主动噪声控制系统运行于计算机系统上,包括广义次级通道的传递函数P(z)、学习滤波器Q(z)和G(z),其中Q(z)=1,G(z)由IIR滤波器实现,z为系统函数的z域表示的变量; |
||||||
说明书全文 | 基于标准粒子群优化算法的主动噪声控制方法技术领域背景技术[0002] 主动噪声控制(ANC)最早由德国Lueg Paul以专利的形式于1936年提出,至今已有八十多年的发展历程。它的原理是人为生成一个与噪声等幅、同频、反相的声音与噪声进行相消性干涉,从而达到降噪或消声的目的。主动噪声控制系统如图1所示,图中d(n)是噪声,也被称为主声源;u(n)是控制输入;x(n)是次级声源在相消区域的声音信号;e(n)是残差信号;P(z)是控制系统的传递函数,也可称为广义次级通道,它不但包括了次级声源到相消区域之间的次级通道,还包括了系统输入到次级声源产生的过程。我们的目的是要根据残差信号和控制信号通过自适应的方式更新控制信号使残差信号渐渐减小。当噪声具有重复特性,这个问题就可被看作为一个轨迹跟踪问题。我们可以利用ILC方法对噪声进行一次次的学习,使次级声源渐渐近似于反相主声源与主声源进行干涉相消,使残差信号减小。随着自适应滤波技术的ANC技术的成熟,滤波最小均方误差(FxLMS)算法的ANC技术得到了广泛的应用。但是这种通用性广泛的技术,也带来了一些性能上的问题:(1)对于具有重复特性的噪声,FxLMS-ANC无法利用其噪声的特殊性进行降噪;(2)在那些对降噪性能有极致要求的应用背景中,FxLMS-ANC往往也无能为力,随着现代控制理论的发展和新型控制理论的不断出现,ANC有了一些新的发展方向。其中,基于迭代学习控制理论的ANC技术在处理具有重复特性噪声的应用中具有很高的研究价值。 [0003] 迭代学习控制(ILC)由日本学者Uchiyama于1978年首次提出,它通过反复利用先前实验得到的信息来获得能够产生期望输出轨迹的控制输入,以改善控制质量。与传统的控制方法不同的是,迭代学习控制能以非常简单的方式处理不确定度相当高的动态系统,且仅需要较少的先验知识和计算量,具有适应性强、易于实现等优点,更重要的是,他不依赖于被控对象的精确数学模型,是一种以迭代学习方式产生优化控制信号,使系统输出尽可能逼近理想值的控制算法。迭代学习控制凭借其独有的控制方式,对于解决非线性、复杂度高、难以建模的高精度轨迹跟踪控制问题有着巨大的优势。其已成为提高进行重复性运作系统的跟踪精度及消除系统重复干扰的有效途径,是现代控制理论的重要组成部分。 [0004] 标准粒子群优化算法(PSO-W)是在标准粒子群优化算法(PSO)基础上提出的。PSO算法是由美国学者Kennedy和Eberhart于1995年提出的一种全局智能优化算法,用于解决各式各样的优化问题。它利用一群粒子对最优解进行搜索,每个粒子都会根据自身的搜索经验和全局的搜索经验更新自身的搜索速度并评价当前位置的适应度为下一步搜索提供个体经验和全局经验,最终搜索出全局最优解。PSO算法参数少,实现起来较为简单。为了得到更好的收敛性,PSO-W算法使得粒子可以在整个可行解的空间中进行搜索,比PSO具有更好的全局收敛性和搜索能力。 发明内容[0006] 本发明通过以下技术方案达到上述目的:基于标准粒子群优化算法的主动噪声控制方法,实施本发明方法的基于标准粒子群优化算法的主动噪声控制系统运行于计算机系统上,包括广义次级通道的传递函数P(z)、学习滤波器Q(z)和G(z),其中Q(z)=1,G(z)由IIR滤波器实现,z为系统函数的z域表示的变量;包括以下步骤: [0007] (1)根据广义次级通道的传递函数P(z),选择IIR滤波器的抽头系数个数,其中分子中的参数个数为l,分母中的参数个数为r; [0008] (2)根据已知线性时不变系统的传递函数对应的频率响应函数P(ejω),得到一个适应度函数表达式: [0009] [0010] 其中: [0011] en(ejω)=[1,e-jω,...,e-jωl]T (2) [0012] ed(ejω)=[e-jω,e-2jω,...,e-jωr]T (3) [0013] φ=[a1,a2,...,ar]T (4) [0014] ψ=[b0,b1,...,bl]T (5) [0015] ejω为时域到复频域的拉普拉斯变换后的频域表示,ω为频率,φ,ψ为滤波器的实系数向量,其中[·]T表示向量转置,en(ejω),ed(ejω)为两个复函数向量。 [0016] (3)设定标准粒子群优化算法的参数;具体的参数有:总搜索代数N;粒子总数M;粒子在搜索空间飞行的速度v,加速系数c1,c2,r1,r2为服从[0,1]内均匀分布的随机数; [0017] (4 )初始化滤波器系数向量 所有个体的适应度值个体潜在最优的滤波器系数向量Pbesti(0),i=1,2,...,M、全 局潜在最优的滤波器系数向量gbest(0)、搜索代数n=0; [0018] (5)进入下一代搜索,n=n+1;计算所有个体的适应度值: [0019] [0020] 比较个体当前适应度值和个体上一代的全局最优适应度值,如果个体的当前适应度大于上一代的全局最优适应度值,则用全局最优适应度值更新当前适应度值,并用全局潜在最优的滤波器系数向量更新当前个体的滤波器系数向量 如果个体的当前适应度值小于上一代的全局最优适应度值,则保留上一代的适应度值和上一代的全局潜在最优滤波器系数向量gbesti(n)=gbesti(n-1),再用个体当前的适应度值与上一代个体最优适应度值比较,如果个体当前的适应度值大于上一代个体最优适应度值,则用个体最优适应度值更新当前适应度值,并用个体潜在最优的滤波器系数向量更新当前个体的滤波器系数向量: [0021] [0022] 看滤波器的系数向量是否达到最终条件,没有则更新粒子飞行的速度和滤波器的系数向量,进入下一次迭代。 [0023] 更新粒子飞行速度v和滤波器系数向量: [0024] [0025] [0026] (6)重复步骤(5),直到达到设定的最大搜索代数;输出全局潜在最优的滤波器系数作为滤波器系数。 [0027] 作为优选,所述广义次级通道包括了系统输入到次级声源产生的过程和次级声源到相消区域之间的次级通道的过程。 [0028] 本发明的有益效果在于:(1)本发明方法简单,易于实现,能够解决重复噪声消噪问题;(2)本发明设计一种迭代学习主动噪声控制系统,该系统用频域方法描述系统,用IIR滤波器实现学习滤波器,并通过标准粒子群优化算法设计IIR滤波器的参数,具有很好的稳定性,并对干扰具有很好的鲁棒性,能获得很小的残差,收敛速度快。附图说明 [0029] 图1是实施本发明方法的主动噪声控制系统结构原理的示意图; [0030] 图2是实施本发明方法的系统结构示意图; [0031] 图3是本发明方法的程序流程图; [0032] 图4是本发明实施例中适应度随搜索代数增长的变化图; [0033] 图5是本发明实施例中降噪速度因子在频域上的幅值图; [0034] 图6是本发明实施例中降噪前后残差对比图; [0035] 图7是本发明实施例中降噪前后残差功率谱对比图; 具体实施方式[0036] 下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此。 [0037] 如图2所示,是实现本发明方法的基于标准粒子群优化算法的主动噪声控制系统结构示意图,uk(n)是控制信号,即控制系统的输入信号;P(z)是广义次级通道的传递函数;Q(z)和G(z)是学习滤波器;rk(n)是包含随机噪声的主声源,主声源在迭代轴上是一个严格重复信号,每次迭代中,主声源都是相同的曲线;ek(n)是残差信号,也是系统的输出信号;wk(n)和vk(n)是学习滤波器输入中包含的观测噪声,是不可重复干扰,k是迭代数。由图2的系统框图得到系统输入uk(n)在z变换域的迭代更新公式: [0038] Uk+1(z)=Q(z)[Uk(z)+Wk(z)]-G(z)[Ek(z)+Vk(z)] (10) [0039] 由于本发明的基于标准粒子群优化算法的主动噪声控制器是应用于具有重复性的主声源消噪,主声源在每次迭代中都是相同的,并且主声源还会伴随随机噪声的干扰一起作用于系统。用公式表述为: [0040] rk(n)=x(n)+yk(n) (11) [0041] 其中x(n)是主声源,yk(n)是随机噪声。uk(n)与ek(n)在z变换域的关系如下: [0042] Ek(z)=Rk(z)-P(z)Uk(z) (12) [0043] 由上面2个等式可以得到残差信号ek(n)在z变换域的迭代更新公式: [0044] Ek+1(z)=[1-Q(z)]X(z)+Yk+1(z)-Q(z)Yk(z)-P(z)Q(z)Wk(z)+P(z)G(z)Vk(z)[0045] +[Q(z)+P(z)G(z)]Ek(z) (13) [0046] 残差收敛的条件为: [0047] [0048] 其中,ρ为收敛速度因子,反映了系统的降噪速度,ρ值越小,降噪速度越快。为了求得系统降噪性能,即迭代数k→∞时的残差E∞(z)的最大值,定义3个中间变量和1个增益变量: [0049] [0050] 其中,ξ是一个大于0的常数,使得 将这些中间变量代入残差信号的迭代更新公式,得到: [0051] [0052] [0053] 当k→∞且满足系统收敛条件,最大残差信号的上限可以表示为: [0054] [0055] 由上式可以看出,最大残差信号不但受学习滤波器的参数影响,还受干扰的影响。但是干扰只影响最大残差信号的幅度,而不会影响系统的稳定性。随着迭代数不断增大,系统会渐近收敛到一个固定值,并在这个值附近浮动。 [0056] 在实际应用是,ξ通常是一个很小的值。我们就可以选择学习滤波器Q(z)=1,这样就能使系统的残差信号达到最小。然后设计学习滤波器G(z)使ρ最小。 [0057] 学习滤波器G(z)可以用一个IIR滤波器来实现。IIR滤波器的传递函数可以表示为: [0058] [0059] 定义向量φ=[a1,a2,...,ar]T,ψ=[b0,b1,...,bl]T, 为滤波器的实系数向量,其中[·]T表示向量转置。再定义两个复函数向量: [0060] en(z)=[1,z-1,...,z-l]T (19) [0061] ed(z)=[z-1,z-2,...,z-r]T (20) [0062] IIR滤波器的矩阵形式表示为: [0063] [0064] 相应的频率响应函数可以表示为: [0065] [0066] 根据这样的IIR滤波器实现迭代学习主动噪声控制系统的学习滤波器,系统的收敛条件可以表示为: [0067] [0068] 这样,学习滤波器G(z)的设计问题可以归结为一个无约束非线性最优化问题。问题的数学描述如下: [0069] [0070] 这样的无约束非线性最优化问题可以利用标准粒子群优化算法求解。用量子粒子群优化算法设计学习滤波器G(z)的数学描述如下: [0071] [0072] 如果 则 [0073] 如果 则 [0074] [0075] [0076] 其中, 表示第i个粒子在第n代的滤波器系数向量, 是第i个粒子的适应度向量,pbesti(n)是第i个粒子的潜在最优的滤波器系数向量,gbest(n)是全局潜在最优的滤波器系数向量,n表示当前搜索代数,i表示粒子编号,M表示粒子总数,总搜索代数N;粒子在搜索空间飞行的速度v,加速系数c1,c2,c1=c2=1.49445,r1,r2为服从[0,1]内均匀分布的随机数。 [0077] 经过若干代的搜索,粒子群会渐近收敛到最优的滤波器系数所在位置。虽然标准粒子群优化算法具有很好的全局搜索能力,但是还是有一定的概率搜索到次优解,我们可以重复进行多次搜索,选出最好的滤波器系数。这对于离线滤波器设计应用非常适用。 [0079] [0080] 采用基于标准粒子群优化算法的主动噪声控制方法对上述主声源进行消噪处理,如图3所示; [0081] (1)根据传递函数P(z),选择IIR滤波器的抽头系数个数,其中分子中的参数个数为l=3,分母中的参数个数为r=5。 [0082] (2)根据传递函数P(z)对应的频率响应函数P(ejω),得到一个适应度函数表达式: [0083] [0084] 其中: [0085] [0086] en(ejω)=[1,e-jω,e-2jω,e-3jω]T (27) [0087] ed(ejω)=[e-jω,e-2jω,e-3jω,e-4jω,e-5jω]T (28) [0088] φ=[a1,a2,a3,a4,a5]T (29) [0089] ψ=[b0,b1,b2,b3]T (30) [0090] (3)设定标准粒子群优化算法的参数。具体的参数有:总搜索代数N=100;粒子总数M=200,加速系数c1=c2=1.49445,r1,r2为服从[0,1]内均匀分布的随机数。 [0091] (4 )初始化滤波器系数向量 所有个体的适应度值个体潜在最优的滤波器系数向量Pbesti(0),i=1,2,...,M、全 局潜在最优的滤波器系数向量gbest(0)、搜索代数n=0。 [0092] (5)进入下一代搜索,n=n+1。计算所有个体的适应度值: [0093] [0094] 比较个体当前适应度值和个体上一代的全局最优适应度值,如果个体的当前适应度大于上一代的全局最优适应度值,则用全局最优适应度值更新当前适应度值,并用全局潜在最优的滤波器系数向量更新当前个体的滤波器系数向量 如果个体的当前适应度值小于上一代的全局最优适应度值,则保留上一代的适应度值和上一代的全局潜在最优滤波器系数向量gbesti(n)=gbesti(n-1),再用个体当前的适应度值与上一代个体最优适应度值比较,如果个体当前的适应度值大于上一代个体最优适应度值,则用个体最优适应度值更新当前适应度值,并用个体潜在最优的滤波器系数向量更新当前个体的滤波器系数向量: [0095] [0096] 看滤波器的系数向量是否达到最终条件,没有则更新粒子飞行的速度和滤波器的系数向量,进入下一次迭代。 [0097] 更新粒子飞行速度v和滤波器系数向量: [0098] [0099] [0100] (6)重复步骤(5),直到达到设定的最大搜索代数100。 [0101] 结果显示在图4-7中。图4显示,搜索代数达到96代以后,适应度达到最小值0.2412,响应的滤波器系数接近最优值,8个滤波器系数分别为: [0102] |