黃政杰,鐘文鍵
(廣東工業(yè)大學,廣東廣州 510006)
倒立擺的本質就是一個擺桿的支點(轉軸)在這個擺桿的重心下方。倒立擺系統(tǒng)是一個非線性、多變量、強耦合、不穩(wěn)定的系統(tǒng)。現(xiàn)實中有許多系統(tǒng)與倒立擺系統(tǒng)非常相似,如攝像機云臺的控制,雙足、四足機器人的穩(wěn)定,空間飛行器和衛(wèi)星的姿態(tài)控制等。從倒立擺系統(tǒng)衍生出來的科研成果極大推動了科技的發(fā)展,推動了航天科技、深度學習、機器人等領域的發(fā)展。
本文針對倒立擺的起擺和穩(wěn)擺問題,設計一種將改進能量控制策略與模糊PID控制相結合的控制方法,使直線一級倒立擺系統(tǒng)能夠實現(xiàn)平滑迅速的起擺和快速抗干擾的穩(wěn)擺。本文所設計的控制方法通過了Simulink和Simcape MultiBody的仿真驗證。
為了便于建立直線一級倒立擺系統(tǒng)的模型,首先假定系統(tǒng)內不存在任何摩擦力和阻力;各結構之間連接緊密,不會互相滑動。這樣,直線一級倒立擺系統(tǒng)就可以等效成小車和擺桿所組成的系統(tǒng),如圖1所示。
圖1 系統(tǒng)模型
為了方便后續(xù)計算,規(guī)定擺桿處于垂直向下的位置時,角度θ=-π;擺桿處于垂直向上的位置時,角度θ=0,角度范圍為-π~π。定義為擺桿與垂直向下方向的夾角。
實際系統(tǒng)的模型參數(shù)見表1。
表1 系統(tǒng)參數(shù)
分析小車水平方向所受的合力,可以得到以下方程:
式中,N為由小車與擺桿相互作用力的水平方向的分量,F(xiàn)為小車的前進動力,為小車加速度,M為小車質量。對N進行分析,可以得到:
把式(2)代入式(1)中,得到系統(tǒng)的第一個運動方程:
然后對擺桿垂直方向上的合力進行分析,可以得到:
如果擺桿一開始是垂直向上的,控制倒立擺在外部擾動下保持垂直向上,不需要從垂直向下處起擺,那么 非常接近-π,則可以進行近似處理:cos=-1,sin=-經拉普拉斯變換后可得:
若定義擺桿垂直向上時擺桿的能量為E=0,則擺桿于垂直向下位置(θ=-π)開始,運動到擺桿垂直向上的位置(θ=0),擺桿所需的能量為E=2mgl。設J為擺桿到軸的轉動慣量,則J=I+ml2,結合式(4),可得:J+mglsinθ+mlcosθ=0。而擺桿的能量:
因為分析可知能量比角度更容易控制,且搖擺角θ在一四或者二三象限時小車會隨著擺桿速度向上向下運動而左右運動,從而擺蕩起來,起擺階段完成。選擇sign(cosθ)作為小車運動的方向,將搖擺角θ限制在一四象限,能量控制策略如式(11)所示:
式中,ue為在誤差e下的輸出,satng為以ng為幅值的飽和函數(shù);ke為比例系數(shù);E為擺桿的能量;E0為目標能量,E0=0。
針對能量控制策略的缺點,本文采用改進后的能量控制策略。通過建立小車位置和速度懲罰算法,實現(xiàn)了有限長度的直線倒立擺的起擺控制。同時引入能量保持策略,捕獲起擺后的擺桿,使其能維持在垂直向上附近的位置,這樣便于后續(xù)的穩(wěn)擺控制。
根據(jù)純能量控制的缺點,將目標能量設為E0+μgl(μ<1),以加快擺起速度,否則擺桿將近似處于一個無限接近的狀態(tài),如式(12)所示。
小車的位置懲罰,也就是當小車在導軌中間時位置懲罰為0,當小車在兩邊時懲罰非常大,迫使小車向導軌中間運動。這種懲罰可以用對數(shù)函數(shù)來實現(xiàn),如式(13)所示,xmax為允許小車運動的最長距離,x為小車位置:
當擺桿擺到θ=0的位置附近時,擺桿經常是速度過大,因此引入能量保持策略,將擺桿的能量捕獲在E=0的位置,如式(14)所示。
這樣當擺桿角度誤差較大時,能量保持策略的輸出非常大,且顯然uem與ue方向相同,此時uem與ue形成正向疊加關系,可以大幅縮短起擺前期用時。而如果擺桿角度在θ=0附近時,uem方向與ue方向相反,速度迅速降低,將擺桿的能量降低在E=0附近,使后面的穩(wěn)擺控制更加平滑。
引入位置懲罰和能量保持策略之后,小車的速度常常過快,導致沖出導軌,因此需要引入速度懲罰,原理同位置懲罰。如式(15)所示:
結合式(12)~(15),得到最終的改進型能量控制策略算法:
本文引入模糊PID控制器,使用模糊控制器來時刻調整內環(huán)PID的參數(shù),以求更好的控制效果,結構框圖如圖2所示。
圖2 倒立擺控制框圖
本文選用Mamdani型模糊控制器,以誤差e和誤差的差分ec作為輸入,以ΔKp、ΔKi、ΔKd作為輸出,三者分別見表2~表4。量化因子Ke=2,Kec=0.1。解模糊化使用重心法,模糊控制器各個輸入和輸出的量化論域均選取為[-3,3],選 取NB、NM、NS、ZE、PS、PM、PB作為輸入輸出空間的模糊分割。
表2 模糊規(guī)則表dKp
表4 模糊規(guī)則表dKd
表3 模糊規(guī)則表dKi
在本系統(tǒng)中,誤差e較大時,應該適當增大Kp,以提高響應速度;在誤差較小時,應該減小Kp,以減小超調量;而當誤差非常小時,可以稍微增加Kp,以減少穩(wěn)態(tài)誤差,提升抗干擾能力。
在誤差e較小時,可以增大Ki,以減小穩(wěn)態(tài)誤差;在e較大時,需要減小Ki。
對于Kd來說,在調節(jié)前期,需要增大Kd,以加快調節(jié)速度,減少超調量;在調節(jié)中期Kd不宜變化過大;在調節(jié)后期,應當減小Kd,避免振蕩。
MATLAB中的Simscape工具箱可以快速創(chuàng)建各種系統(tǒng)模型,在生成這些模型的同時與Simulink中其他組件直接連接。本文使用Simscape MultiBody組件建立一個3D倒立擺模型,并用于算法驗證。
首先使用Simscape MultiBody建立一個機械仿真環(huán)境,并設置重力加速度為-9.80665m/s2。然后建立3個長方體塊,分別作為導軌、小車和擺桿,并分別設置好對應的長寬高和質量。其中小車通過一個滑塊連接到導軌的頂面上,而擺桿通過一個旋轉節(jié)點與小車相連,如圖3所示。
圖3 倒立擺3D模型
隨后將其封裝為一個子系統(tǒng),并在Simulink中調用。為了對比,首先使用傳統(tǒng)的串級PID控制,令比例因子kkp=kki=kkd=0,Kp=140,Ki=100,Kd=44,運行結果如圖4和圖5所示。
圖4 倒立擺3D仿真
圖5 起擺+串級PID控制效果
從圖4中可以看到,起擺階段中,擺桿迅速平滑地蕩起,當擺桿接近垂直向上的位置時,其角速度也接近0,同時小車位置也不會偏離原點太多。
穩(wěn)擺階段中,串級PID控制的切換不夠平滑,而且調節(jié)時間較長。并且經過多次實驗,切換平滑和調節(jié)時間難以兼得。
令比例因子kkp=10,kki=20,kkd=20,Kp=80,Ki=25,Kd=50,仿真結果如圖6所示。
圖6 起擺+模糊PID+串級控制效果
顯然,內環(huán)PID控制器改用模糊PID控制器之后,不僅切換變得更加平滑,而且調節(jié)時間也有了大幅改善。
本文采用改進型能量控制策略,相比于能量控制策略,改進型能量控制策略不僅能夠加快起擺速度,還實現(xiàn)了可限制小車位移和速度的起擺控制。
穩(wěn)擺階段中,本文在串級PID控制的基礎上,將內環(huán)控制器改為模糊PID控制器,并成功與改進能量控制策略較好地結合起來,實現(xiàn)了更加平滑的切換、更加迅速的調節(jié)、更小的超調,同時也具有串級PID的優(yōu)點:小車位置可控,抗干擾能力強。