变结构控制(VSC)是一种特殊的非线性控制器,表现为控制的不连续性,又称滑模控制(SMC)。一般步骤为滑模面的设计、趋近率的设计、控制器的求解。
-
滑模控制的理解
如图所示,s是滑模面,系统状态处于滑模面等于0(或附近)系统是稳定的。至于为啥系统状态处于滑模面等于0(或附近)系统是稳定的,将在滑模面的设计中解释。那么现在我们的目标就是如何使s趋近于0,从而系统稳定。最容易想到的方法就是。当s>0时,,反之当s<0时,,这样s最终趋近于0。
-
滑模面的设计
针对线性系统(此处用到状态空间知识)
滑模面设计通常为:
为啥这么设计就能保证s(x)=0时,系统就趋于稳定呢,以位移、速度、加速度这个例子来说明。状态变量为,即位移和速度,当位移和速度均为0系统稳定。则状态方程可以写成:
此时滑模面的设计为:
那么为啥s=0时,系统就稳定了呢。若s=0,最可能看出的一个解就是x和v均为0,此时系统稳定。那会不会有其他解呢?上述式子可以写成
定性的解释就是:假如x大于0,由于c1大于0,所以小于0,所以x会不断减小,直到为0,反之也是如此。当然这里也可以解微分方程来理解。
那么如果x=0不是平衡位置,假设x=5时平衡,那么滑模面就可以设计为:
当然滑模面的设计方法不止这一种,后续还有终端滑模等,后续再进行理解。
-
趋近率的设计
根据前面所述,趋近率设计的目的就是为了使所设计的滑模面s=0。最容易想到的方法就是。当s>0时,,反之当s<0时,,这样s最终趋近于0。
最常用的趋近率的设计为:
等速趋近律:
指数趋近律:
幂次趋近律:
一般趋近律:
其中sgn为符号函数,当s>0时,sgn(s)>0,反之小于0。上述所有的趋近率都最终保证s趋近0。
当然由于符号函数再0处会产生较大的跳变。可以考虑将符号函数替换为一下函数,也就有同样的效果:
饱和函数:
双曲正切函数:
连续函数
-
举例
考虑下列线性系统:,为期望角度。
滑模面的设计为:
趋近率的设计为:
带入状态方程则系统的输出为:
imulink仿真图为:
输出结果: