一、引言:当系统'善变'且'未知'——为什么需要自适应控制?
在真实工业场景中,控制系统常面临:
- 参数漂移(如电机绕组电阻随温升增加 30%)
- 结构变化(如无人机载荷投放后质量突变)
- 完全未知模型(如新型执行器无先验参数)
自适应控制(Adaptive Control)通过在线学习与实时调整,使控制器能:在无精确模型下稳定系统、自动补偿参数变化、保持高性能跟踪。
本文目标:使用 MATLAB + Simulink 完成建立二阶伺服系统(含时变未知增益)、设计模型参考自适应控制(MRAC)与自校正控制(STC)两种方案、在 Simulink 中实现参数辨识 + 控制器重构。最终实现:即使系统增益在 [0.8, 3.0] 范围内任意跳变,仍能实现 <1% 跟踪误差、无超调响应。
二、被控对象:二阶伺服系统(含未知时变增益)
1. 数学模型
[ \ddot{y}(t) + a_1 \dot{y}(t) + a_2 y(t) = b u(t) ]
其中:
- $a_1 = 2$, $a_2 = 5$:已知(可通过阶跃响应粗略估计)
- $b > 0$:未知且时变(例如:$b = 1.0 \rightarrow 2.5 \rightarrow 0.8$)
挑战:传统 PID 需整定 $K_p, K_i, K_d$ 依赖 $b$,而自适应控制无需!
三、方案一:模型参考自适应控制(MRAC)
A. 参考模型设计
选择理想二阶动态:
[ \ddot{y}_m + 2 \zeta \omega_n \dot{y}_m + \omega_n^2 y_m = \omega_n^2 r ]
设 $\zeta = 0.7$, $\omega_n = 4$ → 无超调、快速响应
传递函数: [ M(s) = \frac{Y_m(s)}{R(s)} = \frac{16}{s^2 + 5.6 s + 16} ]
B. 控制律结构(直接 MRAC)
采用状态反馈形式(需估计速度): [ u(t) = \theta_1(t) r(t) - \theta_2(t) y(t) - \theta_3(t) \dot{y}(t) ]
若速度不可测,可用微分器或观测器估计(见后文扩展)
C. 自适应律(Lyapunov 设计)
定义误差:$e = y - y_m$
参数更新律: [ \begin{aligned} \dot{\theta}_1 &= -\gamma_1 e r \ \dot{\theta}_2 &= \gamma_2 e y \ \dot{\theta}_3 &= \gamma_3 e \dot{y} \end{aligned} ]
其中 $\gamma_i > 0$ 为自适应增益。
四、方案二:自校正控制(STC)——间接自适应
A. 思想:先辨识参数,再设计控制器
- 在线辨识:用递推最小二乘(RLS)估计 $\hat{b}$
- 控制器重构:设计极点配置控制器 $u = \frac{1}{\hat{b}} (u_{\text{des}})$
B. RLS 辨识算法
系统离散化(采样周期 $T_s = 0.01 , \text{s}$): [ y(k) = -a_1' y(k-1) - a_2' y(k-2) + b' u(k-1) ]
回归向量:$\phi(k) = [-y(k-1), -y(k-2), u(k-1)]^T$ 参数向量:$\theta = [a_1', a_2', b']^T$
RLS 更新: [ \begin{aligned} K(k) &= \frac{P(k-1)\phi(k)}{\lambda + \phi^T(k) P(k-1) \phi(k)} \ \hat{\theta}(k) &= \hat{\theta}(k-1) + K(k) [y(k) - \phi^T(k) \hat{\theta}(k-1)] \ P(k) &= \frac{1}{\lambda} [P(k-1) - K(k) \phi^T(k) P(k-1)] \end{aligned} ]

