【控制理论】深入理解鲁棒控制 | 滑模控制原理与应用实例解析

写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花

📚 系列专栏:【运动控制】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~



引言

  本篇博客重点讲解鲁棒控制中的滑模控制,内容整理自 B站知名up主 DR_CAN 的视频,作为博主的学习笔记,分享给大家共同学习。


一、鲁棒控制的定义与重要性

1.1 鲁棒控制的英文含义

  鲁棒控制本身听上去不是很好理解,所以回归到它的英文Robust,它的含义就是强壮的意思。鲁棒当然就是它的音译,当理解了含义之后,就可以明白鲁棒控制,即控制器设计是很强壮的。

1.2 维基百科上的定义

  在维基百科上面有这样一段话介绍鲁棒控制:

  To achieve robust performance and/or stabilty in presence of bounded modeling error.

  其中有两点需要注意:presencebounded。即存在有界误差。它的应用也非常广泛,比如空调系统,或者巡航系统,因为都存在一些误差,但是这些误差都是有界的,比如空调室外温度是有界的。比如巡航系统不管是在雨天或者在雪地,摩擦系数也都是有界的,但是是不确定的误差。

1.3 自适应控制示例

  举个例子,有这样的系统:
x ˙ = a x 2 + u \dot { x } = a x ^ { 2 } + u x˙=ax2+u叫做 自适应控制(Adaptive Controller)

  假设 a a a 是未知常数,可以令
u = x ˙ d + x 2 ∫ 0 t e x 2 d t + k e u = \dot { x } d + x ^ { 2 } \int _ { 0 } ^ { t } e x ^ { 2 } d t + k e u=x˙d+x20tex2dt+ke  使得 x x x 趋向于 x d x_d xd。在鲁棒控制中,条件变得更加苛刻: a a a 不再是常数,只知道 a a a 是有界的数,即
∣ a ∣ ≤ ∣ a ‾ ∣ | a | \le | \overline { a } | aa  目标依然是令 x → x d x \rightarrow x_d xxd ,即
x d − x = e → 0 x _ { d } - x = e \rightarrow 0 xdx=e0  其中, e e e 是误差。


二、鲁棒控制器设计

如何设计控制器呢?

  先看一般形式:
x ˙ = f ( x ) + u \dot { x } = f ( x ) + u x˙=f(x)+u  目标是令 x → x d x \rightarrow x_d xxd ,误差的动态方程就是
e ˙ d = x ˙ d − x ˙ = x ˙ d − f ( x ) − u \dot { e } _ { d } = \dot { x } _ { d } - \dot { x } = \dot { x } _ { d } - f ( x ) - u e˙d=x˙dx˙=x˙df(x)u  前提条件是 ∣ f ( x ) ∣ < ρ ( x ) | f ( x ) | < \rho ( x) f(x)<ρ(x) 。可以令
u = x ˙ d + k e + ρ ∣ e ∣ e u = \dot { x }_d + k e + \rho \frac { | e | } { e } u=x˙d+ke+ρee  其中
∣ e ∣ e = sgn ( e ) { 1 0 − 1 e > 0 e = 0 e < 0 \frac{|e|}{e}=\text{sgn} \left( e \right) \left\{ \begin{array}{c} \begin{array}{c} 1\\ 0\\ \end{array}\\ -1\\ \end{array} \right. \begin{array}{c} e>0\\ e=0\\ e<0\\ \end{array} ee=sgn(e) 101e>0e=0e<0  在图上画出来的图形如下:
在这里插入图片描述


三、数学证明

  下面证明为什么这样的控制器设计可以使系统稳定。

3.1 李雅普诺夫稳定性

  从李亚普诺夫方程的角度考虑问题,令
V ( e ) = 1 2 e 2 V { ( e ) } = \frac { 1 } { 2 } e ^ { 2 } V(e)=21e2  对其求导可得
V ˙ ( e ) = e e ˙ = e ( x ˙ d − f ( x ) − u ) = e ( x ˙ d − f ( x ) − x ˙ d − k e − ρ ∣ e ∣ e ) = − k e 2 − e f ( x ) − ρ ∣ e ∣ ≤ − k e 2 + ∣ e ∣ ∣ f ( x ) ∣ − ρ ∣ e ∣ ≤ − k e 2 + ∣ e ∣ ρ − ρ ∣ e ∣ \begin{aligned} \dot V\left( e \right) &=e\dot{e}=e\left( \dot{x}_d-f\left( x \right) -u \right)\\ &=e\left( \dot{x}_d-f\left( x \right) -\dot{x}_d-ke-\rho \frac{|e|}{e} \right)\\ &=-ke^2-ef\left( x \right) -\rho |e|\\ &\leq -ke^2+|e||f\left( x \right) |-\rho |e|\\ &\le -ke^2+|e|\rho -\rho |e|\\ \end{aligned} V˙(e)=ee˙=e(x˙df(x)u)=e(x˙df(x)x˙dkeρee)=ke2ef(x)ρeke2+e∣∣f(x)ρeke2+eρρe  即 V ˙ ( e ) ≤ − k e 2 \dot V{ ( e ) } \leq - k e ^ { 2 } V˙(e)ke2  再回过头看 V ( e ) = 1 2 e 2 V { ( e ) } = \frac { 1 } { 2 } e ^ { 2 } V(e)=21e2,可以推出来
2 V ( e ) = e 2 2 V { ( e ) } = e ^ { 2 } 2V(e)=e2  代入
V ˙ ( e ) ≤ − 2 k V ( e ) \dot V ( e ) \leq - 2 k V { (e) } V˙(e)2kV(e)  移到左边来
V ˙ ( e ) + 2 k V ( e ) ≤ 0 \dot { V } { ( e ) } + 2 k V { ( e ) } \leq 0 V˙(e)+2kV(e)0  得到微分方程不等式,引入新的大于 0 0 0 的函数 S ( t ) S(t) S(t),可以写成
V ˙ ( e ) + 2 k V ( e ) + S ( t ) = 0 \dot { V } { ( e ) } + 2 k V { ( e ) } + S { ( t ) } = 0 V˙(e)+2kV(e)+S(t)=0 V ˙ ( e ) + 2 k V ( e ) = − S ( t ) \dot V { ( e ) } + 2 k V ( e ) = - S ( t ) V˙(e)+2kV(e)=S(t)  上式为一阶线性非齐次方程。

  通解为
V ( t ) = V ( 0 ) e − 2 k t − e − 2 k t ∫ 0 t e 2 k t s ( τ ) d τ . V { ( t ) } = V { ( 0 ) } e^ {- 2 k t} - e^{- 2 k t } \int _ { 0 } ^ { t } e^{ 2 k t }s (\tau ) d \tau . V(t)=V(0)e2kte2kt0te2kts(τ)dτ.  注意:此处的 e − 2 k t e^ {- 2 k t} e2kt 为指数函数,不是误差。

3.2 进一步分析

  在积分项里知道 s ( τ ) > 0 s (\tau )>0 s(τ)>0,因为这是设的 s ( τ ) > 0 s (\tau )>0 s(τ)>0。知道 e e e 的指数都是大于 0 0 0 的,所以积分项里的内容是大于 0 0 0 的,积分项外面的这一项 e − 2 k t e^ {- 2 k t} e2kt 也一定是大于 0 0 0 的。所以整个减去的这一项都是大于 0 0 0 的,可以得到
V ( t ) ≤ V ( 0 ) e − 2 k t V { ( t ) } \le V { ( 0 ) } e^{ - 2 k t} V(t)V(0)e2kt  在这种情况下,把 V ( t ) V(t) V(t) 代进去
1 2 e 2 ( t ) ≤ 1 2 e 2 ( 0 ) exp ( − 2 k t ) \frac { 1 } { 2 } e ^ { 2 } ( t ) \le \frac { 1 } { 2 } e ^ { 2 } ( 0 ) \text{exp} ( - 2 k t ) 21e2(t)21e2(0)exp(2kt)
  两边开方可得到
∣ e ( t ) ∣ ≤ ∣ e ( 0 ) ∣ exp ( − k t ) | e ( t ) | \leq | e ( 0 ) | \text{exp} ( - k t ) e(t)e(0)exp(kt)  是一种指数渐进稳定的形式。


四、滑模控制原理

  下面做的这一系列的工作,就是为了证明当
x ˙ = f ( x ) + u \dot { x } = f ( x ) + u x˙=f(x)+u  其中, ∣ f ( x ) ∣ < ρ ( x ) | f ( x ) | < \rho ( x ) f(x)<ρ(x) 时,可以令
u = x ˙ d + k e + ρ ∣ e ∣ e u = \dot { x }_d + k e + \rho \frac { | e | } { e } u=x˙d+ke+ρee  这样就可以令 e = x d − x → 0 , t → 0 e=x_d-x\rightarrow0,t\rightarrow0 e=xdx0,t0

  现在把式子代进来
e ˙ = x ˙ d − x ˙ = x ˙ d − f ( x ) − u = − k e − f ( x ) − ρ ( x ) e ∣ e ∣ \dot { e } = \dot { x } _ { d } -\dot x=\dot x_d- f ( x ) - u =- k e - f ( x ) - \rho ( x ) \frac { e } { | e | } e˙=x˙dx˙=x˙df(x)u=kef(x)ρ(x)ee  把 u u u 代进去
e = − k e − f ( x ) − ρ ( x ) e ∣ e ∣ e = - k e - f ( x ) - \rho ( x ) \frac { e } { | e | } e=kef(x)ρ(x)ee

  先看前面一部分 e = − k e e = - k e e=ke ,观察函数的相平面:
在这里插入图片描述

  横轴是 e e e,纵轴是 e ˙ \dot e e˙,它是一条这样的线,在左半平面时, e < 0 e<0 e<0 e ˙ > 0 \dot e>0 e˙>0,所以它将沿着线向右移动;在右半平面时, e > 0 e>0 e>0 e ˙ < 0 \dot e<0 e˙<0,所以它将沿着线向左移动,最后都移动到 0 0 0 点。

  引入后面这两项 − f ( x ) − ρ ( x ) e ∣ e ∣ - f ( x ) - \rho ( x ) \frac { e } { | e | } f(x)ρ(x)ee,其中 f ( x ) f(x) f(x) 项是本身系统的项,而 ρ ( x ) e ∣ e ∣ \rho ( x ) \frac { e } { | e | } ρ(x)ee 是引入的控制项。

  上面两项的目标是当系统偏离这条线时,引导系统状态滑到这条线上去。系统的状态变量可能在这条线的左面,也有可能在这条线的右边,但是因为有后面的一项,会不断地把系统状态往这条线上引导,所以这样的过程叫做滑模控制(Sliding Mode)

  滑模控制(Sliding Mode Control, SMC) 是一种鲁棒控制方法。鲁棒控制是指控制系统在面对模型不确定性、外部干扰和未建模动态时,仍能保持期望性能的能力。滑模控制通过设计一个滑动面和相应的控制律,使得系统状态在滑动面上滑动,即使在存在不确定性和干扰的情况下,也能保证系统的最终稳定性和期望的性能。


五、实例解析

  现在来解刚刚的例子:
x ˙ = a x 2 + u \dot { x } = a x ^ { 2 } + u x˙=ax2+u  其中, a a a 有界,即 ∣ a ∣ ≤ ∣ a ‾ ∣ | a | \le | \overline { a } | aa a x 2 a x ^ { 2 } ax2 就是一般形式中的 f ( x ) f(x) f(x)
∣ f ( x ) ∣ = ∣ a ∣ x 2 ≤ ∣ a ‾ ∣ x 2 < ∣ a ‾ ∣ ( x 2 + 0.1 ) | f ( x ) | = | a | x ^ { 2 } \leq | \overline { a } | x ^ { 2 } < | \overline { a } | ( x ^ { 2 } + 0 . 1 ) f(x)=ax2ax2<a(x2+0.1)  后面括号里不管写多少都可以,因为引入了常数以后,小于号就一定成立了,这就是 ρ ( x ) \rho(x) ρ(x)

  所以就可以令
u = k e + x ˙ d + ∣ a ‾ ∣ ( x 2 + 0.1 ) ∣ e ∣ e u = k e + \dot { x } _ { d } + | \overline { a } |( x ^ { 2 } + 0 . 1 ) \frac { | e | } { e } u=ke+x˙d+a(x2+0.1)ee  这就是滑模控制器。


六、总结

  大家可以自己设计 Simulink 验证。比如可以令 a a a 是小于 3 3 3 的随机数,随时间不断变化,看控制器的反应。

  在下一篇博客里会再介绍两种另外的鲁棒控制器,并把它们放在一起给做比较。

  本篇博客的内容就到这里,欢迎大家关注后续内容。


参考资料

  【Advanced控制理论】17_Robust Controller_非线性鲁棒控制器_Sliding Mode_滑模控制


后记:

🌟 感谢您耐心阅读这篇关于 滑模控制原理与应用实例解析 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清流君

感恩有您,共创未来,愿美好常伴

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值