一种非线性梁系统动载荷识别算法

宋雪刚 白瑜芳 程竹明 顾欣 卢李 梁大开



摘要:载荷识别是结构健康监测的重要组成部分,而非线性梁系统在工程应用中扮演重要角色,为了在结构健康监测的同时方便利用最优化算法对非线性梁系统进行有效控制,提出了基于容积卡尔曼滤波器(Cubature Kalman filter,简记为CKF)的载荷识别算法。此算法在卡尔曼滤波器的体系下,通过CKF产生的增益矩阵、新息序列、一步估计值和协方差矩阵,利用最小二乘算法在线估计载荷的大小和位置,附录给出了算法的详细推导过程。为了验证算法的有效性,采用受高斯白噪声影响的大变形梁系统作为仿真对象,根据系统响应依次识别不同噪声影响下的正弦、方波和锯齿波载荷。实验方面,采用受非线性弹簧约束的Bernoulli-Euler梁作为对象,利用光纤光栅传感器测得的应变值识别载荷。结果表明提出的动载荷识别算法能够很好地抑制噪声,并且具有良好的稳定性。
关键词:载荷识别;非线性梁系统;容积卡尔曼滤波器;最小二乘算法
中图分类号:TB123;0327 文献标志码:A 文章编号:1004-4523(2018)01-0082-09
DOI:10.16385/j.cnki.issn.1004-4523.2018.01.010
引言
在结构设计和健康监测中,识别载荷可以确保结构的设计安全,实时监测结构的健康状态,为设备提供可靠保障。载荷识别的方法分为直接测量法和间接识别法两种,前者即通过传感器直接测量载荷本身或者与载荷相关的参数进而确定载荷的大小,后者为根据传感器测得的系统响应对载荷进行反演。在大多数实际工程应用中,载荷无法通过直接测量获得,如火箭飞行状态中所受的推力、爆炸冲击的载荷、飞机飞行状态中机翼所受的气动载荷等。此时必须采用间接方法对动载荷进行识别,即载荷识别技术。总体来讲,载荷识别技术主要分为频域法和时域法,频域法是最先采用的载荷识别算法,但是局限于线性系统。时域法由于实时性和适用于处理非线性系统,是如今研究的重点。
载荷识别在对结构健康进行评估之后往往需要对结构进行控制,而广泛应用的最优化算法建立在卡尔曼滤波器的基础之上,因此在卡尔曼滤波体系下完成载荷识别可以与最优化控制有效结合起来。Ma提出基于卡尔曼滤波器和递归最小二乘法的线性系统载荷识别算法,该方法利用卡尔曼滤波器来抑制噪声,并将卡尔曼滤波器的增益矩阵、新息序列、协方差矩阵和最小二乘算法结合起来在线估计载荷。在Ma的基础上,Lin利用扩展卡尔曼滤波器(Extended Kalman Filter,简记为EKF)将非线性系统简化为线性系统,进而用线性化方法来解决非线性载荷识别问题。Ma和Lin的算法在载荷识别部分都是基于线性系统,解决的是线性问题。将非线性问题当做线性问题处理具有精度不高、稳定性差、反应迟缓等缺点,并且用EKF将非线性间题转化为线性问题在处理强非线性问题时可能导致滤波发散,同时在线计算雅克比矩阵也带来不少困难。Ma和Lin的算法尚处于理论研究阶段,尚未应用到工程结构当中,为了解决工程应用中非线性梁系统的载荷识别问题,本文提出了基于cKF的载荷识别算法。CKF不需计算雅克比矩阵,具备优异的非线性逼近性能、数值精度、滤波稳定性,是如今非线性卡尔曼滤波器的主流。本文的重点是在CKF基础上提出了一种非线性在线估计算法,与Ma和Lin提出的线性估计算法具有本质区别。具体推导过程在附录A中详细给出。
算法首先应用4阶龙格库塔法(Runge Kutta4,简记为RK4)将非线性系统离散化,进而利用CKF对非线性离散化系统进行滤波,之后基于最小二乘法对CKF滤波结果进行处理从而得到载荷。为了验证算法的有效性,采用受高斯白噪声影响的大变形梁系统作为仿真对象,通过不同噪声影响下的观测值,分别识别了正弦载荷、方波载荷和锯齿波载荷。实验方面,采用受非线性弹簧约束的Bernoulli-Euler梁作为对象,利用光纤光栅传感器测得的应变值识别载荷。结果表明:提出的动载荷识别算法能够很好地抑制噪声,并且具有良好的稳定性。
1基于容积卡尔曼滤波器的载荷识别算法
此算法针对离散化的非线性梁系统,利用响应值识别载荷的大小和位置。大变形梁系统的刚度矩阵实时变化,非线性弹簧约束的Bernoulli-Euler梁也可认为是刚度矩阵实时变化的梁系统。实时变化的刚度矩阵由节点位移和转角决定,因此在识别过程中,每个节点的位移和转角需要实时获取。根据测试理论,传感器的数目不少于未知量的数目,因此在此文章中使用的传感器数目等于振动方程自由度的数目。基于CKF的动载荷识别算法包括三部分,总结为如下步骤:
(1)用RK4将系统状态空间模型离散化。
(2)利用CKF进行滤波,得到增益矩阵、新息序列、一步估计值、协方差矩阵。
(3)基于最小二乘算法估计载荷大小。
1.1非线性系统的离散化
由于CKF处理的是离散化非线性系统,而RK4在离散化方法中因具有足够高的精度得到广泛认可,因此本文采用RK4将非线性连续系统离散化。对于非线性模型,其状态方程和观测方程如下所示
应用RK4将公式(1)离散化,离散化步骤如下:
1.2容积卡尔曼滤波算法
针对离散化系统模型(5),应用CKF进行滤波。CKF采用一组等权值的容积点集解决贝叶斯滤波的积分问题,相对于扩展卡尔曼滤波、无迹卡尔曼滤波等非线性滤波算法,CKF算法具備更优的非线性逼近性能、数值精度以及滤波稳定性。
CKF滤波器流程如下所示:
初始化
1.3基于CKF滤波结果和最小二乘法的载荷识别算法
2数值模拟和结果讨论
以大变形梁作为模拟仿真对象,分别依次对系统施加正弦载荷、方波载荷和锯齿波载荷,通过RK4求得系统的非线性响应(节点位移和转角),将求得的响应值加上高斯白噪声作为系统的观测值,从而运用基于CKF的载荷识别算法估计载荷的大小。此过程中离散高斯白噪声特性通过设置不同的σ和Qw值表示。
为了更好地描述载荷识别的效果和量化载荷识别的误差,本文将识别载荷与实际载荷差值的平方和与实际载荷的平方和的比值的平方根作为量化指标,将其定义为误差评估水平(NRMSE)。其公式如下所示
2.1大变形梁系统振动仿真
以大变形梁作为仿真对象,首先建立非线性离散化振动模型。假设梁被离散化为n个单元,单个单元如图1所示,每个单元具有3个自由度,即总共3n个自由度。识别载荷的大小和位置,由于刚度矩阵由节点状态决定,因此传感器数目为3n。
其离散化系统非线性振动方程组为
(31)式中M为(3n×3n)质量矩阵,c为(3n×3n)阻尼矩阵,K为(3n×3n)刚度矩阵,X为(3n×1)节点位移和转角矩阵,F为(3n×1)的载荷矩阵。
建立状态方程和观测方程:
(32)
(33)式中观测矩阵H由实际选用的传感器类型决定。此仿真中观测值选用节点位移和转角,传感器也可以换为同等数量的速度传感器或者加速度传感器,实际工程中可以贴应变片或者光纤传感器测得观测值。
在此考虑5个单元的大变形悬臂梁,其梁参数如下:弹性模量E=7.2×1010N/m2,密度ρ=2.7×103kg/m3,梁长度l=1m,横截面S=0.1m×0.01m。将采样频率依次设为100和500Hz,模拟时间设为1s。依次识别正弦载荷、方波载荷和锯齿波载荷。在此给出了两种算法的载荷识别结果。初始值设置:x0/0=zeros(30,1),Ms(0)=eyes(30,30),Pb(0)=eyes(30,30)。
(1)图2,3是系统识别正弦载荷的结果。图2是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率100Hz下的识别结果。图3是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率500Hz下的识别结果。表1是以上两种条件下识别正弦载荷的平均误差和NRMSE。
(2)图4,5是系统识别方波载荷的结果。图4是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率100Hz下的方波载荷识别结果。图5是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率500Hz下的方波载荷识别结果。表2是以上两种情况下识别方波载荷的平均误差和NRMSE。
(3)图6,7是系统识别锯齿载荷的结果。图6是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率100Hz下的锯齿载荷识别结果。图7是系统在噪声系数σ=1×10-4,Qw=1×10-8,采样频率500Hz的锯齿载荷识别结果。表3是以上两种情况下识别锯齿载荷的平均误差和NRMSE。
2.2仿真结果讨论
(1)基于CKF的动载荷识别算法属于时域范畴,它只需前一时刻的估计值和当前时刻的观测值即可在线估计当前时刻的载荷,在此过程中无需大量的存储和读取数据,极大地降低了系统对计算机存储能力的要求。算法基于卡尔曼滤波器的特性可以确保在结构健康监测的同时,利用最优化算法对系统进行在线控制,达到工程对系统监测与控制的要求。
(2)模拟仿真结果显示载荷识别结果与实际施加载荷相比存在一定时间的延迟,通过平移图2~7中的理论值或者识别值,发现载荷识别结果存在2~3个采样间隔的延迟,这是由卡尔曼滤波器的延迟性能造成的,通过提高采样频率可以相应降低延迟时间。在不考虑系统延迟的情况下正弦载荷的识别效果强于锯齿载荷,锯齿载荷的识别效果强于方波载荷,即:平缓载荷的识别效果优于突变载荷的效果。这是因为在载荷突变的情况下,对系统的鲁棒性和实时性要求更高,因此造成一定的误差。
(3)本文提出的基于CKF的载荷在线估计算法具有优良的性能,在大变形梁系统的模拟仿真中,噪声特性(σ=1×10-4,Qw=1×10-8)下,估计载荷的平均误差和NRMSE较小。通过对比100和500Hz采样频率下的识别结果可以看出:提高采样频率可以大幅度的改善识别效果,降低识别误差。
(4)本文提出的基于CKF的载荷在线估计算法本质是应用卡尔曼滤波器的思想来解决工程中的载荷识别问题,由于卡尔曼滤波器要求识别结果存在连续性,因此此算法无法识别随机载荷,只限于识别连续性载荷。冲击载荷作用时间极短,系统动力学模型难于准确建立,且本文提出的算法复杂度较高,因此不适合识别冲击载荷。本文以高斯白噪声为噪声处理对象,在工程应用中可能伴随其他类型的噪声,对其他类型的噪声,国内外已有多种处理方法,可以通过将其转化为高斯白噪声之间的相互组合或者应用改进版的卡尔曼滤波器来解决这个间题。卡尔曼滤波器原理导致2~3个采样间隔的系统延迟,为了抑制延迟特性可以采用实时调节参数γ的自适应卡尔曼滤波器或者迭代卡尔曼滤波器,但是上述方法在降低系统延迟的同时会造成系统抑制误差能力下降的缺陷。针对识别结果中初值误差较大的问题,可以通过调节系统初始化参数来进行优化。非线性梁系统的载荷识别研究中,由于刚度矩阵根据节点状态实时变化,因此需要安装较多的传感器,可以通过粘贴分布式光纤来监测变形和识别载荷,传感器也可以换为同等数量的速度传感器、加速度传感器或者其他类型传感器。文章提出的算法具有较好的稳定性和收敛性能,过程中无累积误差,对开始载荷是静态还是非静态并无要求。
3实验验证
以末端受非线性弹簧约束的悬臂梁作为实验对象,实验梁参数如表4所示,将梁离散化为3个单元,每个单元内贴2个光纤光栅传感器,共计将6个光纤光栅传感器贴于梁表面,利用其测得的应变值作为观测值,对提出的理论进行实验验证。非线性弹簧在此选用变截面弹簧,固定在梁末端,随着悬臂梁的变形而产生压缩或拉伸,悬臂梁末端的位移即为弹簧变化量,在实验进行前对此弹簧进行力学性能测试,其力学性能如图8所示。在梁末端安装激振器,在激振器上安装力传感器,从而测得激振器对梁施加的载荷大小并以此作为理论值。
实验过程:信号发生器输出正弦信号,正弦信号经过功率放大器令激振器输出正弦位移,FBG响应值通过MOI解调仪解调,输出信号传输到上位机,通过载荷识别算法在线估计载荷。同时力传感器信号经过NI数据采集卡传输到上位机并与载荷识别值进行对比。在此过程中采样频率设为100Hz。实验装配图如图9所示,载荷识别结果如图10所示。
由于激振器施加的是正弦位移,若是线性系统则载荷应为正弦信号,非线性弹簧使载荷呈现非正弦变化的现象。實验结果表明,识别的载荷在幅值上具有微小的误差,识别结果基本能反映真实载荷。在载荷的反复加载中,总体未出现发散趋势。在此实验中造成误差的原因较多,如梁模型的有限元离散化受自由度数目限制,实验仪器存在不稳定及固有误差。
4结论
本文针对非线性梁系统的载荷识别,提出了一种基于CKF的载荷识别算法,此算法只需前一时刻的估计值和当前时刻的观测值即可估计当前时刻的载荷。算法建立在卡尔曼滤波器的体系下,利用其抑制高斯白噪声的优势来估计载荷,在载荷识别的过程中,能够同时很好地对结构状态进行估计,因此可以有效地与系统最优化控制结合起来,满足在健康监测的同时对系统进行控制的要求。仿真数据表明:该算法识别精度高,抗干扰性能好。实验结果表明算法在工程中可以有效使用,识别结果基本能反映真实载荷。