主要内容

本页采用了机器翻译。点击此处可查看英文原文。

用于在线参数估计的递归算法

System Identification Toolbox™ 中的递归估计算法可分为两类:

  • 无限历史算法 - 这些算法的目标是,从仿真开始起,在所有时间步长上,将观测输出与预测输出之间的误差最小化。System Identification Toolbox 支持以下情况下的无限历史估计:

    • 用于最小二乘线性回归、AR、ARX、ARMA、ARMAX、OE 和 BJ 模型结构的递归命令行估计器

    • Simulink® Recursive Least Squares EstimatorRecursive Polynomial Model Estimator 模块

  • 有限历史算法 - 这些算法的目标是,在有限数量的过去时间步长内,将观测输出与预测输出之间的误差最小化。该工具箱支持对参数线性模型进行有限历史估计:

    • 用于最小二乘线性回归、AR、ARX 和 OE 模型结构的递归命令行估计器

    • Simulink Recursive Least Squares Estimator 模块

    • Simulink Recursive Polynomial Model Estimator 模块,仅适用于 AR、ARX 和 OE 结构

    当参数随时间发生快速且可能幅度较大的变化时,有限历史算法通常比无限历史算法更容易进行调优。

递归无限历史估计

无限历史递归估计的一般形式

无限历史递归估计法的一般形式如下:

θ^(t)=θ^(t1)+K(t)(y(t)y^(t))

θ^(t) 是时间点 t 处的参数估计值。y(t) 是时间点 t 处的观测输出,而 y^(t) 是基于截至时间点 t-1 的观测数据对 y(t) 的预测值。增益 K(t) 决定了当前预测误差 y(t)y^(t) 对参数估计值更新的影响程度。这些估计算法旨在使预测误差项 y(t)y^(t) 最小化。

增益的形式如下:

K(t)=Q(t)ψ(t)

System Identification Toolbox 产品支持的递归算法因选择 Q(t) 的形式以及计算 ψ(t) 的方法不同而有所差异。这里,ψ(t) 表示预测模型输出 y^(t|θ) 相对于参数 θ 的梯度。

要直观理解参数梯度 ψ(t) 的作用,最简单的方法是考虑具有线性回归形式的模型:

y(t)=ψT(t)θ0(t)+e(t)

在此方程中,ψ(t) 是基于先前测得的输入和输出值计算得到的回归向量θ0(t) 表示真实参数。e(t) 是噪声源(创新项),假设其为白噪声。ψ(t) 的具体形式取决于多项式模型的结构。

对于线性回归方程,预测输出由以下方程给出:

y^(t)=ψT(t)θ^(t1)

对于不具有线性回归形式的模型,无法精确计算当前参数估计值 θ^(t1) 的预测输出和梯度 ψ(t)。要了解如何针对一般模型结构计算 ψ(t)θ^(t1) 的逼近值,请参阅 [1] 中关于递归预测误差方法的章节。

无限历史递归估计法的类型

System Identification Toolbox 软件为在线估计提供了以下具有无限历史数据的递归估计计算法:

遗忘因子和卡尔曼滤波算法的计算复杂度高于梯度法和未归一化梯度法。不过,它们通常具有更好的收敛属性。

遗忘因子.  以下这组方程概括了遗忘因子适应算法:

θ^(t)=θ^(t1)+K(t)(y(t)y^(t))

y^(t)=ψT(t)θ^(t1)

K(t)=Q(t)ψ(t)

Q(t)=P(t1)λ+ψT(t)P(t1)ψ(t)

P(t)=1λ(P(t1)P(t1)ψ(t)ψ(t)TP(t1)λ+ψ(t)TP(t1)ψ(t))

该软件通过使用平方根算法更新 P(t),从而确保其为正定矩阵 [2]。该软件在假设残差(估计输出与测量输出之间的差值)为白噪声且这些残差的方差为 1 的情况下,计算 PR2/2 * P 近似等于估计参数的协方差矩阵,其中 R2 是残差的真实方差。

Q(t) 是通过在时间 t 处使以下函数取最小值而得到的:

k=1tλtk(y(k)y^(k))2

详情请参阅 [1]中的第 11.2 节。

该方法以指数方式降低旧观测值的权重,因此,一个距当前 τ 个采样点前的观测值的权重,等于最近一次观测值权重的 λτ 倍。τ=11λ 代表该算法的记忆地平线。早于 τ=11λ 的测量值通常具有小于约 0.3 的权重。

λ 被称为遗忘因子,通常取正值,值范围在 0.980.995 之间。将 λ=1 设为估计时不变(常数)参数。将 λ<1 设为估计随时间变化的参数。

注意

λ = 1 时,遗忘因子算法等同于 R1=0 且 R2=1 时的卡尔曼滤波算法。有关卡尔曼滤波算法的更多信息,请参阅卡尔曼滤波器

卡尔曼滤波器.  以下这组方程概括了卡尔曼滤波器的自适应算法:

θ^(t)=θ^(t1)+K(t)(y(t)y^(t))

y^(t)=ψT(t)θ^(t1)

K(t)=Q(t)ψ(t)

Q(t)=P(t1)R2+ψT(t)P(t1)ψ(t)

P(t)=P(t1)+R1P(t1)ψ(t)ψ(t)TP(t1)R2+ψ(t)TP(t1)ψ(t)

该软件通过使用平方根算法更新 P(t),从而确保其为正定矩阵 [2]。该软件在假设残差(估计输出与测量输出之间的差值)为白噪声且这些残差的方差为 1 的情况下,计算 PR2* P 是估计参数的协方差矩阵,而 R1 /R2 是参数变化的协方差矩阵。其中,R1 是您指定的参数变化的协方差矩阵。

该公式假设模型采用线性回归形式:

y(t)=ψT(t)θ0(t)+e(t)

Q(t) 是通过卡尔曼滤波器计算得出的。

该公式还假设真实参数 θ0(t) 由随机游走描述:

θ0(t)=θ0(t1)+w(t)

w(t) 是具有以下协方差矩阵(或称漂移矩阵 R1)的高斯白噪声:

Ew(t)wT(t)=R1

R2 是下列方程中残差 e(t) 的方差:

y(t)=ψT(t)θ0(t)+e(t)

卡尔曼滤波算法完全由数据序列 y(t)、梯度 ψ(t)R1R2,以及初始条件 θ(t=0)(参数的初始估计值)和 P(t=0)(表示参数误差的协方差矩阵)。

注意

假设矩阵 R1P(t = 0) 经过缩放,使得 R2 = 1。这种缩放不会影响参数估计值。

归一化梯度与非归一化梯度.  在线性回归的情况下,梯度法也被称为最小均方 (LMS) 法。

以下这组方程总结了未归一化梯度归一化梯度适应算法:

θ^(t)=θ^(t1)+K(t)(y(t)y^(t))

y^(t)=ψT(t)θ^(t1)

K(t)=Q(t)ψ(t)

在未归一化梯度法中,Q(t) 由以下公式给出:

Q(t)=γ

在归一化梯度法中,Q(t) 由以下公式给出:

Q(t)=γ|ψ(t)|2+Bias

归一化梯度算法在每一步中,将适应增益 γ 按梯度向量的二范数平方进行缩放。如果梯度接近零,可能会导致估计参数出现突变。为了防止出现这些跳变,在缩放因子中引入了一个偏置项。

梯度算法中对 Q(t) 的这些选择,会沿负梯度方向更新参数,其中梯度是相对于参数计算得出的。 有关详细信息,请参阅 [1] 中的第 372 页。

递归有限历史估计

有限历史估计方法通过使

k=tN+1t(y(k)y^(k|θ))2,

取最小值来求得参数估计值 θ(t)

其中 y(k) 是时间点 k 处的观测输出,y^(k|θ) 是时间点 k 处的预测输出。这种方法也被称为滑动窗估计法。有限历史估计方法可将最后 N 个时间步的预测误差最小化。相比之下,无限历史估计方法是从仿真开始时起就将预测误差最小化。

System Identification Toolbox 支持对参数线性模型(AR 和 ARX)进行有限历史估计,其中预测输出呈 y^(k|θ)=Ψ(k)θ(k1) 形式。该软件为 k = t-N+1, t-N+2, … , t-2, t-1, t 构建并维护了一个包含自变量 ψ(k) 和观测因变量 y(k) 的缓冲区。这些缓冲区包含用于解决基础线性回归问题(即在 θ 上最小化 Ψbufferθybuffer22)所需的矩阵。该软件利用带列转置的 QR 分解来求解这个线性回归问题。

参考

[1] Ljung, L. System Identification: Theory for the User. Upper Saddle River, NJ: Prentice-Hall PTR, 1999.

[2] Carlson, N.A. "Fast triangular formulation of the square root filter." AIAA Journal, Vol. 11, Number 9, 1973, pp. 1259-1265.

[3] Zhang, Q. "Some Implementation Aspects of Sliding Window Least Squares Algorithms." IFAC Proceedings. Vol. 33, Issue 15, 2000, pp. 763-768.

另请参阅

| | | | | | | |

主题