趙海濱, 劉 沖, 陸志國, 于清文, 顏世玉
(東北大學 機械工程與自動化學院, 遼寧 沈陽 110819)
滑模變結構控制方法設計簡單、魯棒性強,能夠克服參數不確定和外部干擾的影響[1-2]。在普通的滑模控制中,通常都是選擇一個線性的滑模面,使得系統軌跡在達到滑動模態后的運動是漸進穩定的,不能在有限時間內收斂到零。為了獲得更好的控制性能,一些學者提出了Terminal滑模(Terminal sliding mode,TSM)控制策略[3]。
TSM具有有限時間收斂的優點,而且對模型誤差和外部干擾具有較好的魯棒性[4-6]。但是在系統接近平衡狀態時,TSM存在奇異問題。文獻[7]提出了非奇異Terminal滑模(NTSM)控制方法;文獻[8-9]提出一種非奇異快速Terminal滑模控制方法并應用于跟車控制;文獻[10]提出基于指數趨近律的非奇異Terminal滑模控制方法。針對系統接近平衡狀態時TSM控制收斂速度比較慢的問題,文獻[11]提出了快速Terminal滑模(FTSM)控制方法;針對FTSM存在奇異問題,文獻[12]提出了非奇異快速Terminal滑模(NFTSM)控制方法。
倒立擺的擺角控制是典型的二階不確定非線性系統。本文以該系統為研究對象,分別采用TSM、NTSM、FTSM和NFTSM進行擺角的平衡控制,采用Matlab/Simulink軟件建立了系統的仿真模型,并對仿真的結果進行了分析和討論。該仿真實驗不僅有助于學生對Terminal滑模控制理論的理解,而且讓學生理解滑模控制的實際應用。通過仿真過程,能夠培養學生的編程能力和工程意識,激發學生的學習興趣和創新精神。
二階不確定非線性系統表示為
(1)
其中f(x1,x2)和g(x1,x2)為已知連續非線性函數,且g(x1,x2)≠0,u為控制輸入;d(t)為外部干擾,且d(t)≤μ,μ>0。
以單級倒立擺的擺角控制問題[3]為研究對象,動力學方程為
(2)
其中g為重力加速度,x1和x2分別為擺角和擺速。m為擺桿的質量,mc為小車質量,且M=m+mc。l為擺長的一半,u為控制輸入。外部干擾d(t)=0.5 sint。
傳統TSM控制器的切換函數為

(3)
其中:β>0,p和q為正奇數,且p>q。
采用指數趨近律

ε·sgn(s)
(4)

傳統TSM控制器設計為
(5)
在式(5)中,由于q/p-1<0,在x1=0,x2≠0時會有奇異問題。
為了克服傳統TSM存在的奇異問題,可以采用非奇異Terminal滑模控制(NTSM)。NTSM的切換函數為
(6)
參數β>0,p和q為正奇數(p>q,且1
(7)
為了克服傳統TSM在接近平衡狀態時收斂速度比較慢的缺點,提出了快速Terminal滑模控制(FTSM)。FTSM的切換函數為

(8)
參數α>0,β>0,p和q為正奇數,且p>q。采用指數趨近律,FTSM控制器設計為
(9)
FTSM比TSM具有更快的收斂速度。由于在控制器中存在q/p-1<0,FTSM仍然存在奇異問題。
NFTSM具有FTSM的優點,又克服了奇異問題。NFTSM的切換函數為
s=x1+α·sgn(x1)|x1|r1+β·sgn(x2)|x2|r2
(10)

(11)
NFTSM的收斂速度比TSM快,但是比FTSM慢。由于NFTSM避免了奇異問題,因此具有很好的工程應用。
在倒立擺動力學方程中,小車質量mc=1 kg,擺桿的質量m=0.1 kg,l=0.5 m,重力加速度g=9.8 m/s2。倒立擺的初始狀態為x1=0.1,x2=0。
在所有的控制器中,取k=10,μ=2,ε=0.01。在TSM和NTSM控制器中取β=1,p=5,q=3。在FTSM控制器中取α=1,β=1,p=5,q=3。在NFTSM控制器中取α=10,β=1,r1=5/3,r2=7/5。
為了削弱抖振,在各控制器中采用飽和函數sat(s)代替符號函數sgn(s),飽和函數的表達式為

(12)
其中:δ>0,δ稱為邊界層。邊界層通常取非常小的數,本文取δ=0.001。
Matlab/Simulink軟件功能強大、使用簡單方便,并且對問題的描述和求解符合人的思維習慣和數學表達習慣,已經廣泛應用于動態系統仿真[13-15]。由于倒立擺的動力學方程和控制器都比較復雜,不適合采用普通Simulink模塊來建立仿真模型,因而采用M-函數和積分模塊等來建立仿真模型。M-函數為Simulink中用戶自定義功能模塊庫中的Matlab Function模塊。在仿真過程中,采用變步長的ode45算法,最大步長為0.0001 s,仿真時間為5 s。采用NFTSM控制器時,利用Matlab/Simulink軟件建立的仿真系統如圖1所示。積分模塊Integrator的初始值設置為0,Integrator1的初始值設置為0.1。仿真結果可以通過Scope模塊直接顯示,同時通過ToWorkspace輸出到工作空間中。
根據式(2)建立倒立擺的系統模型,并添加干擾信號。在圖1中,倒立擺模塊內的程序如下:
functionddx=fcn(dx,x,u,t)
mc=1;m=0.1;a=0.5;g=9.8;
dt=0.5*sin(t);
S=a*(4/3-m*cos(x)*cos(x)/(mc+m));
fx=g*sin(x)-m*a*dx*dx*cos(x)*sin(x)/(mc+m);
fx=fx/S;
gx=cos(x)/(mc+m);
gx=gx/S;
ddx=fx+gx*u+dt;

圖1 NFTSM仿真實驗系統
在圖1中,采用NFTSM進行倒立擺的控制。NFTSM控制器采用式(11)進行編程,并且采用飽和函數代替符號函數。NFTSM模塊內的程序如下:
functionu=fcn(x,dx)
mc=1;m=0.1;a=0.5;g=9.8;
S=a*(4/3-m*cos(x)*cos(x)/(mc+m));
fx=g*sin(x)-m*a*dx*dx*cos(x)*sin(x)/(mc+m);
fx=fx/S;
gx=cos(x)/(mc+m);
gx=gx/S;
alpha=10;beta=1;r1=5/3;r2=7/5;
s1=alpha*sign(x)*abs(x)^r1;
s2=beta*sign(dx)*abs(dx)^r2;
s=x+s1+s2;
delta=0.001;
d=abs(s/delta);
if d<=1
sat=s/delta;
else
sat=sign(s/delta);
end
k=10;mu=2;epsilon=0.01;
m1=sign(dx)*abs(dx)^(2-r2);
m2=(1+alpha*r1*abs(x)^(r1-1));
m=m1*m2/(beta*r2);
u=-(fx+k*s+(mu+epsilon)*sat+m)/gx;
在各個控制器作用下的擺角如圖2所示。擺角從初始位置0.1迅速變為0,TSM的趨近速度比NTSM略快;FTSM的趨近速度最快;NFTSM剛開始時趨近速度和FTSM一樣快,在接近0點時,速度下降;NFTSM比FTSM的趨近速度慢,是因為起始位置為0.1,已經非常小。如果起始的位置比較大,NFTSM的優勢才能顯現出來。

圖2 控制器作用下的擺角
在各個控制器作用下的擺速如圖3所示。對于擺速的絕對值,NFTSM方法具有最大值,為0.315,NTSM具有最小值,為0.231。FTSM方法擺速趨近的速度最快,NFTSM方法擺速趨近的速度最慢。

圖3 控制器作用下的擺速
在各個控制器作用下,控制輸入u如圖4所示。在3.14~3.19 s區間,TSM和FTSM會出現奇異問題。在3.1~3.25 s之間進行局部放大,如圖5所示。NTSM和NFTSM能夠有效地避免奇異現象,控制輸入比較平滑,也沒有出現抖振現象。

圖4 控制器作用下的控制輸入

圖5 控制輸入的局部放大
本實驗以倒立擺的擺角控制問題為研究對象,分別采用TSM、NTSM、FTSM和NFTSM進行擺角的平衡控制。采用Matlab/Simulink軟件進行了仿真實驗,并對實驗結果進行了分析和討論。該仿真實驗不僅有助于學生對Terminal滑模控制理論的理解,而且有助于學生學習滑模控制的實際應用。此外,學生可以通過Matlab/Simulink軟件進行仿真實驗,對其他滑模控制方法進行驗證,觀測不同實驗結果,從而激發學習興趣,培養編程能力和科研創新能力。