control_tutorial

第11章:自适应控制

本章概述

自适应控制是处理参数不确定性和时变系统的重要方法。与鲁棒控制不同,自适应控制通过在线估计和调整控制器参数来应对系统的不确定性。本章将系统介绍模型参考自适应控制(MRAC)、自校正调节器、参数估计理论以及鲁棒自适应控制的设计方法。我们将通过X-15高超音速飞机和UR5协作机械臂的实际案例,展示自适应控制在极端环境和变负载条件下的应用。

11.1 自适应控制的基本概念

11.1.1 为什么需要自适应控制

传统的固定增益控制器在面对以下情况时性能会显著下降:

  1. 参数不确定性:系统的物理参数(如质量、惯量、气动系数)存在较大的不确定性
    • 制造公差导致的参数分散
    • 环境条件(温度、湿度)影响材料特性
    • 老化和磨损引起的性能退化
  2. 时变特性:系统参数随时间缓慢变化(如飞机燃料消耗导致质量变化)
    • 燃料消耗:大型运输机起飞重量的30-40%可能是燃料
    • 结构疲劳:材料刚度随循环载荷次数下降
    • 热效应:高速飞行产生的气动加热改变结构特性
  3. 工作点变化:系统在大范围工作条件下运行(如高超音速飞行器的不同马赫数)
    • 非线性系统的线性化模型随工作点显著变化
    • 不同工作模式需要不同的控制策略
    • 环境扰动特性随工作条件变化
  4. 负载变化:外部负载的大幅变化(如机械臂抓取不同重量的物体)
    • 工业机器人处理产品重量范围可达10:1
    • 物流机器人需适应不同包裹尺寸和重量
    • 协作机器人与人类交互时的动态负载

自适应控制通过实时调整控制器参数来维持期望的闭环性能。与增益调度等传统方法相比,自适应控制的优势在于:

11.1.2 自适应控制的分类

                自适应控制
                    |
        +-----------+-----------+
        |                       |
    直接自适应                间接自适应
        |                       |
    直接调整                 先辨识参数
    控制器参数               再计算控制器
        |                       |
   +----+----+             +----+----+
   |         |             |         |
  MRAC    L1-AC         STR      MIAC
  
  模型参考   L1架构      自校正    多模型
  自适应    自适应      调节器    间接自适应

直接自适应控制的特点:

间接自适应控制的特点:

混合方法

11.1.3 自适应控制的关键挑战

  1. 稳定性保证:参数自适应可能导致闭环系统不稳定
    • 快速自适应可能激发未建模动态
    • 参数估计误差可能导致不稳定的控制器
    • 时变系统的稳定性分析更加复杂
    • 需要仔细设计自适应律保证Lyapunov稳定性
  2. 瞬态性能:初始自适应阶段可能出现大的瞬态响应
    • 参数初值误差大时的过渡过程
    • 自适应速度与瞬态性能的权衡
    • 突然的参数变化引起的瞬态
    • 需要瞬态性能约束和改进技术
  3. 鲁棒性问题:对未建模动态和扰动敏感
    • 高频未建模动态可能被错误补偿
    • 测量噪声影响参数估计精度
    • 外部扰动与参数变化难以区分
    • 需要鲁棒化修正(σ-修正、死区等)
  4. 持续激励:需要足够的激励信号才能准确估计参数
    • 稳态运行时缺乏激励导致参数漂移
    • 激励信号与控制性能的矛盾
    • 多参数系统需要更丰富的激励
    • 并发学习等技术缓解PE要求
  5. 计算复杂度:实时实现的挑战
    • 高维系统的在线参数估计
    • 复杂自适应律的实时计算
    • 嵌入式系统的资源限制
    • 需要高效的数值算法
  6. 多目标权衡
    • 跟踪性能 vs. 控制能量
    • 自适应速度 vs. 噪声敏感性
    • 探索(参数估计)vs. 利用(控制性能)
    • 需要合理的性能指标和优化策略

11.1.4 自适应控制的历史发展

自适应控制的发展历程反映了控制理论与工程需求的相互推动:

1950s - 萌芽期

1960s - 理论奠基

1970s - 工业应用

1980s - 鲁棒性研究

1990s - 非线性扩展

2000s - 新架构

2010s至今 - 智能化融合

11.2 模型参考自适应控制(MRAC)

11.2.1 MRAC基本结构

MRAC的核心思想是使被控对象的输出跟踪一个理想参考模型的输出:

    r(t) ──┬──→ [参考模型] ──→ ym(t) ─┐
           │                          │ e(t)
           │                          ├─→ (-)
           │                          │
           ├──→ [可调控制器] ──→ [对象] ──→ y(t)
           │         ↑
           │         │
           └─────[自适应律]←──────────┘

11.2.2 MIT规则

最早的自适应律之一,基于梯度下降最小化误差,由MIT仪器实验室在1950年代末为X-15项目开发:

基本推导

考虑简单的一阶系统: \(\dot{y} = -ay + bu\)

其中 $a > 0$ 未知,$b > 0$ 已知。

参考模型(描述期望的闭环响应): \(\dot{y}_m = -a_m y_m + b_m r\)

通常选择 $a_m$ 和 $b_m$ 使得参考模型具有期望的时间常数和稳态增益。

控制律: \(u = \theta_1 r - \theta_2 y\)

目标是调整 $\theta_1$ 和 $\theta_2$ 使得输出跟踪误差 $e = y - y_m → 0$。

MIT规则推导

定义代价函数: \(J(\theta) = \frac{1}{2}e^2(t)\)

MIT规则使用梯度下降法: \(\dot{\theta} = -\gamma \nabla_\theta J = -\gamma e \frac{\partial e}{\partial \theta}\)

其中 $\gamma > 0$ 是自适应增益。

计算灵敏度导数需要假设参数变化缓慢(准静态假设): \(\frac{\partial e}{\partial \theta_1} \approx \frac{b_m}{s + a_m} r\) \(\frac{\partial e}{\partial \theta_2} \approx -\frac{b_m}{s + a_m} y\)

因此自适应律为: \(\dot{\theta}_1 = -\gamma e \frac{b_m}{s + a_m} r\) \(\dot{\theta}_2 = \gamma e \frac{b_m}{s + a_m} y\)

MIT规则的局限性

  1. 局部稳定性:只能保证小扰动下的稳定性
  2. 增益选择困难:$\gamma$ 过大导致不稳定,过小收敛慢
  3. 无鲁棒性保证:对噪声和未建模动态敏感
  4. 需要系统知识:需要知道 $b$ 的符号和参考模型

11.2.3 Lyapunov方法设计MRAC

为保证全局稳定性,Parks(1966)提出使用Lyapunov方法设计自适应律,这成为现代自适应控制的基础:

问题设定

考虑n阶SISO系统: \(\dot{x} = Ax + bu\) \(y = c^T x\)

其中 $A$, $b$ 包含未知参数。

参考模型: \(\dot{x}_m = A_m x_m + b_m r\) \(y_m = c^T x_m\)

控制律采用状态反馈形式: \(u = \theta^T \omega\)

其中 $\omega = [x^T, r]^T$ 是回归向量。

Lyapunov设计步骤

步骤1:定义误差动态

跟踪误差:$e = x - x_m$

理想参数 $\theta^*$ 使得闭环系统匹配参考模型: \(A + b\theta^{*T}[I, 0] = A_m\) \(b\theta^{*T}[0, 1] = b_m\)

误差动态: \(\dot{e} = A_m e + b\tilde{\theta}^T \omega\)

其中 $\tilde{\theta} = \theta - \theta^*$ 是参数误差。

步骤2:构造Lyapunov函数

选择Lyapunov函数包含两部分: \(V(e, \tilde{\theta}) = e^T P e + \tilde{\theta}^T \Gamma^{-1} \tilde{\theta}\)

其中:

步骤3:计算Lyapunov函数导数

\[\dot{V} = \dot{e}^T P e + e^T P \dot{e} + 2\tilde{\theta}^T \Gamma^{-1} \dot{\tilde{\theta}}\]

代入误差动态: \(\dot{V} = e^T(A_m^T P + P A_m)e + 2e^T P b\tilde{\theta}^T \omega + 2\tilde{\theta}^T \Gamma^{-1} \dot{\theta}\)

\[= -e^T Q e + 2\tilde{\theta}^T(\omega e^T P b + \Gamma^{-1} \dot{\theta})\]

步骤4:设计自适应律

选择自适应律使括号项为零: \(\dot{\theta} = -\Gamma \omega e^T P b\)

这样保证: \(\dot{V} = -e^T Q e \leq 0\)

稳定性分析

根据LaSalle不变性原理:

实用考虑

  1. P矩阵的选择
    • 通常选择 $Q = I$ 求解Lyapunov方程
    • P的条件数影响自适应速度
  2. 增益矩阵Γ的调整
    • 大的Γ加快收敛但可能引起振荡
    • 可以使用时变增益:$\Gamma(t) = \Gamma_0 e^{-\alpha t} + \Gamma_{\infty}$
  3. 实现形式
    function [u, theta_dot] = mrac_control(x, r, theta, Am, bm, P, Gamma)
        omega = [x; r];
        e = x - xm;  % xm from reference model
        theta_dot = -Gamma * omega * (e' * P * bm);
        u = theta' * omega;
    end
    

11.2.4 归一化和投影修正

归一化修正

当回归向量 $\omega$ 幅值很大时,自适应律可能放大噪声。归一化修正通过动态调整增益解决这个问题:

标准归一化: \(\dot{\theta} = -\frac{\Gamma \omega e^T P b_m}{1 + \omega^T \omega}\)

动态归一化(更平滑): \(\dot{\theta} = -\frac{\Gamma \omega e^T P b_m}{m^2}\) \(\dot{m}^2 = -\beta m^2 + \omega^T \omega, \quad m^2(0) = 1\)

其中 $\beta > 0$ 是遗忘因子。

归一化的优点

投影算子

当参数的物理范围已知时,投影算子确保参数估计始终在合理范围内:

凸集投影: 设参数约束集合 $\Theta = {\theta : f(\theta) \leq 0}$ 是凸集。

投影算子定义: \(\text{Proj}_\Theta(\tau) = \begin{cases} \tau & \text{if } \theta \in \text{int}(\Theta) \\ \tau & \text{if } f(\theta) = 0 \text{ and } \nabla f^T \tau \leq 0 \\ \tau - \frac{\nabla f^T \tau}{||\nabla f||^2} \nabla f & \text{otherwise} \end{cases}\)

矩形约束(最常用): 对于 $\theta_i \in [\theta_{i,min}, \theta_{i,max}]$:

\[[\text{Proj}_\Theta(\tau)]_i = \begin{cases} 0 & \text{if } \theta_i = \theta_{i,min} \text{ and } \tau_i < 0 \\ 0 & \text{if } \theta_i = \theta_{i,max} \text{ and } \tau_i > 0 \\ \tau_i & \text{otherwise} \end{cases}\]

投影的性质

  1. 保持Lyapunov稳定性:$(\theta - \theta^*)^T(\text{Proj}_\Theta(\tau) - \tau) \leq 0$
  2. 参数始终在约束集内
  3. 不影响收敛性证明

组合使用示例

实际系统中常组合使用归一化和投影:

function theta_dot = adaptive_law_robust(e, omega, theta, params)
    % 基本自适应律
    tau = -params.Gamma * omega * (e' * params.P * params.b);
    
    % 归一化
    m2 = 1 + omega' * omega;
    tau_norm = tau / m2;
    
    % 投影到约束集
    theta_dot = projection(theta, tau_norm, params.theta_min, params.theta_max);
end

这种组合提供了:

11.3 自校正调节器(STR)

11.3.1 间接自适应控制原理

自校正调节器(Self-Tuning Regulator)是Åström和Wittenmark在1973年提出的间接自适应控制方法,在过程控制中获得广泛应用。

基本原理

STR采用分离原理(Separation Principle):

  1. 参数估计:在线辨识系统参数
    • 使用输入输出数据估计模型参数
    • 典型方法:递推最小二乘(RLS)
    • 可以获得参数不确定性信息
  2. 控制器计算:基于估计参数计算最优控制器
    • 求解控制设计方程(如Diophantine方程)
    • 可以使用各种控制设计方法
    • 控制器参数随模型参数更新
  3. 确定性等价原理:将估计值当作真实值使用
    • 忽略参数不确定性的影响
    • 简化控制器设计
    • 在某些条件下是最优的

STR的结构

         ┌─────────────────────────────────┐
         │        参数估计器              │
         │   θ̂(t) = f(y(t), u(t), θ̂(t-1))  │
         └────────────┬──────────────────┘
                      │ θ̂(t)
         ┌────────────v──────────────────┐
         │      控制器设计               │
         │   K(t) = g(θ̂(t), specs)      │
         └────────────┬──────────────────┘
                      │ K(t)
    r(t) ──→(+)──→[控制器]──→ u(t) ──→[对象]──→ y(t)
           -↑                               │
            └───────────────────────────────┘

与MRAC的比较

特性 STR(间接) MRAC(直接)
参数估计 显式估计系统参数 直接调整控制器参数
计算复杂度 较高(需要求解设计方程) 较低
灵活性 高(可改变控制目标) 低(固定参考模型)
参数信息 可用于监控诊断 无物理意义
稳定性分析 较复杂 相对简单

11.3.2 递推最小二乘(RLS)参数估计

递推最小二乘是STR中最常用的参数估计方法,具有良好的收敛性和计算效率。

模型参数化

考虑ARMAX模型: \(A(q^{-1})y(t) = B(q^{-1})u(t-d) + C(q^{-1})e(t)\)

展开为: \(y(t) + a_1y(t-1) + ... + a_ny(t-n) = b_0u(t-d) + ... + b_mu(t-d-m) + e(t) + c_1e(t-1) + ... + c_pe(t-p)\)

线性参数化形式: \(y(t) = \phi^T(t)\theta + e(t)\)

其中:

RLS算法详解

目标函数(加权最小二乘): \(J(\theta) = \sum_{i=1}^{t} \lambda^{t-i}[y(i) - \phi^T(i)\theta]^2\)

其中 $\lambda \in (0, 1]$ 是遗忘因子,给近期数据更大权重。

RLS递推公式

初始化:
    P(0) = αI,  α ∈ [100, 10000]  // 大的α表示参数不确定性大
    θ̂(0) = θ₀  // 初始猜测,可以是零或基于先验知识
    
每个采样时刻 t:
    1. 构造回归向量: φ(t) = [-y(t-1), ..., u(t-d), ...]
    
    2. 计算预测误差: 
       ŷ(t|t-1) = φ(t)ᵀθ̂(t-1)
       ε(t) = y(t) - ŷ(t|t-1)
    
    3. 计算卡尔曼增益:
       K(t) = P(t-1)φ(t) / [λ + φ(t)ᵀP(t-1)φ(t)]
    
    4. 更新参数估计:
       θ̂(t) = θ̂(t-1) + K(t)ε(t)
    
    5. 更新协方差矩阵:
       P(t) = [I - K(t)φ(t)ᵀ]P(t-1)/λ
       // 或数值更稳定的形式:
       P(t) = [P(t-1) - K(t)φ(t)ᵀP(t-1)]/λ

遗忘因子的选择

遗忘因子 $\lambda$ 控制历史数据的权重衰减:

数值稳定性改进

  1. 协方差矩阵复位
    if trace(P) < threshold_min || trace(P) > threshold_max
        P = alpha * eye(n);
    end
    
  2. UD分解: 将 $P = UDU^T$ 分解,分别更新U和D,避免数值误差累积

  3. 平方根滤波: 更新 $P^{1/2}$ 而不是 $P$,保证正定性

修正和扩展

1. 带死区的RLS

if abs(epsilon) > delta
    theta = theta + K * epsilon;
    P = (P - K * phi' * P) / lambda;
end

2. 变遗忘因子: \(\lambda(t) = \lambda_0 \lambda(t-1) + (1 - \lambda_0)\) 自动调整遗忘因子以平衡跟踪和估计精度

3. 方向遗忘: 只在激励方向上遗忘,保持其他方向的信息: \(P(t) = \frac{1}{\lambda_1}P(t-1) + \left(\frac{1}{\lambda_2} - \frac{1}{\lambda_1}\right)\frac{P(t-1)\phi(t)\phi^T(t)P(t-1)}{\phi^T(t)P(t-1)\phi(t)}\)

11.3.3 最小方差控制器设计

基于估计的参数,设计使输出方差最小的控制器:

Diophantine方程: \(A(q^{-1})E(q^{-1}) + q^{-d}F(q^{-1}) = C(q^{-1})\)

控制律: \(G(q^{-1})u(t) = H(q^{-1})r(t) - F(q^{-1})y(t)\)

其中 $G = B \cdot E$,$H$ 根据跟踪要求设计。

11.3.4 极点配置自校正调节器

指定闭环极点位置 $A_c(q^{-1})$:

求解Diophantine方程: \(A(q^{-1})R(q^{-1}) + B(q^{-1})S(q^{-1}) = A_c(q^{-1})\)

控制律: \(R(q^{-1})u(t) = T(q^{-1})r(t) - S(q^{-1})y(t)\)

11.4 参数估计与持续激励

11.4.1 持续激励条件

参数可辨识的必要条件是信号具有足够的激励:

定义:信号 $\phi(t)$ 满足持续激励(PE)条件,如果存在 $T > 0$,$\alpha > 0$ 使得: \(\frac{1}{T}\int_t^{t+T} \phi(\tau)\phi^T(\tau)d\tau \geq \alpha I\)

物理意义:信号必须在所有方向上都有足够的能量,才能辨识所有参数。

11.4.2 参数收敛性分析

定理:如果回归向量 $\phi(t)$ 满足PE条件,且噪声有界,则RLS算法的参数估计误差指数收敛: \(||\tilde{\theta}(t)|| \leq \beta e^{-\lambda t}||\tilde{\theta}(0)|| + \epsilon\)

11.4.3 激励信号设计

探测信号类型

  1. PRBS(伪随机二进制序列):频谱丰富,实施简单
  2. 多正弦信号:精确控制频率成分
  3. Chirp信号:连续扫频
  4. 最优实验设计:最大化Fisher信息矩阵

自适应探测:根据参数不确定性动态调整探测幅度: \(u_{probe}(t) = \alpha(t) \cdot \text{PRBS}(t)\) \(\alpha(t) = \alpha_{min} + (\alpha_{max} - \alpha_{min})e^{-\gamma t}\)

11.5 鲁棒自适应控制

11.5.1 自适应控制的鲁棒性问题

传统自适应控制对以下因素敏感:

  1. 未建模动态:高频动态可能导致不稳定
  2. 外部扰动:扰动可能被误认为参数变化
  3. 参数漂移:无PE时参数可能漂移到不合理值

11.5.2 σ-修正和ε-修正

σ-修正(Ioannou-Kokotovic): \(\dot{\theta} = -\Gamma \omega e - \sigma \Gamma \theta\)

添加参数衰减项,防止参数无界增长。

ε-修正: \(\dot{\theta} = \begin{cases} -\Gamma \omega e & \text{if } |e| > \epsilon_0 \\ 0 & \text{if } |e| \leq \epsilon_0 \end{cases}\)

死区修正,小误差时停止自适应。

11.5.3 L1自适应控制

L1自适应控制通过快速自适应和低通滤波实现鲁棒性:

状态预测器: \(\dot{\hat{x}} = A_m \hat{x} + b_m(u + \hat{\sigma})\)

自适应律(快速): \(\dot{\hat{\sigma}} = -\Gamma \text{Proj}(\hat{\sigma}, -b_m^T P \tilde{x})\)

控制律(带滤波): \(u(s) = C(s)(\hat{\sigma}(s) - k_g r(s))\)

其中 $C(s)$ 是低通滤波器,分离自适应和控制带宽。

11.5.4 复合自适应控制

结合直接和间接方法,利用预测误差和跟踪误差:

\[\dot{\theta} = -\Gamma_1 \omega_1 e_1 - \Gamma_2 \omega_2 e_2\]

其中 $e_1$ 是跟踪误差,$e_2$ 是预测误差。

11.6 案例研究1:X-15高超音速飞机自适应控制

11.6.1 背景与挑战

X-15是人类首架高超音速飞机(最高6.7马赫),面临的控制挑战:

  1. 极端飞行包线:从亚音速到6倍音速,高度从海平面到100km
  2. 气动特性剧变:气动系数随马赫数和高度变化数个量级
  3. 热效应:高温导致结构变形,改变气动特性
  4. 控制面效率变化:不同飞行条件下舵效相差极大

11.6.2 纵向运动模型

简化的纵向动力学: \(\begin{bmatrix} \dot{\alpha} \\ \dot{q} \\ \dot{\theta} \end{bmatrix} = \begin{bmatrix} Z_\alpha/V & 1-Z_q/V & 0 \\ M_\alpha & M_q & 0 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} \alpha \\ q \\ \theta \end{bmatrix} + \begin{bmatrix} Z_\delta/V \\ M_\delta \\ 0 \end{bmatrix} \delta_e\)

其中气动导数 $Z_\alpha$, $M_\alpha$, $M_q$, $M_\delta$ 随飞行条件大幅变化。

11.6.3 MRAC设计

参考模型(期望的驾驶品质): \(\omega_n = 3 \text{ rad/s}, \quad \zeta = 0.7\)

控制结构

飞行员指令 r → [前馈] ──┐
                      ├→ (+) → [飞机] → θ
状态 [α,q,θ] → [反馈增益] ─┘
                    ↑
              [自适应律] ← 误差 e

自适应增益设计: \(K(t) = K_{nominal} + \Delta K(t)\)

其中 $\Delta K(t)$ 通过Lyapunov方法在线调整。

11.6.4 飞行测试结果

实际飞行数据显示:

关键经验:

  1. 自适应速率需根据飞行阶段调整
  2. 必须限制参数变化范围防止过度自适应
  3. 切换逻辑在极端条件下保证安全

11.7 案例研究2:UR5协作机械臂负载自适应控制

11.7.1 问题描述

UR5协作机械臂在工业应用中需要处理:

11.7.2 机械臂动力学模型

6自由度机械臂动力学方程: \(M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) + F_f(\dot{q}) = \tau + J^T(q)F_{ext}\)

负载影响主要体现在:

11.7.3 自适应控制器设计

参数化: 将动力学方程重写为线性参数形式: \(M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = Y(q,\dot{q},\ddot{q})\theta\)

其中 $\theta$ 包含负载质量、重心位置等参数。

控制律: \(\tau = Y(q,\dot{q},\ddot{q}_r)\hat{\theta} + K_p \tilde{q} + K_d \dot{\tilde{q}}\)

其中 $\ddot{q}_r = \ddot{q}_d - \Lambda \dot{\tilde{q}}$。

自适应律: \(\dot{\hat{\theta}} = -\Gamma Y^T(q,\dot{q},\ddot{q}_r)s\)

其中 $s = \dot{\tilde{q}} + \Lambda \tilde{q}$ 是滑模变量。

11.7.4 实验结果与性能分析

实验设置

  1. 任务:笛卡尔空间圆形轨迹跟踪
  2. 负载变化:0kg → 2kg → 5kg → 3kg(带偏心)
  3. 性能指标:位置误差RMS、力矩使用率

结果对比

控制方法        位置误差(mm)   力矩峰值(Nm)   适应时间(s)
固定PD          8.5           120           -
增益调度        4.2           95            -  
自适应控制      1.8           78            3.5

关键实现细节

  1. 初始参数:使用标称负载参数作为初值
  2. 安全监控:限制参数变化率和范围
  3. 复位逻辑:检测到大负载变化时快速复位

11.7.5 人机协作场景扩展

导纳控制框架下的自适应: \(M_d \ddot{x} + B_d \dot{x} + K_d x = F_{ext}\)

自适应调整虚拟惯量 $M_d$ 以适应不同负载: \(M_d = M_{d0} + \alpha \hat{m}_{load}\)

这样保证了一致的人机交互体验。

11.8 先进话题:并发学习与复合自适应

11.8.1 并发学习原理

传统自适应控制需要PE条件,并发学习利用历史数据放松这一要求:

数据存储: 保存信息丰富的数据点: \(\mathcal{H} = \{(x_i, u_i, \dot{x}_i)\}_{i=1}^N\)

并发学习自适应律: \(\dot{\hat{\theta}} = -\Gamma_1 \omega e - \Gamma_2 \sum_{i=1}^N Y_i^T(\hat{\theta})(\dot{x}_i - f(x_i) - g(x_i)u_i)\)

11.8.2 数据选择策略

最小特征值最大化: 选择使信息矩阵特征值最大的数据: \(\max_{\mathcal{H}} \lambda_{min}\left(\sum_{i \in \mathcal{H}} Y_i^T Y_i\right)\)

覆盖准则: 确保数据覆盖状态空间的不同区域。

11.8.3 有限时间收敛

结合滑模技术实现参数有限时间收敛: \(\dot{\hat{\theta}} = -\Gamma \text{sign}(Y^T s)\)

11.9 历史人物:Karl Åström

Karl Johan Åström(1934-)是自适应控制理论的奠基人之一。

主要贡献

  1. 自校正调节器(1973):首个实用的自适应控制算法
  2. 最小方差控制:随机系统的自适应控制
  3. 双重控制:同时考虑控制和学习的最优策略

经典语录

“The essential feature of adaptive control is the ability to adjust controller parameters in real-time based on observed system behavior.”

工业影响: Åström的工作直接促进了自适应控制在造纸、化工等过程工业的广泛应用。他的教材《Adaptive Control》影响了几代控制工程师。

11.10 前沿专题:深度学习增强的自适应控制

11.10.1 神经网络自适应控制

使用神经网络逼近未知非线性: \(f(x) = W^T \sigma(V^T x) + \epsilon\)

权重更新: \(\dot{W} = -\Gamma_W \sigma(V^T x) e^T P b\) \(\dot{V} = -\Gamma_V x (\sigma'(V^T x) \odot W) e^T P b\)

11.10.2 元学习自适应控制

利用多任务经验加速新任务的自适应:

MAML框架应用

  1. 收集多个相似系统的控制经验
  2. 学习良好的初始控制器参数
  3. 新任务上快速自适应(few-shot)

11.10.3 安全性保证

控制屏障函数(CBF)约束: \(\dot{\hat{\theta}} = \text{Proj}_{safe}(-\Gamma \omega e)\)

其中投影确保安全约束: \(h(x) + \alpha \dot{h}(x,u) \geq 0\)

本章小结

自适应控制提供了处理参数不确定性和时变系统的系统化方法。关键要点:

  1. MRAC vs STR:直接调整控制器 vs 先辨识后控制
  2. 稳定性设计:Lyapunov方法保证收敛性
  3. 持续激励:参数收敛的必要条件
  4. 鲁棒性增强:σ-修正、死区、L1控制
  5. 实际应用:需要考虑安全性、瞬态性能、计算效率

设计流程

  1. 确定不确定性类型(参数/结构)
  2. 选择自适应方案(直接/间接)
  3. 设计自适应律(MIT/Lyapunov)
  4. 添加鲁棒性机制
  5. 验证PE条件和收敛性

练习题

基础题

11.1 考虑一阶系统 $\dot{y} = -ay + bu$,其中 $a$ 未知但 $b=1$ 已知。设计MRAC使输出跟踪参考模型 $\dot{y}_m = -2y_m + 2r$。

提示:使用控制律 $u = \theta_1 r + \theta_2 y$,设计 $\theta_1$ 和 $\theta_2$ 的自适应律。

答案 控制律:$u = \theta_1 r + \theta_2 y$ 误差动态:$\dot{e} = \dot{y} - \dot{y}_m = -2e + (\theta_1 - 2)r + (\theta_2 + a - 2)y$ 选择Lyapunov函数:$V = \frac{1}{2}e^2 + \frac{1}{2\gamma_1}(\theta_1 - 2)^2 + \frac{1}{2\gamma_2}(\theta_2 + a - 2)^2$ 自适应律: - $\dot{\theta}_1 = -\gamma_1 er$ - $\dot{\theta}_2 = -\gamma_2 ey$ 这保证 $\dot{V} = -2e^2 \leq 0$,因此 $e \to 0$。

11.2 对于参数估计 $\hat{\theta}(t)$,若回归向量 $\phi(t) = [\sin(t), \cos(t)]^T$,判断是否满足持续激励条件。

提示:计算 $\int_t^{t+T} \phi(\tau)\phi^T(\tau)d\tau$ 并检查其正定性。

答案 $$\int_t^{t+2\pi} \phi(\tau)\phi^T(\tau)d\tau = \int_t^{t+2\pi} \begin{bmatrix} \sin^2(\tau) & \sin(\tau)\cos(\tau) \\ \sin(\tau)\cos(\tau) & \cos^2(\tau) \end{bmatrix} d\tau$$ $$= \begin{bmatrix} \pi & 0 \\ 0 & \pi \end{bmatrix} = \pi I$$ 因此满足PE条件,$\alpha = \pi > 0$。

11.3 比较σ-修正和ε-修正的优缺点,各适用于什么场景?

提示:考虑参数漂移、稳态误差、噪声敏感性。

答案 **σ-修正**: - 优点:连续自适应,参数有界 - 缺点:引入稳态参数误差 - 适用:噪声较大、需要参数始终有界的场景 **ε-修正**: - 优点:小误差时停止自适应,避免噪声影响 - 缺点:可能错过缓慢参数变化 - 适用:系统参数变化不频繁、噪声水平已知的场景

11.4 推导RLS算法的协方差更新公式 $P(t) = (I - K(t)\phi^T(t))P(t-1)/\lambda$。

提示:从矩阵求逆引理开始。

答案 从信息矩阵更新: $$R(t) = \lambda R(t-1) + \phi(t)\phi^T(t)$$ 其中 $P(t) = R^{-1}(t)$。 应用矩阵求逆引理: $$(A + BCD)^{-1} = A^{-1} - A^{-1}B(C^{-1} + DA^{-1}B)^{-1}DA^{-1}$$ 令 $A = \lambda R(t-1)$,$B = \phi(t)$,$C = 1$,$D = \phi^T(t)$: $$P(t) = \frac{1}{\lambda}[P(t-1) - \frac{P(t-1)\phi(t)\phi^T(t)P(t-1)}{\lambda + \phi^T(t)P(t-1)\phi(t)}]$$ $$= \frac{1}{\lambda}P(t-1)[I - \frac{\phi(t)\phi^T(t)P(t-1)}{\lambda + \phi^T(t)P(t-1)\phi(t)}]$$ $$= \frac{1}{\lambda}(I - K(t)\phi^T(t))P(t-1)$$

挑战题

11.5 设计一个自适应控制器处理执行器饱和:$u = \text{sat}(v)$,其中 $v$ 是控制器输出。如何修改自适应律以处理饱和?

提示:考虑反计算(anti-windup)技术。

答案 **饱和处理方案**: 1. **修正自适应律**: 当饱和发生时($u \neq v$),修改自适应律: $$\dot{\theta} = \begin{cases} -\Gamma \omega e & \text{if } |v| \leq u_{max} \\ -\Gamma \omega e - \Gamma_a \omega(v - u) & \text{if } |v| > u_{max} \end{cases}$$ 2. **投影到可行域**: 限制参数使控制信号不超过饱和限: $$\Theta_{feasible} = \{\theta : |\theta^T \phi_{max}| \leq u_{max}\}$$ 3. **参考模型修正**: 饱和时修改参考模型以反映实际可达性能。 这种方法避免了参数在饱和期间的错误适应。

11.6 对于多输入多输出(MIMO)系统,如何设计解耦的自适应控制器?讨论交叉耦合对自适应性能的影响。

提示:考虑相对增益阵列(RGA)和解耦补偿器。

答案 **MIMO自适应控制设计**: 1. **动态解耦**: 系统:$Y(s) = G(s)U(s)$ 解耦器:$W(s) = G^{-1}(s)G_d(s)$ 其中 $G_d(s)$ 是对角目标传递函数。 2. **自适应解耦方案**: - 在线估计耦合矩阵元素 - 自适应调整解耦补偿器参数 - 各通道独立设计SISO自适应控制器 3. **耦合影响**: - 强耦合导致参数收敛缓慢 - 可能出现参数振荡 - 需要协调各通道自适应速率 4. **实用建议**: - 使用RGA选择控制配对 - 慢自适应处理主通道 - 快自适应补偿耦合项

11.7 分析L1自适应控制如何通过频域分离实现鲁棒性。设计低通滤波器 $C(s)$ 需要考虑哪些因素?

提示:分析自适应回路和控制回路的带宽分离。

答案 **L1控制的频域分离**: 1. **带宽分离原理**: - 自适应回路:高带宽($\omega_{adapt} \gg \omega_{control}$) - 控制回路:通过 $C(s)$ 限制带宽 2. **滤波器设计准则**: $$C(s) = \frac{\omega_c^n}{(s + \omega_c)^n}$$ 选择 $\omega_c$ 需要平衡: - **性能**:$\omega_c$ 越大,跟踪性能越好 - **鲁棒性**:$\omega_c$ 越小,对未建模动态越鲁棒 - **约束**:$\omega_c < \omega_{unmodeled}/3$(避免激发高频动态) 3. **稳定性条件**: $$||G(s)(1 - C(s))||_{\mathcal{L}_1} < 1$$ 4. **实际设计**: - 初始保守选择:$\omega_c = 0.1\omega_{plant}$ - 根据闭环响应逐步增加 - 监控高频振荡迹象

11.8 开放性问题:如何将强化学习与自适应控制结合?设计一个框架,利用RL改进自适应控制的长期性能。

提示:考虑元参数优化、经验回放、策略梯度方法。

答案 **RL增强自适应控制框架**: 1. **层级架构**: - **底层**:传统自适应控制器(快速、稳定) - **上层**:RL agent调整自适应参数(慢速、优化) 2. **RL任务定义**: - **状态**:系统状态 + 参数估计 + 性能指标历史 - **动作**:自适应增益 $\Gamma$、遗忘因子 $\lambda$、探测信号幅度 - **奖励**:$r = -(\alpha_1 e^2 + \alpha_2 u^2 + \alpha_3 \dot{\theta}^2)$ 3. **实现方案**: ```python class AdaptiveRLController: def __init__(self): self.adaptive_controller = MRAC() self.rl_agent = PPO() self.experience_buffer = [] def control_step(self, state): # RL调整元参数 meta_params = self.rl_agent.get_action(state) self.adaptive_controller.set_gains(meta_params) # 自适应控制 u = self.adaptive_controller.compute(state) # 收集经验 self.experience_buffer.append((state, u, reward)) # 定期更新RL if len(self.experience_buffer) > batch_size: self.rl_agent.update(self.experience_buffer) return u ``` 4. **优势**: - 自动调整自适应参数 - 学习处理重复场景 - 改进长期性能指标 5. **挑战与研究方向**: - 稳定性保证的形式化 - 样本效率提升 - 安全探索策略

常见陷阱与错误

1. 参数漂移问题

错误:长时间运行后参数值变得不合理 原因:缺乏持续激励,扰动被误认为参数变化 解决

2. 初始瞬态过大

错误:自适应开始时出现大的瞬态响应 原因:初始参数误差大,自适应增益过高 解决

3. 高频振荡

错误:控制信号出现高频抖动 原因:未建模高频动态被激发 解决

4. 多参数耦合

错误:MIMO系统参数收敛缓慢或振荡 原因:参数间强耦合,条件数差 解决

5. 噪声敏感

错误:测量噪声导致参数持续变化 原因:噪声被当作模型误差处理 解决

调试技巧

  1. 参数监控:实时显示参数估计值和变化率
  2. PE检验:在线计算并显示PE条件指标
  3. 分阶段调试:先固定参数验证控制器,再启动自适应
  4. 仿真验证:在仿真中测试极端条件
  5. 安全边界:始终实施参数和控制信号限制

最佳实践检查清单

设计阶段

实现阶段

鲁棒性增强

验证测试

性能优化

安全与监控