欢迎光临散文网 会员登陆 & 注册

滑模控制常见的抖振抑制方法

2023-03-11 13:48 作者:学海行舟  | 我要投稿

       在滑模控制的设计中,通常把控制器设计的过于理想化,其中理想化的滑模控制中采用的符号函数sgn项要求控制器具有无穷大的切换频率,而实际中的控制装置往往是非理想的,不能实现无穷大的切换频率。由于这种非理性条件,使得实际的滑模运动状态并不能精确到达预先设计的滑模面上,而是在滑模面两侧来回穿越,从而产生抖振现象

       抖振会引起控制的能耗增加,系统的硬件受损等危害,因此,对滑模控制中的抖振抑制研究具有重要的意义。在本文中,我们将介绍三种抖振抑制方法并通过simulink仿真进行验证。

        1、饱和函数法

        2、sigmoid函数法

        3、渐进滑模法

        饱和函数法的基本原理是采用连续饱和函数替代符号函数。这种方法设计了一个边界层,在边界层内采用连续控制,在边界层外采用正常的滑模控制,从而消除了抖振的影响,最常见的一种饱和函数形式如下所示:

                                      sat(x)%3D%5Cbegin%7Bequation%7D%0A%5Cleft%5C%7B%0A%5Cbegin%7Baligned%7D%0A%26sgn(x)%2C%7Cx%7C%3E%5CDelta%5C%5C%0A%26%5Cfrac%7Bx%7D%7B%5CDelta%7D%2C%7Cx%7C%5Cle%5CDelta%0A%5Cend%7Baligned%7D%0A%5Cright.%0A%5Cend%7Bequation%7D

式中,%5CDelta为边界层的边界。

        饱和函数如图1所示,从图中可以发现sat(.)是连续函数,用它替换sgn(.)可以使得控制器变成连续控制器。

饱和函数图

        sigmoid函数是另一种常用的消弱滑模控制的抖振的方法,与饱和函数法类似,常见的sigmoid函数为

                                                         G(x)%3D%5Cfrac%7B1-e%5E%7B-ax%7D%7D%7B1%2Be%5E%7B-ax%7D%7D

其中,a>0是可以设计的系数,其函数曲线如图2所示,从图中可以发现sigmoid是一个过原点的连续函数,当x远离原点时,函数值靠近±1。当x靠近原点时,函数值靠近0。

        渐进滑模法借鉴了高阶滑模控制的原理,控制输入是高频开关函数的积分,从而消除了sgn(x)函数的抖振影响。为了阐述上面的设计,我们考虑如下二阶系统

                                                        %5Cbegin%7Bequation%7D%0A%5Cleft%5C%7B%0A%5Cbegin%7Baligned%7D%0A%26%5Cdot%7Bx%7D_1%3Dx_2%5C%5C%0A%26%5Cdot%7Bx%7D_2%3Du%2Bf%5C%5C%0A%26%5Cdot%7Bu%7D%3Dv%0A%5Cend%7Baligned%7D%0A%5Cright.%0A%5Cend%7Bequation%7D

其中x1和x2的初始状态分别为1和-2,外部扰动f=sin(2t)。

        滑模面设计为

                                                        %5Csigma%20%3Dx_2%2Bcx_1

        为了抑制抖振这里引入辅助滑模面

                                                        s%3D%5Cdot%7B%5Csigma%7D%2B%5Cbar%7Bc%7D%5Csigma

        当我们能设计控制率v使得s能够在有限时间内趋于零,此时%5Csigma%5Cdot%7B%5Csigma%7D也能趋于零,然而此时我们获得的不是理想的滑模,而是渐进滑模。我们同样采用李雅普诺夫的分析方法进行如下设计:

  s%5Cdot%7Bs%7D%3Ds(v%2Bc%5Cbar%7Bc%7Dx_2%2B(c%2B%5Cbar%7Bc%7D)u%2B(c%2B%5Cbar%7Bc%7D)f%2B%5Cdot%7Bf%7D)%5Cle%20sv_1%2B%7Cs%7C(%5Cbar%7BL%7D%2B(c%2B%5Cbar%7Bc%7D)L)

我们选择 v%3D-c%5Cbar%7Bc%7Dx_2-(c%2B%5Cbar%7Bc%7D)u%2Bv_1 ,并带入上式则有                               

                       s%5Cdot%7Bs%7D%3Ds(v_1%2B(c%2B%5Cbar%7Bc%7D)f%2B%5Cdot%7Bf%7D)%5Cle%20sv_1%2B%7Cs%7C(%5Cbar%7BL%7D%2B(c%2B%5Cbar%7Bc%7D)L)

其中,

                                                             %7Cf%7C%5Cle%20L

                                                             %7C%5Cdot%7Bf%7D%7C%5Cle%20%5Cbar%7BL%7D

此时,我们设计v1控制率如下

                                                       v_1%3D-%5Crho%20sgn(s)

将上式带入可得

                                      s%5Cdot%7Bs%7D%5Cle%20%7Cs%7C(-%5Crho%2B%20%5Cbar%7BL%7D%2B(c%2B%5Cbar%7Bc%7D)L)%3D-%5Calpha%7Cs%7C

如果我们选择控制%5Crho%3D%5Cbar%7BL%7D%2B(c%2B%5Cbar%7Bc%7D)L)%2B%5Calpha,则滑模面s能够在有限时间内t_r%20%5Cle%20%5Calpha%7Cs(0)%7C趋于零,此时控制率v可以被设计为

                                     v%3D-%5Crho%20sgn(s)-c%5Cbar%7Bc%7Dx_2-(c%2B%5Cbar%7Bc%7D)u

        为了验证上述设计我们在simulink环境下搭建相应的仿真,仿真结果如下所示。

常规滑模控制下的状态变量
常规滑模控制下的控制输入
饱和函数法下的状态变量

饱和函数法下的控制输入
sigmoid法下的状态变量

sigmoid法下的控制输入
渐进滑模法的状态变量

渐进滑模法的控制输入

        从上述仿真结果可以发现,三种控制方法能够很好的抑制滑模的抖振现象。

滑模控制常见的抖振抑制方法的评论 (共 条)

分享到微博请遵守国家法律