系统辨识 system identification(进阶篇)

目录

目录

目录

引言

基于有限数据窗的系统辨识

固定记忆的 RLS

固定记忆的 RLS2*

有限数据窗引入遗忘因子 FDW-FF-RLS

加权迭代最小二乘 WRLS

引入

推导

结果 WRLS

迭代扩展/广义最小二乘辨识

引入

扩展 RLS

广义RLS

基于辅助模型的系统辨识

原理

辅助模型的精妙之处

Box-Jenkkins 模型辨识

辨识方法的分析与套用


引言

根据基础篇,我们已经得知,对于一个辨识模型,我们可以得到其对应的最小二乘辨识估计值

\begin{align*} identification\ model:\ y(t)&=\varphi^T(t)\theta+v(t)\\ identification\ LSE:\ \hat{\theta}(t)&=\hat{\theta}(t-1)+L(t)[y(t)-\varphi^T(t)\hat{\theta}(t-1)]\\ gain:\ L(t)&=\frac{P(t-1)\varphi(t)}{1+\varphi^T(t)P(t-1)\varphi(t)}\\ covariance\ matrix:\ P(t)&=[I-L(t)\varphi^T(t)]P(t-1) \tag{1.1}\end{}

基于有限数据窗的系统辨识

固定记忆的 RLS

为了减少数据存储空间,提高运算效率,可以限制每次计算所用数据的数量,当新数据加入时,丢弃掉最前面的数据,保证参与计算的数据量恒定,以此保证每次计算都能有效的更新估计值。

上述方法中参与计算的恒定数据量有一个专门的名字,称为 有限数据窗(finite data window)

根据上述原理,接下来进行算法推演,设数据长度为 p,则

\begin{align*} H(p,t)&=\left[\begin{array}{ccc}\varphi^T(t-p+1)\\...\\\varphi^T(t) \end{} \right ],\ Y(p,t)=\left[\begin{array}{ccc}y(t-p+1)\\...\\y(t) \end{} \right ],\\ J(\theta)&=\sum_{i=t-p+1}^{t}{(y(i)-\varphi^T(i)\theta)^2}\\ &=(Y(p,t)-H(p,t)\theta)^T(Y(p,t)-H(p,t)\theta) \end{}

LSE 协方差矩阵 P 的递推关系也会发生改变

\begin{align*} \because P^{-1}(t-1)&=H^T(p,t-1)H(p,t-1)\\ &=\left[\begin{array}{ccc}\varphi^T(t-p)\\...\\\varphi^T(t-1) \end{} \right ]^T_{p \times n}\left[\begin{array}{ccc}\varphi^T(t-p)\\...\\\varphi^T(t-1) \end{} \right ]_{p \times n}\\ \therefore P^{-1}(t)&=H^T(p,t)H(p,t)\\ &=\left[\begin{array}{ccc}\varphi^T(t-p+1)\\...\\\varphi^T(t) \end{} \right ]^T_{p \times n}\left[\begin{array}{ccc}\varphi^T(t-p+1)\\...\\\varphi^T(t) \end{} \right ]_{p \times n}\\ &=P^{-1}(t-1)+\varphi^T(t)\varphi(t)-\varphi^T(t-p)\varphi(t-p)\\ \end{}

同样的,为了避免矩阵逆运算,此处也需要去逆操作,推理如下(此部分推理较为麻烦,可跳过看结论即可)

\begin{align*} P^{-1}(t)&=P^{-1}(t-1)+\varphi^T(t)\varphi(t)-\varphi^T(t-p)\varphi(t-p)\\ denote\ Q^{-1}(t)&=P^{-1}(t-1)+\varphi^T(t)\varphi(t)\\ then\ Q(t)&=P(t-1)+\frac{P(t-1)\varphi(t)\varphi^T(t)P(t-1)}{1+\varphi^T(t)P(t-1)\varphi(t)}\\ P(t)&=Q(t)+\frac{Q(t)\varphi(t-p)\varphi^T(t-p)Q(t)}{1+\varphi^T(t-p)Q(t)\varphi(t-p)}\\ \end{}

接下来顺水推舟,用得到的递推关系,求取 RLSE 如下

\begin{align*} \because P(t)P^{-1}(t-1)&=I-P(t)\varphi^T(t)\varphi(t)+P(t)\varphi^T(t-p)\varphi(t-p)\\ and\ H^T(p,t-1)Y(p,t-1)&=H^T(p,t)Y(p,t)-\varphi(t)y(t)+\varphi(t-p)y(t-p)\\ \therefore \hat{\theta}(t)&=P(t)\left[\begin{array}{ccc} H(p-1,t)\\\varphi^T(t) \end{} \right ]^T \left[\begin{array}{cc}Y(p-1,t)\\y(t) \end{} \right ]\\ &=P(t)[H(p-1,t)^TY(p-1,t)+\varphi(t)y(t))\\ &=[I-P(t)\varphi^T(t)\varphi(t)+P(t)\varphi^T(t-p)\varphi(t-p)]\hat{\theta}(t-1)+P(t)\varphi(t)y(t)\\ &=\hat{\theta}(t-1)+P(t)[\varphi(t)\ -\varphi(t-p)]\left[\begin{array}{cc}y(t)-\varphi^T(t)\hat{\theta}(t-1)\\y(t-p)-\varphi^T(t-p)\hat{\theta}(t-1) \end{} \right ] \end{}

此处注意,由于有限数据窗的定义,此处系数 P、H、Y 的递推不再是简单的添加一项,而是加一项的同时还需要去掉最前面一项,因此需要改变两个对应元素。

综上所述,这种方法称为 固定记忆的迭代最小二乘算法(fixed memery RLS):

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)+P(t)[\varphi(t)\ -\varphi(t-p)]\left[\begin{array}{cc}y(t)-\varphi^T(t)\hat{\theta}(t-1)\\y(t-p)-\varphi^T(t-p)\hat{\theta}(t-1) \end{} \right ] \\ Q(t)&=P(t-1)-\frac{P(t-1)\varphi(t)\varphi^T(t)P(t-1)}{1+\varphi^T(t)P(t-1)\varphi(t)}\\ P(t)&=Q(t)+\frac{Q(t)\varphi(t-p)\varphi^T(t-p)Q(t)}{1-\varphi^T(t-p)Q(t)\varphi(t-p)} \end{}

固定记忆的 RLS2

在上述的 FDW-RLS 中,有很多变量有重复的部分,但是各自存在特殊的项,因此,我们可以对辨识过程增加一个过渡环节,分两步进行辨识

\begin{align*} let\ P_\alpha(t-1)&=[H^T(p-1,t-1)H(p-1,t-1)]^{-1}\\ then:\quad\qquad&\\ P^{-1}(t)&=P^{-1}_\alpha(t-1)+\varphi(t)\varphi^T(t)\\ P^{-1}(t-1)&=P^{-1}_\alpha(t-1)+\varphi(t-p)\varphi^T(t-p) \end{}

利用设置的中间变量,计算“中间估计值”(intermediate estimate)

\begin{align*} \alpha(t-1)&=[H^T(p-1,t-1)H(p-1,t-1)]^{-1}H^T(p-1,t-1)Y(p-1,t-1)\\ &=P_\alpha(t-1)H^T(p-1,t-1)Y(p-1,t-1) \end{}

利用中间估计值,分别得到 t 与 t-1 两个时刻与之关系表达式

\begin{align*} \hat{\theta}(t)&=[H^T(p,t)H(p,t)]^{-1}H^T(p,t)Y(p,t)\\ &=\alpha(t-1)+P(t)\varphi(t)[y(t)-\varphi^T(t)\alpha(t-1)]\\ \hat{\theta}(t-1)&=[H^T(p,t-1)H(p,t-1)]^{-1}H^T(p,t-1)Y(p,t-1)\\ &=P(t-1)[\varphi(t-p)y(t-p)+P_\alpha^{-1}(t-1)\alpha(t-1)]\\ \Rightarrow \alpha(t-1)&=\hat{\theta}(t-1)-P_\alpha(t-1)\varphi(t-p)[y(t-p)-\varphi^T(t-p)\hat{\theta}(t-1)] \end{}

综上所述,完整算法为

\begin{align*} \hat{\theta}(t)&=\alpha(t-1)-P(t)\varphi(t)[y(t)-\varphi^T(t)\alpha(t-1)] \\ P(t)&=P_{\alpha}(t-1)-\frac{P_\alpha(t-1)\varphi(t)\varphi^T(t)P_\alpha(t-1)}{1+\varphi^T(t)P_\alpha(t-1)\varphi(t)}\\ \alpha(t-1)&=\hat{\theta}(t-1)-P_\alpha(t-1)\varphi(t-p)[y(t-p)-\varphi^T(t-p)\hat{\theta}(t-1)]\\ P_\alpha(t-1)&=P(t-1)+\frac{P(t-1)\varphi(t-p)\varphi^T(t-p)P(t-1)}{1-\varphi^T(t-p)P(t-1)\varphi(t-p)}\\ \end{}

 

 

有限数据窗引入遗忘因子 FDW-FF-RLS

将遗忘因子的处理方式与固定记忆的 RLS 相结合,可得到一个效果更好,效率更高的算法


加权迭代最小二乘 WRLS

引入

类似于遗忘因子的处理方式,我们可以人为的对每一个数据误差的影响进行调整,通过人为引入的权重来改变各个数据对算法结果的影响力,这种方式称为 加权迭代最小二乘(weighted recursive least squares algorithm)

\begin{align*} J(\theta)&=\sum_{i=1}^{t}\beta(t,i)[y(i)-\varphi^T(t)\theta]^2\\ Y_t&=\left[\begin{array}{cccc}y(1)\\y(2)\\...\\y(t) \end{} \right ]\in \mathbb{R}^t,\ H_t=\left[\begin{array}{cccc}\varphi^T(1)\\\varphi^T(2)\\...\\\varphi^T(t) \end{} \right ]\in \mathbb{R}^{t \times n} \end{}

此时,β 作为权重系数,用以确定各个数据对于标准函数的影响,方便起见,定义 权重系数矩阵,并将 J 用矩阵表示

\begin{align*} &denote\ &&\Theta(t)=\left[\begin{array}{cccc}\beta(t,1) & & &\\&\beta(t,2)& &\\&&...&\\&&&\beta(t,t) \end{} \right ]\\ &then\ &&J(\theta)=[Y_t-H_t\theta]^T\Theta(t)[Y_t-H_t\theta] \end{}

同样的,为了使误差最小,对标准函数求导求极值点

\begin{align*} \frac{\partial J(\theta)}{\partial \theta}&=-2H_t^T\Theta(t)[Y_t-H_t\theta]\overset{\Delta}{\rightarrow}0\\ \Leftrightarrow \hat{\theta}_{WLS}(t)&=[H^T_t\Theta(t)H_t]^{-1}H^T_t\Theta(t)Y_t \end{}

此处估计值的形式发生了变化,因此,加入了权重矩阵的部分也需要随之改变,接下来求各项递推表达式

推导

由于递推关系的推导主要是找出 t 时刻与 t-1 时刻的关系,因此,我们不妨设 β 满足如下条件

\begin{align*} &\left\{ \begin{array}{cc} \beta (t,i)=\lambda (t) \beta (t-1,i)\\\beta(t,t)=1 \end{} \right.\\ &then\ \beta(t,i)=\prod_{j=i+1}^{t}\lambda(j) \end{}

那么,P 的递推表达式为

\begin{align*} P^{-1}(t)&=H^T_t\Theta(t)H_t\\ &=\sum_{i=1}^{t}\beta(t,i)\varphi(i)\varphi^T(i)\\ &=\sum_{i=1}^{t}[\prod_{j=i+1}^{t}\lambda(j)\varphi(i)\varphi^T(i)]\\ &=\lambda(t)\sum_{i=1}^{t-1}[\prod_{j=i+1}^{t-1}\lambda(j)\varphi(i)\varphi^T(i)]+\varphi(t)\varphi^T(t)\\ &=\lambda(t)P^{-1}(t-1)+\varphi(t)\varphi^T(t) \end{}

同时,对于 θ 估计表达式中后半部分,由于也含有权重项,也需要求出其递推表达式

\begin{align*} f(t)&=H^T_t\Theta(t) Y_t\\&=\sum^{t}_{i=1}\beta(t,i)\varphi(i)y(i)\\ &=\lambda(t)f(t-1)+\varphi(t)y(t) \end{}

那么,估计值递推表达式可得

\begin{align*} \hat{\theta}_{WLS}(t)&=P(t)f(t)\\ &=P(t)[\lambda(t)f(t-1)+\varphi(t)y(t)]\\ &=\frac{1}{\lambda(t)}[I-P(t)\varphi(t)\varphi^T(t)][P(t-1)\lambda(t)f(t-1)]+P(t)\varphi(t)y(t)\\ &=\hat{\theta}(t-1)-P(t)\varphi(t)[y(t)-\varphi^T(t)\hat{\theta}(t-1)] \end{}

可以发现,引入权重后的 RLS 并没有格式上的改变,只是协方差矩阵的形式发生了变化

结果 WRLS

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)-L(t)[y(t)-\varphi^T(t)\hat{\theta}(t-1)] \\ L(t)&=\frac{P(t-1)\varphi(t)}{\lambda(t)+\varphi^T(t)P(t-1)\varphi(t)}\\ P(t)&=\frac{1}{\lambda(t)}[I-L(t)\varphi^T(t)]P(t-1) \end{}

可见,WRLS 与 FF-RLS 在形式上有非常高的相似度


迭代扩展/广义最小二乘辨识

引入

在讨论完了 ARX 模型之后,我们研究更加复杂的模型

拿 ARMAX 模型举例: A(z)y(t)=B(Z)u(t)+D(z)v(t)

此处的噪声部分显然不再是单纯的白噪声,而是一个复杂的差分多项式

 D(z)v(t)=\sum_{i=0}^{n_d}d_iz^{-i}v(t-i)

因此,我们首先要做的,就是将这个复杂的模型转化为我们熟悉的辨识模型,以便我们套用公式。

获取辨识模型,是解决各种复杂模型辨识的关键步骤和核心难点

扩展 RLS

对于 ARMAX 模型,通过移项的方式,我们将 y(t) 和 v(t) 单独提取出来放到目标位置,剩下的复杂多项式打包成一体作为系数矩阵和变量矩阵,则有

至此,整理后便可以获得我们熟悉的辨识模型

y(t)=[\varphi_s^T(t)\ \varphi^T_n(t)]\left[\begin{array}{cc}\theta_s(t)\\\theta_n(t) \end{} \right ]+v(t)=\varphi^T(t)\theta+v(t)

有了辨识模型,我们便可以根据以往的结论,套用公式获得全新的辨识算法

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)-L(t)[y(t)-\hat{\varphi}^T(t)\hat{\theta}(t-1)] \\ L(t)&=\frac{P(t-1)\hat{\varphi}(t)}{1+\hat{\varphi}^T(t)P(t-1)\hat{\varphi}(t)}\\ P(t)&=[I-L(t)\hat{\varphi}^T(t)]P(t-1) \\ \hat{\varphi}(t)&=[-y(t-1)\ -y(t-2)\ ...\ -y(t-n_a)\ u(t-1)\ u(t-2)\ ...\ u(t-n_b)\\ &\hat{v}(t-1)\ \hat{v}(t-2)\ ...\ \hat{v}(t-n_d)]\\ \hat{v}(t)&=\left\{\begin{array}{cc} y(t)-\hat{\varphi}^T(t)\hat{\theta}(t)& ,R-RELS\\ y(t)-\hat{\varphi}^T(t)\hat{\theta}(t-1)& ,I-RELS\\ \end{} \right. \end{}

注意,根据我们对 φ 的定义,噪声项 φ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模型

A(z)y(t)=B(z)u(t)+\frac{1}{C(z)}v(t),\quad where\ w(t)=\frac{1}{C(t)}v(t)\ is\ colored\ noise

加入有色噪声的 ARARX 模型显得非常复杂,我们仍然需要提取出白噪声,凑成辨识模型

将有色噪声项定义为 w,则可得下述关系

\begin{align*} denote\ &w(t)=\frac{1}{C(z)}v(t)\\ then\ &w(t)+c_1w(t-1)+...+c_{n_c}w(t-n_c)=v(t)\\ \Rightarrow &w(t)=[-w(t-1)\ -w(t-2)\ ...\ -w(t-n_c)][c_1\ c_2\ ...\ c_{n_c}]^T+v(t)\\ \Rightarrow &\qquad=\varphi_n^T(t)\theta_n(t)+v(t)\tag{4.1} \end{}

原有系统可化为

\begin{align*} y(t)&=\varphi_s^T(t)\theta_s(t)+w(t)\\ &=\varphi^T(t)\theta(t)+v(t)\tag{4.2} \end{}

此处原有系统已经转化为辨识系统,套用 RLS 算法可得

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)+L(t)[y(t)-\hat{\varphi}^T(t)\hat{\theta}(t-1)]\\ L(t)&=\frac{P(t-1)\hat{\varphi}(t)}{1+\hat{\varphi}^(t)P(t-1)\hat{\varphi}(t)}\\ P(t)&=[I-L(t)\hat{\varphi}^T(t)]P(t-1) \end{}

此处 φ 由于含有噪声项 w,因此无法直接观测,因此,我们用估计值代替,并设法给出它的估计算法:

\begin{align*} (4.2)&\rightarrow \hat{w}(t)=y(t)-\varphi^T_s(t)\hat{\theta}_s(t) \\ &\rightarrow \hat{\varphi}_n(t)=[-\hat{w}(t-1)\ ...\ -\hat{w}(t-n_c)]^T\\ &\rightarrow \hat{\varphi}(t)=\left[\begin{array}{cc}\varphi_s(t)\\\hat{\varphi}_n(t) \end{} \right] \end{}

这样一来,便可以得到 RLSE 了。

注意,此处你可能会疑惑:最后一步似乎是用了未知的估计值 θ 来计算中间变量 φ,再用 φ 来求估计量 θ。这不是自相矛盾吗?这个疑惑将伴随整个复杂输出误差模型的各种辨识算法中

 

广义系统辨识的精妙之处

你可能会问:我们本来就是为了求取估计值,才引入中间变量,现在中间变量却需要估计值来求取。这不是死循环了吗

这就是广义系统辨识算法最为精妙的地方了!!!

估计值 与 变量数据 虽然相互需要,但是却如同鸡和蛋的关系一样。鸡由蛋孵化而来,蛋又需要鸡来产生,看似矛盾,但是这个循环的确实现了,而且并没有死扣。原因便在于它利用了 时间差

可以发现,流程图的复杂程度此时已经远高于之前的很多模型了。但是惊奇的是,复杂的关系之间并没有死循环(顺着流程方向形成的闭环),而是单方向向前进行。说明这个算法的执行过程中,虽然各个变量之间的关系错综复杂,但是整个算法却有条不紊的向前迭代,正常执行。

正因为此处的时间差,保证了算法的有效性,因此我们在学习算法,或者编程进行算法实现时,算法步骤的执行顺序就必须讲究了。若交换关键步骤,算法将直接由于变量互锁而失效,甚至崩盘

 

基于滤波器的广义RLS

对于复杂的 ARARX 模型而言,除了上述的方法外,我们还有另一个方法来获取辨识模型

\begin{align*} A(z)y(t)&=B(z)u(t)+\frac{1}{C(z)}v(t)\\ \Leftrightarrow A(z)C(z)y(t)&=B(z)C(z)y(t)+v(t)\\ \Leftrightarrow A(z)y_f(t)&=B(z)u_f(t)+v(t)\\ \Leftrightarrow y_f(t)&=\varphi^T_f(t)\theta_s(t)+v(t) \tag{4.3}\\ where\ y_f(t)=&C(z)y(t),\quad u_f(t)=C(z)u(t)\tag{4.4} \end{}

此时,yf 和 uf 分别称为 滤波器的输出和输入(filtered output and input)

我们现在如愿以偿的获得辨识模型(4.3),可以套用 RLS 了

\begin{align*} \hat{\theta}_s(t)&=\hat{\theta}_s(t-1)+L_f(t)[\hat{y}_f(t)-\hat{\varphi}_f^T(t)\hat{\theta}_s(t-1)]\\ L_f(t)&=\frac{P_f(t-1)\hat{\varphi}_f(t)}{1+\hat{\varphi}^T_f(t)P_f(t-1)\hat{\varphi}_f(t)}\\ P_f(t)&=[I-L_f(t)\hat{\varphi}_f^T(t)]P_f(t-1) \tag{4.5}\end{}

可以发现,虽然我们很轻松的获得了辨识模型,我们总结一下其中的未知量:

\begin{align*} \hat{\varphi}_f(t)&=[-\hat{y}_f(t-1)\ ...\ -\hat{y}_f(t-n_a)\ \hat{u}_f(t-1)\ ...\ \hat{u}_f(t-n_b)]^T,&&\hat{y}_f\ and\ \hat{u}_f\ are\ unknown\\ \hat{y}_f(t)&=y(t)+c_1y(t-1)+...+c_{n_c}y(t-n_c),&&c_i\ is\ unknown\\ \hat{u}_f(t)&=u(t)+c_1u(t-1)+...+c_{n_c}u(t-n_c),&&c_i\ is\ unknown\\ \end{}

所以实际上,f 下标仅表示与滤波器输入输出相关,并没有增加未知量。接下来,对C进行估计即可

根据广义RLS中(4.1)\begin{align*} w(t)=\varphi_n^T(t)\theta_n(t)+v(t) \end{} 也属于辨识模型,因此我们对它套用 RLS

\begin{align*} \hat{\theta}_n(t)&=\hat{\theta}_n(t-1)+L_n(t)[\hat{w}(t)-\hat{\varphi}_n^T(t)\hat{\theta}_n(t-1)]\\ L_n(t)&=\frac{P_n(t-1)\hat{\varphi}_n(t)}{1+\hat{\varphi}^T_n(t)P_n(t-1)\hat{\varphi}_n(t)}\\ P_n(t)&=[I-L_n(t)\hat{\varphi}_n^T(t)]P_n(t-1) \tag{4.6}\end{}

此处有全新的未知量 w 待估计,我们利用(4.2)\begin{align*} y(t)&=\varphi_s^T(t)\theta_s(t)+w(t) \end{} 可得

\begin{align*} (4.2)&\rightarrow \hat{w}(t)=y(t)-\varphi^T_s(t)\hat{\theta}_s(t) \end{}

此处,θs 估计值已知(前一个时刻,同样是时间差),算法成立

完整算法如下:

\begin{align*} \hat{\theta}_s(t)&=\hat{\theta}_s(t-1)+L_f(t)[\hat{y}_f(t)-\hat{\varphi}_f^T(t)\hat{\theta}_s(t-1)]\\ L_f(t)&=\frac{P_f(t-1)\hat{\varphi}_f(t)}{1+\hat{\varphi}^T_f(t)P_f(t-1)\hat{\varphi}_f(t)}\\ P_f(t)&=[I-L_f(t)\hat{\varphi}_f^T(t)]P_f(t-1) \\\\ \hat{\varphi}_f(t)&=[-\hat{y}_f(t-1)\ ...\ -\hat{y}_f(t-n_a)\ \hat{u}_f(t-1)\ ...\ \hat{u}_f(t-n_b)]^T\\ \hat{y}_f(t)&=y(t)+\hat{c}_1(t)y(t-1)+...+\hat{c}_{n_c}(t)y(t-n_c)\\ \hat{u}_f(t)&=u(t)+\hat{c}_1(t)u(t-1)+...+\hat{c}_{n_c}(t)u(t-n_c)\\ \end{}

\begin{align*} \hat{\theta}_n(t)&=\hat{\theta}_n(t-1)+L_n(t)[\hat{w}(t)-\hat{\varphi}_n^T(t)\hat{\theta}_n(t-1)]\\ L_n(t)&=\frac{P_n(t-1)\hat{\varphi}_n(t)}{1+\hat{\varphi}^T_n(t)P_n(t-1)\hat{\varphi}_n(t)}\\ P_n(t)&=[I-L_n(t)\hat{\varphi}_n^T(t)]P_n(t-1)\\\\ \hat{\varphi}_n(t)&=[-\hat{w}(t-1)\ ...\ -\hat{w}(t-n_c)]^T\\ \hat{w}(t)&=y(t)-\varphi_s^T(t)\hat{\theta}_s(t-1)\\ \hat{\theta}_s(t)&=[\hat{a}_1(t)\ ...\ \hat{a}_{n_a}(t)\ \hat{b}_1(t)\ ...\ \hat{b}_{n_b}(t)]^T\\ \hat{\theta}_n(t)&=[\hat{c}_1(t)\ ...\ \hat{c}_{n_c}(t)]^T\end{}

由于引入了滤波器,辨识算法包括了滤波器、噪声两部分的辨识,用到了两次 RLS,算法复杂度大幅提高

 


基于辅助模型的系统辨识

原理

在推理了方程误差模型的辨识算法后,我们接下来研究更加复杂的输出误差模型

y(t)=\frac{B(z)}{A(z)}u(t)+v(t)

首先,由于不难直接观测,我们定义一个新变量 x

\begin{align*} x(t)&=\frac{B(z)}{A(z)}u(t)\\ \Leftrightarrow x(t)+a_1x(t-1)+...a_{n_a}x(t-n_a)&=u(t)+b_1u(t-1)+...+b_{n_b}u(t-n_b)\\ \Leftrightarrow x(t)&= \varphi^T(t)\theta+v(t) \end{}

这是我们熟悉的辨识模型,直接套用公式得到对应的 LSE(见公式1.1)

但是,在公式中,由于  \varphi(t)=[-x(t-1)\ -x(t-2)\ ...\ -x(t-n_a)\ u(t-1)\ u(t-2)\ ...\ u(t-n_b)]^T,其中 x 是无法直接测得的值,因此需要用估计值替代,并给出相应的估计算法

在原有模型中,引入一个 辅助模型(auxiliary model)用于获得一个观测值 

我们用同样的方式得到辅助模型部分的表达式

\begin{align*} x_a(t)=\varphi_a^T(t)\theta_a(t)\xrightarrow[]{\theta_a(t)=\hat{\theta}(t)}\varphi^T(t)\hat{\theta}(t) \end{}

可以看到,当我们辅助模型的参数取值,和我们计算的估计值相等时,辅助模型的结果 φ 和原有模型一样。

因此,我们可以写出 基于辅助模型的RLS(auxiliary model based RLS)

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)+L(t)[y(t)-\hat{\varphi}^T(t)\hat{\theta}(t-1)]\\ L(t)&=\frac{P(t-1)\hat{\varphi}(t)}{1+\hat{\varphi}^T(t)P(t-1)\hat{\varphi}(t)}\\ P(t)&=[I-L(t)\hat{\varphi}^T(t)]P(t-1) \\ \hat{\varphi}&=[-x_a(t-1)\ ...\ -x_a(t-n_a)\ u(t-1)\ ...\ u(t-n_b)]^T\\ x_a(t)&=\hat{\varphi}^T(t)\hat{\theta}(t) \end{}

 

Box-Jenkkins 模型辨识

我们接下来针对最为复杂的系统进行辨识,对辨识算法进行推理示范

y(t)=\frac{B(z)}{A(Z)}u(t)+\frac{D(z)}{C(z)}v(t) 

\begin{align*} A(z)&=1+\sum_{i=1}^{n_a}a_iz^{-i},\quad B(z)=\sum_{i=1}^{n_b}b_iz^{-i},\\ C(z)&=1+\sum_{i=1}^{n_c}c_iz^{-i},\quad D(z)=1+\sum_{i=1}^{n_d}d_iz^{-i} \end{}

基于辅助模型和扩展RLS,定义

\begin{align*} x(t)&=\frac{B(z)}{A(z)}u(t)\\&=[-x(t-1)\ ...\ -x(t-n_a)\ u(t-1)\ ...\ u(t-n_b)][a_1\ ...\ a_{n_a}\ b_1\ ...\ b_{n_b}]^T\\&=\varphi_s^T(t)\theta_s(t)\tag{5.1}\\ w(t)&=\frac{D(z)}{C(z)}v(t)\\&=[-w(t-1)\ ...\ -w(t-n_c)\ v(t-1)\ ...\ v(t-n_d)][c_1\ ...\ c_{n_c}\ d_1\ ... \ d_{n_d}]^T+v(t)\\&=\varphi^T_n(t)\theta_n(t)+v(t) \tag{5.2}\\ y(t)&=[\varphi_s(t)\ \varphi_n(t)]\left[\begin{array}{cc}\theta_s\\ \theta_n \end{} \right ]+v(t)\\ &=\varphi^T(t)\theta(t)+v(t)\\&=\varphi^T_s(t)\theta_s(t)+w(t)\tag{5.3} \end{}

对于得到的辨识模型(5.3),我们可以套用 RLS 可得

\begin{align*} \hat{\theta}(t)&=\hat{\theta}(t-1)+L(t)[y(t)-\hat{\varphi}^T(t)\hat{\theta}(t-1)]\\ L(t)&=\frac{P(t-1)\hat{\varphi}(t)}{1+\hat{\varphi}^(t)P(t-1)\hat{\varphi}(t)}\\ P(t)&=[I-L(t)\hat{\varphi}^T(t)]P(t-1) \end{}

在 RLSE 中,φ 中 x、w、v 均为未知量,因此需要对这三个量进行估算,用估计值替代

根据(5.1)和辅助模型得到 x 的估计值,那么 x 和 u 均已知,φs 的估计值也可获得

\begin{align*} (5.1)\rightarrow \hat{x}_a(t)&=\hat{\varphi}^T_s(t)\hat{\theta}_s(t)\\ \rightarrow\hat{\varphi}_s(t)&=[-\hat{x}(t-1)\ ...\ -\hat{x}(t-n_a)\ u(t-1)\ ...\ u(t-n_b)]^T\\ \end{}

根据(5.3)的关系式,得到 w 和 v 的估计值,那么 φn 的估计值也可获得

\begin{align*} (5.3)\rightarrow \hat{w}(t)&=y(t)-\hat{\varphi}^T_s(t)\hat{\theta}_s(t)\\ \hat{v}(t)&=y(t)-\hat{\varphi}^T(t)\hat{\theta}(t) \\ \rightarrow\hat{\varphi}_n(t)&=[-\hat{w}(t-1)\ ...\ -\hat{w}(t-n_c)\ \hat{v}(t-1)\ ...\ \hat{v}(t-n_d)]^T\\ \end{}

上述可得 φs 和 φn 的估计值均已获得,那么 φ 的估计值也就有了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值