目录
目录
引言
根据基础篇,我们已经得知,对于一个辨识模型,我们可以得到其对应的最小二乘辨识估计值
基于有限数据窗的系统辨识
固定记忆的 RLS
为了减少数据存储空间,提高运算效率,可以限制每次计算所用数据的数量,当新数据加入时,丢弃掉最前面的数据,保证参与计算的数据量恒定,以此保证每次计算都能有效的更新估计值。
上述方法中参与计算的恒定数据量有一个专门的名字,称为 有限数据窗(finite data window)
根据上述原理,接下来进行算法推演,设数据长度为 p,则
LSE 协方差矩阵 P 的递推关系也会发生改变
同样的,为了避免矩阵逆运算,此处也需要去逆操作,推理如下(此部分推理较为麻烦,可跳过看结论即可)
接下来顺水推舟,用得到的递推关系,求取 RLSE 如下
此处注意,由于有限数据窗的定义,此处系数 P、H、Y 的递推不再是简单的添加一项,而是加一项的同时还需要去掉最前面一项,因此需要改变两个对应元素。
综上所述,这种方法称为 固定记忆的迭代最小二乘算法(fixed memery RLS):
固定记忆的 RLS2
在上述的 FDW-RLS 中,有很多变量有重复的部分,但是各自存在特殊的项,因此,我们可以对辨识过程增加一个过渡环节,分两步进行辨识
利用设置的中间变量,计算“中间估计值”(intermediate estimate)
利用中间估计值,分别得到 t 与 t-1 两个时刻与之关系表达式
综上所述,完整算法为
有限数据窗引入遗忘因子 FDW-FF-RLS
将遗忘因子的处理方式与固定记忆的 RLS 相结合,可得到一个效果更好,效率更高的算法
加权迭代最小二乘 WRLS
引入
类似于遗忘因子的处理方式,我们可以人为的对每一个数据误差的影响进行调整,通过人为引入的权重来改变各个数据对算法结果的影响力,这种方式称为 加权迭代最小二乘(weighted recursive least squares algorithm)
此时,β 作为权重系数,用以确定各个数据对于标准函数的影响,方便起见,定义 权重系数矩阵,并将 J 用矩阵表示
同样的,为了使误差最小,对标准函数求导求极值点
此处估计值的形式发生了变化,因此,加入了权重矩阵的部分也需要随之改变,接下来求各项递推表达式
推导
由于递推关系的推导主要是找出 t 时刻与 t-1 时刻的关系,因此,我们不妨设 β 满足如下条件
那么,P 的递推表达式为
同时,对于 θ 估计表达式中后半部分,由于也含有权重项,也需要求出其递推表达式
那么,估计值递推表达式可得
可以发现,引入权重后的 RLS 并没有格式上的改变,只是协方差矩阵的形式发生了变化
结果 WRLS
可见,WRLS 与 FF-RLS 在形式上有非常高的相似度
迭代扩展/广义最小二乘辨识
引入
在讨论完了 ARX 模型之后,我们研究更加复杂的模型
拿 ARMAX 模型举例: A(z)y(t)=B(Z)u(t)+D(z)v(t)
此处的噪声部分显然不再是单纯的白噪声,而是一个复杂的差分多项式
因此,我们首先要做的,就是将这个复杂的模型转化为我们熟悉的辨识模型,以便我们套用公式。
获取辨识模型,是解决各种复杂模型辨识的关键步骤和核心难点
扩展 RLS
对于 ARMAX 模型,通过移项的方式,我们将 y(t) 和 v(t) 单独提取出来放到目标位置,剩下的复杂多项式打包成一体作为系数矩阵和变量矩阵,则有
至此,整理后便可以获得我们熟悉的辨识模型
有了辨识模型,我们便可以根据以往的结论,套用公式获得全新的辨识算法
注意,根据我们对 φ 的定义,噪声项 φn 无法获得,因此需要进行运算,在迭代运算中用估计值代替。最后一个公式就表示了噪声项的估计方法,根据其两种不同的可行方案,分为
R-RELS 基于残差的扩展RLS:Residual based Recursive Extented Least Squares algorithm
I-RELS 基于新息的扩展RLS:Innovation based Recursive Extented Least Squares algorithm
广义RLS
RELS解决了ARMAX模型的辨识之后,接下来我们来针对更加复杂的模型:ARARX模型
加入有色噪声的 ARARX 模型显得非常复杂,我们仍然需要提取出白噪声,凑成辨识模型
将有色噪声项定义为 w,则可得下述关系
原有系统可化为
此处原有系统已经转化为辨识系统,套用 RLS 算法可得
此处 φ 由于含有噪声项 w,因此无法直接观测,因此,我们用估计值代替,并设法给出它的估计算法:
这样一来,便可以得到 RLSE 了。
注意,此处你可能会疑惑:最后一步似乎是用了未知的估计值 θ 来计算中间变量 φ,再用 φ 来求估计量 θ。这不是自相矛盾吗?这个疑惑将伴随整个复杂输出误差模型的各种辨识算法中
广义系统辨识的精妙之处
你可能会问:我们本来就是为了求取估计值,才引入中间变量,现在中间变量却需要估计值来求取。这不是死循环了吗
这就是广义系统辨识算法最为精妙的地方了!!!
估计值 与 变量数据 虽然相互需要,但是却如同鸡和蛋的关系一样。鸡由蛋孵化而来,蛋又需要鸡来产生,看似矛盾,但是这个循环的确实现了,而且并没有死扣。原因便在于它利用了 时间差
可以发现,流程图的复杂程度此时已经远高于之前的很多模型了。但是惊奇的是,复杂的关系之间并没有死循环(顺着流程方向形成的闭环),而是单方向向前进行。说明这个算法的执行过程中,虽然各个变量之间的关系错综复杂,但是整个算法却有条不紊的向前迭代,正常执行。
正因为此处的时间差,保证了算法的有效性,因此我们在学习算法,或者编程进行算法实现时,算法步骤的执行顺序就必须讲究了。若交换关键步骤,算法将直接由于变量互锁而失效,甚至崩盘
基于滤波器的广义RLS
对于复杂的 ARARX 模型而言,除了上述的方法外,我们还有另一个方法来获取辨识模型
此时,yf 和 uf 分别称为 滤波器的输出和输入(filtered output and input)
我们现在如愿以偿的获得辨识模型(4.3),可以套用 RLS 了
可以发现,虽然我们很轻松的获得了辨识模型,我们总结一下其中的未知量:
所以实际上,f 下标仅表示与滤波器输入输出相关,并没有增加未知量。接下来,对C进行估计即可
根据广义RLS中(4.1) 也属于辨识模型,因此我们对它套用 RLS
此处有全新的未知量 w 待估计,我们利用(4.2) 可得
此处,θs 估计值已知(前一个时刻,同样是时间差),算法成立
完整算法如下:
由于引入了滤波器,辨识算法包括了滤波器、噪声两部分的辨识,用到了两次 RLS,算法复杂度大幅提高
基于辅助模型的系统辨识
原理
在推理了方程误差模型的辨识算法后,我们接下来研究更加复杂的输出误差模型
首先,由于不难直接观测,我们定义一个新变量 x
这是我们熟悉的辨识模型,直接套用公式得到对应的 LSE(见公式1.1)
但是,在公式中,由于 ,其中 x 是无法直接测得的值,因此需要用估计值替代,并给出相应的估计算法
在原有模型中,引入一个 辅助模型(auxiliary model)用于获得一个观测值
我们用同样的方式得到辅助模型部分的表达式
可以看到,当我们辅助模型的参数取值,和我们计算的估计值相等时,辅助模型的结果 φ 和原有模型一样。
因此,我们可以写出 基于辅助模型的RLS(auxiliary model based RLS)
Box-Jenkkins 模型辨识
我们接下来针对最为复杂的系统进行辨识,对辨识算法进行推理示范
基于辅助模型和扩展RLS,定义
对于得到的辨识模型(5.3),我们可以套用 RLS 可得
在 RLSE 中,φ 中 x、w、v 均为未知量,因此需要对这三个量进行估算,用估计值替代
根据(5.1)和辅助模型得到 x 的估计值,那么 x 和 u 均已知,φs 的估计值也可获得
根据(5.3)的关系式,得到 w 和 v 的估计值,那么 φn 的估计值也可获得
上述可得 φs 和 φn 的估计值均已获得,那么 φ 的估计值也就有了