system: [SYSTEM]

user: 3. 参数辨识算法 本节基于最小二乘算法和Gauss-Newton优化算法，提出一种线性延时系统的延时项估计和参数辨识算法，该算法可以利用观测数据 { u k ， x k } ， ( k = 1 ， 2 ， ⋯ ， N ) 辨识系统延时项d和系统参数 θ 。 3.1. 算法的推导 离线的辨识算法要求如下二次准则函数达到最小： J k ( θ ， d ) = 1 2 ∑ i = 0 m − 1     e k − i T e k − i ， 其中m是使用的数据长度且满足 k − m ≥ d 。 e k 是节点k处的估计误差，即 e k = y k − θ ^ k T φ ^ ( k ， d ^ ) . θ ^ k 是利用节点k之前m组数据计算到的 θ 的估计值， d ^ k 是延时项d的估计值。 参数 θ ，d在节点k处的估计值 θ ^ k 和 d ^ k 可由下式得到： [ θ ^ k T ， d ^ k ] = arg min θ ， d J k ( θ ， d ) ， 当非线性时间延迟项d的估计 d ^ 已知时，线性参数 θ ^ k 可由线性最小二乘方法估计： θ ^ k ( d ^ ) = R ^ − 1 ( k ， d ^ ) F ^ ( k ， d ^ ) ， R ^ ( k ， d ^ ) = ϕ ^ ( k ， d ^ ) ϕ ^ T ( k ， d ^ ) ， F ^ ( k ， d ^ ) = ϕ ^ ( k ， d ^ ) Y T ( k ) ， (3.1) 其中 ϕ ^ ( k ， d ^ ) = [ φ ^ ( k ， d ^ ) ， φ ^ ( k − 1， d ^ ) ， ⋯ ， φ ^ ( k − m + 1， d ^ ) ] ， Y ( k ) = [ y k ， y k − 1 ， ⋯ ， y k − m + 1 ] 。因此准则函数 J k ( θ ， d ) 可转化为如下形式： J ⌣ k ( d ) = 1 2 ∑ i = 0 m − 1     e ⌣ k − i T e ⌣ k − i ， (3.2) 其中 e ⌣ k = y k − θ ^ k T ( d ^ ) φ ^ ( k ， d ^ ) = y k − F ^ T ( k ， d ^ ) [ R ^ − 1 ( k ， d ^ ) ] T φ ^ ( k ， d ^ ) 。 时间延迟d在节点k处的估计值 d ^ k 可由下式得到： d ^ k = arg min d J ⌣ k ( d ) . 可以看出准则函数(3.2)中对节点k之前m组数值的权重是一致的， 为了削弱旧数据对参数估计结果的影响，加强新数据提供的信息量，本文引入遗忘因子 λ ，将(3.2)式转化为具有遗忘因子的准则函数： J ⌣ k λ ( d ) = 1 2 ∑ i = 0 p − 1     λ i e ⌣ k − i T e ⌣ k − i = 1 2 E T ( k ， d ) Λ E ( k ， d ) ， (3.3) 其中 λ 是遗忘因子， 0 < λ ≤ 1 ，p是准则函数 J ⌣ k λ ( d ) 使用的数据量， p < m 。 Λ = d i a g ( λ 0 I n ， λ 1 I n ， ⋯ ， λ p − 1 I n ) ， (3.4) E T ( k ， d ) = [ e ⌣ k T ， e ⌣ k − 1 T ， ⋯ ， e ⌣ k − p + 1 T ] . (3.5) 由Gauss-Newton算法知延时项d可由如下算法迭代： d k + 1 = d k + μ k ， μ k = − ( ϒ T ( k ， d ) ϒ ( k ， d ) ) − 1 ϒ T ( k ， d ) Λ E ( k ， d ) ， ϒ T ( k ， d ) = ∂ E T ( k ， d ) ∂ d ^ = [ ∂ e ⌣ k T ∂ d ^ ， ∂ e ⌣ k − 1 T ∂ d ^ ， ⋯ ， ∂ e ⌣ k − p + 1 T ∂ d ^ ] . (3.6) 首先计算 e ⌣ k 关于 d ^ 的导数，并记为 Ψ ( k ， d ) ，则： Ψ ( k ， d ) = ∂ e ⌣ k ∂ d ^ = − ∂ F ^ T ( k ， d ^ ) [ R ^ − 1 ( k ， d ^ ) ] T φ ^ ( k ， d ^ ) ∂ d ^ = − ∂ F ^ ( k ， d ) ∂ d ^ [ R ^ T ( k ， d ^ ) ] − 1 φ ^ ( k ， d ^ )   − F ^ T ( k ， d ^ ) ∂ [ R T ( k ， d ^ ) ] − 1 ∂ d ^ φ ^ ( k ， d ^ )   − F ^ T ( k ， d ^ ) [ R ^ T ( k ， d ^ ) ] − 1 ∂ φ ^ ( k ， d ^ ) ∂ d ^ ， (3.7) 其中 ∂ F ^ ( k ， d ) ∂ d ^ = [ ∂ φ ^ ( k ， d ^ ) ∂ d ^ ， ∂ φ ^ ( k − 1， d ^ ) ∂ d ^ ， ⋯ ， ∂ φ ^ ( k − m + 1， d ^ ) ∂ d ^ ] Y T ( k ) ， (3.8) ∂ [ R T ( k ， d ^ ) ] − 1 ∂ d ^ = ∂ [ ϕ ^ ( k ， d ^ ) ϕ ^ T ( k ， d ^ ) ] − 1 ∂ d ^ = − [ ϕ ^ ( k ， d ^ ) ϕ ^ T ( k ， d ^ ) ] − 1 [ ∂ ϕ ^ ( k ， d ^ ) ∂ d ^ ϕ ^ T + ϕ ^ ∂ ϕ ^ T ( k ， d ^ ) ∂ d ^ ] [ ϕ ^ ( k ， d ^ ) ϕ ^ T ( k ， d ^ ) ] − 1 . (3.9) 对于 ∂ ϕ ^ ( k ， d ^ ) ∂ d ^ ，先计算 ∂ ( h x k − d ^ ) ∂ d ^ ， ∂ ( h x k − d ^ ) ∂ d ^ = h ∂ x ( k − d ^ ) ∂ d ^ = h ∂ x ( k − d ^ ) ∂ ( k − d ^ ) ∂ ( k − d ^ ) ∂ d ^ = − h ∂ x ( k − d ^ ) ∂ ( k − d ^ ) = − h l i m γ → 0 x ( k − d ^ ) − x ( k − d ^ − γ ) ( k − d ^ ) − ( k − d ^ − γ ) . 根据Nyquist-Shannon采样定理 [ 20 ]，当采样周期足够小时，采样系统的 γ = 1 ，由此可得： ∂ φ ^ ( k ， d ^ ) ∂ d ^ = [ 0 − h Δ x k − d ^ 0 ] ， (3.10) Δ 是差分算子， Δ x k = x k − x k − 1 。 3.2. 算法总结 算法3.1 系统(2.1)中延时项 τ 和参数 θ 的辨识算法： 第1步：令 k = 1 ，设 k = 1 时对应的观测数据为 { u k ˜ ， x k ˜ } ；给定使用的数据量m和p；设置初始值 τ 0 、遗忘因子 λ 和辨识精度 ε ； 第2步：用观测数据 { u k ， x k } ， ( k = 1 ， 2 ， ⋯ ， N ) 建立信息矩阵： y k ， φ ( k ， d ^ k ) ， Y ( k ) ， ϕ ( k ， d ^ k ) ； 第3步：进行如下迭代过程： μ k = − ( ϒ T ( k ， d ^ k ) ϒ ( k ， d ^ k ) ) − 1 ϒ T ( k ， d ^ k ) Λ E ( k ， d ^ k ) ， d ^ k + 1 = d ^ k + μ k ， τ ^ k + 1 = h d ^ k + 1 . 其中 ϒ T ( k ， d ^ k ) ， Λ 和 E ( k ， d ^ k ) 由(3.4)~(3.10)式给出； 第4步：当 ‖ τ ^ k + 1 − τ ^ k ‖ < ε 或 k = N 时，第3步的迭代终止，用(3.1)式估计系统(2.1)中的参数 θ ，则有 θ ^ ( d ^ N ) = R ^ − 1 ( N ， d ^ N ) F ^ ( N ， d ^ N ) . 否则，令 k : = k + 1 ，返回第2步。 注3.1 第3步中的 d ^ k 不一定是整数，因此在算法3.1的迭代步骤中 x k − d ^ k 由 x k − d ^ _ k 和 x k − d ^ _ k − 1 线性插值得到，其中 d ^ _ k 是 d ^ k 的向下取整。 注3.2 在算法3.1的计算过程中，迭代的每一步均使用到k节点之前的m组数据，因此 k = 1 时对应的观测数据 { u k ˜ ， x k ˜ } 应该满足 k ˜ > m 。