control_tutorial

第12章:系统辨识

系统辨识是从输入输出数据中建立动态系统数学模型的科学与艺术。在实际控制工程中,精确的系统模型往往难以从第一性原理推导,或者系统参数会随时间变化。系统辨识技术使我们能够从实验数据中提取系统的动态特性,为控制器设计提供可靠的模型基础。本章将介绍主要的辨识方法,从经典的参数估计到现代的子空间方法,并特别关注实际应用中的挑战,如闭环辨识和非线性系统辨识。

12.1 系统辨识概述

12.1.1 辨识的基本问题

系统辨识的核心任务是找到一个数学模型 $M$,使其能够最好地描述观测到的输入输出数据:

\[y(t) = G(q, \theta)u(t) + H(q, \theta)e(t)\]

其中:

12.1.2 辨识流程

实验设计 → 数据采集 → 模型结构选择 → 参数估计 → 模型验证
    ↑                                                    ↓
    ←────────────── 不满足要求则重新设计 ←─────────────

12.1.3 模型类型选择

  1. 线性模型族
    • ARX (AutoRegressive with eXogenous input)
    • ARMAX (ARX with Moving Average)
    • Output Error (OE)
    • Box-Jenkins (BJ)
  2. 状态空间模型
    • 连续时间:$\dot{x} = Ax + Bu$
    • 离散时间:$x_{k+1} = Ax_k + Bu_k$
  3. 非参数模型
    • 频率响应
    • 脉冲响应
    • 阶跃响应

12.2 参数估计方法

12.2.1 最小二乘法(LS)

考虑ARX模型: \(A(q)y(t) = B(q)u(t) + e(t)\)

其中: \(A(q) = 1 + a_1q^{-1} + \cdots + a_{n_a}q^{-n_a}\) \(B(q) = b_1q^{-1} + \cdots + b_{n_b}q^{-n_b}\)

写成线性回归形式: \(y(t) = \phi^T(t)\theta + e(t)\)

其中回归向量: \(\phi(t) = [-y(t-1), \ldots, -y(t-n_a), u(t-1), \ldots, u(t-n_b)]^T\)

参数向量: \(\theta = [a_1, \ldots, a_{n_a}, b_1, \ldots, b_{n_b}]^T\)

最小二乘估计: \(\hat{\theta}_{LS} = \arg\min_\theta \sum_{t=1}^N [y(t) - \phi^T(t)\theta]^2\)

解析解: \(\hat{\theta}_{LS} = \left[\sum_{t=1}^N \phi(t)\phi^T(t)\right]^{-1} \sum_{t=1}^N \phi(t)y(t)\)

12.2.2 递推最小二乘(RLS)

实时更新参数估计:

\[\hat{\theta}(t) = \hat{\theta}(t-1) + K(t)[y(t) - \phi^T(t)\hat{\theta}(t-1)]\]

其中增益矩阵: \(K(t) = P(t-1)\phi(t)[1 + \phi^T(t)P(t-1)\phi(t)]^{-1}\)

协方差矩阵更新: \(P(t) = [I - K(t)\phi^T(t)]P(t-1)\)

遗忘因子:处理时变系统 \(P(t) = \frac{1}{\lambda}[I - K(t)\phi^T(t)]P(t-1)\)

其中 $0.95 \leq \lambda < 1$ 是遗忘因子。

12.2.3 极大似然估计(MLE)

假设噪声服从高斯分布 $e(t) \sim \mathcal{N}(0, \sigma^2)$,似然函数:

\[L(\theta) = \prod_{t=1}^N \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{[y(t) - \hat{y}(t|\theta)]^2}{2\sigma^2}\right)\]

对数似然: \(\log L(\theta) = -\frac{N}{2}\log(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{t=1}^N [y(t) - \hat{y}(t|\theta)]^2\)

MLE估计: \(\hat{\theta}_{MLE} = \arg\max_\theta \log L(\theta)\)

12.2.4 预测误差方法(PEM)

一般化的辨识准则:

\[\hat{\theta} = \arg\min_\theta V_N(\theta) = \arg\min_\theta \frac{1}{N}\sum_{t=1}^N \ell(\varepsilon(t, \theta))\]

其中:

对于不同模型结构,预测误差有不同形式:

12.3 频域辨识

12.3.1 频率响应估计

通过正弦激励获取频率响应:

输入:$u(t) = A\sin(\omega t)$ 稳态输出:$y(t) = |G(j\omega)|A\sin(\omega t + \angle G(j\omega))$

频率响应函数(FRF): \(\hat{G}(j\omega) = \frac{Y(j\omega)}{U(j\omega)} = \frac{\mathcal{F}\{y(t)\}}{\mathcal{F}\{u(t)\}}\)

12.3.2 谱分析方法

经验传递函数估计(ETFE): \(\hat{G}_{ETFE}(e^{j\omega}) = \frac{Y_N(e^{j\omega})}{U_N(e^{j\omega})}\)

其中 $Y_N$ 和 $U_N$ 是DFT变换。

谱分析估计: \(\hat{G}(e^{j\omega}) = \frac{\hat{\Phi}_{yu}(e^{j\omega})}{\hat{\Phi}_u(e^{j\omega})}\)

其中:

12.3.3 频域加权最小二乘

给定频率响应数据 ${G_k, \omega_k}_{k=1}^M$,拟合参数模型:

\[\hat{\theta} = \arg\min_\theta \sum_{k=1}^M W_k |G_k - G(e^{j\omega_k}, \theta)|^2\]

其中 $W_k$ 是频率相关的权重。

12.4 子空间辨识方法

12.4.1 基本原理

子空间方法直接从输入输出数据辨识状态空间模型:

\[\begin{aligned} x_{k+1} &= Ax_k + Bu_k + w_k \\ y_k &= Cx_k + Du_k + v_k \end{aligned}\]

无需迭代优化,通过奇异值分解(SVD)获得模型。

12.4.2 数据方程

构造Hankel矩阵:

\[Y_{p} = \begin{bmatrix} y_0 & y_1 & \cdots & y_{j-1} \\ y_1 & y_2 & \cdots & y_j \\ \vdots & \vdots & \ddots & \vdots \\ y_{i-1} & y_i & \cdots & y_{i+j-2} \end{bmatrix}\]

类似构造 $U_p$(过去输入)、$Y_f$(未来输出)、$U_f$(未来输入)。

12.4.3 MOESP算法

  1. 构造数据矩阵并进行QR分解: \(\begin{bmatrix} U_p \\ U_f \\ Y_p \\ Y_f \end{bmatrix} = \begin{bmatrix} R_{11} & 0 & 0 & 0 \\ R_{21} & R_{22} & 0 & 0 \\ R_{31} & R_{32} & R_{33} & 0 \\ R_{41} & R_{42} & R_{43} & R_{44} \end{bmatrix} \begin{bmatrix} Q_1^T \\ Q_2^T \\ Q_3^T \\ Q_4^T \end{bmatrix}\)

  2. 对 $R_{32}$ 进行SVD: \(R_{32} = U\Sigma V^T = \begin{bmatrix} U_1 & U_2 \end{bmatrix} \begin{bmatrix} \Sigma_1 & 0 \\ 0 & \Sigma_2 \end{bmatrix} \begin{bmatrix} V_1^T \\ V_2^T \end{bmatrix}\)

  3. 确定系统阶次 $n$(通过奇异值的跳变)

  4. 提取系统矩阵:

    • 可观性矩阵:$\mathcal{O} = U_1\Sigma_1^{1/2}$
    • 从 $\mathcal{O}$ 提取 $C$ 和 $A$
    • 通过最小二乘估计 $B$ 和 $D$

12.4.4 N4SID算法

N4SID(Numerical algorithms for Subspace State Space System IDentification)是另一种流行的子空间方法:

  1. 斜投影: \(Y_f / U_f \perp W_p\)

    其中 $W_p = \begin{bmatrix} U_p \ Y_p \end{bmatrix}$

  2. 通过SVD估计状态序列

  3. 使用最小二乘估计系统矩阵

12.5 非线性系统辨识

12.5.1 Hammerstein-Wiener模型

级联结构:静态非线性 + 线性动态 + 静态非线性

u → [静态非线性 f(·)] → v → [线性系统 G(q)] → w → [静态非线性 h(·)] → y

辨识策略:

  1. 分离辨识:先辨识线性部分,再辨识非线性部分
  2. 迭代优化:交替优化线性和非线性参数

12.5.2 NARMAX模型

非线性自回归移动平均模型:

\[y(t) = f(y(t-1), \ldots, y(t-n_y), u(t-1), \ldots, u(t-n_u), e(t-1), \ldots, e(t-n_e)) + e(t)\]

常用非线性函数形式:

12.5.3 神经网络辨识

循环神经网络(RNN)模型: \(\begin{aligned} h_t &= \sigma(W_h h_{t-1} + W_u u_t + b_h) \\ y_t &= W_y h_t + b_y \end{aligned}\)

LSTM模型:处理长期依赖 \(\begin{aligned} f_t &= \sigma(W_f [h_{t-1}, u_t] + b_f) \\ i_t &= \sigma(W_i [h_{t-1}, u_t] + b_i) \\ \tilde{C}_t &= \tanh(W_C [h_{t-1}, u_t] + b_C) \\ C_t &= f_t \odot C_{t-1} + i_t \odot \tilde{C}_t \\ o_t &= \sigma(W_o [h_{t-1}, u_t] + b_o) \\ h_t &= o_t \odot \tanh(C_t) \end{aligned}\)

12.5.4 稀疏辨识(SINDy)

系统动力学的稀疏辨识:

\[\dot{x} = \Theta(x, u)\xi\]

其中:

通过L1正则化促进稀疏性: \(\hat{\xi} = \arg\min_\xi ||\dot{X} - \Theta\xi||_2^2 + \lambda||\xi||_1\)

12.6 闭环辨识问题

12.6.1 闭环辨识的挑战

在许多实际系统中,出于安全或稳定性考虑,必须在闭环条件下进行辨识:

      r(t) →⊕→ [控制器 C] → u(t) → [系统 G] → y(t)
            ↑                                    ↓
            ←────────────────────────────────────

主要问题

  1. 输入输出相关性:$u(t)$ 不再是独立激励
  2. 可辨识性降低:某些模态可能被控制器抑制
  3. 偏差问题:直接方法会产生有偏估计

12.6.2 直接法

忽略反馈回路,直接使用开环辨识方法:

\[\hat{G} = \arg\min_G \sum_{t=1}^N [y(t) - G(q)u(t)]^2\]

适用条件

12.6.3 间接法

同时辨识闭环传递函数,然后推导开环模型:

闭环传递函数: \(T(q) = \frac{GC}{1 + GC}, \quad S(q) = \frac{1}{1 + GC}\)

从测量数据辨识 $T$ 和 $S$,然后计算: \(G = \frac{T}{C \cdot S}\)

12.6.4 联合输入输出法

使用输入输出的联合信息构造无偏估计:

\[\hat{\theta} = \arg\min_\theta \left|\left|\begin{bmatrix} Y \\ U \end{bmatrix} - \begin{bmatrix} G(\theta) \\ I \end{bmatrix} \begin{bmatrix} U \\ E \end{bmatrix}\right|\right|_F^2\]

12.6.5 双级法(Two-Stage Method)

第一级:辨识闭环灵敏度函数 \(\hat{S} = \arg\min_S ||Y - S \cdot R||^2\)

第二级:使用模拟开环数据 \(\tilde{u} = \hat{S} \cdot r, \quad \tilde{y} = \hat{S} \cdot y\)

然后用开环方法辨识: \(\hat{G} = \arg\min_G ||\tilde{y} - G \cdot \tilde{u}||^2\)

12.6.6 预测误差方法的闭环扩展

考虑闭环下的预测误差:

\[\varepsilon(t, \theta) = H^{-1}(\theta)[y(t) - G(\theta)u(t)]\]

其中 $u(t) = C[r(t) - y(t)]$

优化准则: \(\hat{\theta} = \arg\min_\theta \sum_{t=1}^N \varepsilon^2(t, \theta)\)

12.7 实践考虑

12.7.1 实验设计

激励信号选择

  1. PRBS(伪随机二进制序列)
    • 宽频谱特性
    • 实现简单
    • 适合线性系统
  2. 多正弦信号: \(u(t) = \sum_{k=1}^M A_k \sin(\omega_k t + \phi_k)\)
    • 精确控制频率内容
    • 避免非线性失真
  3. Chirp信号: \(u(t) = A \sin(\omega(t) \cdot t)\) 其中 $\omega(t)$ 线性增长

采样率选择

数据长度

12.7.2 预处理

  1. 去趋势:消除直流偏移和线性趋势
  2. 滤波:去除高频噪声
  3. 归一化:改善数值条件
  4. 异常值处理:检测和处理离群点

12.7.3 模型验证

残差分析

交叉验证

FIT值: \(\text{FIT} = 100 \times \left(1 - \frac{||y - \hat{y}||}{||y - \bar{y}||}\right) \%\)

12.7.4 模型阶次选择

信息准则

其中 $p$ 是参数数量,$\hat{\sigma}^2$ 是残差方差。

12.8 案例研究:锂电池等效电路模型辨识

12.8.1 问题背景

锂离子电池的精确建模对电池管理系统(BMS)至关重要。等效电路模型(ECM)因其简单性和实用性被广泛采用。我们需要从充放电数据中辨识模型参数,用于SOC(State of Charge)估计和健康状态监测。

12.8.2 二阶RC等效电路模型

     R0
I →──/\/\/──┬──────────────────→ V
            │
           ┌┴┐    R1        R2
           │ │OCV  ║         ║
           └┬┘    ┌┴┐       ┌┴┐
            │     │C1│      │C2│
            │     └┬┘       └┬┘
            │      │         │
            └──────┴─────────┘

模型方程: \(V(t) = OCV(SOC) - I(t)R_0 - V_1(t) - V_2(t)\)

其中RC网络动态: \(\begin{aligned} \dot{V}_1 &= -\frac{1}{R_1C_1}V_1 + \frac{1}{C_1}I \\ \dot{V}_2 &= -\frac{1}{R_2C_2}V_2 + \frac{1}{C_2}I \end{aligned}\)

12.8.3 辨识流程

步骤1:OCV-SOC曲线辨识

通过低倍率充放电实验,获取准静态OCV-SOC关系: \(OCV(SOC) = a_0 + a_1 \cdot SOC + a_2 \cdot SOC^2 + \cdots + a_n \cdot SOC^n\)

使用最小二乘拟合多项式系数。

步骤2:内阻R0辨识

通过脉冲放电测试,测量瞬时电压跌落: \(R_0 = \frac{\Delta V_{instant}}{\Delta I}\)

步骤3:RC参数辨识

离散化RC网络方程(采样时间 $T_s$): \(\begin{aligned} V_1(k+1) &= e^{-T_s/(R_1C_1)} V_1(k) + R_1(1 - e^{-T_s/(R_1C_1)}) I(k) \\ V_2(k+1) &= e^{-T_s/(R_2C_2)} V_2(k) + R_2(1 - e^{-T_s/(R_2C_2)}) I(k) \end{aligned}\)

定义参数: \(\begin{aligned} \alpha_1 &= e^{-T_s/(R_1C_1)}, \quad \beta_1 = R_1(1 - \alpha_1) \\ \alpha_2 &= e^{-T_s/(R_2C_2)}, \quad \beta_2 = R_2(1 - \alpha_2) \end{aligned}\)

构造回归模型: \(V(k) = OCV(SOC_k) - R_0 I(k) - V_1(k) - V_2(k)\)

使用递推最小二乘(RLS)在线辨识 $\alpha_i, \beta_i$。

12.8.4 实验设计

HPPC测试(Hybrid Pulse Power Characterization)

电流 I
  │     10s放电          40s休息        10s充电
  │  ┌─────────┐                    ┌─────────┐
  │  │         │                    │         │
──┼──┘         └────────────────────┘         └──
  │
  └─────────────────────时间 t

这种脉冲序列能够激发不同时间常数的动态响应。

12.8.5 参数随SOC和温度的变化

实际应用中,参数是SOC和温度的函数: \(\theta = f(SOC, T)\)

建立查找表或拟合函数: \(R_0(SOC, T) = r_{00} + r_{01} \cdot SOC + r_{10} \cdot T + r_{11} \cdot SOC \cdot T\)

12.8.6 验证结果

使用动态应力测试(DST)或联邦城市驾驶循环(FUDS)验证模型:

电压误差统计:
- 最大误差: < 50mV
- 均方根误差(RMSE): < 20mV  
- 平均绝对误差(MAE): < 15mV

12.8.7 在线参数更新

考虑电池老化,使用自适应算法在线更新参数:

\[\begin{aligned} \hat{\theta}(k) &= \hat{\theta}(k-1) + K(k) \varepsilon(k) \\ K(k) &= \frac{P(k-1)\phi(k)}{\lambda + \phi^T(k)P(k-1)\phi(k)} \\ P(k) &= \frac{1}{\lambda}[P(k-1) - K(k)\phi^T(k)P(k-1)] \end{aligned}\]

其中 $\lambda = 0.98$ 是遗忘因子,适应缓慢的老化过程。

12.9 历史人物:Lennart Ljung (1987)

Lennart Ljung 是系统辨识理论体系化的关键人物。他在1987年出版的经典著作《System Identification: Theory for the User》成为该领域的权威参考。Ljung的主要贡献包括:

  1. 预测误差方法的统一框架:将各种辨识方法统一在预测误差最小化的框架下
  2. System Identification Toolbox:开发了MATLAB系统辨识工具箱,使辨识技术广泛应用
  3. 渐近理论:建立了参数估计的统计性质理论基础
  4. 实用算法:提出了许多实用的数值算法,如Gauss-Newton迭代

他的工作将系统辨识从分散的技术集合发展成系统的学科,极大推动了控制工程的实践应用。

12.10 前沿专题:稀疏辨识与符号回归在控制中的应用

12.10.1 稀疏辨识的动机

传统辨识方法需要预先假定模型结构,而实际系统的真实结构往往未知。稀疏辨识通过数据驱动的方式自动发现系统的控制方程,特别适合:

12.10.2 SINDy算法扩展

带控制输入的SINDy(SINDyc): \(\dot{x} = \Theta(x)\Xi_x + \Theta(u)\Xi_u\)

噪声鲁棒的SINDy: 使用积分形式减少噪声影响: \(x(t) - x(0) = \int_0^t \Theta(x(\tau), u(\tau))\xi d\tau\)

约束SINDy: 加入物理约束(如能量守恒): \(\begin{aligned} \min_\xi &\quad ||\dot{X} - \Theta\xi||_2^2 + \lambda||\xi||_1 \\ \text{s.t.} &\quad C\xi = d \end{aligned}\)

12.10.3 符号回归方法

遗传编程(GP): 通过进化算法搜索函数空间:

  1. 初始化:随机生成表达式树群体
  2. 评估:计算每个表达式的拟合误差
  3. 选择:选择适应度高的个体
  4. 交叉变异:生成新的表达式
  5. 迭代直到收敛

深度符号回归: 结合神经网络和符号回归:

12.10.4 在控制中的应用

模型预测控制的符号化: 将复杂的MPC策略蒸馏为简单的符号表达式: \(u = f_{symbolic}(x, r)\)

优势:

未知动力学的自适应控制

  1. 在线稀疏辨识系统动力学
  2. 基于辨识模型设计控制器
  3. 持续更新模型和控制器

12.11 本章小结

系统辨识是连接理论与实践的桥梁,本章介绍了从经典到现代的主要辨识方法:

核心概念

  1. 参数估计:最小二乘、极大似然、预测误差方法
  2. 频域方法:谱分析、频率响应拟合
  3. 子空间方法:直接从数据辨识状态空间模型
  4. 非线性辨识:Hammerstein-Wiener、NARMAX、神经网络
  5. 闭环辨识:处理反馈存在下的辨识问题

关键公式

实践要点

12.12 练习题

基础题

习题12.1 最小二乘估计的性质 给定线性回归模型 $y = X\theta + e$,其中 $e \sim \mathcal{N}(0, \sigma^2I)$。证明最小二乘估计 $\hat{\theta}_{LS}$ 是无偏的,并求其协方差矩阵。

提示:利用 $E[e] = 0$ 和 $\text{Cov}(e) = \sigma^2I$

答案 无偏性证明: $$E[\hat{\theta}_{LS}] = E[(X^TX)^{-1}X^Ty] = (X^TX)^{-1}X^T E[X\theta + e] = \theta$$ 协方差矩阵: $$\text{Cov}(\hat{\theta}_{LS}) = (X^TX)^{-1}X^T \text{Cov}(y) X(X^TX)^{-1} = \sigma^2(X^TX)^{-1}$$

习题12.2 持续激励条件 考虑一阶系统 $y(k) = ay(k-1) + bu(k-1) + e(k)$。如果输入信号是常数 $u(k) = c$,能否唯一辨识参数 $a$ 和 $b$?说明原因。

提示:考虑信息矩阵的秩

答案 不能唯一辨识。当输入为常数时,稳态下 $y(k) = y_{ss} = \frac{bc}{1-a}$。只能得到一个约束方程,无法唯一确定两个参数。信息矩阵秩亏,需要输入信号至少包含两个不同频率成分。

习题12.3 模型阶次选择 给定一组数据,使用不同阶次的ARX模型拟合,得到:

数据长度 $N = 100$。使用AIC准则选择最佳阶次。

提示:$\text{AIC} = N\log(\hat{\sigma}^2) + 2p$

答案 计算各阶AIC值: - 2阶:$\text{AIC}_2 = 100\log(1.2) + 2(4) = 18.23 + 8 = 26.23$ - 3阶:$\text{AIC}_3 = 100\log(1.0) + 2(6) = 0 + 12 = 12$ - 4阶:$\text{AIC}_4 = 100\log(0.95) + 2(8) = -5.13 + 16 = 10.87$ 选择4阶模型(AIC最小)。

挑战题

习题12.4 闭环可辨识性分析 系统 $G(s) = \frac{K}{s+a}$ 在单位负反馈下运行。参考输入 $r(t)$ 是白噪声。分析: (a) 能否同时辨识 $K$ 和 $a$? (b) 如果控制器改为 $C(s) = K_p + \frac{K_i}{s}$,可辨识性如何变化?

提示:分析闭环传递函数的参数化

答案 (a) 闭环传递函数:$T(s) = \frac{K}{s+a+K}$。只能辨识 $a+K$ 的组合,不能分别辨识 $K$ 和 $a$。 (b) 使用PI控制器后,闭环特征方程变为二阶,包含 $s^2 + (a+KK_p)s + KK_i = 0$。如果 $K_p$ 和 $K_i$ 已知,可以唯一确定 $K$ 和 $a$。

习题12.5 子空间方法的数值实现 给定输入输出数据,实现MOESP算法的关键步骤。设系统阶次未知,如何从奇异值确定阶次?给出判断准则。

提示:观察奇异值的”膝点”

答案 阶次选择准则: 1. 奇异值比:$\sigma_{n+1}/\sigma_n < \epsilon$(如0.01) 2. 累积能量:$\sum_{i=1}^n \sigma_i^2 / \sum_{i=1}^{2i} \sigma_i^2 > 0.99$ 3. 奇异值间隙:$\max_i(\sigma_i - \sigma_{i+1})$ 对应的 $i$ 为阶次 实践中常结合多个准则,并通过验证数据确认。

习题12.6 电池模型的实时辨识 设计一个实时算法,在电动汽车运行中持续更新电池模型参数。要求: (a) 计算复杂度 $O(n^2)$ 以内 (b) 能处理参数突变(如温度变化) (c) 保证数值稳定性

提示:考虑带遗忘因子的RLS或滑动窗口方法

答案 推荐方案:带遗忘因子和协方差重置的RLS ``` 初始化:θ(0), P(0) = αI 循环: 1. 计算预测误差:ε = y - φ'θ 2. 更新增益:K = Pφ/(λ + φ'Pφ) 3. 更新参数:θ = θ + Kε 4. 更新协方差:P = (P - Kφ'P)/λ 5. 监测突变:if |ε| > threshold, P = αI 6. 数值稳定:每N步做P = (P + P')/2 ``` 复杂度:$O(n^2)$ per sample

习题12.7 非线性系统的SINDy辨识 考虑Lorenz系统的部分观测(只测量 $x$ 和 $y$)。设计稀疏辨识方案恢复完整动力学。讨论库函数选择和正则化参数调节。

提示:利用时延嵌入重构状态空间

答案 方案: 1. 时延嵌入:$\tilde{x} = [x(t), y(t), x(t-τ), y(t-τ), x(t-2τ), y(t-2τ)]$ 2. 候选库:多项式到3阶 + 交叉项 3. 分步辨识:先辨识 $\dot{x}, \dot{y}$,再通过数值微分估计 $z$ 4. 正则化:使用交叉验证选择 $\lambda$,典型范围 $[0.001, 0.1]$ 关键:选择合适的延迟 $τ$ 使嵌入空间展开吸引子。

习题12.8 开放性问题:深度学习与经典辨识的结合 讨论如何结合深度学习的表达能力和经典辨识的理论保证。设计一个混合框架,用于辨识具有未知非线性但需要稳定性保证的控制系统。考虑:

答案 建议框架: 1. **结构**:线性骨架 + 神经网络残差 $$\dot{x} = Ax + Bu + f_{NN}(x,u)$$ 其中 $A$ 保证稳定,$f_{NN}$ 有界 2. **训练**: - 第一阶段:经典方法辨识线性部分 - 第二阶段:固定线性,训练NN拟合残差 - 第三阶段:联合微调 3. **稳定性**: - Lipschitz约束:谱归一化 - Lyapunov正则化:$\mathcal{L} = \mathcal{L}_{fit} + \lambda \max(0, \dot{V})$ 4. **在线更新**: - 线性部分:RLS - 非线性部分:小批量SGD - 切换逻辑:基于预测误差

12.13 常见陷阱与错误(Gotchas)

数据相关陷阱

  1. 数据质量问题
    • 陷阱:忽视传感器噪声、量化误差、采样抖动
    • 解决:预滤波、过采样后降采样、时间戳校正
  2. 激励不充分
    • 陷阱:使用单频正弦或阶跃信号辨识高阶系统
    • 解决:PRBS、chirp或多正弦激励,验证持续激励条件
  3. 非线性影响
    • 陷阱:线性模型辨识时忽视饱和、死区等非线性
    • 解决:选择工作点、分段线性化、使用非线性模型

算法相关陷阱

  1. 初值敏感性
    • 陷阱:非线性优化陷入局部最优
    • 解决:多初值尝试、全局优化方法、物理直觉指导
  2. 过拟合
    • 陷阱:模型阶次过高,训练误差小但泛化差
    • 解决:交叉验证、信息准则、正则化
  3. 数值问题
    • 陷阱:信息矩阵病态导致数值不稳定
    • 解决:数据归一化、正则化、SVD代替直接求逆

实施相关陷阱

  1. 闭环忽视
    • 陷阱:闭环数据用开环方法导致偏差
    • 解决:使用专门的闭环辨识方法
  2. 时变忽视
    • 陷阱:固定参数模型用于时变系统
    • 解决:滑动窗口、遗忘因子、自适应算法
  3. 延迟处理
    • 陷阱:忽略系统延迟导致模型错位
    • 解决:同时辨识延迟、互相关分析确定延迟

调试技巧

12.14 最佳实践检查清单

实验设计阶段

数据采集阶段

预处理阶段

模型选择阶段

参数估计阶段

验证阶段

应用阶段