赵海滨, 陆志国, 刘 冲, 于清文, 颜世玉
(东北大学 机械工程与自动化学院, 沈阳 110819)
在普通的滑模变结构控制中[1-2],选择的线性滑模面使得系统轨迹在到达滑动模态后的运动是渐进稳定的,状态跟踪误差不能在有限时间内收敛到零。为了获得更好的控制性能,近年来一些学者提出了终端滑模(Terminal Sliding Mode, TSM)控制方法[3-4],在滑动超平面中采用非线性函数,使得在滑模面上跟踪误差能够在有限时间内收敛到零。终端滑模控制对模型误差和外部干扰信号具有较好的鲁棒性,能够在有限时间内收敛[5-6],且具有较高的稳态精度,广泛用于高速、高精度控制系统。由于在系统状态接近平衡状态时,终端滑模控制存在奇异问题,有些学者提出了非奇异终端滑模(Nonsingular Terminal Sliding Mode, NTSM)控制方法,并用于永磁同步电动机[7-8]和机器人[9-11]等的控制。
本文以二阶非线性系统为研究对象,采用非奇异终端滑模控制器进行控制。在非奇异终端滑模控制器中,对普通指数趋近律进行改进,提出一种变速指数趋近律。为了抑制抖振现象,在控制器中采用饱和函数代替符号函数。采用Matlab/Simulink软件建立了非奇异终端滑模控制仿真实验系统,对提出的方法进行了验证。该仿真实验系统将理论和编程实现相结合,不仅有助于学生对基本理论的理解,而且让学生了解滑模控制的实际应用。通过仿真过程,提高学生的编程能力和创新意识,并激发学生的学习兴趣。
对于二阶不确定非线性系统
(1)
式中:x=[x1,x2]T为系统的状态变量;f(x)和g(x)为已知连续非线性函数,g(x)≠0;d(t)为外部干扰,且|d(t)|≤μ,μ>0;u为控制输入。
传统终端滑模的滑模面为:
(2)
式中:β>0;p和q为正奇数,p>q。采用以下指数趋近律:
(3)
传统终端滑模控制器设计为:
(4)
式中,由于q/p-1<0,在x1=0,x2≠0时会有奇异问题。
为了克服传统终端滑模控制存在的奇异问题,很多学者提出了非奇异终端滑模方法,能够很好地解决奇异问题。非奇异终端滑模控制方法的滑模面为:
(5)
式中:β>0;p和q为正奇数,p>q且1
(6)
在式(3)的指数趋近律中,其中的参数k和ε为固定值,不具有自动调整功能。本文提出如下的变速指数趋近律:
(7)
采用变速指数趋近律时,非奇异终端滑模控制器设计为:
(8)
为了削弱抖振,在控制器中采用饱和函数sat(s)代替符号函数sgn(s),饱和函数的表达式为:
(10)
式中:δ>0称为边界层。在边界层之外采用切换控制,在边界层内采用线性化反馈控制。用饱和函数sat(s)代替sgn(s)后,采用普通指数趋近律时,非奇异终端滑模控制器为:
(11)
用饱和函数sat(s)代替sgn(s)后,采用变速指数趋近律时,非奇异终端滑模控制器为:
(12)
Matlab/Simulink软件具有强大的数学运算能力,并且对问题的描述和求解符合人们的思维习惯和数学表达习惯,已经广泛应用于动态系统仿真[12-14]。对于使用普通Simulink模块不易搭建的复杂控制系统,可以利用Matlab语言编写M-Function或S-Function文件,通过User-Defined Functions模块嵌入到Simulink仿真环境中[15]。M-Function文件采用Matlab语言编写,程序代码比较短,且容易实现。因此本文采用M-Function实现非奇异终端滑模控制系统。
本文采用的二阶非线性系统[16]为:
(13)
式中:f(x)=-16x2;g(x)=125;x=[x1,x2]T,外部干扰信号为d(t)=0.1sin(20t)。
在仿真过程中,采用变步长的ode45算法,最大步长为1 ms,仿真时间为12 s。利用Matlab/Simulink软件建立的仿真实验系统,如图1所示。图中,非线性系统1和2完全相同,都是根据式(13)建立的二阶非线性系统模型。在图1中,NTSM1模块为采用普通的指数趋近律的非奇异终端滑模控制器,NTSM2模块为采用变速指数趋近律的非奇异终端滑模控制器。积分模块Integrator的初始值通过外部输入确定。通过手动开关,对状态变量的初始值进行选择,x(0)=[0.1,0.1]T或x(0)=[30,30]T。仿真结果可以通过Scope模块直接显示,同时利用To Workspace模块保存到工作空间中。
图1 非奇异终端滑模控制仿真实验系统
在所有的控制器中,参数选择为:μ=0.1,β=1,p=5,q=3,k=1,ε=0.1。利用饱和函数代替符号函数时,边界层通常取非常小的数,本文取δ=0.005。采用变指数趋近律时,非奇异终端滑模控制器中的参数c根据状态变量的初始值进行选取。当状态变量的初始值比较小时,选择比较大的参数c;反之,选择比较小的参数c。
选取状态变量的位置距离平衡点比较近。状态变量的初始值为x(0)=[0.1,0.1]T。在图1中,NTSM1模块为采用普通的指数趋近律,采用式(11)对二阶非线性系统进行控制。在图1中,NTSM1模块内的程序如下:
function u1 = fcn(x2, x1)
fx=-16*x2; gx=125;
beta=1; p=5; q=3; mu=0.1; epsilon=0.1; k=1;
s=x1+1/beta*(abs(x2))^(p/q)*sign(x2);
t=beta*q/p*abs(x2)^(2-p/q)*sign(x2);
delta=0.005; d=abs(s/delta);
if d<=1
sat=s/delta;
else
sat=sign(s/delta);
end
u1=-(fx+t+(mu+epsilon)*sat+k*s)/gx;
在图1中,NTSM2模块为采用变速指数趋近律,采用式(12)对二阶非线性系统进行控制。状态变量的初始值比较小,因此参数c选择比较大的值,本文取c=60。在图1中,NTSM2模块内的程序如下:
function u2 = fcn(x2, x1)
fx=-16*x2; gx=125;
beta=1; p=5; q=3; mu=0.1; epsilon=0.1; k=1;
s=x1+1/beta*(abs(x2))^(p/q)*sign(x2);
t=beta*q/p*abs(x2)^(2-p/q)*sign(x2);
delta=0.005; d=abs(s/delta);
if d<=1
sat=s/delta;
else
sat=sign(s/delta);
end
c=60; m=c*(abs(x1)+abs(x2));
n=fx+t+mu*sat;
u2=-(n+epsilon*sat/(1+m)+(k+m)*s)/gx;
图2 状态初始值较小时x1的响应
图3 状态初始值较小时x2的响应
采用变速指数趋近律的非奇异终端滑模控制器的收敛速度更快。
图4 状态初始值较小时的控制输入
非奇异终端滑模控制器能够实现状态变量的有限时间收敛,并能够有效的避免奇异现象。采用饱和函数代替符号函数,使得控制输入没有出现抖振现象,并且比较平滑。
图5 状态初始值较大时x1的响应
图6 状态初始值较大时x2的响应
图7 状态初始值较大时的控制输入
本实验以二阶非线性系统为研究对象,分别采用普通指数趋近律和变速指数趋近律的非奇异终端滑模控制器进行控制。非奇异终端滑模控制器能够有效的避免奇异现象,能够实现有限时间内状态变量的收敛。对普通的指数趋近律进行改进,采用变速指数趋近律时具有更快的收敛速度。采用饱和函数代替符号函数,能够有效的抑制抖振现象。采用Matlab/Simulink软件进行了控制系统仿真实验,并对实验结果进行了分析和讨论。通过该仿真实验有助于学生对非奇异终端滑模控制理论和应用的理解,让学生了解滑模控制的编程实现。以该仿真实验系统为平台,学生还可以自己编写程序进行仿真实验,对控制方法进行验证,从而激发学生的学习兴趣,提高编程能力和创新意识。
学校要求教师在他的本职工作上成为一种艺术家。
——爱因斯坦