1206 字
6 分钟
滑膜控制
2026-04-14
无标签

Bang-bang控制(普通滑模)#

uBB=K,sgn(s)={Ks>0(全力反向输出,最大负向力矩) +Ks<0(全力正向输出,最大正向力矩)u_{BB} = -K ,\text{sgn}(s) = \begin{cases} -K & s > 0 \quad \text{(全力反向输出,最大负向力矩)}\\ \ +K & s < 0 \quad \text{(全力正向输出,最大正向力矩)} \end{cases}

Bang-Bang 控制是最原始的开关控制形式。因此有明显的高频抖振。于是有两种改进方法:滞环控制和SMC。

滞环控制#

将传统的 Bang-bang控制引入滞环宽度 2Δ 后,控制量分成两种状态(设误差 e = r - y):

uhys={Umaxe>+Δ(误差偏大时,全力正向输出) Umine<Δ(误差偏小时,全力反向输出)u_{hys} = \begin{cases} U_{\max} & e > +\Delta \quad \text{(误差偏大时,全力正向输出)}\\ \ U_{\min} & e < -\Delta \quad \text{(误差偏小时,全力反向输出)} \end{cases}

而在Δe+Δ-\Delta \le e \le +\Delta区间内,控制量保持上一次的输出状态不变

滞环控制本质上是用一个“死区”宽度 2Δ 把纯符号函数控制变得不再那么敏感。在滞环带(-Δ 到 +Δ)内部,系统靠惯性继续运行,从而减少开关频率。

Δ 的设置参考噪声水平和稳态误差带:Δ 越大,开关次数越少,系统越平稳,但跟踪精度会下降;Δ 取得越小,控制越精准,但开关频率会显著升高,容易产生高频抖振甚至烧毁功率器件。

滞环控制适合对响应速度要求高、对精确平稳性要求不高的场合。

SMC(带边界层滑模)#

将传统的uPD=(Kpe+Kde˙)u_{PD} = - (K_p e + K_d \dot{e})控制引入边界层 Φ\Phi 后,控制分成两部分(设滑模面 s=ce+e˙s = c e + \dot{e}):

uSMC=Ksat(s/Φ)={Ksgn(s)s>Φ(外部:非线性满载输出)(KcΦe+KΦe˙)sΦ(内部:超大增益 PD 控制)u_{SMC} = -K \text{sat}(s/\Phi) =\begin{cases} -K \text{sgn}(s) & |s| > \Phi \quad \text{(外部:非线性满载输出)} \\ - \left( \frac{K c}{\Phi} e + \frac{K}{\Phi} \dot{e} \right) & |s| \le \Phi \quad \text{(内部:超大增益 PD 控制)} \end{cases}

可以看出,SMC控制相当于用最大控制量K截断了s>Φ|s| > \Phi,防止偏移过大时控制量过大烧毁电机,在s=Φs=\Phi时上下两个分段函数值相同,函数还是连续的。K的设置参考 K>|外部扰动| + |模型不确定性|,因此SMC最后调好后会很“硬”。

调参时,很多工程中会先按扰动上界设一个较大的 K,再通过 Φ 来“软化”边界层内的行为。Φ 越大抖振越小,但进入边界层后控制变软,抗扰动能力下降,稳态误差增大,Φ 越小控制越硬,跟踪越精准,但抖振会重新变严重(接近普通滑模)。c 越大,滑模面越陡,系统响应越快,但对噪声越敏感。

Φ=0\Phi=0时,退化为Bangbang控制。

由于是PD控制没有I,如果系统存在持续的外部恒定扰动,在边界层内就会产生稳态误差。系统最终会在Φ<ss<Φ-\Phi<s'\neq s<\Phi 的地方平衡。于是 ISMC 加入积分项:(KcΦe+KΦe˙+KKiΦedt)- \left( \frac{K c}{\Phi} e + \frac{K}{\Phi} \dot{e} + \frac{K K_i}{\Phi} \int e dt \right) 进行改进。2

除此之外SMC还有4个针对问题的改进:


  • TSMC终端滑模控制#

    滑模面 s=ce+e˙=0s = ce + \dot{e} = 0 是一阶线性微分方程 e˙=ce\dot{e} = -ceee 以指数形式收敛到 0 ,越接近 0 速度越慢。引入非线性的分数次幂s=e˙+βeq/ps = \dot{e} + \beta e^{q/p}来改变滑模面的形状, 使系统在接近原点时,导数项急剧增大。

    image-20260412124917876

  • STA超螺旋算法#

    边界层(饱和函数法)虽然缓解了抖振,但它是以牺牲一定的抗扰动精度为代价的(变软了)。把分为两部分:

    {u=u1+u2u1=k1s sgn(s)u˙2=k2 sgn(s)\begin{cases}u= u_1 + u_2 \\ u_1 = -k_1 \sqrt{|s|} \ \mathrm{sgn}(s) \\ \dot{u}_2 = -k_2 \ \mathrm{sgn}(s) \end{cases}

    积分项 u2u_2 把高频的符号函数 sgn(s)\text{sgn}(s) 给“积分”了一次,输出变成了一个连续的折线信号;而 u1u_1 项包含 s\sqrt{|s|},在 s0s \to 0 时增益趋于无穷,保证了极强的鲁棒性。

    结果: 输出的控制量 uu 是连续的! 它在理论上彻底消除了(或者说极大平滑了)抖振,同时依然保持了滑模对匹配扰动的绝对鲁棒性。


  • ASMC自适应滑模控制#

    系统扰动时大时小,K一直太大浪费能量,把K^˙=γs\dot{\hat{K}} = \gamma |s|变成动态的,当系统偏离滑模面(s|s| 变大),干扰变大就把增益 KK 调高。


  • GSMC全局滑模控制#

    滑模控制只有在状态到达滑模面(s=0s=0)后,才具有抗干扰能力。从初始状态向滑模面运动的这段时间(到达阶段),系统容易受扰动影响。设计滑模面时加入一个随时间衰减的初始误差项s(t)=ce(t)+e˙(t)(ce(0)+e˙(0))eαts(t) = c e(t) + \dot{e}(t) - (c e(0) + \dot{e}(0)) e^{-\alpha t}. 当 t=0t=0 时,s(0)=0s(0) = 0。系统一开始就在滑模面,后面新加的项随时间衰减。

滑膜控制
https://chr0mium.link/posts/bangbang-control/
作者
Cr
发布于
2026-04-14
许可协议
CC BY-NC-SA 4.0