滑模控制:积分滑模控制器设计方法及其理稳定性证明

摘要

   本篇博客用于记录个人学习相关,内容涉及积分滑模及其抖振抑制。阅读该博客需具有基本的线性滑模及一阶常微分方程相关知识。

引言

  积分滑模是在基本线性滑模基础上的一个新形式,目前能找到最早的记录是由滑模创始人Utkin在1996年的CDC会议论文[1]中提出,该论文所阐述积分滑模相对于基本的线性滑模有以下两个改进,一是初始时刻状态便在滑模面上,省去了基本线性滑模中状态趋向于滑模面的这一个过程,保证了全过程的鲁棒性,二是积分滑模可以削减抖振。

问题

  对于一个理想的无扰动及不确定性的非线性自治系统(本文均考虑自治系统)
x ˙ = f ( x ) + B ( x ) u \begin{equation} \dot x=f(x)+B(x)u \end{equation} x˙=f(x)+B(x)u其中 f ( x ) ∈ R n f(x)\in \R^n f(x)Rn B ( x ) ∈ R n × n B(x)\in \R^{n \times n} B(x)Rn×n为非奇异矩阵,且都是已知的,我们可以找到一个 u = u 0 ∈ R n u=u_0 \in \R^n u=u0Rn,使得该系统稳定,比如: u 0 = − B − 1 ( f ( x ) + x ) u_0=-B^{-1}(f(x)+x) u0=B1(f(x)+x),则有
x ˙ = − x \begin{equation}\dot x=-x \end{equation} x˙=x此时通过Lyapunov定理或直接求解常微分方程即可得到该系统是渐近稳定的。
然而实际系统中扰动和不确定性是不可避免的,其一般的系统方程表示为:
x ˙ = f ( x ) + B ( x ) u + h ( x , t ) \begin{equation}\dot x=f(x)+B(x)u+h(x,t)\end{equation} x˙=f(x)+B(x)u+h(x,t) 其中h(x,t)为匹配扰动(本文只考虑匹配扰动),也就是说该扰动在控制矩阵张成的子空间中: h ( x , t ) ∈ s p a n { B ( x ) } h(x,t)\in span \{B(x)\} h(x,t)span{B(x)},或者说能表示为: h ( x , t ) = B ( x ) u h h(x,t)=B(x)u_h h(x,t)=B(x)uh
  对于含扰动及不确定性的系统,显然上述的 u 0 u_0 u0不能使其稳定。目前存在很多相关的控制器能使其稳定,本文考虑使用积分滑模控制器。

假设一:扰动有上界,即 ∣ ∣ u h ∣ ∣ < D ||u_h||<D ∣∣uh∣∣<D D 为一大于零的常数 D为一大于零的常数 D为一大于零的常数

积分滑模控制器

  积分滑模的滑模函数设计如下: s = s 0 ( x ) + z , z ˙ = − ∂ s 0 ∂ x ( f ( x ) + B ( x ) u 0 ( x ) ) , z ( 0 ) = − s 0 ( x ( 0 ) ) \begin{align}s=&s_0(x)+z,\notag \\ \dot z=&-\frac{\partial s_0}{\partial x}\left(f(x)+B(x) u_0(x)\right),\quad z(0)=-s_0(x(0)) \end{align} s=z˙=s0(x)+z,xs0(f(x)+B(x)u0(x)),z(0)=s0(x(0))
式(4)的等价形式: s = s 0 ( x ) − ∫ 0 t ∂ s 0 ∂ x ( f ( x ) + B ( x ) u 0 ( x ) ) − s 0 ( x ( 0 ) ) \begin{equation}s=s_0(x)-\int_0^t{\frac{\partial s_0}{\partial x}\left(f(x)+B(x) u_0(x)\right)}-s_0(x(0))\end{equation} s=s0(x)0txs0(f(x)+B(x)u0(x))s0(x(0))
其中 s 0 ( x ) s_0(x) s0(x)可设计为, s 0 ( x ) = B − 1 x s_0(x)=B^{-1}x s0(x)=B1x ∂ s 0 ∂ x = B − 1 \frac {\partial {s_0}}{\partial {x}}=B^{-1} xs0=B1
显然有s(0)=0。
设计 u = u 0 + u I ∈ R n u=u_0+u_I \in \R^n u=u0+uIRn,其中 u I = − ( D + η ) s i g n ( s ) u_{I}=-(D+\eta)\rm \bold {sign}(s) uI=(D+η)sign(s) s i g n ( s ) = [ s i g n ( s 1 ) , s i g n ( s 2 ) , … s i g n ( s n ) ] T \rm {\bold {sign(s)}}=[\rm {sign(s_1), sign(s_2), \ldots sign(s_n)}]^T sign(s)=[sign(s1),sign(s2),sign(sn)]T η \eta η为一大于零的常数。

稳定性证明

  设计候选Lyapunov函数为: V = 1 2 s T s V=\frac{1}{2}s^Ts V=21sTs,其对时间导数为:
V ˙ = s T s ˙ = s T ( s ˙ 0 + z ˙ ) = s T B − 1 ( f ( x ) + B ( x ) ( u 0 + u I + u h ) − f ( x ) − B ( x ) u 0 ) = s T ( u h − ( D + η ) s i g n ( s ) ) < − η s T s i g n ( s ) < 0 \begin{align} \dot V=&s^T \dot s \notag \\ =&s^T(\dot s_0+ \dot z) \notag \\ =&s^TB^{-1}\left(f(x)+B(x)(u_0+u_I+u_h)-f(x)-B(x)u_0\right) \notag \\ =&s^T(u_h-(D+\eta)\rm{\bold {sign}}(s)) \notag \\ <&-\eta s^T \rm{\bold {sign}}(s)<0 \end{align} V˙====<sTs˙sT(s˙0+z˙)sTB1(f(x)+B(x)(u0+uI+uh)f(x)B(x)u0)sT(uh(D+η)sign(s))ηsTsign(s)<0
  因此s是渐近稳定的,满足可达性要求。
对于 s = 0 s=0 s=0有, s ˙ = 0 \dot s=0 s˙=0,对式(4)求导有
x ˙ = f ( x ) + B ( x ) u 0 \begin{equation} \dot x=f(x)+B(x)u_0 \end{equation} x˙=f(x)+B(x)u0
根据式(2),系统是渐近稳定的。

抖振抑制

  抖振抑制的方法比较多,像饱和函数边界层、观测器、以及这里提到的积分滑模。使用饱和函数构建边界层会使得滑模变量只能收敛到边界层内,而不是真的等于0,损失了鲁棒性及精度,观测器一般就是构造扰动观测器去估计扰动并进行补偿,进而切换项只需抵抗估计误差即可,相对来说比较有效果。
  Utkin在该论文中虽然说的是积分滑模抑制抖振,但实际上是用的一阶滤波器做等效控制的方法,一阶滤波器设计为:
μ u ˙ e q + u e q = u I \begin{equation}\mu \dot u_{eq}+u_{eq}=u_I\end{equation} μu˙eq+ueq=uI然后直接设计 u = u 0 + u e q u=u_0+u_{eq} u=u0+ueq即可,此时滑模面设计为 s = s 0 ( x ) − ∫ 0 t ∂ s 0 ∂ x ( f ( x ) + B ( x ) ( u − u I ) ) − s 0 ( x ( 0 ) ) \begin{equation}s=s_0(x)-\int_0^t{\frac{\partial s_0}{\partial x}\left(f(x)+B(x)(u-u_I)\right)}-s_0(x(0))\end{equation} s=s0(x)0txs0(f(x)+B(x)(uuI))s0(x(0))为啥要改成这样,其实还是稳定性证明的需要,设计候选Lyapunov函数 V = 1 2 s T s V=\frac{1}{2}s^Ts V=21sTs,求导有:
V ˙ = s T s ˙ = s T ( s ˙ 0 + z ˙ ) = s T B − 1 ( f ( x ) + B ( x ) ( u 0 + u e q + u h ) − f ( x ) − B ( x ) ( u 0 + u e q − u I ) ) = s T ( u h − ( D + η ) s i g n ( s ) ) < − η s T s i g n ( s ) < 0 \begin{align} \dot V=&s^T \dot s \notag \\ =&s^T(\dot s_0+ \dot z) \notag \\ =&s^TB^{-1}\left(f(x)+B(x)(u_0+u_{eq}+u_h)-f(x)-B(x)(u_0+u_{eq}-u_I)\right) \notag \\ =&s^T(u_h-(D+\eta)\rm{\bold {sign}}(s)) \notag \\ <&-\eta s^T \rm{\bold {sign}}(s)<0 \end{align} V˙====<sTs˙sT(s˙0+z˙)sTB1(f(x)+B(x)(u0+ueq+uh)f(x)B(x)(u0+uequI))sT(uh(D+η)sign(s))ηsTsign(s)<0
系统渐近稳定。

讨论

  积分滑模相对于基本的线性滑模有两个优点,一个是初始时刻状态便在滑模面上,从而保证了整个过程的鲁棒性;另一个就是抑制抖振,虽然积分滑模不直接用于设计无抖振的控制器,而是通过一阶低通滤波器设计的,但是通过积分滑模可以证明该控制器的稳定性。
  举个简单例子,对于系统 x ˙ 1 = x 2 x ˙ 2 = u + d \begin{align}\dot x_1=&x_2 \notag \\ \dot x_2=&u+d \end{align} x˙1=x˙2=x2u+d如果是使用线性滑模,设计滑模函数 s = x 1 + x 2 s=x_1+x_2 s=x1+x2 u = − x 2 + u s m c u=-x_2+u_{smc} u=x2+usmc u s m c = − ( D + η ) s i g n ( s ) u_{smc}=-(D+\eta)\rm sign(s) usmc=(D+η)sign(s)。此时能使得系统稳定,但是抖振比较大。
  如果直接使用一阶滤波器(8),那么构造候选Lyapunov函数 V = 1 2 s 2 V=\frac{1}{2}s^2 V=21s2,求导:
V ˙ = s ( x 2 + u + d ) = s ( u e q + d ) \begin{align} \dot V=&s(x_2+u+d)\notag \\ =&s(u_{eq}+d) \end{align} V˙==s(x2+u+d)s(ueq+d)会发现此时是无法证明 V ˙ \dot V V˙小于零的。

总结

  积分滑模通过使用一阶滤波器抑制抖振,同时初始时刻状态在滑模面上,保证了全过程的鲁棒性,具体可参考[1]。一阶滤波器后的 u e q u_{eq} ueq u I u_I uI其实是有误差的,但是误差有界,比较小,可参考[2]的第二十三和二十四页,大致证明如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

[1] V. I. Utkin and J. Shi, “Integral sliding mode in systems operating under uncertainty conditions,” in Proc. 35th IEEE Conf. Decis. Control, vol. 4, Kobe, Japan, Dec. 1996, pp. 4591–4596.
[2]V. Utkin, Sliding Modes inControl and Optimization (Ser.Communication and Control Engineering). Berlin, Germany: Springer-Verlag, 1992.

### 积分滑模控制的概念 积分滑模控制是一种改进型的滑模变结构控制技术,它通过引入积分项来增强系统的动态性能和稳态精度。相比于传统的滑模控制积分滑模控制能够有效减少系统的稳态误差并提高抗干扰能力[^1]。 具体来说,积分滑模控制的核心思想是在传统滑模面的基础上增加一个积分项,从而形成新的滑动模态方程: \[ s(t) = C(x - x_d) + \int_0^t (C(x - x_d)) dt \] 其中 \( s(t) \) 是滑模面函数,\( x \) 和 \( x_d \) 分别表示当前状态和期望轨迹,而 \( C \) 则是一个设计参数矩阵。该形式不仅保留了经典滑模控制的优点(如快速响应、强鲁棒性),还进一步提升了系统的跟踪能力和抑制扰动的能力。 --- ### 积分滑模控制的实现方法 #### 1. 设计滑模面 为了构建有效的积分滑模控制系统,首先需要定义合适的滑模面 \( s(t) \),这通常依赖于被控对象的具体动力学模型。对于线性系统而言,可以按照如下方式设定滑模面: \[ s(t) = e(t) + k_i \int_0^t e(\tau)d\tau \] 这里 \( e(t) = x(t) - x_d(t) \) 表示实际输出与目标值之间的偏差,\( k_i > 0 \) 是调节增益系数用于平衡瞬态过程和平稳运行阶段的表现。 #### 2. 控制律推导 根据李雅普诺夫稳定性论,可以通过选取适当的形式化表达式作为候选能量函数 \( V(s) \geqslant 0 \),进而求解满足条件的切换控制规律 \( u_{sw}(t) \): \[ u_{sw} = -k_s sign(s), \quad k_s>0. \] 此处 \( sign() \) 函数决定了当偏离想路径时如何调整输入信号方向;同时需注意边界层厚度的选择会影响最终效果的好坏程度。 以下是利用 MATLAB 编写的一个简单例子展示如何模拟这种类型的控制器行为: ```matlab % 定义时间向量与时步大小 dt = 0.01; time = 0:dt:5; % 初始化变量 x = zeros(2,length(time)); % 状态向量 [位置;速度] xd = ones(size(time))*pi/4; % 参考角度设为 pi/4 radian e = x(:,1)-xd'; % 计算初始误差 ki=8; % Ki 值设置较大以加快收敛速率 ks=10; % Ks 参数决定开关幅度强度 for i=2:length(time) % 更新误差及其累积值 de=(x(i-1,1)-xd(i))/dt; int_e=int_e+de*dt; % 构造 S 面 s=e(i)+ki*int_e; % 施加控制作用 usw=-ks*sign(s); dx=[x(i-1,2);usw]; x(:,i)=x(:,i-1)+dx*dt; end figure(); plot(time,xd,'r',time,x(1,:),'b'); legend('Desired Position','Actual Position'); xlabel('Time(sec)'); ylabel('Position(rad)'); title('Integral Sliding Mode Control Simulation Result'); grid on; ``` 此脚本展示了基本框架下的一维运动控制场景下的应用实例。 --- ### 应用领域 由于其卓越特性——高精确度定位配合良好适应外部不确定性因素影响的能力,使得积分滑模控制广泛应用于航空航天导航姿态保持、机器人关节伺服驱动管等领域之中[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值