自适应控制
08-基于梯度校正的递推参数辨识方法(梯度校正辨识)
一、基于梯度校正的递推辨识方法的思想
- 参数估计问题本身即为多元函数的寻优问题,梯度方向为函数值变化最快的方向。
二、离散系统梯度校正参数递推辨识算法
- 考虑如下模型:
y ( k ) = φ T ( k ) θ ( k ) + e ( k ) e ( k ) = y ( k ) − φ T ( k ) θ ( k ) y(k)= \varphi^T(k)\theta(k)+ e(k) \\ e(k)= y(k)- \varphi^T(k) \theta(k) y(k)=φT(k)θ(k)+e(k)e(k)=y(k)−φT(k)θ(k)
目标是寻找 θ \theta θ 使指标 J J J 最小:
J = 1 2 e 2 ( k ) ∂ J ∂ θ = − φ ( k ) ( y ( k ) − φ T ( k ) θ ( k ) ) J = \frac{1}{2} e^2(k) \\ \frac{\partial J}{\partial \theta}= -\varphi(k)\left( y(k)-\varphi^T(k) \theta(k) \right) J=21e2(k)∂θ∂J=−φ(k)(y(k)−φT(k)θ(k))
参数学习公式:
θ ^ ( k + 1 ) = θ ^ ( k ) + R ( k + 1 ) φ ( k ) ( y ( k ) − φ T ( k ) θ ^ ( k ) ) \hat \theta(k+1)= \hat\theta(k)+ R(k+1)\varphi(k) \left( y(k)- \varphi^T(k) \hat\theta(k) \right) θ^(k+1)=θ^(k)+R(k+1)φ(k)(y(k)−φT(k)θ^(k))
其中, R ( k ) R(k) R(k) 为加权矩阵。
- 若是希望一步预测误差最小:假设 k k k 为当前时刻:
e ( k + 1 ) = y ( k + 1 ) − φ T ( k + 1 ) θ ( k ) e(k+1)= y(k+1)- \varphi^T(k+1) \theta(k) e(k+1)=y(k+1)−φT(k+1)θ(k)
目标是寻找 θ \theta θ 使指标 J J J 最小:
J = 1 2 e 2 ( k + 1 ) ∂ J ∂ θ = − φ ( k + 1 ) ( y ( k + 1 ) − φ T ( k + 1 ) θ ( k ) ) J = \frac{1}{2} e^2(k+1) \\ \frac{\partial J}{\partial \theta}= -\varphi(k+1)\left( y(k+1)-\varphi^T(k+1) \theta(k) \right) J=21e2(k+1)∂θ∂J=−φ(k+1)(y(k+1)−φT(k+1)θ(k))
参数学习公式:
θ ^ ( k + 1 ) = θ ^ ( k ) + R ( k + 1 ) φ ( k + 1 ) ( y ( k + 1 ) − φ T ( k + 1 ) θ ^ ( k ) ) \hat \theta(k+1)= \hat\theta(k)+ R(k+1)\varphi(k+1) \left( y(k+1)- \varphi^T(k+1) \hat\theta(k) \right) θ^(k+1)=θ^(k)+R(k+1)φ(k+1)(y(k+1)−φT(k+1)θ^(k))
其中, R ( k ) R(k) R(k) 为加权矩阵。
- 问题:
- 为什么以某一时刻的误差为优化指标?合理吗?
- 能否用观测点处的梯度信息代替均值或者累积和关于待定参数的梯度?
三、梯度校正的递推辨识举例
-
例1:
-
系统方程:
y ( k ) = − 0.2 y ( k − 1 ) − 0.35 y ( k − 2 ) + u ( k − 1 ) + 2 u ( k − 2 ) + e ( k ) y(k)=-0.2y(k-1)-0.35y(k-2)+u(k-1)+2u(k-2)+e(k) y(k)=−0.2y(k−1)−0.35y(k−2)+u(k−1)+2u(k−2)+e(k) -
MATLAB程序:C08P08_example1.m
-
R ( k ) R(k) R(k) 越小收敛越慢, R ( k ) R(k) R(k) 太大可能发散。
-
四、一般迭代法
-
目标:
寻找最小化指标 J J J 的 θ ∗ \theta^* θ∗ :
J ( θ ∗ ) ≤ J ( θ ) J(\theta^*) \leq J(\theta) J(θ∗)≤J(θ)
-
基本思想:
从某一初始参数 θ 1 \theta_1 θ1 出发,产生一系列的参数点 θ 1 , θ 2 , … , θ N , … \theta_1,\theta_2,\ldots,\theta_N,\ldots θ1,θ2,…,θN,… ,并希望这一序列能够收敛到使指标 J J J 最小的参数值。从工程应用的角度来讲,只要N取得足够大,我们即可以用 θ N \theta_N θN 作为 θ ∗ \theta^* θ∗ 的近似值。
-
可接受的方向:
点列可以随机选择,也可以在初始参数的基础上,沿着一个方向选择,记该方向为 ν \nu ν 。假设 i i i 时刻已选择了参数 θ i \theta_i θi ,希望下一个参数 θ i + 1 \theta_{i+1} θi+1 使得优化指标 J J J 更小,即:
J ( θ i + 1 ) < J ( θ i ) J(\theta_{i+1}) < J(\theta_i) J(θi+1)<J(θi)
如果以上不等式成立,称 ( i + 1 ) (i+1) (i+1) 步为可接受的。如果迭代过程中的每一步的方向都是可以接受的,则称该迭代算法是可以接受的。
- 定理;
一个方向 ν \nu ν 是可接受的,充要条件是存在一个正定矩阵 R R R ,使得
ν = − R q i + 1 \nu = -R q_{i+1} ν=−Rqi+1
其中, q i + 1 = ∂ J ∂ θ i + 1 q_{i+1}= \frac{\partial J}{\partial \theta_{i+1}} qi+1=∂θi+1∂J 。
-
迭代流程:
-
给出估计值 θ i \theta_i θi ,并置 i = 1 i=1 i=1 ;
-
确定一个向量 ν i \nu_i νi 作为第 i i i 步的方向;
-
确定一个合理的标量因子 ρ i ≥ 0 \rho_i \geq 0 ρi≥0 ,使得: θ ( i + 1 ) = θ ( i ) + ρ i ν i \theta(i+1)=\theta(i)+\rho_i\nu_i θ(i+1)=θ(i)+ρiνi 是可接受的;
-
检验停机准则是否满足要求,如果不满足,则 i = i + 1 i=i+1 i=i+1 ;如果满足,则取 θ ^ = θ ( i + 1 ) \hat\theta=\theta(i+1) θ^=θ(i+1) 。
-
考虑第 i + 1 i+1 i+1 步迭代,假设参数 θ i \theta_i θi 沿着既定的方向 ν \nu ν 做如下改变:
θ i + 1 = θ i + ρ ν \theta_{i+1} = \theta_i+\rho \nu θi+1=θi+ρν
其中, ρ ≥ 0 \rho \geq 0 ρ≥0 ,此时,指标函数 J J J 可表示为:
J ( θ i + 1 ) = J ( θ i + ρ ν ) d J d ρ = ( ∂ J ∂ θ i + 1 ) T ν J(\theta_{i+1})= J(\theta_i+\rho \nu) \\ \frac{dJ}{d\rho}= \left( \frac{\partial J}{\partial \theta_{i+1}} \right)^T \nu J(θi+1)=J(θi+ρν)dρdJ=(∂θi+1∂J)Tν
令 q i + 1 = ∂ J ∂ θ i + 1 q_{i+1}=\frac{\partial J}{\partial \theta_{i+1}} qi+1=∂θi+1∂J ,则有:
d J d ρ = q i + 1 T ν < 0 \frac{d J}{d \rho} = q^T_{i+1} \nu < 0 dρdJ=qi+1Tν<0
是可接受条件。因为此时只要 ρ \rho ρ 充分小,则存在 ρ ν \rho \nu ρν 是可接受的。根据上述定理,有:
θ i + 1 = θ i + ρ ν = θ i − ρ R q i + 1 = θ i − ρ i + 1 R i + 1 q i + 1 \theta_{i+1}= \theta_i+\rho\nu=\theta_i-\rho R q_{i+1}= \theta_i- \rho_{i+1} R_{i+1} q_{i+1} θi+1=θi+ρν=θi−ρRqi+1=θi−ρi+1Ri+1qi+1
其中, ρ ≥ 0 \rho \geq 0 ρ≥0 。当 R = I R=I R=I 时,即为梯度下降法:
θ i + 1 = θ i − ρ i + 1 q i + 1 \theta_{i+1}=\theta_i-\rho_{i+1}q_{i+1} θi+1=θi−ρi+1qi+1
随着目标函数接近最优值时,收敛速度会越来越慢。
-
09-模型阶次的确定方法(模型结构辨识基础)
一、概述
- 直接利用特定的“输出信息”估计模型阶次:“脉冲响应法”;
- 直接利用“输入输出信息”估计模型阶次:“行列式比”定阶法;
- 利用模型“残差序列”的信息估计模型阶次:“F检验法”;
模型残差: E ~ ( N ) = Y ( N ) − Φ ( N ) θ ^ ( N ) \widetilde E(N)=Y(N)- \Phi(N)\hat\theta(N) E (N)=Y(N)−Φ(N)θ^(N)
- 利用模型的“预报误差”的信息估计模型阶次:“FPE定阶法”;
- AIC准则方法:选择使得以下AIC准则取得最小值的阶次:
A I C ( n ) = − 2 log L ( θ ^ ) + 2 n AIC(n)= -2\log L(\hat \theta)+2n AIC(n)=−2logL(θ^)+2n
其中, L ( θ ^ ) L(\hat\theta) L(θ^) 表示似然函数。
二、根据Hankel矩阵的秩估计模型的阶次原理
设过程的真实阶数为 n 0 n_0 n0 ,过程的脉冲响应序列记作 g ( 1 ) , g ( 2 ) , … , g ( L ) g(1),g(2),\ldots,g(L) g(1),g(2),…,g(L) ,构造如下Hankel矩阵:
H ( l , k ) = [ g ( k ) g ( k + 1 ) ⋯ g ( k + l + 1 ) g ( k + 1 ) g ( k + 2 ) ⋯ g ( k + l ) ⋮ ⋮ ⋱ ⋮ g ( k + l − 1 ) g ( k + l ) ⋯ g ( k + 2 l − 2 ) ] H(l,k)= \left[ \begin{matrix} g(k) &g(k+1) &\cdots &g(k+l+1) \\ g(k+1) &g(k+2) &\cdots &g(k+l) \\ \vdots &\vdots &\ddots &\vdots \\ g(k+l-1) &g(k+l) &\cdots &g(k+2l-2) \end{matrix} \right] H(l,k)=
g(k)g(k+1)⋮g(k+l−1)g(k+1)g(k+2)⋮g(k+l)