滑模控制
滑模控制 (SMC) 是一种控制技术,您在 SMC 中定义一个滑动面,系统状态轨迹会收敛到该滑动面并保持在其上。该滑动面设计为对系统中的扰动和不确定性不敏感。一旦系统状态轨迹位于滑动面上,控制器就会使用反馈控制律将系统状态轨迹沿滑动面驱动至所需状态[1]。假设有一个由以下微分方程表征的动态系统。
其中:
f(x,t) 表示系统固有的动态特性。
g(x,t) 是输入函数,用于调节控制输入 u(x,t) 对系统的作用。
d(t) 表示随时间影响系统行为的外部扰动。
此表达式定义了系统的自然行为方式、控制作用对系统的影响方式,以及意外外部干扰所起的作用。它为控制系统的研究与设计提供了完整框架。SMC 采用不连续控制在两种不同的系统结构之间进行切换,其数学描述如下:
其中,u+k(t) 和 u-k(t) 表示基于系统相对于滑动面的位置的两个独立控制输入,nu 是输入的数量,sk(x) 是切换函数的第 k 个分量:
为确保状态变量收敛到滑动面、沿着滑动面运动并保持沿滑动面的轨迹,合理设计控制输入 uk 至关重要。当到达滑动面时,滑动面函数应满足 s(x) = 0,这表明滑模的存在。保证该条件的一个充分必要准则是,切换函数与其时间导数的乘积应为负,即 。该条件可确保由初始微分方程描述的系统一旦进入滑模,便可保持该状态。SMC 中的不连续控制会导致一个副作用,即控制输入可能表现出震颤:系统状态接近滑动面边界时,控制输入因持续切换产生快速振荡。震颤可能导致执行器损坏和系统出现非期望动态特性。因此在 SMC 设计中,减轻震颤是必不可少的环节。总的来说,SMC 设计包含以下阶段:
滑动面函数设计
控制输入选择
震颤抑制
设计滑动面
在 Simulink® 中实现 SMC 时,您可以使用 Sliding Mode Controller (Reaching Law) 模块和 Linear Sliding Mode Controller (State Feedback) 模块。
Sliding Mode Controller (Reaching Law) 模块 - 适用于实现一类由方程 表征的一般非线性系统的 SMC,但需要自行设计滑动面 C。
Linear Sliding Mode Controller (State Feedback) 模块 - 适用于采用状态反馈方法实现基于一类不确定线性系统的 SMC。此模块的主要优势在于,它提供了两种自动为此类系统设计滑动面的方法。 (自 R2025a 起)
这两个模块都提供了用于调节或跟踪的不同操作模式。切换函数和控制律的设计取决于所选模式。这些模块简化了控制律的计算,让您只需调节少量参数(如近似模型动态特性、滑动矩阵),而且还支持配置趋近律和边界层参数。
Sliding Mode Controller (Reaching Law) 模块
Sliding Mode Controller (Reaching Law) 模块适用于对 形式的通用非线性系统实现 SMC。您可以将该模块配置为以下操作模式:
调节模式 - 当您想要将系统稳定在固定点(即使所有状态 x 收敛至零)时,使用此模式。
跟踪模式 - 当您想要使系统状态遵循参考轨迹 xref 时,使用此模式。
其中,C 是滑动系数矩阵(用于确定滑模控制驱动系统状态所趋近的超平面),s(x) 是切换函数,h(s(x)) 是趋近律。
Linear Sliding Mode Controller (State Feedback) 模块
自 R2025a 起
当您拥有基于标称线性被控对象模型的简化动态特性,并且希望使用所提供的方法自动设计滑动面时,此模块非常有用。您可以将 Linear Sliding Mode Controller (State Feedback) 配置为以下操作模式:
调节模式 - 当您希望将系统状态 x(t) 驱动至零时,使用此模式。
参考跟踪模式 - 当您希望系统输出 y(t) 跟踪指定的参考信号 r(t) 时,使用此模式。
模型参考跟踪模式 - 当您希望系统状态 x(t) 跟踪预定义的参考模型状态 xm(t) 时,使用此模式。
对于每种模式,您可以直接指定滑动矩阵 S,也可以通过以下两种方法之一设计该矩阵:
极点配置 - 通过分配滑模期间闭环系统的期望特征值来设计滑动矩阵 S,以实现期望的动态特征。
二次最小化 - 设计滑动矩阵 S,使系统最小化二次性能指数,表达为:
矩阵 Q 是加权矩阵,根据分配的权重对状态偏差进行惩罚。这与 LQR 设计中的 Q 矩阵概念一致。
定义趋近律
趋近律用于指定切换函数 s(x) 的动态特性。控制输入的选择基于您在模块参数中指定的趋近律。然后,模块会求解满足使状态保持在滑动面上所需条件的控制输入[3]。您可以指定以下几种类型的趋近律:
恒定速率趋近律 -
该趋近律提供恒定速率使系统趋近滑动面。其中,θ(si) 是边界层,ηi 是第 i 个控制输入的趋近速率。趋近速率决定系统轨迹接近滑动面的速度。η 值越大,收敛至滑动面的速度越快,但也可能导致控制量增大,考虑到执行器饱和或震颤加剧等潜在问题,并非所有场景都适用较大的该值。
指数趋近律 -
该趋近律增加了与滑动变量成比例的项,当状态偏差较大时能提供更快速的收敛。其中,Ki 是控制增益项,用于缩放与第 i 个滑动变量相关的控制量。该项会随着与滑动面距离的增加而成比例地增大控制量。
幂次趋近律 -
该趋近律在状态远离滑动面时提供较快的趋近速度,而当状态接近滑动面时降低速度。这可在保证快速收敛的同时减少震颤。α 的值(其中 0 < α < 1)会影响趋近滑动面过程的平滑度,值越小,趋近过程越平缓,并潜在地减轻震颤。
单位向量趋近律 -
其中,P2 是李雅普诺夫方程 的解。
该趋近律仅适用于 Linear Sliding Mode Controller (State Feedback) 模块。
指定边界层
SMC 中的一个常见问题是震颤,即当系统状态接近滑动面时,控制输入会高频切换。为了减轻震颤,您可以采用准滑模控制。在这种方法中,控制律中的不连续符号函数会替换为连续近似函数。这样可以使系统状态保持在滑动面周围的边界层内,而不是要求轨迹精确地停留在滑动面上。该方法可减少控制信号的高频切换,实现震颤抑制。
您可以指定以下边界层之一:
符号函数边界层 -
此选项使用默认的符号函数,在 -1 和 1 之间不连续切换。
中继函数边界层 -
此选项使用中继函数定义滑动面周围的切换边界。
双曲正切函数边界层 -
此选项使用双曲正切函数定义滑动面周围的切换边界。
饱和函数边界层 -
此选项使用饱和函数,当滑动变量处于边界层 [–ϕ,ϕ] 内时,在 -1 和 1 之间进行平滑插值,从而减少高频切换。
其中,ϕ 的选择至关重要,因为它定义了滑动面周围的边界层厚度。ϕ 越大,震颤越少,但会增加稳态误差。相反,ϕ 越小,稳态误差也会减小,但会增加震颤。
有关滑模控制的详细信息
有关滑模控制的详细信息,请观看下方视频。本视频是稳健控制系列视频的一部分。
参考
[1] Derbel, Nabil, Jawhar Ghommam, and Quanmin Zhu, eds. Applications of Sliding Mode Control. Vol. 79. Studies in Systems, Decision and Control. Singapore: Springer Singapore, 2017. https://doi.org/10.1007/978-981-10-2374-3.
[2] Weibing Gao, and J.C. Hung. “Variable Structure Control of Nonlinear Systems: A New Approach.” IEEE Transactions on Industrial Electronics 40, no. 1 (February 1993): 45–55. https://doi.org/10.1109/41.184820.
[3] Richter, Hanz. Advanced Control of Turbofan Engines. New York, NY: Springer New York, 2012. https://doi.org/10.1007/978-1-4614-1171-0.
[4] Edwards, Christopher, and Sarah K. Spurgeon. Sliding Mode Control: Theory and Applications. Systems and Control Book Series ; Vol. 7. London: Taylor & Francis, 1998.
另请参阅
Sliding Mode Controller (Reaching Law) | Linear Sliding Mode Controller (State Feedback)