一种VSSFxLMS算法及其在多自由度微振动控制中的应用
方昱斌 朱晓锦 胡佳明 高志远 苗中华
摘要:FxLMS算法常用于自适应振动控制研究领域,其固定步长导致不能同时获得快的收敛速度和小的稳态误差。针对多自由度压电结构振动主动控制,提出一种改进VSSFxLMS振动控制算法,通过利用反余切函数的特性优化算法步长的迭代规律,有效提升算法对于噪声干扰的鲁棒性,并给出该算法的动态性能与稳态性能分析。以压电结构微振动多通道控制为目标,在ADAMS软件中建立结构微振动主动控制仿真模型,通过与SIMULINK联合仿真观察振动控制算法实施效果。构建了基于压电堆作动器的多自由度主动隔振结构,以及相关测控单元与实验系统,进行了结构微振动主动控制实验与结果分析,验证了所提出振动控制算法的良好控制效果和鲁棒性。
关键词:微振动主动控制;变步长(VSS);LMS算法;多输入多输出(MIMO);压电结构
中图分类号:TB535;TH113.1文献标志码:A 文章编号:1004-4523(2020)03-0467-10
DOI:10.16385/j.cnki.issn.1004-4523.2020.03.004
引言
近些年,航天事业及精密制造技术得到迅速发展,涉及到一些精密设备的微振动控制问题,引起了广泛关注。例如卫星搭载的观测相机、精密制造中的投射电镜和扫描电镜、纳米研发装置等,其工作环境容许的振动速度低于10um/s,要想抑制这样水平的微振动,通常的被动隔振手段难以实现。基于压电机敏器件的特性,配合先进的结构振动主动控制方法与快速提升的计算力,使得精密装置的结构微振动主动控制成为可能。
针对结构微振动主动控制问题,各研究团队设计出多种微振动模拟平台或者是微振动隔振平台,用于实验室中微振动环境的模拟及微振动主动控制系统的设计验证。多数微振动隔振试验台都采用了Stewart结构,能够实现多个自由度上的微振动抑制,但是该结构的6个作动器之间具有较强的耦合,运动解耦比较复杂,导致控制系统的设计实施变得相对困难。
为了模拟多自由度微振动实验环境,并验证主动振动控制算法的性能,本文设计了一台3自由度压电微振动主动控制实验隔振结构,并构建了相应测控单元及完成软硬件开发,可以实现结构微振动多自由度主动控制算法的实施与验证。同时,针对实验隔振结构的机械设计环节,将多个作动器之间的耦合隔离,有利于复杂控制算法的设计实施和效果验证。
对于结构微振动主动控制方法,现有研究已经涉及了极点配置、最优控制、鲁棒控制和自适应控制等诸多控制理论方法,各种方法的具体应用也各有其特点和局限。考虑到一些复杂设備与装置可能存在的结构非线性与时变环节,自适应振动控制方法具有较好的技术特点与优势,尤其在自适应噪声与结构振动主动控制领域,基于自适应滤波算法的相关控制方法研究更为广泛。当前,自适应滤波振动主动控制算法主要包括滤波-X最小均方算法(Filtered-X Least Mean Square,FxLMS),滤波X递推最小二乘算法(Fihered-X Recursive LeastSquares,RLS)、快速横向滤波算法(Fast Transver-sal Filtcr,FTF)等。FxLMS算法因其算法简单、收敛速度快等优点被普遍使用。但是FxLMS算法在参数自适应调节时所采用的传统固定步长最小均方(LMS)算法,很难同时保证收敛速度和稳态精度,因此学者们提出了变步长最小均方(VariablcStep Size LMS,VSSLMS)改进算法,其主要思想是在算法的收敛初期采用较大步长以提高收敛速度,而在稳态附近时采用较小步长以减小稳态误差。
事实上,从第一个VSSLMS算法被提出至今,已经有数十种VSSLMS算法问世,并且仍在持续研究中。对现有VSSLMS算法的步长因子更新机理加以分析,VSSLMS算法可以分为三类。
第一类是基于归一化形式的VSSLMS算法,通过对步长除以输入信号的二范数,以增加算法对于输入信号幅值变化的鲁棒性。但是这样的处理会影响到算法的收敛速度及其实时性,不适于应用在严实时性及要求快速收敛的系统中。第二类是由覃景繁等提出的一种基于Sigmoid函数的VSS-LMS算法,其根据Sigmoid函数的曲线特性来调节步长因子的变化;在这种算法的机理上,后续又有学者提出了基于箕舌线的VSSLMS算法、基于正弦函数的VSSLMS算法、基于反正切的VSSLMS算法等;这类算法整体来说对于函数曲线的依赖比较严重,使其对于具体应用系统的调节不够灵活。第三类是以Kwong等为代表所提出的算法,该类算法以瞬时误差控制步长因子的更新,并通过遗忘因子来减弱之前时刻误差的权重值;由于误差信号采集过程中会引入不同程度的噪声,步长因子迭代必然会受到影响,这使得算法的稳态精度不易得到保证。
对于文献提出的VSSLMS算法,其依据系统瞬时误差的平方值迭代更新算法收敛步长,相比于传统LMS算法,对跃变的跟踪能力得到提升,但是其抗干扰能力仍欠佳。文献对此做了相关改进,利用系统误差与其前一采样的系统误差的自相关估计来更新收敛步长,提升了算法对于噪声干扰的鲁棒性。文献对文献中的算法做了简化改进,在保持算法性能的同时减少了迭代计算量,增加了算法在实时系统中的应用优势。
此外,大部分VSSLMS算法都是基于系统辨识和主动噪声控制应用设计提出的,与其在结构振动主动控制研究中的应用有所差异。对于结构振动主动控制应用,在收敛过程中系统可能会受到外界瞬时强烈的宽频噪声干扰,使得VSSLMS算法产生较大步长,控制器输出过大的作动信号,反而会引起稳态附近的大幅振动,对系统稳定性造成不利。因此,若要将VSSLMS算法应用在结构振动主动控制中,对于噪声干扰的鲁棒性需要认真考虑。
针对结构微振动主动控制应用的特点,本文提出一种VSSLMS算法,该算法利用反余切函数的特性,针对文献[18]中提出的算法进行了改进,建立了瞬时误差与步长因子之间的非线性函数关系,使得算法在收敛速度与精度之间达到平衡,并且对于噪声具有较好的鲁棒性;在此基础上,在ADAMS中建立基于压电堆作动的3自由度微振动主动控制仿真模型,通过SIMULINK与ADAMS的联合仿真,验证了所提出算法在滤波-X前馈结构中的收敛性;最后,构建基于多自由度压电隔振结构的微振动主动控制实验平台,通过不同条件下结构微振动多通道控制实验,对比验证了改进变步长滤波-X最小均方(Variable Step Size Filtered-x Least MeanSquare,VSSFxLMS)算法在结构微振动主动控制中的有效性和鲁棒性。
1VSSLMS算法的提出
在本节中,将文献[18-20]中的VSSLMS算法的步长更新公式做简要介绍,并对其每次步长迭代中所需要调节的参数个数以及计算量做了对比,如表1所示。为了方便表示,下文中将文献中的VSSLMS算法分别表示为VSSLMS-A,VSS-LMS-B和VSSLMS-C,将改进算法命名为VSS-LMS-New。
VSSLMS-A的步长直接依据瞬时误差更新,在结构振动控制系统中瞬时误差值是在不断振荡变化的。同时,还会有噪声干扰引起的结构振动,这会使得算法步长变化对于系统噪声干扰比较敏感,从而会引起控制器的输出波动甚至大幅波动,稳态中的系统会因此增加稳态误差甚至跳出稳态直至发散。VSSLMS-A算法中共有2个调节参数ξ和η,其中0<ξ0;参数ξ是遗忘因子,决定过去时刻步长在迭代中的权值,参数η控制算法的调节速度及稳态误差。
VSSLMS-B中的步长通过系统误差e(n)及其前一采样时刻系统误差e(n-1)的自相关系数估计值计算得到。引入误差的自相关系数,可以减弱噪声干扰对于系统收敛步长的影响,从而增加算法对噪声干扰的鲁棒性。VSSLMS-B有3个调节参数ξ,η和λ。ξ和η的取值范围和作用与VSSLMS-A相同,参数λ(0<λ<1)是平均时间常量的遗忘因子,决定过去时刻的采样信息对当前估计值的影响权重。虽然该算法一定程度上提升了VSSLMS-A对于噪声干扰的鲁棒性,但是增加了一个调节参数,每次迭代中增加了3次乘法运算和1次加法运算,这对于实时系统尤其是多输入多输出实时系统来说可能会影响其实时性。
VSSLMS-C对VSSLMS-B做了简化,略去加权因子入,仅需要2个调节参数,且步长更新的每次迭代仅需要4次乘法运算和1次加法运算,增加了该算法在实时控制应用中的优势。文献[20]通过仿真表明了VSSLMS-C与VSSLMS-B在傅里叶分析中具有几乎相同的收敛性能,但该算法并未在结构振动主动控制研究中进行过验证。
VSSLMS-A中步长迭代更新量为,ηe2(n),因为参数η是个固定值,则除去遗忘因子的衰减作用之外,步长增量主要受误差e(n)影响。当e(n)在0附近振荡时,下一步迭代的步长增量就会很小,这在算法收斂初期很影响收敛速度。在算法收敛至稳态时,e(n)受到噪声或者扰动的影响导致瞬时值变大,则引起步长瞬间增大,会导致系统脱离稳态重新振荡。
利用反余切函数的特性,将VSSLMS-A中的迭代更新参数刀改进为与误差信号相关的变量η(n)=βarccot(| e(n)|),则可以大幅改善上述情况。在收敛初期,参数η(n)会削弱误差信号e(n),振荡带来的收敛速度减缓,保证算法快速收敛;在稳态时,参数η(n)能够抑制噪声干扰等导致的误差瞬时值突变所带给系统稳态的影响,提升稳态时算法的鲁棒性。
针对结构振动主动控制系统,提出一种改进VSSLMS算法,以增强算法对噪声干扰的鲁棒性。VSSLMS-New的步长更新公式如下式所示:
相比于VSSLMS-A,VSSLMS-New中的参数η(n)是一个基于反余切函数性质的时变参数,暂叫做步长抑制因子。步长抑制因子η(n)利用反余切函数的性质,可以在误差信号突变时抑制步长的突变,提高算法对于噪声的鲁棒性。
在VSSLMS-New中,步长迭代包含有2个调节参数ξ和β。其中,ξ与VSSLMS-A中作用相同,取值范围0<ξ0)为缩放因子,根据实际系统中误差信号数值的数量级进行配置。在步长的每次更新迭代中,VSSLMS-New需要4次乘法运算和1次加法运算,与VSSLMS-C相同,比VSS-LMS-B少2次乘法运算和1次加法运算。与VSS-LMS-A算法相比,所需调节的参数个数相同,每次迭代需要多1次乘法运算。
2 VSSLMS-New算法分析
如图1所示,在自适应滤波过程中,依据梯度下降法可得到VSSLMS算法自适应滤波器的权值递推如下式所示:
式中 w(22)为自适应滤波器权值向量,w*(n)为最优滤波器权值向量,x(n)为输入信号序列,d(n)为扰动在主通道的响应,y(n)为自适应滤波器的输出,e(n)为误差信号,n为离散时间序列,u(n)为时变步长因子,ξ(n)为零期望的测量噪声信号,符合白噪声特点。
为了方便分析,假设输入信号序列x(n)符合高斯分布,期望为0.则输入信号的自相关矩阵定义为R=E[x(n)xT(n)],可以写成R=QAQT,其中A为特征值矩阵。假设最优滤波器权值向量w*(n)的阶数与系统真实模型相同,即w*(n)能够准确表示实际系统。
2.1 平均意义下的动态分析
根据VSSLMS-New算法的步长更新公式,将式(3)-(5)代入式(1)可得下式
式中 V(n)=w(n)-w*(n),V(n)表示自适应滤波器权值向量偏差,V(n)=QTV(n),x(n)=QTx(n)。
通常,参数η(n)的值比较小。所以,相比于误差信号e(n)和输入序列x(n),步长因子u(n)的变化是很缓慢的。因此,可以认为步长因子u(n)与其自身平方u2(n)、误差信号e(n),自适应滤波器权值向量w(n)以及输入序列x(n)都相互独立,则滤波器权值向量期望收敛的一个充分条件为式中 λmax(R)是矩阵R的最大特征值。
2.2 均方意义下的动态分析
误差信号的均方差(mean square error,MSE)定义如下式所示