【模糊滑模】基于模糊切换增益调节的滑模控制

前言:接上文,滑模控制主要的问题是抖振问题,接着我就学习了一下如何减小抖振,这里主要根据模糊控制来减小,看了一下模糊滑模控制,它是将符号函数的增益系数自适应,来减小滑模面附近的抖振,在这期间稍微有点感悟,这里简单记录一下模糊滑模的消抖问题。

1. 被控对象

  以钟摆对象为对象,考虑外部干扰,采用普通滑模与模糊滑模分别进行控制,看看效果怎么样。
{ x ˙ 1 = x 2 x ˙ 2 = f ( x ) + g ( x ) u + d ( t ) y = x 1 \begin{cases} \dot{x}_1=x_2\\ \dot{x}_2=f \left( x \right) +g \left( x \right) u+d\left( t \right)\\ y=x_1\\ \end{cases} x˙1=x2x˙2=f(x)+g(x)u+d(t)y=x1 其中, f ( x ) = 0.5 sin ⁡ x 1 ( 1 + 0.5 cos ⁡ x 1 ) x 2 2 − 10 sin ⁡ x 1 ( 1 + cos ⁡ x 1 ) 0.25 ( 2 + cos ⁡ x 1 ) 2 f \left( x \right) =\frac{0.5\sin x_1\left( 1+0.5\cos x_1 \right) x_{2}^{2}-10\sin x_1\left( 1+\cos x_1 \right)}{0.25\left( 2+\cos x_1 \right) ^2} f(x)=0.25(2+cosx1)20.5sinx1(1+0.5cosx1)x2210sinx1(1+cosx1) g ( x ) = 1 0.25 ( 2 + cos ⁡ x 1 ) 2 g \left( x \right) =\frac{1}{0.25\left( 2+\cos x_1 \right) ^2} g(x)=0.25(2+cosx1)21 d ( t ) = 10 cos ⁡ ( 3 t ) cos ⁡ ( x 1 ) d\left( t \right) =10\cos \left( 3t \right) \cos \left( x_1 \right) d(t)=10cos(3t)cos(x1),系统状态初值为 [ 1 , 0 ] T \left[ 1,0\right] ^T [10]T,理想跟踪指令为 p i 6 sin ⁡ ( t ) \frac{pi}{6}\sin \left( t \right) 6pisin(t)

2. 普通滑模控制器

  取 e = x d − x 1 e=x_d-x_1 e=xdx1,滑模面 s = c e + d e s=ce+de s=ce+de s ˙ \dot{s} s˙ 取指数趋近律,可得控制律 u t = 1 / g ⋅ ( c ⋅ d e + θ ¨ d − f + K ⋅ s + ε ⋅ s g n ( s ) ) ut=1/g\cdot \left( c\cdot de+\ddot{\theta}_d-f+K\cdot s+\varepsilon \cdot sgn\left( s \right) \right) ut=1/g(cde+θ¨df+Ks+εsgn(s)) K K K即为增益系数,取为11, ε \varepsilon ε 取0.3,仿真结果如下:

角度跟踪效果:

角速度跟踪效果:

控制输入:

  可以看出:系统的角度和角速度能够很快的跟踪上指定的信号,但由于增益系数 K K K 是固定的,导致在系统状态在靠近滑模面时仍然具有大的切换增益,于是系统状态在滑模面附近剧烈抖振,控制输入在0附近疯狂切换,控制输入的抖动程度为40左右。

3. 模糊滑模控制器

  将模糊控制与滑模控制结合,不断调整增益系数 K K K 以使得系统状态在较远处有大的增益系数,而靠近滑模面时减小增益以减小系统在滑模面附近的来回抖振。
  取滑模面 s = c e + d e − F ( t ) s=ce+de-F\left( t \right) s=ce+deF(t) ,取控制律 u t = 1 / g ⋅ ( c ⋅ d e + θ ¨ d − f + K ^ ⋅ s i g n ( s ) − F ˙ ( t ) ) ut=1/g\cdot \left( c\cdot de+\ddot{\theta}_d-f+\hat{K}\cdot sign\left( s \right) -\dot{F}\left( t \right) \right) ut=1/g(cde+θ¨df+K^sign(s)F˙(t))即可实现模糊输出对外部扰动的逼近作用,其中 K ^ \hat{K} K^ 为模糊控制输出。
  模糊输入选为 s ⋅ s ˙ s\cdot \dot{s} ss˙ ,模糊输出为 Δ K \varDelta K ΔK,输入区间选为 [ − 15 , 15 ] \left[ -15,15 \right] [15,15] ,输出区间选为 [ − 1.5 , 1.5 ] \left[ -1.5,1.5 \right] [1.5,1.5],模糊集选为 N B , N S , Z O , P S , P B NB,NS,ZO,PS,PB NB,NS,ZO,PS,PB ,隶属函数选为高斯基函数,模糊规则为专家经验的 i f − t h e n if-then ifthen 规则 ,即如果 s s ˙ > 0 s\dot{s}>0 ss˙>0,则增大 K K K,如果 s s ˙ < 0 s\dot{s}<0 ss˙<0,则减小 K K K,模糊推理为 M a m d a n i Mamdani Mamdani型,解模糊化选为面积重心法centroid,其他模糊参数根据经验选择。

仿真模型:

角度跟踪效果:

角速度跟踪效果:

控制输入:

对外部扰动的逼近作用:

  之所以能够实现对外部扰动的逼近作用,是因为在设计控制器时用模糊项抵消了外部扰动项。

  观察角度和角速度,由于增益系数在系统状态靠近滑模面时会减小,导致系统状态的跟踪时间比起固定增益系数会延长一点点,不是直接到达参考轨迹,而是慢慢贴合上,之后仍能够很好的跟踪上。
  而观察控制输入,发现有很大的改善,不再像普通滑模控制的输入剧烈抖振,模糊滑模的输出平缓了很多,且曲线经我放大后也看不出来有抖振的现象,本次减抖效果很好,有效的解决了普通滑模控制带来的抖振问题。
  另附:比例系数G,根据正常滑模控制的K和模糊控制的输出确定比例系数。

4. 仿真报错

在这里插入图片描述
  当出现仿真不收敛的报错时,将求解器换为变步长即可。

5. 总结

  对于模糊滑模控制,它相比单纯的滑模控制,可能会略微提高了一点收敛时间,但控制输入的抖振却明显降低了很多,两种控制在稳定之后均能很好的跟踪,感觉模糊控制也是类似自适应控制,都是通过在线调整参数使系统的状态更加符合环境的变化。
  不过感觉模糊控制的参数选择很玄学,需要点经验。。
  下一步学习计划:将模糊控制用于神经网络控制中…

  更新,模糊神经网络已完成【模糊神经网络】基于模糊神经网络的倒立摆轨迹跟踪控制

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值