自适应控制
文章目录
00-自适应控制引言(绪论1)
- 参考书目
- Adaptive Control(2-edition),K.J.Astrom
- System Identification-Theory for the User(2-Edition),Lennart Ljung
- 过程辨识,方崇智
01-自适应控制的发展概况(绪论2)
一、什么是自适应控制器
- 自适应控制器定义:1)具有“控制器结构或参数整定机构”的控制器;2)相对于定常参数控制器而言,“结构或者参数”能够在线调整的控制器。
二、为什么要改变“控制器的参数或结构”
- 不改不行:被控对象或者环境发生变化,控制律无法使系统稳定;
- 参数或结构存在不确定性,需要进一步修正控制律以提升控制性能。
三、自适应控制适用的被控对象
- 参数、结构不确定系统(线性、非线性):如 模型参考自适应系统
- 参数未知或随时间“缓慢”变化的被动对象:如 随机自适应系统
- 非线性系统:如 增益调度自适应系统,T-S模糊系统
四、自适应控制的发展概况
五、自适应控制理论的发展动力
六、自适应控制理论的发展方向
七、自适应控制系统的分类
-
自整定调节器(Self-tuning Regulators,STR)
- 多种自适应方案:不同设计方法+不同辨识方法
- 没有基于稳定性的考虑,缺乏“从顶向下”的整体设计方案
-
双重控制(Dual Control)
-
模型参考自适应控制系统(Model-Reference Adaptive System)
-
增益调度系统(Gain Scheduling)
-
无模型自适应控制系统
- 定义:控制器的设计仅利用受控系统的输入输出数据,控制器中不包含受控过程数学模型的任何信息的控制理论与方法。
- 方法:伪梯度向量、迭代无模型控制优化方法(迭代反馈自校正方法)、去伪控制、迭代学习控制和重复控制、强化学习自适应控制
02-系统辨识的基本概念(参数在线估计)
一、什么是系统辨识(参数估计、学习)
- 系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。即按照一定的准则,从某一类模型中找出一个与输入输出数据拟合得最好的模型
-
机理分析建模方法(白箱法)
- 问题:效率低,物理参数需进一步确定,不方便计算机在线决策
-
系统辨识法(黑箱法)
-
输入信号为什么要选M序列?
M序列的自相关性较好,具有伪随机性,容易产生和复制。正余弦函数的信息不够丰富。阶跃信号不易产生。
-
预定的模型结构、阶次如何选定?
-
怎么确定具体参数?
-
如何通过迭代的方法在线估计系统的参数?
-
-
机理分析法+系统辨识法(灰箱法)
二、系统辨识方法的基本分类
{ 参数辨识方法 { a . 经典辨识方法 b.最小二乘类参数辨识方法 c.基于梯度信息的参数辨识方法 d . 极大似然法和预报误差方法 . . . 结构辨识方法 { a.根据Hankel矩阵的秩估计模型的阶次 b . 行列式比 c . 残差的方差 . . . \left\{ \begin{array}{l} 参数辨识方法 \left\{ \begin{array}{l} a.经典辨识方法 \\ \textbf{b.最小二乘类参数辨识方法} \\ \textbf{c.基于梯度信息的参数辨识方法} \\ d.极大似然法和预报误差方法 \\ ... \end{array} \right. \\ 结构辨识方法 \left\{ \begin{array}{l} \textbf{a.根据Hankel矩阵的秩估计模型的阶次} \\ b.行列式比 \\ c.残差的方差 \\ ... \end{array} \right. \end{array} \right. ⎩ ⎨ ⎧参数辨识方法⎩ ⎨ ⎧a.经典辨识方法b.最小二乘类参数辨识方法c.基于梯度信息的参数辨识方法d.极大似然法和预报误差方法...结构辨识方法⎩ ⎨ ⎧a.根据Hankel矩阵的秩估计模型的阶次b.行列式比c.残差的方差...
三、辨识的基本要素
{ 1.输入输出数据(辨识的基础) { 必须包含有关系统特性的足够信息 时域的角度: 信号变化强烈,且呈现非周期性 频域的角度: 频谱宽 2.模型类 3.准则: 评判“辨识得到的模型”是否满足“实际需要”的一个“准则” \left\{ \begin{array}{l} \textbf{1.输入输出数据(辨识的基础)} \left\{ \begin{array}{l} 必须包含有关系统特性的足够信息 \\ \textbf{时域的角度:}信号变化强烈,且呈现非周期性 \\ \textbf{频域的角度:}频谱宽 \\ \end{array} \right. \\ \textbf{2.模型类} \\ \textbf{3.准则:}评判“辨识得到的模型”是否满足“实际需要”的一个“准则” \end{array} \right. ⎩ ⎨ ⎧1.输入输出数据(辨识的基础)⎩ ⎨ ⎧必须包含有关系统特性的足够信息时域的角度:信号变化强烈,且呈现非周期性频域的角度:频谱宽2.模型类3.准则:评判“辨识得到的模型”是否满足“实际需要”的一个“准则”
辨识就是按照一定的准则从某一类模型中找出一个与输入输出数据拟合得最好的模型。
四、模型简介(Book.1 Page.81)
-
ARX模型
-
有源自回归模型
-
分量形式
y ( k ) + a 1 y ( k − 1 ) + ⋯ + a n a y ( k − n a ) = b 1 u ( k − 1 ) + ⋯ + b n b u ( k − n b ) + e ( k ) e ( k ) 为白噪声 y(k) +a_1y(k-1) +\cdots +a_{na}y(k-na) =b_1u(k-1) +\cdots +b_{nb}u(k-nb)+e(k) \\ e(k)为白噪声 y(k)+a1y(k−1)+⋯+anay(k−na)=b1u(k−1)+⋯+bnbu(k−nb)+e(k)e(k)为白噪声 -
矩阵形式
A ( z ) y ( k ) = B ( z ) u ( k ) + e ( k ) A ( z ) = 1 + a 1 z − 1 + . . . + a n a z − n a B ( z ) = b 1 z − 1 + . . . + b n b z − n b A(z)y(k)=B(z)u(k)+e(k) \\ A(z)=1+a_1z^{-1}+...+a_{na}z^{-na}\\ B(z)=b_1z^{-1}+...+b_{nb}z^{-nb} A(z)y(k)=B(z)u(k)+e(k)A(z)=1+a1z−1+...+anaz−naB(z)=b1z−1+...+bnbz−nb -
Figure
-
-
ARMAX模型
-
MA:滑动平均
-
矩阵形式
A ( z ) y ( k ) = B ( z ) u ( k ) + C ( z ) e ( k ) C ( z ) = 1 + c 1 z − 1 + . . . + c n c z − n c A(z)y(k)=B(z)u(k)+C(z)e(k) \\ C(z)=1+c_1z^{-1}+...+c_{nc}z^{-nc} A(z)y(k)=B(z)u(k)+C(z)e(k)C(z)=1+c1z−1+...+cncz−nc -
Figure
-
-
ARARX模型
-
矩阵形式
A ( z ) y ( k ) = B ( z ) u ( k ) + 1 D ( z ) e ( k ) D ( z ) = 1 + d 1 z − 1 + . . . + d n d z − n d A(z)y(k)=B(z)u(k)+\frac{1}{D(z)}e(k) \\ D(z)=1+d_1z^{-1}+...+d_{nd}z^{-nd} A(z)y(k)=B(z)u(k)+D(z)1e(k)D(z)=1+d1z−1+...+dndz−nd -
Figure
-
-
ARARMAX模型
- 矩阵形式
A ( z ) y ( k ) = B ( z ) u ( k ) + C ( z ) D ( z ) e ( k ) A(z)y(k)=B(z)u(k)+\frac{C(z)}{D(z)}e(k) A(z)y(k)=B(z)u(k)+D(z)C(z)e(k)
- 矩阵形式
-
Output Error Model Structure(OE model structure)
-
Box-Jenkins Model Structure
-
A General Family of Model Structures
-
神经网络模型(Artificial Neural Networks)
-
基于规则的模型(Rule based Model)
-
基于模糊推理系统的自适应网络(Adaptive-Network based Fuzzy Inference System,ANFIS)
03-最小二乘参数辨识标准算法(最小二乘类1)
一、引例
- 总结:
- 以“测量值与估计值残差的平方和最小”指标,在“线性函数”这一类函数中找到最优解;
- 如果函数类扩大到“非线性”方程,有可能找到一个使“偏差的平方和”更小的方程;
- 多元函数优化问题
二、基本定义和基本计算公式
-
最小二乘模型类和标准格式(ARX模型)
-
分量形式:
y ( k ) + a 1 y ( k − 1 ) + . . . + a n y ( k − n ) = b 1 u ( k − 1 ) + . . . + b n u ( k − n ) + e ( k ) y(k)+a_1y(k-1)+...+a_ny(k-n)=b_1u(k-1)+...+b_nu(k-n)+e(k) y(k)+a1y(k−1)+...+any(k−n)=b1u(k−1)+...+bnu(k−n)+e(k) -
向量形式:
y ( k ) = [ − y ( k − 1 ) ⋯ − y ( k − n ) u ( k − 1 ) ⋯ u ( k − n ) ] [ a 1 ⋮ a n b 1 ⋮ b n ] y(k)=\left[ \begin{matrix} -y(k-1) & \cdots & -y(k-n) & u(k-1) & \cdots & u(k-n) \end{matrix}\right] \left[ \begin{matrix} a_1 \\ \vdots \\ a_n \\ b_1 \\ \vdots \\ b_n \end{matrix} \right] y(k)=[−y(k−1)⋯−y(k−n)u(k−1)⋯u(k−n)] a1⋮anb1⋮bn
-
-
最小二乘准则(最小二乘估计原理)和正规方程组
-
准则: J = ∑ i = 1 N [ y ( n + i ) − y ^ ( n + i ) ] 2 J=\sum^{N}_{i=1}[y(n+i)-\widehat{y}(n+i)]^2 J=i=1∑N[y(n+i)−y (n+i)]2
-
正规方程组: Φ T ( N ) Y ( N ) − Φ T ( N ) Φ ( N ) θ ( N ) = 0 \Phi^T(N)Y(N)-\Phi^T(N)\Phi(N)\theta(N)=0 ΦT(N)Y(N)−ΦT(N)Φ(N)θ(N)=0
其中:
Φ ( N ) = [ − y ( n ) − y ( n − 1 ) ⋯ − y ( 1 ) u ( n ) u ( n − 1 ) ⋯ u ( 1 ) − y ( n + 1 ) − y ( n ) ⋯ − y ( 2 ) u ( n + 1 ) u ( n ) ⋯ u ( 2 ) ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋱ ⋮ − y ( n + N − 1 ) − y ( n + N − 2 ) ⋯ − y ( N ) u ( n + N − 1 ) u ( n + N − 2 ) ⋯ u ( N ) ] θ ( N ) = [ a n ⋯ a 1 u n ⋯ u 1 ] T Y ( N ) = [ y ( n + 1 ) ⋯ y ( n + N ) ] T \Phi(N)= \left[ \begin{matrix} -y(n) & -y(n-1) & \cdots & -y(1) & u(n) & u(n-1) & \cdots & u(1) \\ -y(n+1) & -y(n) & \cdots & -y(2) & u(n+1) & u(n) & \cdots & u(2) \\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \ddots & \vdots\\ -y(n+N-1) & -y(n+N-2) & \cdots & -y(N) & u(n+N-1) & u(n+N-2) & \cdots & u(N) \end{matrix} \right] \\ \theta(N) = \left[\begin{matrix}a_n & \cdots & a_1 & u_n & \cdots & u_1 \end{matrix}\right]^T \\ Y(N) = \left[ \begin{matrix} y(n+1) & \cdots & y(n+N) \end{matrix} \right]^T Φ(N)= −y(n)−y(n+1)⋮−y(n+N−1)−y(n−1)−y(n)⋮−y(n+N−2)⋯⋯⋱⋯−y(1)−y(2)⋮−y(N)u(n)u(n+1)⋮u(n+N−1)u(n−1)u(n)⋮u(n+N−2)⋯⋯⋱⋯u(1)u(2)⋮u(N) θ(N)=[an⋯a1un⋯u1]TY(N)=[y(n+1)⋯y(n+N)]T
-
-
参数解的表达式:
θ ^ ( N ) = [ Φ T ( N ) Φ ( N ) ] − 1 Φ T ( N ) Y ( N ) \widehat{\theta}(N)=[\Phi^T(N)\Phi(N)]^{-1}\Phi^T(N)Y(N) θ (N)=[ΦT(N)Φ(N)]−1ΦT(N)Y(N)
-
[ Φ T ( N ) Φ ( N ) ] 2 n × 2 n [\Phi^T(N)\Phi(N)]_{2n \times 2n} [ΦT(N)Φ(N)]2n×2n 的非奇异性
- 从矩阵理论上讲,非奇异要求 Φ ( N ) \Phi(N) Φ(N) 的行数 N ≥ 2 n N \geq 2n N≥2n;从物理背景上看, N > 2 n N > 2n N>2n;
- 当 $N > 2n $ 时, [ Φ T ( N ) Φ ( N ) ] [\Phi^T(N)\Phi(N)] [ΦT(N)Φ(N)] 不一定非奇异。
-
开环可辨识性条件
-
充分必要条件:输入信号必须是 2 n 2n 2n 阶持续激励信号,即要求:
U ‾ L T U ‾ L > 0 { U ‾ L = [ F u L , F 2 u L , … , F 2 n u L ] u L = [ u ( 1 ) , u ( 2 ) , … , u ( L ) ] T F = [ 0 O 1 ⋱ O 1 0 ] n = m a x ( n a , n b ) \overline{U}_L^T\overline{U}_L > 0 \\ \left\{ \begin{array}{l} \overline{U}_L = [Fu_L,F^2u_L,\ldots,F^{2n}u_L] \\ u_L = [u(1),u(2),\ldots,u(L)]^T \\ F = \left[\begin{matrix} 0 & & \rm{O} \\ 1 & \ddots & \\ \rm{O} & 1 & 0 \end{matrix}\right] \\ n = \mathbf{max}(n_a,n_b) \end{array} \right. ULTUL>0⎩ ⎨ ⎧UL=[FuL,F2uL,…,F2nuL]uL=[u(1),u(2),…,u(L)]TF= 01O⋱1O0 n=max(na,nb) -
常用的信号:白噪声序列;M序列或逆M序列;n种频率的正弦信号组合成的信号,且其频率不成整数倍关系
-
三、算法程序示例
四、算法演示
-
例1:稳定的被控对象
-
系统函数:
G ( z ) = 0.45 z + 0.23 z 2 − 1.81 z + 0.82 y ( k ) − 1.81 y ( k − 1 ) + 0.82 y ( k − 2 ) = 0.45 u ( k − 1 ) + 0.23 u ( k − 2 ) G(z) = \frac{0.45z+0.23}{z^2-1.81z+0.82} \\ y(k) -1.81y(k-1) +0.82y(k-2) =0.45u(k-1) +0.23u(k-2) G(z)=z2−1.81z+0.820.45z+0.23y(k)−1.81y(k−1)+0.82y(k−2)=0.45u(k−1)+0.23u(k−2) -
MATLAB程序:C03P19_example1.m:
-
向量 φ \varphi φ:
φ ( 1 ) = [ − y ( 2 ) − y ( 1 ) u ( 2 ) u ( 1 ) ] \varphi(1) = [\begin{matrix} -y(2)&-y(1)&u(2)&u(1) \end{matrix}] φ(1)=[−y(2)−y(1)u(2)u(1)] -
矩阵 Φ \Phi Φ 的赋值:
Phi =zeros(N,2*n); for i=1:N for j=1:n Phi(i,j)=-y(n+i-j); end for j=1:n Phi(i,n+j)=u(n+i-j); end end
-
-
-
例2:临界稳定的被控对象
- 系统函数:
G ( z ) = 0.45 z + 0.23 z 2 − 1.82 z + 0.82 y ( k ) − 1.82 y ( k − 1 ) + 0.82 y ( k − 2 ) = 0.45 u ( k − 1 ) + 0.23 u ( k − 2 ) G(z) = \frac{0.45z+0.23}{z^2-1.82z+0.82} \\ y(k) -1.82y(k-1) +0.82y(k-2) =0.45u(k-1) +0.23u(k-2) G(z)=z2−1.82z+0.820.45z+0.23y(k)−1.82y(k−1)+0.82y(k−2)=0.45u(k−1)+0.23u(k−2)
- 系统函数:
-
例3:不稳定的被控对象
- 系统函数
G ( z ) = 0.45 z + 0.23 z 2 − 1.83 z + 0.82 y ( k ) − 1.83 y ( k − 1 ) + 0.82 y ( k − 2 ) = 0.45 u ( k − 1 ) + 0.23 u ( k − 2 ) G(z) = \frac{0.45z+0.23}{z^2-1.83z+0.82} \\ y(k) -1.83y(k-1) +0.82y(k-2) =0.45u(k-1) +0.23u(k-2) G(z)=z2−1.83z+0.820.45z+0.23y(k)−1.83y(k−1)+0.82y(k−2)=0.45u(k−1)+0.23u(k−2)
- 系统函数
-
仿真结论:
-
最小二乘既可以用到“稳定对象”,也可以用到”不稳定对象“;辨识自身不稳定对象,应注意保持系统在平衡位置附近;
-
噪声的方差对辨识精度影响很大,其影响程度对不同的被控对象有所不同。
-
五、加权最小二乘
- 指标: J = ∑ i = 1 N λ ( i ) [ y ( n + i ) − y ^ ( n + i ) ] 2 J=\sum^{N}_{i=1} \lambda (i) \left[ y(n+i) - \hat{y}(n+i) \right]^2 J=i=1∑Nλ(i)[y(n+i)−y^(n+i)]2
- 计算公式:
θ ^ ( N ) = [ Φ T ( N ) Λ ( N ) Φ ( N ) ] − 1 Φ T ( N ) Λ ( N ) y ( N ) Λ ( N ) = d i a g ( [ λ ( 1 ) , λ ( 2 ) , … , λ ( N ) ] ) > 0 \hat \theta(N) = \left[ \Phi^T(N)\Lambda(N)\Phi(N) \right]^{-1} \Phi^T(N)\Lambda(N)y(N) \\ \Lambda(N) = diag([\lambda(1), \lambda(2), \ldots, \lambda(N)]) > 0 θ^(N)=[ΦT(N)Λ(N)Φ(N)]−1ΦT(N)Λ(N)y(N)Λ(N)=diag([λ(1),λ(2),…,λ(N)])>0
- 在噪声信号为平稳随机序列的前提下,最小二乘指标可以看成是对最小方差指标的一种近似逼近:
J = ∑ i = 1 N [ y ( n + i ) − y ^ ( n + i ) ] 2 → J = E [ y ( n + i ) − y ^ ( n + i ) ] 2 J=\sum^N_{i=1}\left[ y(n+i) - \hat y(n+i) \right]^2 \rightarrow J=E\left[ y(n+i) - \hat y(n+i) \right]^2 J=i=1∑N[y(n+i)−y^(n+i)]2→J=E[y(n+i)−y^(n+i)]2
六、带“初始估计”的最小二乘
-
指标: J = ∑ i = 1 N [ y ( n + i ) − y ^ ( n + i ) ] 2 + ( θ − θ 0 ) T R ( θ − θ 0 ) ,其中 θ 0 是对 θ 的初步猜测; R > 0 J=\sum^N_{i=1} \left[ y(n+i) -\hat y(n+i) \right]^2+(\theta - \theta_0)^T R (\theta - \theta_0),其中\theta_0是对\theta的初步猜测;R>0 J=i=1∑N[y(n+i)−y^(n+i)]2+(θ−θ0)TR(θ−θ0),其中θ0是对θ的初步猜测;R>0
-
计算公式:
θ ( N ) = [ Φ T ( N ) Φ ( N ) + R ] − 1 ( Φ T ( N ) Y ( N ) + R θ 0 ) \theta(N) = \left[ \Phi^T(N)\Phi(N) + R \right]^{-1} (\Phi^T(N)Y(N) + R\theta_0) θ(N)=[ΦT(N)Φ(N)+R]−1(ΦT(N)Y(N)+Rθ0)
-
问题:
-
假设被控对象是一个线性定常系统,什么情况下能通过系统辨识获得系统的真实参数?
-
辨识的精度与加到系统中的噪声干扰有何联系?如何从理论上说明这一点?
-
实际数据不免受到噪声的影响,如何对付这些噪声对输入输出数据的影响?
-
如何针对不稳定的被控对象展开参数辨识?
尽量保证在稳定点附近辨识。
-
04-递推最小二乘参数估计算法(最小二乘类2)
一、问题的提出
- 基本思想:
新的估计值 θ ^ ( k ) = 老的估计值 θ ^ ( k − 1 ) + 修正项 新的估计值 \hat \theta(k) = 老的估计值 \hat \theta(k-1) + 修正项 新的估计值θ^(k)=老的估计值θ^(k−1)+修正项
- 建立数学模型:
x
(
k
)
=
a
+
e
(
k
)
,
x
(
k
)
为第
k
次测量,
a
表示真实距离,
e
(
k
)
为高斯白噪声
x(k) = a + e(k),x(k)为第k次测量,a表示真实距离,e(k)为高斯白噪声
x(k)=a+e(k),x(k)为第k次测量,a表示真实距离,e(k)为高斯白噪声
- 指标: J = ∑ k = 1 N [ x ( k ) − x ^ ( k ) ] 2 J=\sum^N_{k=1} \left[ x(k) - \hat x(k) \right]^2 J=k=1∑N[x(k)−x^(k)]2
- 批处理求解: a ^ ( k ) = ∑ k − 1 N [ x ( k ) ] N \hat a(k) = \frac{\sum^N_{k-1}[x(k)]}{N} a^(k)=N∑k−1N[x(k)]
- 递推求解: a ^ ( k ) = a ^ ( k − 1 ) + 1 k [ x ( k ) − a ^ ( k − 1 ) ] \hat a(k) = \hat a(k-1) + \frac{1}{k} \left[ x(k) - \hat a(k-1) \right] a^(k)=a^(k−1)+k1[x(k)−a^(k−1)]
- 对初值不敏感
二、递推算法结果
K ( N + 1 ) = P ( N ) φ ( N + 1 ) [ 1 + φ T ( N + 1 ) P ( N ) φ ( N + 1 ) ] − 1 θ ^ ( N + 1 ) = θ ^ ( N ) + K ( N + 1 ) [ y ( n + N + 1 ) − φ T ( N + 1 ) θ ^ ( N ) ] P ( N + 1 ) = P ( N ) − K ( N + 1 ) K T ( N + 1 ) [ 1 + φ T ( N + 1 ) P ( N ) φ ( N + 1 ) ] − 1 \begin{array}{l} K(N+1) = P(N) \varphi(N+1) \left[ 1+ \varphi^T(N+1) P(N) \varphi(N+1) \right]^{-1} \\ \hat\theta(N+1) = \hat\theta(N) +K(N+1) \left[ y(n+N+1)- \varphi^T(N+1)\hat\theta(N) \right] \\ P(N+1) = P(N) - K(N+1) K^T(N+1) \left[ 1+ \varphi^T(N+1) P(N) \varphi(N+1) \right]^{-1} \end{array} K(N+1)=P(N)φ(N+1)[1+φT(N+1)P(N)φ(N+1)]−1θ^(N+1)=θ^(N)+K(N+1)[y(n+N+1)−φT(N+1)θ^(N)]P(N+1)=P(N)−K(N+1)KT(N+1)[1+φT(N+1)P(N)φ(N+1)]−1
{ θ ^ ( N + 1 ) : 2 n × 1 维向量 φ T ( N + 1 ) = [ − y ( n + N ) , − y ( n + N − 1 ) , … , − y ( N + 1 ) , u ( n + N ) , u ( n + N − 1 ) , … , u ( N + 1 ) ] : 1 × 2 n 维向量 P ( N ) : 2 n × 2 n 维矩阵 \left\{ \begin{array}{l} \hat\theta(N+1):2n \times 1维向量 \\ \varphi^T(N+1) = \left[ -y(n+N),-y(n+N-1), \ldots, -y(N+1),u(n+N),u(n+N-1),\ldots,u(N+1) \right]:1 \times 2n维向量 \\ P(N):2n \times 2n维矩阵 \end{array} \right. ⎩ ⎨ ⎧θ^(N+1):2n×1维向量φT(N+1)=[−y(n+N),−y(n+N−1),…,−y(N+1),u(n+N),u(n+N−1),…,u(N+1)]:1×2n维向量P(N):2n×2n维矩阵
三、递推算法计算流程
θ ^ ( 0 ) , P ( 0 ) ⟶ y ( 1 ) , u ( 1 ) K ( 1 ) , θ ^ ( 1 ) , P ( 1 ) ⟶ y ( 2 ) , u ( 2 ) K ( 2 ) , θ ^ ( 2 ) , P ( 2 ) ⟶ y ( 3 ) , u ( 3 ) ⋯ ⟶ y ( n ) , u ( n ) K ( n ) , θ ^ ( n ) , P ( n ) \hat\theta(0),P(0) \stackrel{y(1),u(1)}{\longrightarrow} K(1),\hat\theta(1),P(1) \stackrel{y(2),u(2)}{\longrightarrow} K(2),\hat\theta(2),P(2) \stackrel{y(3),u(3)}{\longrightarrow} \cdots \stackrel{y(n),u(n)}{\longrightarrow} K(n),\hat\theta(n),P(n) θ^(0),P(0)⟶y(1),u(1)K(1),θ^(1),P(1)⟶y(2),u(2)K(2),θ^(2),P(2)⟶y(3),u(3)⋯⟶y(n),u(n)K(n),θ^(n),P(n)
四、初值的选取方法
- 用最小二乘的封闭形式计算: P 0 ( N 0 ) , θ ^ 0 ( N 0 ) P_0(N_0),\hat\theta_0(N_0) P0(N0),θ^0(N0)
- 认为给定初值: P 0 = ε 2 I , ε 足够大 ; θ ^ 0 = 0 P_0=\varepsilon^2I,\varepsilon足够大;\hat\theta_0=0 P0=ε2I,ε足够大;θ^0=0
五、递推算法的仿真实验
-
例1:稳定被控对象
-
系统函数:
G ( z ) = 1.0 z + 0.5 z 2 − 1.5 z + 0.7 y ( k ) − 1.5 y ( k − 1 ) + 0.7 y ( k − 2 ) = 1.0 u ( k − 1 ) + 0.5 u ( k − 2 ) G(z)=\frac{1.0z+0.5}{z^2-1.5z+0.7} \\ y(k) -1.5y(k-1) +0.7y(k-2) =1.0u(k-1) +0.5u(k-2) G(z)=z2−1.5z+0.71.0z+0.5y(k)−1.5y(k−1)+0.7y(k−2)=1.0u(k−1)+0.5u(k−2) -
初值选择:
P ( 0 ) = 1 0 10 I ; θ ^ ( 0 ) = 0 ; 噪声方差 σ = 0.01 P(0) = 10^{10}I;\hat \theta(0) = 0;噪声方差\sigma=0.01 P(0)=1010I;θ^(0)=0;噪声方差σ=0.01 -
MATLAB程序:C04P26_example1.m
-
向量 φ ( N + 1 ) \varphi(N+1) φ(N+1) :
φ ( 1 ) = [ − y ( 2 ) − y ( 1 ) u ( 2 ) u ( 1 ) ] \varphi(1) = [\begin{matrix}-y(2) & -y(1) & u(2) & u(1) \end{matrix}] φ(1)=[−y(2)−y(1)u(2)u(1)] -
问题:前几个值和最后几个值怎么办(原因:由于出现 y ( n + N + 1 ) y(n+N+1) y(n+N+1) 项)
-
-
-
例2:不稳定被控对象
- 系统函数:
G ( z ) = 0.45 z + 0.23 z 2 − 1.83 z + 0.82 y ( k ) − 1.83 y ( k − 1 ) + 0.82 y ( k − 2 ) = 0.45 u ( k − 1 ) + 0.23 u ( k − 2 ) G(z)=\frac{0.45z+0.23}{z^2-1.83z+0.82} \\ y(k) -1.83y(k-1) +0.82y(k-2) =0.45u(k-1) +0.23u(k-2) G(z)=z2−1.83z+0.820.45z+0.23y(k)−1.83y(k−1)+0.82y(k−2)=0.45u(k−1)+0.23u(k−2)
- 系统函数:
-
问题:
- 为什么进一步增大迭代次数时计算发散了?
- (猜测答案:系统本身发散了)
- 对于不稳定的被控对象进行参数辨识时,应该采取什么措施?
- (猜测答案:采用适当的控制策略来稳定被控对象)
- 为什么进一步增大迭代次数时计算发散了?
六、加权最小二乘递推算法
K ( N ) = P ( N − 1 ) φ ( N ) [ λ − 1 ( N ) + φ T ( N ) P ( N − 1 ) φ ( N ) ] − 1 Θ ^ ( N ) = Θ ^ ( N − 1 ) + K ( N ) [ y ( n + N ) − φ T ( N ) Θ ^ ( N − 1 ) ] P ( N ) = P ( N 1 ) − K ( N ) φ T ( N ) P ( N − 1 ) \begin{array}{l} K(N)= P(N-1)\varphi(N) \left[ \lambda^{-1}(N)+ \varphi^T(N)P(N-1)\varphi(N) \right]^{-1} \\ \hat\Theta(N)= \hat\Theta(N-1)+ K(N) \left[ y(n+N)- \varphi^T(N) \hat\Theta(N-1) \right] \\ P(N)= P(N_1)- K(N)\varphi^T(N)P(N-1) \end{array} K(N)=P(N−1)φ(N)[λ−1(N)+φT(N)P(N−1)φ(N)]−1Θ^(N)=Θ^(N−1)+K(N)[y(n+N)−φT(N)Θ^(N−1)]P(N)=P(N1)−K(N)φT(N)P(N−1)
七、带初值估计的最小二乘递推算法
θ ^ ( N + 1 ) = θ ^ ( N ) − P ( N + 1 ) φ ( N + 1 ) [ y ( n + N + 1 ) − φ T ( N + 1 ) θ ^ ( N ) ] P ( N + 1 ) = P ( N ) − P ( N ) φ ( N + 1 ) φ T ( N + 1 ) P ( N ) 1 + φ T ( N + 1 ) P ( N ) φ ( N + 1 ) θ ( 0 ) = θ 0 , P ( 0 ) = R − 1 \begin{align} \hat\theta(N+1) &= \hat\theta(N)- P(N+1)\varphi(N+1) \left[ y(n+N+1)- \varphi^T(N+1)\hat\theta(N) \right] \\ P(N+1) &= P(N)- \frac{P(N)\varphi(N+1)\varphi^T(N+1)P(N)}{1+ \varphi^T(N+1)P(N)\varphi(N+1)} \\ \theta(0) &= \theta_0,P(0)= R^{-1} \end{align} θ^(N+1)P(N+1)θ(0)=θ^(N)−P(N+1)φ(N+1)[y(n+N+1)−φT(N+1)θ^(N)]=P(N)−1+φT(N+1)P(N)φ(N+1)P(N)φ(N+1)φT(N+1)P(N)=θ0,P(0)=R−1
八、递推算法和卡尔曼滤波之间的关系
- 辨识问题转化为滤波问题:
θ ( k + 1 ) = A θ ( k ) z ( k ) = φ T ( k ) θ ( k ) + e ( k ) \theta(k+1)= A\theta(k) \\ z(k)= \varphi^T(k)\theta(k)+e(k) θ(k+1)=Aθ(k)z(k)=φT(k)θ(k)+e(k)
- 滤波算法:
θ ^ ( k ) = θ ^ ( k − 1 ) + K ( k ) [ z ( k ) − φ T ( k ) θ ^ ( k − 1 ) ] K ( k ) = P − ( k ) φ ( k ) [ φ T ( k ) P − ( k ) φ ( k ) + σ n 2 ] − 1 P − ( k ) = A P ( k − 1 ) A + Q c P ( k ) = [ I − K ( k ) φ T ( k ) ] P − ( k ) θ ^ ( 0 ) = 0 , P ( 0 ) = P 0 \begin{array}{l} \hat\theta(k)= \hat\theta(k-1)+ K(k) \left[ z(k)- \varphi^T(k)\hat\theta(k-1) \right] \\ K(k)= P^-(k) \varphi(k) \left[ \varphi^T(k)P^-(k)\varphi(k)+ \sigma^2_n \right]^{-1} \\ P^-(k)= AP(k-1)A+ Qc \\ P(k)= \left[ I- K(k)\varphi^T(k) \right] P^-(k) \\ \hat\theta(0)=0,P(0)=P_0 \end{array} θ^(k)=θ^(k−1)+K(k)[z(k)−φT(k)θ^(k−1)]K(k)=P−(k)φ(k)[φT(k)P−(k)φ(k)+σn2]−1P−(k)=AP(k−1)A+QcP(k)=[I−K(k)φT(k)]P−(k)θ^(0)=0,P(0)=P0
附录1、递推算法的推导过程
05-渐消记忆法与限定记忆法最小二乘(最小二乘类3)
一、数据饱和现象
- 直观上,随着采集到的数据越来越多,递推最小二乘法应该给出更精确的参数估计值;但实际上,随着迭代次数增加,“估计值”与“真实值”的偏差往往会越来越远。
二、数据饱和现象的原因
- 随着递推次数的增加,旧的数据会累积的越来越多,造成结果是把新的数据信息淹没,最终导致参数估计无法进行,算法失效。
三、解决的方案
- 渐消记忆法:增加新数据在计算中的权重,减小老数据在计算中的权重;
- 限定记忆法:去掉一部分老数据。
四、渐消记忆算法流程
K ( N + 1 ) = P ( N ) φ ( N + 1 ) [ λ + φ T ( N + 1 ) P ( N ) φ ( N + 1 ) ] − 1 Θ ^ ( N + 1 ) = Θ ^ ( N ) + K ( N + 1 ) [ y ( n + N + 1 ) − φ T ( N + 1 ) Θ ^ ( N ) ] P ( N + 1 ) = 1 λ { P ( N ) − K ( N + 1 ) K T ( N + 1 ) [ λ + φ T ( N + 1 ) P ( N ) φ ( N + 1 ) ] } 其中, λ ∈ ( 0 , 1 ] \begin{array}{l} K(N+1)= P(N)\varphi(N+1) \left[ \lambda+ \varphi^T(N+1)P(N)\varphi(N+1) \right]^{-1} \\ \hat\Theta(N+1)= \hat\Theta(N)+ K(N+1) \left[ y(n+N+1)- \varphi^T(N+1) \hat\Theta(N) \right] \\ P(N+1)= \frac{1}{\lambda} \left\{ P(N)- K(N+1)K^T(N+1) \left[ \lambda+ \varphi^T(N+1)P(N)\varphi(N+1) \right] \right\} \\ 其中,\lambda \in (0,1] \end{array} K(N+1)=P(N)φ(N+1)[λ+φT(N+1)P(N)φ(N+1)]−1Θ^(N+1)=Θ^(N)+K(N+1)[y(n+N+1)−φT(N+1)Θ^(N)]P(N+1)=λ1{P(N)−K(N+1)KT(N+1)[λ+φT(N+1)P(N)φ(N+1)]}其中,λ∈(0,1]
五、渐消记忆算法推导过程
六、仿真分析
- 仿真结论:
- 渐消记忆法在一定程度上克服了“数据饱和问题”,该算法对于“慢时变系统的辨识问题”比一般递推算法更有效;
- 遗忘因子对辨识精度有显著影响,需要适当选取。
- 问题:
- 能否从动态系统的角度考虑为什么遗忘因子会导致很大的震动?
七、限定记忆算法流程
P ( k + 1 ) = Q ( k ) − Q ( k ) φ ( k + 1 ) [ Q ( k ) φ ( k + 1 ) ] T [ 1 + φ T ( k + 1 ) Q ( k ) φ ( k + 1 ) ] − 1 Q ( k + 1 ) = P ( k + 1 ) + P ( k + 1 ) φ ( k + 1 − N ) [ P ( k + 1 ) φ ( k + 1 − N ) ] T [ 1 − φ T ( k + 1 − N ) P ( k + 1 ) φ ( k + 1 − N ) ] − 1 θ ^ ( k + 1 ) = θ ^ ( k ) + Q ( k + 1 ) [ φ ( k + 1 ) Δ y ( n + k + 1 ) − φ ( k + 1 − N ) Δ y ( n + k + 1 − N ) ] \begin{array}{l} P(k+1)= Q(k)- Q(k)\varphi(k+1) \left[ Q(k)\varphi(k+1) \right]^T \left[ 1+ \varphi^T(k+1)Q(k)\varphi(k+1) \right]^{-1} \\ Q(k+1)= P(k+1)+ P(k+1)\varphi(k+1-N) \left[ P(k+1)\varphi(k+1-N) \right]^T \left[ 1- \varphi^T(k+1-N)P(k+1)\varphi(k+1-N) \right]^{-1} \\ \hat\theta(k+1)= \hat\theta(k)+ Q(k+1)\left[ \varphi(k+1)\Delta y(n+k+1)- \varphi(k+1-N)\Delta y(n+k+1-N) \right] \end{array} P(k+1)=Q(k)−Q(k)φ(k+1)[Q(k)φ(k+1)]T[1+φT(k+1)Q(k)φ(k+1)]−1Q(k+1)=P(k+1)+P(k+1)φ(k+1−N)[P(k+1)φ(k+1−N)]T[1−φT(k+1−N)P(k+1)φ(k+1−N)]−1θ^(k+1)=θ^(k)+Q(k+1)[φ(k+1)Δy(n+k+1)−φ(k+1−N)Δy(n+k+1−N)]
其中, Δ y ( n + k + 1 ) = y ( n + k + 1 ) − φ T ( k + 1 ) θ ^ ( K ) Δ ( n + k + 1 − N ) = y ( n + k + 1 − N ) − φ T ( k + 1 − N ) θ ^ ( k ) \begin{array}{l} 其中,&\Delta y(n+k+1) = y(n+k+1)- \varphi^T(k+1)\hat\theta(K) \\ &\Delta(n+k+1-N) = y(n+k+1-N)- \varphi^T(k+1-N)\hat\theta(k) \end{array} 其中,Δy(n+k+1)=y(n+k+1)−φT(k+1)θ^(K)Δ(n+k+1−N)=y(n+k+1−N)−φT(k+1−N)θ^(k)
八、限定记忆算法推导过程
九、限定记忆最小二乘算法程序流程
- 先用递推算法根据前 n + N n+N n+N 个数据估计 θ ^ ( N ) \hat\theta(N) θ^(N):
θ ^ ( 0 ) , Q ( 0 ) → y ( 1 ) , u ( 1 ) K ( 0 ) , θ ^ ( 1 ) , P ( 1 ) → y ( 2 ) , u ( 2 ) K ( 1 ) , θ ^ ( 2 ) , P ( 2 ) → y ( 3 ) , u ( 3 ) ⋯ → y ( n ) , u ( n ) K ( n − 1 ) , θ ^ ( n ) , P ( n ) \hat\theta(0),Q(0) \xrightarrow{y(1),u(1)} K(0),\hat\theta(1),P(1) \xrightarrow{y(2),u(2)} K(1),\hat\theta(2),P(2) \xrightarrow{y(3),u(3)} \cdots \xrightarrow{y(n),u(n)} K(n-1),\hat\theta(n),P(n) θ^(0),Q(0)y(1),u(1)K(0),θ^(1),P(1)y(2),u(2)K(1),θ^(2),P(2)y(3),u(3)⋯y(n),u(n)K(n−1),θ^(n),P(n)
- 将 Q ( N ) = P ( N ) Q(N)= P(N) Q(N)=P(N) 作为限定记忆算法的初值,开始调用限定记忆算法:
→ y ( n + N + 1 ) , u ( n + N + 1 ) Δ y ( n + k + 1 ) , Δ ( n + k + 1 − N ) ⟶ P ( k + 1 ) , Q ( k + 1 ) , θ ^ ( k + 1 ) \xrightarrow{y(n+N+1),u(n+N+1)} \Delta y(n+k+1),\Delta(n+k+1-N) {\longrightarrow} P(k+1),Q(k+1),\hat\theta(k+1) y(n+N+1),u(n+N+1)Δy(n+k+1),Δ(n+k+1−N)⟶P(k+1),Q(k+1),θ^(k+1)
十、仿真
-
仿真结论:限定记忆法可以有效改善数据饱和现象,可在很大程度上改善递推最小二乘算法的性能。
-
问题:如何确定 N N N?
附录1、数据饱和现象的原因
附录2、渐消记忆法证明
附录3、限定记忆法证明
06-最小二乘解的几何意义及其统计特性(最小二乘类4)
一、引例
-
正交投影的定义:设 y y y 是具有前二阶矩的 n n n 维随机向量, X X X 是适当维数的随机矩阵。如果存在一个与 y y y 同维的随机向量 y ∗ y^* y∗,并且具备以下三个性质:
- y ∗ y^* y∗ 可以由 X X X 线性表示,即: y ∗ = a + X b y^*=a+ Xb y∗=a+Xb
- 无偏性,即: E [ y ∗ ] = E [ y ] E[y^*]=E[y] E[y∗]=E[y]
-
y
−
y
∗
y-y^*
y−y∗ 与
X
X
X 相互正交,即:
E
[
(
y
−
y
∗
)
T
X
]
=
0
E[(y-y^*)^TX]=0
E[(y−y∗)TX]=0
则称 y ∗ y^* y∗ 是 y y y 在空间 X X X 上的正交投影。
二、最小二乘估计的几何解释
- 如果噪声向量 E ( N ) E(N) E(N) 的均值为零且与 Φ ( N ) \Phi(N) Φ(N) 统计独立,则输出估计向量 Y ^ ( N ) \hat Y(N) Y^(N) 是输出测量向量 Y ( N ) Y(N) Y(N) 在由 α ( 1 ) , α ( 2 ) , … , α ( 2 n ) \alpha(1),\alpha(2),\ldots,\alpha(2n) α(1),α(2),…,α(2n) 张成的空间上的正交投影,或者说输出残差向量 ξ ( N ) \xi(N) ξ(N) 垂直于由 α ( 1 ) , α ( 2 ) , … , α ( 2 n ) \alpha(1),\alpha(2),\ldots,\alpha(2n) α(1),α(2),…,α(2n) 张成的空间。
三、最小二乘参数估计值的统计性质
-
无偏性
-
物理意义:估计值是否围绕真值波动。
-
定理:对于如下模型
Y ( N ) = Φ ( N ) θ 0 + E ( N ) Y(N)= \Phi(N)\theta_0+ E(N) Y(N)=Φ(N)θ0+E(N)
如果噪声向量 E ( N ) E(N) E(N) 的均值为零,并且 E ( N ) E(N) E(N) 和 Φ ( N ) \Phi(N) Φ(N) 是统计独立的,则最小二乘估计值 θ ^ ( N ) \hat\theta(N) θ^(N)=$ 是无偏估计量,即
E [ θ ^ ] = θ 0 E[\hat\theta]= \theta_0 E[θ^]=θ0
其中, θ 0 \theta_0 θ0 表示真实参数。 -
无偏性证明
-
问题:什么情况下 E ( N ) E(N) E(N) 和 Φ ( N ) \Phi(N) Φ(N) 是统计独立的?
- 静态线性系统的回归分析中;
- 动态系统的参数辨识中,一般情况下 E ( N ) E(N) E(N) 和 Φ ( N ) \Phi(N) Φ(N) 是相关的,最小二乘估计值 θ ^ ( N ) \hat\theta(N) θ^(N) 是有偏估计;对于高斯白噪声序列,最小二乘估计具有无偏性。
-
-
参数估计偏差的协方差性质
-
定理:对于如下模型
Y ( N ) = Φ ( N ) θ 0 + E ( N ) Y(N)= \Phi(N)\theta_0+ E(N) Y(N)=Φ(N)θ0+E(N)
如果噪声向量 E ( N ) E(N) E(N) 的均值为零,协方差矩阵为 σ 2 I \sigma^2I σ2I ,并且 E ( N ) E(N) E(N) 和 Φ ( N ) \Phi(N) Φ(N) 是统计独立的,则最小二乘参数估计偏差的协方差阵为
C o v { θ 0 − θ ^ ( N ) } = σ 2 E { ( Φ T ( N ) Φ ( n ) ) − 1 } Cov\{ \theta_0- \hat\theta(N) \}= \sigma^2 E\{ (\Phi^T(N)\Phi(n))^{-1} \} Cov{θ0−θ^(N)}=σ2E{(ΦT(N)Φ(n))−1}
其中, θ 0 \theta_0 θ0 表示真实参数。 -
在以上条件下,如果方差 σ 2 \sigma^2 σ2 未知,则下式给出方差的一个无偏估计:
S 2 = 1 N − 2 n ( Y ( N ) − Φ ( N ) θ ^ ) T ( Y ( N ) − Φ ( n ) θ ^ ) S^2= \frac{1}{N-2n}( Y(N)- \Phi(N)\hat\theta )^T( Y(N)- \Phi(n)\hat\theta ) S2=N−2n1(Y(N)−Φ(N)θ^)T(Y(N)−Φ(n)θ^)
其中, n n n 为系统的阶次。
-
-
一致性
-
物理意义:估计值将以概率 1 1 1 收敛于真值。当 $ N N N 很大时,工程上的计算值是可以接受的。
-
定理:对于如下模型
y ( k ) = − a 1 y ( k − 1 ) − a 2 y ( k − 2 ) − ⋯ − a n a y ( k − n a ) + b 1 u ( k − 1 ) + b 2 u ( k − 2 ) + ⋯ + b n b u ( k − n b ) + e ( k ) y(k)= -a_1y(k-1)- a_2y(k-2)- \cdots- a_{na}y(k-na)+ b_1u(k-1)+ b_2u(k-2)+ \cdots+ b_{nb}u(k-nb)+ e(k) y(k)=−a1y(k−1)−a2y(k−2)−⋯−anay(k−na)+b1u(k−1)+b2u(k−2)+⋯+bnbu(k−nb)+e(k)
当满足以下四个条件- 条件1,如果 e ( k ) e(k) e(k) 是白噪声序列(四阶矩存在);
- 条件2,待辨识对象的特征值在单位圆内;
- 条件3,输入序列 u ( k ) u(k) u(k) 与 e ( k ) e(k) e(k) 噪声序列相互独立;
- 条件4,输入信号必须是 n b nb nb 阶持续激励信号;
则最小二乘参数估计是一致收敛的,即
lim N → ∞ θ ^ L S = θ 0 , W . P . 1 \lim_{N \rightarrow \infin} \hat\theta_{LS}= \theta_0,\ \ W.P.1 N→∞limθ^LS=θ0, W.P.1
-
四、非一致性的举例说明
- 考虑如下模型
y ( k ) = − a y ( k − 1 ) + b u ( k − 1 ) + e ( k ) y(k)= -ay(k-1)+ bu(k-1)+ e(k) y(k)=−ay(k−1)+bu(k−1)+e(k)
其中,
∣
a
∣
<
1
|{a}| < 1
∣a∣<1 ,
e
(
k
)
{e(k)}
e(k) 和
u
(
k
)
{u(k)}
u(k) 是统计独立的,
e
(
k
)
{e(k)}
e(k) 是均值为零的各台遍历平稳噪声序列,假设
R
e
(
l
)
=
0
,
∀
l
≥
2
R_e(l)=0,\forall l \geq2
Re(l)=0,∀l≥2。
θ
^
L
S
→
N
→
∞
,
W
.
P
.
1
[
a
0
−
R
u
(
0
)
R
e
(
1
)
Δ
b
0
−
R
u
y
(
0
)
R
e
(
1
)
Δ
]
\hat\theta_{LS} \xrightarrow{N \rightarrow \infin ,\ W.P.1} \left[ \begin{array}{l} a_0- \frac{R_u(0)R_e(1)}{\Delta} \\ b_0- \frac{R_uy(0)R_e(1)}{\Delta} \\ \end{array} \right]
θ^LSN→∞, W.P.1[a0−ΔRu(0)Re(1)b0−ΔRuy(0)Re(1)]
附录1、关于噪声方差估计的证明
附录2、最小二乘几何解释的证明过程
07-最小二乘参数估计的缺陷以及改进算法(最小二乘类5)
一、最小二乘算法的缺陷
- 噪声序列一般是相关的,所以“一致性”中的假设“噪声项不相干”一般并不成立。
二、增广矩阵最小二乘方法
-
Figure(ARMAX模型):
-
矩阵形式系统模型:
A ( z − 1 ) y ( k ) = B ( z − 1 ) u ( k ) + C ( z − 1 ) ε ( k ) A(z^{-1})y(k) = B(z^{-1})u(k)+ C(z^{-1})\varepsilon(k) A(z−1)y(k)=B(z−1)u(k)+C(z−1)ε(k)
A ( z − 1 ) = 1 + a 1 z − 1 + ⋯ + a n z − n B ( z − 1 ) = b 1 z − 1 + ⋯ + b n z − n C ( z − 1 ) = 1 + c 1 z − 1 + ⋯ + c n z − n \begin{array}{l} A(z^{-1}) = 1+ a_1z^{-1}+ \cdots+ a_nz^{-n} \\ B(z^{-1}) = b_1z^{-1}+ \cdots+ b_nz^{-n} \\ C(z^{-1}) = 1+ c_1z^{-1}+ \cdots+ c_nz^{-n} \end{array} A(z−1)=1+a1z−1+⋯+anz−nB(z−1)=b1z−1+⋯+bnz−nC(z−1)=1+c1z−1+⋯+cnz−n
- 分量形式系统模型:
y ( k ) = − a 1 y ( k − 1 ) − a 2 y ( k − 2 ) − ⋯ − a n y ( k − n ) + b 1 u ( k − 1 ) + b 2 u ( k − 2 ) + ⋯ + b n u ( k − n ) + ε ( k ) + c 1 ε ( k − 1 ) + ⋯ + c n ε ( k − n ) \begin{align} y(k)= &- a_1y(k-1)- a_2y(k-2)- \cdots- a_ny(k-n) \\ &+b_1u(k-1)+ b_2u(k-2)+ \cdots+ b_nu(k-n) \\ &+\varepsilon(k) +c_1\varepsilon(k-1)+ \cdots+ c_n\varepsilon(k-n) \end{align} y(k)=−a1y(k−1)−a2y(k−2)−⋯−any(k−n)+b1u(k−1)+b2u(k−2)+⋯+bnu(k−n)+ε(k)+c1ε(k−1)+⋯+cnε(k−n)
- 向量形式系统模型:
y ( k ) = φ e ( k ) T θ e + ε ( k ) φ e ( k ) T = [ − y ( k − 1 ) , ⋯ , − y ( k − n ) , u ( k − 1 ) , ⋯ , u ( k − n ) , ε ( k − 1 ) , ⋯ , ε ( k − n ) ] θ e T = [ a 1 , ⋯ , a n , b 1 , ⋯ , n n , c 1 , ⋯ , c n ] ε ( k + 1 ) = y ( k + 1 ) − φ e ( k + 1 ) T θ ^ e ( k ) ε ^ ( 1 ) = ε ^ ( 2 ) = ⋯ = ε ^ ( n ) = 0 y(k)= \varphi_e(k)^T\theta_e+ \varepsilon(k) \\ \varphi_e(k)^T= \left[ -y(k-1), \cdots, -y(k-n), u(k-1), \cdots, u(k-n), \varepsilon(k-1), \cdots, \varepsilon(k-n) \right] \\ \theta^T_e= \left[ a_1, \cdots, a_n,b_1, \cdots, n_n,c_1, \cdots, c_n \right] \\ \varepsilon(k+1)= y(k+1)- \varphi_e(k+1)^T \hat\theta_e(k) \\ \hat\varepsilon(1)= \hat\varepsilon(2)= \cdots = \hat\varepsilon(n)= 0 y(k)=φe(k)Tθe+ε(k)φe(k)T=[−y(k−1),⋯,−y(k−n),u(k−1),⋯,u(k−n),ε(k−1),⋯,ε(k−n)]θeT=[a1,⋯,an,b1,⋯,nn,c1,⋯,cn]ε(k+1)=y(k+1)−φe(k+1)Tθ^e(k)ε^(1)=ε^(2)=⋯=ε^(n)=0
-
例1:
-
系统方程: y ( k ) − 1.5 y ( k − 1 ) + 0.7 y ( k − 2 ) = u ( k − 1 ) + 0.5 u ( k − 2 ) + e ( k ) + 0.2 e ( k − 1 ) y(k)-1.5y(k-1)+0.7y(k-2)=u(k-1)+0.5u(k-2)+e(k)+0.2e(k-1) y(k)−1.5y(k−1)+0.7y(k−2)=u(k−1)+0.5u(k−2)+e(k)+0.2e(k−1)
-
MATLAB程序:C07P13_example1.m
-
先估计噪声:
ε ^ ( 1 ) = ε ^ ( 2 ) = ⋯ = ε ^ ( n ) = 0 f o r ( i = n : e n d ) : ε ^ ( i + 1 ) = y ( i + 1 ) − φ e ( k + 1 ) T θ ^ e ( k ) 对 n = 2 的情况, ε ^ ( 1 ) = ε ^ ( 2 ) = 0 , ε ^ ( 3 ) 之后不为 0 φ e ( i ) = [ − y ( i − 1 ) , − y ( i − 2 ) , u ( i − 1 ) , u ( i − 2 ) , ε ( i − 1 ) , ε ( i − 2 ) ] \hat \varepsilon(1) = \hat \varepsilon(2) = \cdots = \hat \varepsilon(n) = 0 \\ for_{(i=n:end)}:\hat \varepsilon(i+1) = y(i+1)-\varphi_e(k+1)^T\hat\theta_e(k) \\ 对n=2的情况,\hat \varepsilon(1)=\hat \varepsilon(2)=0,\hat \varepsilon(3)之后不为0 \\ \varphi_e(i) = [-y(i-1),-y(i-2),u(i-1),u(i-2),\varepsilon(i-1),\varepsilon(i-2)] ε^(1)=ε^(2)=⋯=ε^(n)=0for(i=n:end):ε^(i+1)=y(i+1)−φe(k+1)Tθ^e(k)对n=2的情况,ε^(1)=ε^(2)=0,ε^(3)之后不为0φe(i)=[−y(i−1),−y(i−2),u(i−1),u(i−2),ε(i−1),ε(i−2)]
再计算递推最小二乘的 φ \varphi φ 向量:
φ T ( i + 1 ) = [ − y ( n + i ) , − y ( n + i − 1 ) , … , − y ( i + 1 ) , … u ( n + i ) , u ( n + i − 1 ) , … , u ( i + 1 ) , … ε ( n + i ) , ε ( n + i − 1 ) , … , ε ( i + 1 ) ] 对 n = 2 的情况, f o r ( i = 0 : e n d ) : φ T ( i + 1 ) = [ − y ( i + 2 ) , − y ( i + 1 ) , u ( i + 2 ) , u ( i + 1 ) , ε ( i + 2 ) , ε ( i + 1 ) ] \varphi^T(i+1) = [ -y(n+i),-y(n+i-1), \ldots, -y(i+1),\ldots \\ u(n+i),u(n+i-1),\ldots,u(i+1),\ldots \\ \varepsilon(n+i),\varepsilon(n+i-1),\ldots,\varepsilon(i+1) ] \\ 对n=2的情况,for_{(i=0:end)}:\varphi^T(i+1)=[-y(i+2),-y(i+1),u(i+2),u(i+1),\varepsilon(i+2),\varepsilon(i+1)] φT(i+1)=[−y(n+i),−y(n+i−1),…,−y(i+1),…u(n+i),u(n+i−1),…,u(i+1),…ε(n+i),ε(n+i−1),…,ε(i+1)]对n=2的情况,for(i=0:end):φT(i+1)=[−y(i+2),−y(i+1),u(i+2),u(i+1),ε(i+2),ε(i+1)]
最后进行递推最小二乘:
f o r ( i = 0 : e n d − n − 1 ) : K ( i + 1 ) = P ( i ) φ ( i + 1 ) [ 1 + φ T ( i + 1 ) P ( N ) φ ( i + 1 ) ] − 1 θ ^ ( i + 1 ) = θ ^ ( N ) + K ( i + 1 ) [ y ( n + i + 1 ) − φ T ( i + 1 ) θ ^ ( i ) ] P ( i + 1 ) = P ( i ) − K ( i + 1 ) K T ( i + 1 ) [ 1 + φ T ( i + 1 ) P ( i ) φ ( i + 1 ) ] − 1 \begin{array}{l} for_{(i=0:end-n-1)}: \\ K(i+1) = P(i) \varphi(i+1) \left[ 1+ \varphi^T(i+1) P(N) \varphi(i+1) \right]^{-1} \\ \hat\theta(i+1) = \hat\theta(N) +K(i+1) \left[ y(n+i+1)- \varphi^T(i+1)\hat\theta(i) \right] \\ P(i+1) = P(i) - K(i+1) K^T(i+1) \left[ 1+ \varphi^T(i+1) P(i) \varphi(i+1) \right]^{-1} \end{array} for(i=0:end−n−1):K(i+1)=P(i)φ(i+1)[1+φT(i+1)P(N)φ(i+1)]−1θ^(i+1)=θ^(N)+K(i+1)[y(n+i+1)−φT(i+1)θ^(i)]P(i+1)=P(i)−K(i+1)KT(i+1)[1+φT(i+1)P(i)φ(i+1)]−1 -
问题:
- 一个向前推,一个向后推,差着步数,怎么解决?
- 噪声模型只有一阶,与输入和模型阶数不一致怎么办?
-
-
注释:相比普通最小二乘法,同时考虑了噪声的模型,阶次扩大了,因此称之为增广矩阵法。
三、广义最小二乘方法的思想以及推导
-
Figure:
-
矩阵形式系统模型:
y ( k ) = B ( z − 1 ) A ( z − 1 ) u ( k ) + G ( − 1 ) F ( z − 1 ) ε ( K ) A ( z − 1 ) y ( k ) = B ( z − 1 ) u ( k ) + A ( z − 1 ) G ( − 1 ) F ( z − 1 ) ε ( K ) → e ( k ) = H ( z − 1 ) ε ( k ) H ( z − 1 ) = A ( z − 1 ) G ( − 1 ) F ( z − 1 ) H − 1 ( z − 1 ) [ A ( z − 1 ) y ( k ) ] = H − 1 ( z − 1 ) [ B ( z − 1 ) u ( k ) ] + ε ( K ) A ( z − 1 ) [ H − 1 ( z − 1 ) y ( k ) ] = B ( z − 1 ) [ H − 1 ( z − 1 ) u ( k ) ] + ε ( K ) ⟶ A ( z − 1 ) y f ( k ) = B ( z − 1 ) u f ( k ) + ε ( k ) { y f ( k ) = H ( z − 1 ) y ( k ) u f ( k ) = H ( z − 1 ) u ( k ) \begin{align} y(k) &= \frac{B(z^{-1})}{A(z^{-1})}u(k)+ \frac{G(^{-1})}{F(z^{-1})}\varepsilon(K) \\ A(z^{-1})y(k) &= B(z^{-1})u(k)+ \frac{A(z^{-1})G(^{-1})}{F(z^{-1})}\varepsilon(K) \\ &\xrightarrow[e(k)=H(z^{-1})\varepsilon(k)]{H(z^{-1})=\frac{A(z^{-1})G(^{-1})}{F(z^{-1})}} \\ H^{-1}(z^{-1})[A(z^{-1})y(k) ] &= H^{-1}(z^{-1})[B(z^{-1})u(k) ]+ \varepsilon(K) \\ A(z^{-1})[H^{-1}(z^{-1})y(k) ] &= B(z^{-1})[H^{-1}(z^{-1})u(k) ]+ \varepsilon(K) \\ &\longrightarrow \\ A(z^{-1})y_f(k) &= B(z^{-1})u_f(k)+ \varepsilon(k) \\ &\left\{ \begin{array}{l} y_f(k) = H(z^{-1})y(k) \\ u_f(k) = H(z^{-1})u(k) \end{array} \right. \end{align} y(k)A(z−1)y(k)H−1(z−1)[A(z−1)y(k)]A(z−1)[H−1(z−1)y(k)]A(z−1)yf(k)=A(z−1)B(z−1)u(k)+F(z−1)G(−1)ε(K)=B(z−1)u(k)+F(z−1)A(z−1)G(−1)ε(K)H(z−1)=F(z−1)A(z−1)G(−1)e(k)=H(z−1)ε(k)=H−1(z−1)[B(z−1)u(k)]+ε(K)=B(z−1)[H−1(z−1)u(k)]+ε(K)⟶=B(z−1)uf(k)+ε(k){yf(k)=H(z−1)y(k)uf(k)=H(z−1)u(k)
- 广义最小二乘法的思想:
- 对噪声项用“线性滤波器”尽量好的白色化处理;
- 利用滤波之后的数据重新进行参数估计。
- 对于简化的情况:
H ( z − 1 ) = 1 1 + C 1 z − 1 + … + C Y z − Y = 1 C ( z − 1 ) H(z^{-1})= \frac{1}{1+C_1z^{-1}+\ldots+C_Yz^{-Y}}= \frac{1}{C(z^{-1})} H(z−1)=1+C1z−1+…+CYz−Y1=C(z−1)1
则:
{
y
f
(
k
)
=
C
(
z
−
1
)
y
(
k
)
u
f
(
k
)
=
C
(
z
−
1
)
u
(
k
)
ε
(
k
)
=
C
(
z
−
1
)
e
(
k
)
\left\{ \begin{array}{l} y_f(k)= C(z^{-1})y(k) \\ u_f(k)= C(z^{-1})u(k) \\ \varepsilon(k)= C(z^{-1})e(k) \end{array}\right.
⎩
⎨
⎧yf(k)=C(z−1)y(k)uf(k)=C(z−1)u(k)ε(k)=C(z−1)e(k)
-
例2
-
系统函数:
y ( k ) − 1.5 y ( k − 1 ) + 0.7 y ( k − 2 ) = u ( k − 1 ) + 0.5 u ( k − 2 ) + e ( k ) e ( k ) − 1.2 e ( k − 1 ) + 0.5 e ( k − 2 ) = ε ( k ) e ( k ) = 1 1 − 1.2 z − 1 + 0.5 z − 2 ε ( k ) H ( z − 1 ) = 1 1 − 1.2 z − 1 + 0.5 z − 2 C ( z − 1 ) = 1 − 1.2 z − 1 + 0.5 z − 2 y(k)-1.5y(k-1)+0.7y(k-2)=u(k-1)+0.5u(k-2)+e(k) \\ e(k)-1.2e(k-1)+0.5e(k-2) = \varepsilon(k) \\ e(k)=\frac{1}{1-1.2z^{-1}+0.5z^{-2}}\varepsilon(k) \\ H(z^{-1})=\frac{1}{1-1.2z^{-1}+0.5z^{-2}} \\ C(z^{-1})=1-1.2z^{-1}+0.5z^{-2} y(k)−1.5y(k−1)+0.7y(k−2)=u(k−1)+0.5u(k−2)+e(k)e(k)−1.2e(k−1)+0.5e(k−2)=ε(k)e(k)=1−1.2z−1+0.5z−21ε(k)H(z−1)=1−1.2z−1+0.5z−21C(z−1)=1−1.2z−1+0.5z−2 -
MATLAB程序:C07P_example2.m
-
-
问题:如何估计噪声模型 C ( Z ) C(Z) C(Z) ,能否用迭代的方式?
四、广义最小二乘离线算法流程
令 C ( z − 1 ) = 1 ⟶ 计算 { y f ( k ) = C ( z − 1 ) y ( k ) u f ( k ) = C ( z − 1 ) u ( k ) ⟶ 依据 A ( z − 1 ) y f ( k ) = B ( z − 1 ) u f ( k ) 利用最小二乘估计 A ( z − 1 ) , B ( z − 1 ) 得到 A ^ ( z − 1 ) , B ^ ( z − 1 ) ⟶ 计算 { e ( k ) = A ^ ( z − 1 ) y ( k ) − B ^ ( z − 1 ) u ( k ) e ∗ ( k ) = A ^ ( z − 1 ) y f ( k ) − B ^ ( − 1 ) u f ( k ) ⟶ 依据 C ( z − 1 ) e ( k ) = ε ( k ) 利用最小二乘估计 C ^ ( z − 1 ) ⟶ 如果收敛并满足精度要求则停止运算; 否则转至第二步。 所谓收敛: lim j → ∞ C ^ j ∗ ( z − 1 ) = 1 令 C(z^{-1})=1 \longrightarrow 计算 \left\{ \begin{array}{l} y_f(k)=C(z^{-1})y(k) \\ u_f(k)= C(z^{-1})u(k) \end{array}\right. \longrightarrow \begin{array}{c} 依据 A(z^{-1})y_f(k)=B(z^{-1})u_f(k) \\ 利用最小二乘估计A(z^{-1}),B(z^{-1})得到\hat A(z^{-1}),\hat B(z^{-1}) \end{array} \\ \longrightarrow 计算\left\{ \begin{array}{l} e(k)=\hat A(z^{-1})y(k)- \hat B(z^{-1})u(k) \\ e^*(k)= \hat A(z^{-1})y_f(k)- \hat B(^{-1})u_f(k) \end{array}\right. \longrightarrow \begin{array}{c} 依据 C(z^{-1})e(k)=\varepsilon(k) \\ 利用最小二乘估计\hat C(z^{-1}) \end{array} \longrightarrow \begin{array}{c} 如果收敛并满足精度要求则停止运算; \\ 否则转至第二步。 \\ 所谓收敛:\lim_{j \rightarrow \infin} \hat C^*_j(z^{-1})=1 \end{array} 令C(z−1)=1⟶计算{yf(k)=C(z−1)y(k)uf(k)=C(z−1)u(k)⟶依据A(z−1)yf(k)=B(z−1)uf(k)利用最小二乘估计A(z−1),B(z−1)得到A^(z−1),B^(z−1)⟶计算{e(k)=A^(z−1)y(k)−B^(z−1)u(k)e∗(k)=A^(z−1)yf(k)−B^(−1)uf(k)⟶依据C(z−1)e(k)=ε(k)利用最小二乘估计C^(z−1)⟶如果收敛并满足精度要求则停止运算;否则转至第二步。所谓收敛:limj→∞C^j∗(z−1)=1