一种时频域混合自适应滤波的结构振动主动控制方法
技术领域
本发明属于主动振动控制(AVC)领域,涉及一种时频域混合自适应滤波的结构振动主动控制方法。
背景技术
近年来,基于结构振动的主动控制方法取得了突出进展,这种控制方法低频振动抑制效果好、对环境的适应能力强,是目前最为理想的抑振手段之一。其中,自适应滤波前馈控制技术因其计算量少、易于实现等优点,已成为结构振动主动控制的重要方法。该类方法的核心思想是设计自适应滤波器输出控制信号,通过作动器产生作用于结构的控制力,以抵消外部扰动的影响,达到消除或降低结构振动水平的目的。
经典自适应控制通常采用最小均方差(LMS)算法完成控制滤波器权值迭代更新,但是由于传感器、数模转换器及作动器等环节所代表的次级通道的存在,严重影响了控制系统的稳定性及抑振效果。为此人们提出了滤波最小均方差(FxLMS)算法,通过对次级通道进行在线辨识建模,在参考信号参与控制滤波器权值迭代更新之前,加入次级通道模型估计滤波器,抵消次级通道的存在对控制系统的影响。
经典FxLMS自适应滤波算法虽然具有较好的滤波效果,但是由于算法中通常是在时域内进行,每采集一个点的数据就需要更新一次自适应滤波器的权值系数,且每一次滤波器更新包含了多处卷积运算。尤其是含有在线次级通道辨识的FxLMS算法,不仅需要更新主通道控制滤波器权值,还需要更新次级通道辨识滤波器权值,极大增加了计算负荷,容易受到系统硬件条件的制约。由于时域自适应算法通常需要在一个采样周期内完成一次更新,当使用运算速度较低的硬件时,只能通过降低采样频率间接满足运算需求。
为了提升自适应滤波算法的运算效率,降低算法对硬件的要求,频域LMS算法应运而生。通过1/2重叠保留法的快速傅立叶变换FFT,在频域以直接相乘的计算方式实现线性相关和线性卷积的过程,使运算量大大减小。同时对于次级通道的在线辨识,一些学者也提出了对应的频域方法。然而,单纯的频域控制方法的控制间隔大,修正速率低,适应能力有限,只能适用于外扰响应比较平稳和结构参数变化不大的情况。当次级通道的参数发生大幅变化时,往往无法有效跟踪变化做出及时响应。
发明内容
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种时频域混合自适应滤波的结构振动主动控制方法,针对时域自适应滤波方法计算复杂度高和频域控制方法在线辨识次级通道更新慢的缺点,兼顾了计算效率和控制效果。
技术方案
一种时频域混合自适应滤波的结构振动主动控制方法,其特征在于步骤如下:
步骤1:设定主通道滤波器的长度和权值系数W(n)的初始值为0,控制算法的步长因子μ为0~1;设定次级通道滤波器的长度和权值系数S′(n)的初始值为0,辨识算法的步长因子μs为0~1;
步骤2:采集与外扰输入信号相关的参考信号x(n),每次累积N个数据记为一个数据块,记第i块参考输入为x(i)=[x(iN),x(iN+1),…,x(iN+N-1)]T,并令与第i块输入对应的控制滤波器权值系数为w(i)=[w0(i),w1(i),…,wN-1(i)]T T为转置;
步骤3:对每个数据块计算对应的主通道控制滤波器的输出,过程如下:
利用1/2重叠保留法和快速傅立叶(FFT)技术,采用序列循环卷积计算线性卷积,以x(i-1)和x(i)组成2N点序列,若i=1,则在x(1)的前面添置N个零,同时在对应的主通道控制滤波器权值系数w(i)后添置N个零,组成2N点序列,对这两个2N点序列同时进行快速傅立叶变换,即则输出的时域序列相应的表示为:式中:表示点乘,即W(i)和X(i)间元素逐个相乘,去掉y′(i)中前N个值,保留剩余的N个值便是自适应滤波器的真实输出序列,即:
y(i)=[y′(iN),y′(iN+1),y′(iN+2),…,y′(iN+N-1)];
步骤4:将输出信号的数据块y(i)与外加辨识信号v(n)(n=[iN,iN+1,…,iN+N-1])逐个求差,并将差值逐个送入次级通道S(n)进行卷积运算,其运算结果与d(n)进行减法运算得到偏差信号;
同时采集结构振动的偏差信号e(n),累积至N个数据记为一个数据块,将第i块误差信号记为:e(i)=[e(iN),e(iN+1),…,e(iN+N-1)]T,在e(i)的前面添置N个零构成2N点数据,并进行FFT变换,得到
步骤5:采用时域最小均方差算法完成次级通道在线辨识,以FIR滤波器模型描述次级通道,滤波器的权值系数采用下式进行更新,每采集一次偏差信号,系数更新一次:
S′(n+1)=S′(n)+μsf(n)v(n)
其中:S′(n)为第n步辨识得到的次级通道滤波器的权值系数,S′(n+1)为n+1步的权值系数,f(n)为辨识模型误差信号,由式f(n)=e(n)-v′(n)和v′(n)=S′(n)*v(n)得到,其中*表示卷积运算,μs为步长因子;
步骤6:将参考信号x(n)送入更新后的次级通道辨识模型S′(n+1)中,经其滤波后的信号记为x′(n),当该信号累积至N个数据时记为一个数据块,
即x′(i)=[x′(iN),x′(iN+1),…,x′(iN+N-1)]T;
以两个连续的数据块x′(i-1)和x′(i)组成2N点序列,若i=1,则在x′(1)的前面添置N个零构成2N点数据,并进行FFT变换,得到
步骤7:采用频域滤波最小均方差算法更新主通道控制器的权值系数,x′与误差信号e的线性相关向量φ由下式得到:
其中:φ为等式左边向量中的前N个数据,conj()表示复数共轭运算;
在频域内更新一次主通道控制滤波器权值系数,其表达式如下:
步骤8:反复执行步骤2到步骤7,并将步骤7主通道控制滤波器权值系数W(i+1)带入步骤3中,用于更新权值系数W(i),直至步骤4中系统偏差e(n)达到控制要求。
所述N为32。
有益效果
本发明提出的一种时频域混合自适应滤波的结构振动主动控制方法,结合了时域、频域自适应滤波方法的优点,采用频域LMS算法更新主通道自适应滤波器的权值系数,即利用1/2重叠保留法和快速傅立叶变换(FFT)技术,用序列的循环卷积代替线性卷积,运算量大大减小,同时采用时域LMS算法在线实时辨识次级通道模型,提高了模型变化的跟踪速度,整体上降低了算法的计算复杂度,同时保证了对次级通道变化的跟踪速度。
附图说明
图1时频域混合自适应滤波的结构振动主动控制方法原理图
图2主通道仿真模型P(n)的权值系数
图3次级通道仿真模型S(n)的权值系数
图4迭代过程中的系统振动残差
图5压电悬臂梁振动主动控制系统的结构图
图6压电悬臂梁振动响应的时间历程
具体实施方式
现结合实施例、附图对本发明作进一步描述:
参考图1-3所示,本时频域混合自适应滤波的结构振动主动控制方法,仿真模型为模拟的宽频带控制系统,其中主通道模型P(n)和次级通道模型S(n)的权值系数如图2-3所示,具体控制方法步骤为:
步骤1:选择参考信号x(n)的幅值为2,频率为50Hz,将x(n)与外扰通道的FIR模型P(n)卷积运算,以便模拟外部扰动对结构振动的影响,即d(n)=P(n)x(n)。
步骤2:设定主通道滤波器的长度为32,权值系数W(n)的初始值为0,控制算法的步长因子μ为0.000003,算法中数据块分块的长度为32;设定次级通道滤波器的长度为64,权值系数S′(n)的初始值为0,辨识算法的步长因子μs为0.3,整个系统采样率为1000Hz。
步骤3:对参考信号x(n)进行分块,每次累积N个数据记为一块,记第i块参考输入为x(i)=[x(iN),x(iN+1),…,x(iN+N-1)]T,并令与第i块输入对应的控制滤波器权值系数为w(i)=[w0(i),w1(i),…,wN-1(i)]T。
步骤4:当数据量达到一个数据块长度时,对整个数据块进行操作,计算主通道控制滤波器的输出。为降低计算量,利用1/2重叠保留法和快速傅立叶(FFT)技术,采用序列循环卷积计算线性卷积y(n)=w(n)*x(n)。即以x(i-1)和x(i)组成2N点序列,若i=1,则在x(1)的前面添置N个零,同时在对应的主通道控制滤波器权值系数w(i)后添置N个零,组成2N点序列,对这两个2N点序列同时进行快速傅立叶变换,即则输出的时域序列相应的可表示为:式中表示点乘,即W(i)和X(i)间元素逐个相乘,去掉y′(i)中前N个值,保留剩余的N个值便是自适应滤波器的真实输出序列,即:
y(i)=[y′(iN),y′(iN+1),y′(iN+2),…,y′(iN+N-1)]
步骤5:将输出信号的数据块y(i)与外加辨识信号v(n)(n=[iN,iN+1,…,iN+N-1])逐个求差,并将差值逐个送入次级通道S(n)进行卷积运算,其运算结果与d(n)进行减法运算得到偏差信号,偏差信号累积达到N个数据记为一块,将第i块误差信号记为:e(i)=[e(iN),e(iN+1),…,e(iN+N-1)]T,在e(i)的前面添置N个零构成2N点数据,并进行FFT变换,得到其中辨识信号采用白噪声信号,白噪声信号的功率为0.05。
步骤6:采用时域最小均方差算法完成次级通道在线辨识,这里运用FIR滤波器模型描述次级通道,该模型中滤波器的权值系数可采用下式进行更新,每采集一次偏差信号,系数更新一次:
S′(n+1)=S′(n)+μsf(n)v(n)
其中:S′(n)为第n步辨识得到的次级通道滤波器的权值系数,S′(n+1)为n+1步的权值系数,f(n)为辨识模型误差信号,可由式f(n)=e(n)-v′(n)和v′(n)=S′(n)*v(n)得到,其中*表示卷积运算,μs为步长因子。
步骤7:为了补偿次级通道的影响,将参考信号x(n)送入更新后的次级通道辨识模型S′(n+1)中,经其滤波后的信号记为x′(n),当该信号累积至N个数据时记为一个数据块,即x′(i)=[x′(iN),x′(iN+1),…,x′(iN+N-1)]T。以两个连续的数据块x′(i-1)和x′(i)组成2N点序列,若i=1,则在x′(1)的前面添置N个零构成2N点数据,并进行FFT变换,得到
步骤7:采用频域滤波最小均方差算法更新主通道控制器的权值系数,x′与误差信号e的线性相关向量φ可由下式得到:
其中φ为等式左边向量中的前N个数据,conj()表示复数共轭运算。
当累积数据量达到一个数据块长度时,就在频域内更新一次主通道控制滤波器权值系数,其表达式如下:
步骤8:设置迭代次数为100000,反复执行步骤2到步骤7,并将步骤7主通道控制滤波器权值系数W(i+1)带入步骤3中,用于更新权值系数W(i),直至步骤4中系统偏差e(n)达到控制要求。
图4为迭代过程中的系统振动残差。从仿真结果可以看出,在施加该时频域混合滤波的压电结构振动主动控制方法后,系统的振动得到了大幅度的抑制,取得了良好的振动抑制效果。
具体实施方式二
本实施例以模拟机翼的压电悬臂梁的振动控制系统为实例,结合附图说明如下:
参考图1和图5所示,本时频域混合自适应滤波的结构振动主动控制方法,具体是模拟飞行器机翼的压电悬臂梁的振动主动控制方法,其具体控制操作步骤如下:
1、压电悬臂梁结构表面附有磁铁以及以分布贴片方式布置的压电陶瓷片,构成压电悬臂梁的振动控制系统;
2、配置PXI工控机上的数据采集卡、任意波形发生器和控制器,用于激励信号的输出、振动响应信号的采集以及控制算法的执行和控制信号输出。
3、对压电悬臂梁产生外扰的装置原理为:通过PXI工控机的任意波形发生器,以压电悬臂梁的一阶固有频率(4Hz)为外扰信号的频率,人工产生外扰谐波激励信号,经过功率放大器对信号放大后加到电吸铁上,利用它产生的磁力吸引压电悬臂梁上固定的永磁体,对压电悬臂梁进行持续激励。
4、使用一片压电陶瓷片测量悬臂梁的振动响应,并通过低通滤波器对信号进行滤波处理。
5、PXI控制器执行控制算法,输出的控制信号直接通过功率放大器作用在另一片压电陶瓷片上,完成对压电悬臂梁的振动主动控制实验。
结合实验平台进行压电结构振动主动控制实验,在本实例中,任意波形发生器产生的外扰信号,经过功率放大器加在电吸铁上对压电悬臂梁进行持续激励可视为主通道过程,PXI控制器产生的控制信号,经过功率放大器加在另一片压电片上对压电悬臂梁的振动进行抑制可视为次级通道过程。
具体控制步骤为:
步骤1:设定主通道滤波器的长度为250和权值系数W(n)的初始值为0,控制算法的步长因子μ设置为0.000002,算法中数据块分块的长度N为250;设定次级通道滤波器的长度为64和权值系数S′(n)的初始值为0,辨识算法的步长因子μs设置为0.0004,整个系统的采样率为1000Hz。
步骤2:采集与外扰输入信号相关的参考信号x(n),并对数据进行分块,每次累积N个数据记为一块,记第i块参考输入为x(i)=[x(iN),x(iN+1),…,x(iN+N-1)]T,并令与第i块输入对应的控制滤波器权值系数为w(i)=[w0(i),w1(i),…,wN-1(i)]T。
步骤3:数据量累积到一个数据块长度时,对整个数据块进行操作,计算主通道控制滤波器的输出。为降低计算量,利用1/2重叠保留法和快速傅立叶(FFT)技术,采用序列循环卷积计算线性卷积y(n)=w(n)*x(n)。即以x(i-1)和x(i)组成2N点序列,若i=1,则在x(1)的前面添置N个零,同时在对应的主通道控制滤波器权值系数w(i)后添置N个零,组成2N点序列。对这两个2N点序列同时进行快速傅立叶变换,即则输出的时域序列相应的可表示为:式中表示点乘,即W(i)和X(i)间元素逐个相乘,去掉y′(i)中前N个值,保留剩余的N个值便是自适应滤波器的真实输出序列,即:
y(i)=[y′(iN),y′(iN+1),y′(iN+2),…,y′(iN+N-1)]
步骤4:将输出信号的数据块y(i)与外加辨识信号v(n)(n=[iN,iN+1,…,iN+N-1])逐个求差,并将差值通过数据采集卡PXIe-6363的D/A模块输出,经过功率放大装置加在另一片压电片上实现压电悬臂梁的振动控制。同时通过数据采集卡PXIe-6363的A/D模块采集压电悬臂梁的振动偏差信号e(n),累积至N个数据记为一块,将第i块误差信号记为:e(i)=[e(iN),e(iN+1),…,e(iN+N-1)]T,在e(i)的前面添置N个零构成2N点数据,并进行FFT变换,得到其中辨识信号采用扫频信号,扫频信号频率范围为3-5Hz,幅值为0.1V,扫频时间为1s。
步骤5:采用时域最小均方差算法完成次级通道在线辨识,这里运用FIR滤波器模型描述次级通道,该模型中滤波器的权值系数可采用下式进行更新,每采集一次偏差信号,系数更新一次:
S′(n+1)=S′(n)+μsf(n)v(n)
其中:S′(n)为第n步辨识得到的次级通道滤波器的权值系数,S′(n+1)为n+1步的权值系数,f(n)为辨识模型误差信号,可由式f(n)=e(n)-v′(n)和v′(n)=S′(n)*v(n)得到,其中*表示卷积运算,μs为步长因子。
步骤6:为了补偿次级通道的影响,将参考信号x(n)送入更新后的次级通道辨识模型S′(n+1)中,经其滤波后的信号记为x′(n),当该信号累积至N个数据时记为一个数据块,即x′(i)=[x′(iN),x′(iN+1),…,x′(iN+N-1)]T。以两个连续的数据块x′(i-1)和x′(i)组成2N点序列,若i=1,则在x′(1)的前面添置N个零构成2N点数据,并进行FFT变换,得到
步骤7:采用频域滤波最小均方差算法更新主通道控制器的权值系数,x′与误差信号e的线性相关向量φ可由下式得到:
其中φ为等式左边向量中的前N个数据,conj()表示复数共轭运算。
当累积数据量达到一个数据块长度时,就在频域内更新一次主通道控制滤波器权值系数,其表达式如下:
步骤8:反复执行步骤2到步骤7,并将步骤7主通道控制滤波器权值系数W(i+1)带入步骤3中,用于更新权值系数W(i),直至步骤4中压电悬臂梁的振动偏差信号e(n)达到控制要求。
步骤9:实时保存相关的实验数据,并用软件对实验数据进行分析。
图6为压电悬臂梁振动响应的时间历程,从实验结果可以看出,在施加该时频域混合自适应滤波的结构振动主动控制方法后,压电悬臂梁的振动得到了大幅度的抑制,抑振效果达到了80%。