哈哈哈。。。先让我笑一会。。。

原来是翻译成超螺旋滑模,这么中二的名字吗。。。哈哈哈哈哈哈哈

我猜 超螺旋 = Super-Twisting Algorithm,我们管它叫极致扭曲,也很二。

这是我可爱的师兄14年写的一个STA在电机参数辨识上的应用,谷歌上引用破110啦:

https://ieeexplore.ieee.org/abstract/document/6718071?

ieeexplore.ieee.org

用他的话说,就是这个东西超简单,C语言就四行代码,但是又好用。

先科普一下,这东西当初Arie Levant提出来就是为了求导的,叫 Exact Differentiation,好像是发在Automatica上。可以看一下这篇发表在TAC上的简单版文章(Second-Order Sliding-Mode Observer for Mechanical Systems by Jorge Davila, Leonid Fridman, and Arie Levant 2005)

为什么能够减小抖振?我没有深入研究过这个东西,但是可以直接从形式上感觉到。因为输出误差方程中,没有出现高增益开关函数项,而是由一个状态估计项和一个输出误差的幅值开根号为幅值的开关函数组成了「滑模控制」:

egin{align} dot{	ilde x}_1=	ilde x_2-lambda|	ilde x_1|^{1/2}{
m sign}(	ilde x_1) \ dot{	ilde x}_2=F(t,x_1,x_2,hat x_2)-alpha {
m sign}(	ilde x_1) end{align} (注意,这已经是误差方程了哦,tilde表示误差)

这里出现的lambda和alpha是待设计参数,TAC这篇文章里有给出建议取值,当然,这里要求函数F是有界的,然后跟传统滑模一样耍流氓,令alpha大于函数F上界,只不过是在二阶动态方程中这么做。

可以看到,这里系统中未知的是状态x2,传统滑模会直接将x2替换为开关函数。二阶滑模则不然,x2用hat x2代替,加上一个开根号的校正项,hat x2的动态方程中才用上了高增益开关函数。明摆著这样可以减小滑模抖振啊,因为主要的滑模抖振来源就是高增益开关函数项(alpha那项),但是这里给它进行了一次积分(相当于一次低通滤波了)以后,才施加到输出(x1)动态方程中。

先说到这吧,还要工作呢。


额 这怎么就要请我了


ST是最简单好用的二阶SMC,记住所谓的高阶SMC消抖,都是把sign放在了滑模变数的高阶导数中,这样得到控制率中最终会含有对sign的积分项,而积分本身就具有低通滤波的功能,因此实现了抖阵的抑制。


推荐阅读:
查看原文 >>
相关文章