当前位置:首页 期刊杂志

基于CSA-RLS算法的Wiener模型辨识*

时间:2024-05-04

宋 樱

(江苏大学电气信息工程学院 镇江 212013)

1 引言

Wiener模型是一种模块化的非线性系统,其中线性时不变动态子系统与非线性无记忆块串联。在实际工程应用中一大类非线性系统都可以通过具有任意高精度的Wiener模型近似得到,因此Wiener模型广泛应用于不同的科学和工程领域[1]。

许多工业过程本质上是非线性的,为了实现所需的系统性能,需要采用基于非线性过程模型的高级控制方法。关于Wiener系统的辨识问题已经研究了数十年,并演化出许多辨识方法[2]。例如,基于相关性分析[3]、非线性优化等方法[4],对于Wiener模型非线性模块或其逆函数的建模通常采用分段线性函数[5]、多项式[6]、最小二乘支持向量机[7]表示,而线性部分大多采用有限脉冲响应模型[8]、状态空间模型[9]或广义正交基函数[10]。但是当系统的回归量与系统干扰有关时,其参数估计效果不好。且大多数研究是针对无噪声过程[11]或带有输出噪声的Wiener模型[12],对于带有中间噪声的Wiener模型研究内容较少,而在实际过程中,中间噪声会随着非线性模块的增益对系统造成很大的干扰,且这部分噪声难以消除。因此为了得到一致的参数估计,本文采用CSA-RLS算法对Wiener模型的结构和参数进行辨识。

2 问题描述

假设非线性函数f(z2)连续、单调且存在反函数;线性部分的输出扰动{ε(k)}为一个均值为0,方差为的高斯白噪声,并且与输入信号u(k)无关;

图1 含中间噪声的Wiener系统

用高阶ARX模型来近似Wiener模型的线性部分:

又因为非线性部分可逆,因此z2(k)=f-1(y(k)),式(1)则可以表示为

那么定义模型参数估计损失函数为

对于Wiener模型采用三次样条函数对非线性模块反函数进行拟合:

其中,y2,y3,…,ynγ-1是内部聚点,且各聚点满足y1=ymin

令An(q)=1,则对于线性模块,用有限脉冲响应逼近其传递函数

根据式(5)和式(6)可以得到

那么Wiener模型的参数化表示为

则Wiener模型的参数辨识问题就转换为利用观测到的参数集{u(k),y(k)}估计参数θ。

3 CSA-RLS算法

为了获得一致的参数估计,文章采用CSA-RLS算法参数Wiener模型的结构和参数,待估参数的表达式可以表示为

其 中:yN=[y(1)y(2) …y(N)]T,φN=[φ(1)φ(2) …φ(N)]T,则参数表达式可进一步转化为θ=(φTNφN)-1φTNyN,从上述表达式可知,最小二乘算法要进行逆运算。在解决多参数高维度问题时,这将大大增加运算量,而利用RLS算法将减少求解过程的计算量,提高算法运行速度同时也确保参数的一致性。

RLS算法在迭代过程中不断地获得新的数据,并对前一时刻的参数估计值进行修正[13]。随着观测数据增加,参数估计值逐渐收敛于参数真值。k时刻的参数估计值公式如下所示:

考虑到φk=,yk=,结合式(9)和式(10),则

令P(k)=(φTkφk)-1,则P(k-1)=(φTk-1φk-1)-1,P(k)=(P-1(k-1)+φT(k)φ(k))-1,根 据 矩 阵 求 逆 引理[14],可得RLS算法公式为

式中,K(k),θ(k),P(k)分别为增益矩阵、参数向量和逆矩阵。

噪声方差用下式估计:

4 模型阶次选择

4.1 线性模块阶次确定

Wiener模型的中间变量由与噪声干扰不便于测量得到,所以采用传统的VR方法不能准确确定线性模块的模型阶次[15]。因此采用OVR的方法,具体实现过程如下:

令nb=9,根据式(14)计算中间变量z1(k)的估计值ẑ1(k):

其中 △z1(k)=(k)-̂(k),同 理 计 算(nb)=D({Δz2(k)}),则根据式(16)确定模型阶次。

4.2 非线性模块阶次确定

非线性模块模型阶次的准确与否直接影响了系统模型的精度与计算复杂度,甚至导致过拟合问题,为了确保模型阶次的准确性本文采用最终输出误差准则(FOE)确定模型阶次[16]。

其中,Vεz2o e为使用估计数据的输出误差(或者仿真误差)准则,N为估计数据的样本容量,d为模型参数个数。因子一般用来修正过匹配的影响。

5 数值仿真

考虑如下带中间噪声的Wiener系统

其中输入信号为[0,0.3]之间均匀分布的随机数,ε(k)是均值为0,方差为0.02的高斯白噪声。数据样本容量为800。

1)线性模块模型阶次确定

从图2中可以看出,采用的OVR定阶方法确定的模型阶次在图形的拐点处,即nb=3,符合实际模型阶次变化,而采用的VR方法确定的nb=4,并不是模型的实际阶次,由此说明采用OVR方法确定模型阶次更有效。

2)非线性模块模型阶次确定

在均值为0,方差分别为0.012,0.022,0.032的高斯白噪声下运用最终输出误差准则确定非线性模块模型阶次,从图3可知,当nγ=7时,FOE值最小。但同时也能发现,随着噪声水平的增加,FOE值也会有所增加,但总体而言,采用FOE方法定阶的效果是令人满意的。由此可以确定非线性模块阶次nγ=7,线性模块阶次nb=3。

线性部分估计误差通过AR E确定为

衡量非线性逼近误差采用M S E,综合误差采用CE确定:

图2 线性模块定阶图

图3 非线性模块定阶图

图4 待估参数变化图

表1 CSA-LS和CSA-RLS的辨识结果比较

从图4中可知,当采用CSA-RLS算法辨识参数线性模块参数时,b1,b2,b3分别在115,79,83处收敛,而采用的CSA-LS算法辨识结果分别在137,188,125处收敛;对于参数b2,b3,CSA-LS算法并没有收敛到其实际值,由此可见CSA-RLS算法在辨识参数的收敛性和准确性上要比CSA-LS算法好。表1也可进一步地看出,CSA-RLS算法辨识参数的准确性比CSA-LS算法辨识结果更好。由此说明,CSA-RLS算法能有效地提高算法的精确度。

6 结语

对于带中间噪声的Wiener模型辨识问题,文中采用了三次样条逼近模型的非线性结构,采用有限脉冲响应逼近模型的线性部分,其参数辨识问题则利用RLS算法进行辨识。模型的阶次确定分别采用OVR和FOE方法定阶。算法经数值仿真证明,CSA-RLS算法在辨识问题的准确度和收敛性上表现效果均好于CSA-LS算法。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!