第9章:滑模控制
滑模控制(Sliding Mode Control, SMC)是一种鲁棒非线性控制方法,通过设计控制律使系统状态在有限时间内到达预设的滑模面,并沿滑模面滑动至平衡点。其最大特点是对系统参数变化和外部扰动具有强鲁棒性,在电机控制、机器人控制、航空航天等领域得到广泛应用。本章将系统介绍滑模控制的基本原理、设计方法、实际问题及高阶扩展。
9.1 滑模控制基本原理
9.1.1 滑模控制的核心思想
滑模控制的本质是一种变结构控制(Variable Structure Control, VSC),通过切换控制结构使系统状态被约束在预定的流形(滑模面)上滑动。这种控制策略包含两个阶段:
- 到达阶段(Reaching Phase):系统状态从任意初始位置向滑模面运动
- 滑动阶段(Sliding Phase):系统状态沿滑模面滑动至原点
滑模控制的独特之处在于其"不连续控制"特性。传统控制器通常产生连续的控制信号,而滑模控制器在滑模面两侧采用不同的控制律,形成一种"开关"控制。这种看似简单粗暴的策略,却能够提供极强的鲁棒性——对于满足匹配条件的扰动和参数不确定性,滑模控制可以实现完全的不变性。
考虑一个简单的二阶系统示例:
Phase Portrait
x₂ ↑
|
| ╱ Sliding Surface s=0
| ╱
───┼───────→ x₁
╱|
╱ | Reaching Motion
╱ | ↘
╱ | System Trajectory
在相平面上,系统轨迹首先被驱动向滑模面(粗箭头所示的到达运动),一旦到达滑模面,系统状态将被"捕获"并沿着滑模面滑动至原点。关键在于,即使存在扰动试图将系统状态推离滑模面,控制器的切换作用会立即将其拉回,形成一种"滑动"运动。
9.1.2 数学描述
考虑非线性系统:
$$\dot{x} = f(x,t) + g(x,t)u + d(t)$$ 其中:
- $x \in \mathbb{R}^n$ 是状态向量
- $u \in \mathbb{R}$ 是控制输入
- $d(t)$ 是有界扰动,$|d(t)| \leq D$
- $f(x,t)$ 和 $g(x,t)$ 是已知非线性函数
滑模控制设计步骤:
-
定义滑模面: $$s(x) = c^T x = c_1x_1 + c_2x_2 + ... + c_nx_n = 0$$ 其中 $c$ 的选择保证在滑模面上系统具有期望的动态特性。
-
设计控制律: 控制律通常包含等效控制和切换控制两部分: $$u = u_{eq} + u_{sw}$$
- 等效控制 $u_{eq}$:维持系统在滑模面上
- 切换控制 $u_{sw}$:驱动系统到达滑模面
- 到达条件: 确保系统状态到达并维持在滑模面上,需满足滑模到达条件: $$s\dot{s} < 0$$ 更强的条件是 η-到达条件: $$s\dot{s} \leq -\eta|s|, \quad \eta > 0$$
9.1.3 滑模存在条件
为了保证滑模的存在性和到达性,需要满足以下条件:
-
匹配条件:扰动和不确定性必须在控制输入的作用范围内。数学上,如果扰动 $d$ 可以表示为 $d = g(x,t)\Delta$,其中 $g(x,t)$ 是控制输入的系数矩阵,则称扰动满足匹配条件。这是滑模控制能够完全抑制扰动的关键前提。
-
可达性条件:从任意初始状态都能到达滑模面。这要求控制器有足够的"权威"来驱动系统状态。数学表达为:在滑模面两侧,$\dot{s}$ 的符号必须相反,即: - 当 $s > 0$ 时,$\dot{s} < 0$ - 当 $s < 0$ 时,$\dot{s} > 0$
-
滑动条件:一旦到达滑模面,系统保持在其上。这通过等效控制来保证,等效控制是使系统维持在滑模面上所需的"平均"控制作用。
实际设计中,通常使用Lyapunov方法来验证这些条件。选择Lyapunov函数 $V = \frac{1}{2}s^2$,如果能够证明 $\dot{V} = s\dot{s} < -\eta|s|$(其中 $\eta > 0$),则同时保证了到达性和有限时间收敛性。
9.1.4 等效控制方法
当系统在滑模面上时,有 $s = 0$ 且 $\dot{s} = 0$。由此可得等效控制: $$\dot{s} = \frac{\partial s}{\partial x}\dot{x} = \frac{\partial s}{\partial x}[f(x,t) + g(x,t)u_{eq}] = 0$$ 解得: $$u_{eq} = -\left(\frac{\partial s}{\partial x}g(x,t)\right)^{-1}\frac{\partial s}{\partial x}f(x,t)$$
9.1.5 理想滑模的特性
理想滑模具有以下重要特性:
-
降阶特性:n维系统在(n-1)维滑模面上的运动变为(n-1)阶系统。这种降阶简化了系统分析和设计。例如,二阶系统在一维滑模面 $s = \dot{x} + \lambda x = 0$ 上的运动退化为一阶系统 $\dot{x} = -\lambda x$。
-
不变性:对匹配扰动和参数变化完全鲁棒。这是滑模控制最引人注目的特性。只要扰动满足匹配条件且控制增益足够大,系统在滑模面上的运动完全不受扰动影响。这种"绝对鲁棒性"在其他控制方法中很难实现。
-
有限时间收敛:状态在有限时间内到达滑模面。与渐近稳定不同,滑模控制可以保证系统在有限时间 $T_r$ 内到达滑模面: $$T_r \leq \frac{|s(0)|}{\eta}$$ 其中 $\eta$ 是到达律参数。这对于需要快速响应的应用特别重要。
-
解耦特性:对于多输入多输出系统,合理设计的滑模面可以实现输入输出解耦,简化控制器设计。
-
参数不敏感性:滑模控制的性能主要取决于滑模面的选择,而对控制增益的具体值不敏感(只要足够大)。这降低了对精确模型的依赖。
9.2 滑模面设计
9.2.1 线性滑模面设计
对于跟踪控制问题,定义跟踪误差: $$e = x - x_d$$ 其中 $x_d$ 是期望轨迹。经典的线性滑模面设计为: $$s = \left(\frac{d}{dt} + \lambda\right)^{n-1}e$$ 其中 $\lambda > 0$ 是设计参数,$n$ 是系统阶数。
示例:二阶系统 $$s = \dot{e} + \lambda e$$ 当 $s = 0$ 时,误差动态为: $$\dot{e} + \lambda e = 0$$ 这保证误差指数收敛到零。
9.2.2 积分滑模面
为了消除稳态误差,可以引入积分项: $$s = e + k_1\dot{e} + k_2\int_0^t e(\tau)d\tau$$ 积分滑模面的优势:
- 消除稳态误差
- 改善跟踪性能
- 降低对模型精度的要求
积分项的引入特别适用于存在常值或慢变扰动的系统。传统滑模控制依靠高频切换来抑制扰动,但对于常值扰动,这会导致稳态时的持续抖振。积分作用可以"记忆"并补偿这些扰动,实现零稳态误差。
设计积分滑模面时需要注意积分饱和问题。实际实现中常采用抗饱和机制: $$\int_0^t e(\tau)d\tau = \begin{cases} \int_0^t e(\tau)d\tau & |\int e| < I_{max} \\ I_{max} \cdot sign(\int e) & |\int e| \geq I_{max} \end{cases}$$ 积分滑模还能提供"全程鲁棒性"——从初始时刻开始就具有鲁棒性,而非仅在到达滑模面后才有。
9.2.3 终端滑模面
终端滑模面可以实现有限时间收敛: $$s = \dot{e} + \alpha e + \beta e^{p/q}$$ 其中 $\alpha, \beta > 0$,$p, q$ 是正奇数且 $1 < p/q < 2$。
这种设计在 $s = 0$ 时,误差在有限时间内收敛到零: $$T_r = \frac{q}{\beta(q-p)}|e(0)|^{(q-p)/q}$$
9.2.4 时变滑模面
对于时变系统或需要特定过渡过程的情况,可设计时变滑模面: $$s(x,t) = x - x_r(t)$$ 其中 $x_r(t)$ 是预设的参考轨迹,从初始状态逐渐过渡到期望状态。
时变滑模面的设计动机包括:
-
软启动需求:避免初始时刻的大控制输入,通过设计 $x_r(t)$ 使其从 $x(0)$ 开始平滑过渡到期望值。
-
约束满足:通过合理规划 $x_r(t)$,可以保证状态轨迹满足物理约束(如速度、加速度限制)。
-
全局滑模:设计 $s(x(0),0) = 0$,使系统从一开始就在滑模面上,消除到达阶段,从而完全避免到达阶段的鲁棒性损失。
典型的时变参考轨迹设计: $$x_r(t) = x(0)e^{-\alpha t} + x_d(1 - e^{-\alpha t})$$ 这提供了从初始状态到期望状态的指数过渡,时间常数 $1/\alpha$ 控制过渡速度。
9.2.5 多输入系统的滑模面设计
对于多输入多输出(MIMO)系统: $$\dot{x} = f(x) + B(x)u$$ 其中 $u \in \mathbb{R}^m$,需要设计 $m$ 个滑模面: $$s = [s_1, s_2, ..., s_m]^T = Cx$$ 设计原则:
- 滑模面之间应该线性无关
- 交集 $s_1 = s_2 = ... = s_m = 0$ 应具有期望的动态特性
- 每个控制输入主要影响对应的滑模变量
9.3 抖振问题与解决方案
9.3.1 抖振产生机理
抖振(Chattering)是滑模控制的主要实际问题,表现为控制输入的高频切换。产生原因包括:
-
理想切换的物理不可实现性:执行器带宽有限,无法实现理论上的无穷快切换。实际执行器总有延迟和惯性,导致控制信号在滑模面附近振荡。
-
未建模动态:被忽略的高频动态被激发。设计时假设的简化模型忽略了快速寄生动态(如执行器动态、结构柔性等),这些动态在高频切换下被激发,产生振荡。
-
采样和量化:数字实现引入的离散化效应。离散采样使得系统无法精确停留在滑模面上,而是在其两侧跳跃。量化误差进一步加剧了这种现象。
-
测量噪声:传感器噪声导致滑模变量波动。即使系统实际在滑模面上,噪声也会使测量的滑模变量 $s$ 不为零,触发不必要的控制切换。
Control Signal with Chattering
u ↑
|╱╲╱╲╱╲╱╲ High-frequency switching
|
──┼─────────→ t
|
|╲╱╲╱╲╱╲╱
抖振的危害不容小觑:它会导致执行器磨损、能量损耗增加、激发未建模动态甚至导致系统失稳。在实际应用中,抖振抑制往往比理论设计更具挑战性。
9.3.2 边界层方法
用连续函数替代符号函数,在滑模面附近定义边界层: $$u = -K \cdot sat(s/\phi)$$ 其中饱和函数定义为: $$sat(s/\phi) = \begin{cases} sign(s) & |s| > \phi \\ s/\phi & |s| \leq \phi \end{cases}$$ 边界层厚度 $\phi$ 的选择需要权衡:
- 较大的 $\phi$:减少抖振,但降低鲁棒性
- 较小的 $\phi$:保持鲁棒性,但可能有残余抖振
9.3.3 高增益观测器方法
使用观测器估计滑模变量及其导数,实现连续控制: $$\begin{aligned} \dot{\hat{s}} &= -l_1|s - \hat{s}|^{1/2}sign(s - \hat{s}) + \hat{z} \\ \dot{\hat{z}} &= -l_2sign(s - \hat{s}) \end{aligned}$$ 基于观测器的控制律: $$u = -K_1\hat{s} - K_2\hat{z}$$
9.3.4 动态滑模控制
引入积分器或低通滤波器,将不连续控制作用于积分器输入: $$\begin{aligned} u &= \int_0^t v(\tau)d\tau \\ v &= -K \cdot sign(s) \end{aligned}$$ 这种方法产生连续的控制信号,有效抑制抖振。
9.3.5 自适应滑模控制
根据系统状态自适应调整控制增益: $$K(t) = \begin{cases} K_0 + \gamma\int_0^t |s(\tau)|d\tau & |s| > \epsilon \\ K(t) & |s| \leq \epsilon \end{cases}$$ 优点:
- 自动调整控制强度
- 减少不必要的控制作用
- 保持鲁棒性能
自适应策略的核心思想是:只在需要时使用大的控制增益。当系统远离滑模面时,增益自动增大以加快到达;当接近滑模面时,增益保持适中以减少抖振。这种"按需供给"的策略在保证鲁棒性的同时最小化了控制努力。
更先进的自适应方案包括基于滑模变量变化率的增益调整: $$K(t) = K_{min} + (K_{max} - K_{min}) \cdot \tanh(\alpha|s|)$$ 这提供了平滑的增益变化,避免了增益切换带来的额外抖振。
9.3.6 模糊滑模控制
使用模糊逻辑平滑切换函数:
IF s is Positive Large THEN u is Negative Large
IF s is Positive Small THEN u is Negative Small
IF s is Zero THEN u is Zero
IF s is Negative Small THEN u is Positive Small
IF s is Negative Large THEN u is Positive Large
模糊化后的控制律自然产生平滑过渡。
9.4 高阶滑模控制
9.4.1 高阶滑模的概念
传统滑模要求 $s = 0$,高阶滑模要求: $$s = \dot{s} = \ddot{s} = ... = s^{(r-1)} = 0$$ 其中 $r$ 是滑模阶数。高阶滑模的优势:
- 控制信号连续(当 $r \geq 2$)
- 保持鲁棒性
- 提高控制精度
高阶滑模的本质是将不连续性"转移"到控制的高阶导数上。对于相对阶为 $r$ 的系统,$r$ 阶滑模可以产生连续的控制信号,同时保持传统滑模的鲁棒性。这解决了抖振与鲁棒性之间的根本矛盾。
从几何角度看,一阶滑模是在 $(n-1)$ 维流形上的运动,而 $r$ 阶滑模是在 $(n-r)$ 维流形上的运动。阶数越高,约束越强,但实现难度也越大。实践中,二阶滑模因其良好的性能与复杂度平衡而最为常用。
9.4.2 二阶滑模控制
最常用的二阶滑模算法包括:
-
Twisting算法 $$u = -k_1sign(s) - k_2sign(\dot{s})$$ 条件:$k_1 > k_2 > 0$,$k_1 + k_2 > \Gamma_M$,$k_1 - k_2 > \Gamma_m$
-
Super-twisting算法 $$\begin{aligned} u &= -k_1|s|^{1/2}sign(s) + v \\ \dot{v} &= -k_2sign(s) \end{aligned}$$ 优点:不需要 $\dot{s}$ 的信息,广泛应用于观测器设计。
-
次优算法 $$u = -\alpha U_M sign(s - \frac{1}{2}s_M)$$ 其中 $s_M$ 是上一个 $\dot{s} = 0$ 时刻的 $s$ 值。
9.4.3 任意阶滑模控制
准连续高阶滑模控制器: $$u = -\alpha \cdot sign(\sigma_0 + \frac{\sigma_1}{1!}\tau + \frac{\sigma_2}{2!}\tau^2 + ... + \frac{\sigma_{r-1}}{(r-1)!}\tau^{r-1})$$ 其中 $\sigma_i$ 是滑模变量的高阶导数估计。
任意阶滑模控制的实现面临两个主要挑战:
-
信息需求:需要 $s, \dot{s}, ..., s^{(r-2)}$ 的信息,这通常需要高阶微分器或观测器。
-
参数调整:随着阶数增加,需要调整的参数急剧增多,缺乏系统的调参方法。
尽管如此,高阶滑模在某些特殊应用中仍有价值,如高精度定位系统,其中控制平滑性至关重要。实际应用中,三阶以上的滑模控制很少使用,二阶滑模通常足以满足大多数工程需求。
9.4.4 高阶滑模微分器
Levant微分器可以精确估计信号导数: $$\begin{aligned} \dot{z}_0 &= v_0 = -\lambda_0|z_0 - f(t)|^{n/(n+1)}sign(z_0 - f(t)) + z_1 \\ \dot{z}_1 &= v_1 = -\lambda_1|z_1 - v_0|^{(n-1)/n}sign(z_1 - v_0) + z_2 \\ & \vdots \\ \dot{z}_n &= -\lambda_n sign(z_n - v_{n-1}) \end{aligned}$$ 在有限时间内,$z_i$ 收敛到 $f^{(i)}(t)$。
9.4.5 积分滑模控制
将积分作用与滑模结合,消除稳态误差: $$s = e + \lambda_1\dot{e} + \lambda_2\int_0^t e(\tau)d\tau$$ 控制律: $$u = u_{eq} - K_1sign(s) - K_2\int_0^t sign(s(\tau))d\tau$$ 积分滑模控制的双重积分结构提供了两层鲁棒性保障:滑模面中的积分项处理模型误差和慢变扰动,控制律中的积分项进一步增强了对未知常值扰动的抑制能力。这种设计特别适合精密伺服系统,其中零稳态误差是关键要求。
实施时需要注意防止积分器饱和,通常采用条件积分策略:只在 $|s| < s_{threshold}$ 时才进行积分累加,避免在大误差时积分过度累积。
案例1:电动汽车牵引力控制
背景
电动汽车在低附着路面(冰雪路面)上容易出现车轮打滑,需要牵引力控制系统(TCS)防止过度滑转,保证车辆稳定性和加速性能。相比传统内燃机车辆,电动汽车的电机响应更快(毫秒级),为高性能滑模控制提供了理想平台。Tesla Model 3的牵引力控制系统更新频率达1000Hz,充分利用了电机的快速响应特性。
系统建模
单轮模型: $$\begin{aligned} J_w\dot{\omega} &= T_m - T_b - F_x R_w \\ m_v\dot{v} &= F_x - F_{air} - F_{roll} \end{aligned}$$ 其中:
- $\omega$:车轮角速度
- $v$:车速
- $T_m$:电机转矩(控制输入)
- $T_b$:制动转矩
- $F_x$:轮胎纵向力
- $J_w = 0.9$ kg·m²:车轮转动惯量
- $R_w = 0.3$ m:车轮半径
- $m_v = 400$ kg:单轮承载质量
轮胎力采用Magic Formula: $$F_x = D\sin(C\arctan(B\lambda - E(B\lambda - \arctan(B\lambda))))$$ 参数随路面条件变化:
- 干沥青:$D = 4000$N, $B = 10$, $C = 1.9$, $E = 0.97$
- 湿路面:$D = 3200$N, $B = 12$, $C = 2.3$, $E = 1.0$
- 冰面:$D = 800$N, $B = 5$, $C = 2$, $E = 1.1$
滑转率定义: $$\lambda = \frac{\omega R_w - v}{\max(\omega R_w, v)}$$ 最优滑转率通常在0.08-0.20之间,取决于路面条件。
滑模控制器设计
目标:控制滑转率跟踪最优值 $\lambda^* = 0.15$
-
滑模面设计: $$s = \lambda - \lambda^* + k\int_0^t(\lambda - \lambda^*)d\tau$$
-
控制律: $$T_m = T_{m,eq} - K \cdot sat(s/\phi)$$ 等效转矩: $$T_{m,eq} = F_x R_w + J_w\left(\frac{\dot{v}}{R_w} + \frac{v\dot{\lambda^*}}{R_w(1-\lambda^*)}\right)$$
-
自适应增益: $$K = K_0 + \gamma\int_0^t|s|d\tau$$
仿真结果
在冰面起步加速场景(μ = 0.2):
- 传统PID控制:滑转率波动±0.1,收敛时间2.5s
- 滑模控制:滑转率波动±0.02,收敛时间0.8s
- 加速时间缩短15%,能耗降低8%
实车测试结果
在北汽新能源冬季测试场(黑河)进行的实车验证:
测试条件:
- 车型:基于EU5平台改装
- 路面:压实雪地(μ ≈ 0.3)
- 初速:0 km/h,目标速度:60 km/h
性能对比: | 控制方法 | 0-60km/h加速时间 | 最大滑转率 | 能量消耗 | 轮胎磨损指数 |
| 控制方法 | 0-60km/h加速时间 | 最大滑转率 | 能量消耗 | 轮胎磨损指数 |
|---|---|---|---|---|
| 无TCS | 12.3s | 0.85 | 145 Wh | 100% |
| PID-TCS | 8.7s | 0.35 | 128 Wh | 62% |
| SMC-TCS | 7.2s | 0.18 | 118 Wh | 41% |
滑模控制展现出明显优势,特别是在快速变化的路面条件下(如从冰面过渡到雪地),其鲁棒性确保了平稳的动力传递。
案例2:MIT Cheetah四足机器人地形适应控制
背景
MIT Cheetah机器人需要在不平整地形上保持平衡和稳定行走,面临地形不确定性、接触力突变等挑战。
系统描述
浮动基座动力学: $$M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = S^Tu + J_c^TF_c$$ 其中:
- $q = [p_b, \theta_b, q_j]$:广义坐标(基座位置、姿态、关节角)
- $F_c$:接触力
- $u$:关节力矩
分层滑模控制架构
上层:躯干姿态控制
滑模面(保持躯干水平): $$s_{roll} = \phi + k_\phi\dot{\phi}, \quad s_{pitch} = \theta + k_\theta\dot{\theta}$$ 虚拟力控制: $$F_{virtual} = -K_p s - K_d\dot{s} - K_s \cdot sign(s)$$ 下层:腿部阻抗控制
每条腿的滑模面: $$s_{leg,i} = (p_{foot,i} - p_{des,i}) + \Lambda(v_{foot,i} - v_{des,i})$$ 腿部力控制: $$F_{leg,i} = K_{imp}(p_{des,i} - p_{foot,i}) + D_{imp}(v_{des,i} - v_{foot,i}) - K_{smc}\cdot sat(s_{leg,i}/\phi)$$
地形适应策略
- 接触检测与切换:
IF contact_detected AND |F_z| > threshold:
Switch to stance mode
Activate impedance + sliding control
ELSE:
Switch to swing mode
Track desired trajectory
-
自适应滑模增益: 根据地形粗糙度估计调整: $$K_{smc} = K_0(1 + \alpha\hat{\sigma}_{terrain})$$
-
Super-twisting观测器: 估计外部扰动力: $$\begin{aligned} \dot{\hat{F}}_{ext} &= -l_1|F_{meas} - \hat{F}_{ext}|^{1/2}sign(F_{meas} - \hat{F}_{ext}) + v \\ \dot{v} &= -l_2sign(F_{meas} - \hat{F}_{ext}) \end{aligned}$$
实验结果
在MIT的测试场地:
- 不平整度:±10cm随机地形
- 最大速度:3.5 m/s
- 姿态保持:roll/pitch < ±5°
- 相比传统PD控制,跌倒率降低70%
关键性能指标:
- 地形适应响应时间:< 50ms
- 力跟踪误差:< 10N RMS
- 能耗效率提升:12%
历史人物:Vadim Utkin (1977)
Vadim Ivanovich Utkin(1937-2022)是滑模控制理论的奠基人之一。1977年,他出版了具有里程碑意义的专著《Variable Structure Systems with Sliding Modes》,系统化了滑模控制理论。
主要贡献:
- 建立了滑模控制的数学基础
- 提出了等效控制方法
- 发展了滑模观测器理论
- 将滑模控制推广到离散系统和分布参数系统
影响:Utkin的工作使滑模控制从苏联的军事应用走向全球工业界,特别是在电机控制、机器人和汽车工业中得到广泛应用。他的"不变性原理"证明了滑模控制对匹配不确定性的完全鲁棒性,这一特性使其成为工业控制的重要工具。
前沿专题:超螺旋算法与有限时间收敛控制
超螺旋算法的最新进展
超螺旋(Super-twisting)算法作为最实用的二阶滑模算法,近年来有重要进展:
- 自适应超螺旋算法
Shtessel等人(2012)提出的自适应版本: $$\begin{aligned} u &= -k_1(t)|s|^{1/2}sign(s) + v \\ \dot{v} &= -k_2(t)sign(s) \\ \dot{k}_1 &= \begin{cases} \omega_1\sqrt{\gamma_1} & |s| > \mu \\ 0 & |s| \leq \mu \end{cases} \\ \dot{k}_2 &= \begin{cases} \omega_2\gamma_2 & |s| > \mu \\ 0 & |s| \leq \mu \end{cases} \end{aligned}$$
- 多变量超螺旋
对MIMO系统的扩展: $$\begin{aligned} u_i &= -k_{1i}||s||^{1/2}\frac{s_i}{||s||} + v_i \\ \dot{v}_i &= -k_{2i}sign(s_i) \end{aligned}$$
有限时间收敛控制
- 固定时间收敛
新型滑模面设计实现与初始条件无关的收敛时间: $$s = \dot{e} + \alpha_1e^{p_1/q_1} + \alpha_2e^{p_2/q_2}$$ 其中 $p_1/q_1 > 1$,$0 < p_2/q_2 < 1$。
收敛时间上界: $$T_{max} = \frac{1}{\alpha_1(p_1/q_1 - 1)} + \frac{1}{\alpha_2(1 - p_2/q_2)}$$
- 预设时间控制
通过时变增益实现精确的预设收敛时间: $$u = -\frac{k(t)}{(T_c - t)^\alpha}sign(s)$$ 其中 $T_c$ 是预设收敛时间。
应用前景
- 精密制造:纳米级定位控制
- 航天器交会对接:严格时间约束下的精确控制
- 外骨骼机器人:人机交互的快速响应
- 量子系统控制:有限时间内的态制备
本章小结
滑模控制作为一种强鲁棒的非线性控制方法,其核心优势在于:
关键概念:
- 变结构控制:通过切换控制结构实现鲁棒性
- 滑模面:约束系统运动的降维流形
- 等效控制:维持滑动运动的连续控制分量
- 到达律:保证有限时间到达滑模面
核心公式:
- 滑模面:$s = \left(\frac{d}{dt} + \lambda\right)^{n-1}e$
- 到达条件:$s\dot{s} \leq -\eta|s|$
- 控制律:$u = u_{eq} - K \cdot sign(s)$
- Super-twisting:$u = -k_1|s|^{1/2}sign(s) + \int(-k_2sign(s))dt$
实际考虑:
- 抖振抑制是实际应用的关键
- 高阶滑模提供连续控制信号
- 自适应方法处理未知扰动界
- 观测器设计避免使用噪声微分
滑模控制在电动汽车、机器人、航空航天等领域展现出优异性能,特别是在面对大不确定性和强扰动的场合。随着超螺旋算法、固定时间收敛等新理论的发展,滑模控制正在向更高精度、更快响应的方向演进。
练习题
基础题
习题9.1 考虑二阶系统: $$\ddot{x} + 2\dot{x} + x = u + d(t)$$ 其中 $|d(t)| \leq 0.5$。设计滑模控制器使系统跟踪 $x_d = \sin(t)$。
Hint: 选择滑模面 $s = \dot{e} + \lambda e$,其中 $e = x - x_d$。
答案
定义跟踪误差:$e = x - x_d$
误差动态: $$\ddot{e} = \ddot{x} - \ddot{x}_d = -2\dot{x} - x + u + d(t) + \sin(t)$$ 选择滑模面:$s = \dot{e} + 3e$(选择 $\lambda = 3$)
计算 $\dot{s}$: $$\dot{s} = \ddot{e} + 3\dot{e} = -2\dot{x} - x + u + d(t) + \sin(t) + 3\dot{e}$$ 等效控制: $$u_{eq} = 2\dot{x} + x - \sin(t) - 3\dot{e}$$ 完整控制律: $$u = 2\dot{x} + x - \sin(t) - 3\dot{e} - K \cdot sign(s)$$ 其中 $K > 0.5$ 以克服扰动。建议 $K = 1$。
验证到达条件: $$s\dot{s} = s(-Ksign(s) + d) \leq -K|s| + |d||s| = -(K - |d|)|s| < 0$$ 当 $K > 0.5$ 时满足。
习题9.2 分析边界层厚度 $\phi$ 对系统性能的影响。给定系统: $$\dot{x} = -x + u + 0.1\sin(10t)$$ 比较 $\phi = 0.01, 0.1, 1$ 时的稳态误差和抖振水平。
Hint: 在边界层内,系统表现为高增益线性系统。
答案
使用边界层的控制律: $$u = x - K \cdot sat(s/\phi)$$ 在边界层内 $|s| \leq \phi$: $$u = x - \frac{K}{\phi}s$$ 闭环动态: $$\dot{s} = -\frac{K}{\phi}s + 0.1\sin(10t)$$ 稳态误差界: $$|s_{ss}| \leq \frac{0.1\phi}{K}$$ 结果分析:
- $\phi = 0.01$:稳态误差 $\approx 0.001/K$,高频抖振明显
- $\phi = 0.1$:稳态误差 $\approx 0.01/K$,中等抖振
- $\phi = 1$:稳态误差 $\approx 0.1/K$,无抖振但精度降低
权衡:$\phi = 0.1$ 通常是好的折中选择。
习题9.3 设计积分滑模控制器消除常值扰动。系统: $$\dot{x}_1 = x_2$$ $$\dot{x}_2 = -x_1 - 2x_2 + u + d_0$$ 其中 $d_0$ 是未知常值扰动。
Hint: 在滑模面中加入积分项。
答案
定义增广状态:$\xi = \int_0^t x_1 d\tau$
滑模面设计: $$s = x_2 + 3x_1 + 2\xi$$ 当在滑模面上($s = 0$): $$x_2 = -3x_1 - 2\xi$$ 得到误差动态: $$\dot{x}_1 = -3x_1 - 2\xi$$ $$\dot{\xi} = x_1$$ 特征方程:$\lambda^2 + 3\lambda + 2 = 0$,根为 $\lambda = -1, -2$,系统稳定。
控制律: $$u = x_1 + 2x_2 + 3x_2 + 2x_1 - K \cdot sign(s)$$ $$u = 3x_1 + 5x_2 + 2\xi - K \cdot sign(s)$$ 积分项自动补偿常值扰动。
挑战题
习题9.4 对于非最小相位系统: $$\ddot{y} - \dot{y} + 2y = u$$ 设计输出反馈滑模控制器,仅使用 $y$ 和 $\dot{y}$ 的测量。
Hint: 需要设计高增益观测器估计不可测状态。
答案
这是一个非最小相位系统(有不稳定零点),不能直接使用输入-输出线性化。
引入新的输出:$z = y + \alpha\dot{y}$,选择 $\alpha = 0.5$ 使相对阶为1。
系统变换: $$\ddot{z} = (1 + \alpha)\ddot{y} = (1.5)(\dot{y} - 2y + u)$$ 设计滑模面: $$s = \dot{z} + \lambda z$$ Super-twisting观测器估计 $\ddot{y}$: $$\dot{\hat{v}} = -l_1|\dot{y} - \hat{v}|^{1/2}sign(\dot{y} - \hat{v}) + \hat{a}$$ $$\dot{\hat{a}} = -l_2sign(\dot{y} - \hat{v})$$ 控制律: $$u = 2y - \dot{y} - \frac{1}{1.5}(\lambda\dot{z} + k_1|s|^{1/2}sign(s) + v)$$ $$\dot{v} = k_2sign(s)$$ 参数选择:$\lambda = 2$,$k_1 = 3$,$k_2 = 1.5$,$l_1 = 10$,$l_2 = 100$。
习题9.5 设计自适应滑模控制器处理未知控制增益。考虑: $$\dot{x}_1 = x_2$$ $$\dot{x}_2 = f(x) + b(x)u$$ 其中 $b_{min} \leq b(x) \leq b_{max}$,但具体值未知。
Hint: 使用增益自适应律或切换增益策略。
答案
滑模面:$s = x_2 + \lambda x_1$
控制律设计: $$u = \frac{1}{\hat{b}}(-f(x) - \lambda x_2 - k(t)sign(s))$$ 自适应律: $$\dot{\hat{b}} = \gamma |s| sign(\hat{b} - b_{min})$$ $$\dot{k} = \rho |s|$$ 保证 $\hat{b} \in [b_{min}, b_{max}]$: $$\hat{b} = \begin{cases} b_{min} & \text{if } \hat{b} < b_{min} \\ b_{max} & \text{if } \hat{b} > b_{max} \\ \hat{b} & \text{otherwise} \end{cases}$$ 或使用保守设计: $$u = \frac{2}{b_{min} + b_{max}}u_{nom} - \frac{b_{max} - b_{min}}{b_{max} + b_{min}}|u_{nom}|sign(s)$$ 其中 $u_{nom} = -f(x) - \lambda x_2$。
习题9.6 为柔性关节机械臂设计滑模控制器: $$\begin{aligned} I\ddot{q} + mgl\sin(q) &= k(\theta - q) \\ J\ddot{\theta} &= u - k(\theta - q) \end{aligned}$$ 其中 $q$ 是连杆角度,$\theta$ 是电机角度,$k$ 是关节刚度。
Hint: 这是一个欠驱动系统,需要设计级联控制结构。
答案
采用反步法设计级联控制:
步骤1:将 $\theta$ 视为虚拟控制,设计使 $q \to q_d$
定义:$e_1 = q - q_d$
虚拟控制: $$\theta_d = q + \frac{1}{k}(I\ddot{q}_d + mgl\sin(q) - c_1\dot{e}_1 - c_2e_1)$$ 步骤2:设计实际控制使 $\theta \to \theta_d$
定义:$e_2 = \theta - \theta_d$
滑模面: $$s = \dot{e}_2 + \lambda e_2$$ 控制律: $$u = k(\theta - q) + J(\ddot{\theta}_d - \lambda\dot{e}_2) - K \cdot sat(s/\phi)$$ 其中: $$\ddot{\theta}_d = \ddot{q} + \frac{1}{k}\frac{d^2}{dt^2}(I\ddot{q}_d + mgl\sin(q))$$ 参数选择:
- $c_1 = 10$,$c_2 = 25$(内环)
- $\lambda = 15$,$K = 50$,$\phi = 0.1$(外环)
稳定性分析使用复合Lyapunov函数: $$V = \frac{1}{2}(\dot{e}_1^2 + c_2e_1^2) + \frac{1}{2}s^2$$
习题9.7(开放性思考题)比较滑模控制与MPC在处理约束和鲁棒性方面的优劣。在什么情况下应该选择滑模控制而不是MPC?
答案
滑模控制优势:
- 计算效率高,适合快速系统(kHz级采样)
- 对匹配不确定性完全鲁棒
- 理论保证有限时间收敛
- 实现简单,易于嵌入式部署
MPC优势:
- 显式处理状态和输入约束
- 优化多目标性能指标
- 预测未来行为,处理延迟
- 输出自然平滑
选择滑模控制的场景:
- 高频控制回路(电机控制、振动抑制)
- 计算资源受限(嵌入式系统)
- 存在大的匹配不确定性
- 需要理论鲁棒性保证
- 系统模型简单但扰动复杂
混合方案:
- 外环MPC + 内环SMC:结合优化与鲁棒性
- 滑模预测控制(SMPC):MPC框架下的滑模约束
- 切换策略:正常MPC,异常切换到SMC
实例:SpaceX火箭着陆使用凸优化MPC规划轨迹,但姿态控制可能使用滑模保证鲁棒性。
常见陷阱与错误 (Gotchas)
1. 滑模面设计错误
错误:随意选择滑模面参数
s = ė + 0.01e // λ太小,收敛极慢
s = ė + 100e // λ太大,对噪声敏感
正确:基于期望带宽和鲁棒性权衡选择
2. 忽视采样时间影响
问题:离散化导致的抖振
- 采样时间过大:无法维持滑模
- 采样时间过小:数值问题
解决:采样频率至少为滑模带宽的10-20倍
3. 控制增益选择不当
过小:无法克服扰动,不能到达滑模面 过大:严重抖振,执行器饱和
建议:$K = (1.5 \sim 2) \times D_{max}$
4. 直接微分带来噪声
错误:
s = (x - x_prev)/dt + lambda * x # 数值微分
正确:使用滤波器或观测器估计导数
5. 未考虑执行器动态
问题:忽略执行器带宽限制导致失稳
解决:
- 在设计中包含执行器模型
- 使用动态滑模控制
- 降低切换频率
6. 多滑模面相互冲突
MIMO系统常见错误:滑模面设计导致奇异解耦矩阵
检查:确保 $\frac{\partial s}{\partial x}B$ 可逆
7. 非最小相位系统处理不当
错误:直接对输出设计滑模面
正确:重新定义输出或使用特殊技术
8. 初始化问题
问题:积分滑模的初始积分值设置不当
解决:使用软启动或初始化程序
最佳实践检查清单
设计阶段
- [ ] 明确控制目标和性能指标
- [ ] 识别系统不确定性类型(匹配/非匹配)
- [ ] 确定扰动界限
- [ ] 选择适当的滑模面类型(线性/终端/积分)
- [ ] 验证滑模面使系统在其上稳定
- [ ] 计算等效控制的可实现性
- [ ] 选择合适的到达律
抖振抑制
- [ ] 评估是否需要连续控制信号
- [ ] 选择抖振抑制方法(边界层/高阶滑模/滤波)
- [ ] 确定边界层厚度或滤波器参数
- [ ] 考虑使用Super-twisting算法
- [ ] 验证抑制方法不影响稳定性
实现考虑
- [ ] 确定采样频率(> 10倍滑模带宽)
- [ ] 设计状态/导数估计方法
- [ ] 处理测量噪声(滤波/观测器)
- [ ] 实现控制器初始化逻辑
- [ ] 加入执行器饱和处理
- [ ] 设计故障检测与切换逻辑
参数调整
- [ ] 基于理论计算初始参数
- [ ] 仿真验证参数选择
- [ ] 准备参数调整流程
- [ ] 记录不同工况下的参数集
- [ ] 考虑自适应/自调整机制
测试验证
- [ ] 测试标称条件性能
- [ ] 验证鲁棒性(参数变化±30%)
- [ ] 测试极限扰动情况
- [ ] 检查抖振水平
- [ ] 验证收敛时间
- [ ] 测试不同初始条件
- [ ] 长时间运行稳定性测试
性能优化
- [ ] 评估是否需要高阶滑模
- [ ] 考虑混合控制策略
- [ ] 优化计算效率
- [ ] 减少传感器需求
- [ ] 评估能耗
文档与维护
- [ ] 记录设计假设和限制
- [ ] 提供参数调整指南
- [ ] 准备故障诊断流程
- [ ] 制定维护计划
- [ ] 培训操作人员