沈浩宇,江先志,馮濤
(1.浙江理工大學機械與自動控制學院,浙江杭州 310000;2.深圳海關工業品檢測技術中心,廣東深圳 518000)
二輪平衡車是一種特殊的輪式機器人,它是一個融合了動力學、自動控制理論、電子技術、電機技術的綜合性研究課題。它利用車體內部的陀螺儀和加速度傳感器檢測車體姿態的變化,并利用伺服控制系統精確地驅動電機進行相應的調整,以保持系統平衡。二輪平衡車本質上是一個可移動的倒立擺系統,具有多變量、強耦合性、非線性、動態不穩定的特點。
目前二輪平衡車采用的控制算法有PID控制、模糊控制、滑??刂啤㈩A測控制、H控制、LQR控制等。文中采用神經元PID控制算法控制二輪平衡車,以測試神經元PID控制的效果。PID控制是迄今為止在過程控制中應用最廣泛的控制方法。但是在實際應用中,經典PID控制器的控制參數為人工整定后固定不變,要想將其調節到較為理想的狀態,整定過程費時費力。實際被控對象往往具有非線性、時變不確定性,難以建立精確的數學模型,常規的PID控制器不能達到理想的控制效果。
近年來,神經網絡算法迅速發展,引起了人們越來越多的興趣和普遍重視。由于BP神經網絡能夠通過神經元反饋進行學習,不斷調整各層神經元之間的連接權重,適應被控系統的不確定性和非線性 ,由神經元構成的控制器具有更好的靈活性和適應性。
二輪平衡車三維模型如圖1(a)所示,二輪平衡車簡圖如圖1(b)所示。在圖1(b)中,跟隨車身的動坐標系原點建立在車軸的中心處,軸正方向為二輪平衡車的前進方向,軸與重力方向的反方向重合,輪子繞軸轉動。為二輪平衡車繞軸旋轉的角度,為二輪平衡車的傾角,和分別為二輪平衡車左輪和右輪的輸入轉矩。

圖1 二輪平衡車三維模型及簡圖
二輪平衡車的重心位于車輪輪軸上方的點,由于點位于車體上部,在無外力的作用下,車體將會發生傾倒,故二輪平衡車屬于動態不穩定系統。二輪平衡車的車輪采用共軸對置放置的方式,并且兩輪由2個電機相互獨立驅動。二輪平衡車通過調整前后運動的加速度來保持自身平衡,還具備通過控制左右車輪轉速差實現轉向的功能。
二輪平衡車需要被控制的變量有車體運行速度、傾斜角度和偏航角度,而控制輸入量只有作用于左右兩輪的電機輸出扭矩,所以二輪平衡車是一個典型的欠驅動系統。各個被控變量和控制輸入量之間的關系是非線性的,各個被控變量之間具有強耦合性。針對二輪平衡車欠驅動、多變量、強耦合、非線性等特性,采用神經元PID控制器進行控制。神經元PID控制器是一種自適應智能控制器,能夠針對不同的工況自動整定PID參數,具有自學習自適應能力,使被控對象達到良好的控制效果。
在神經網絡理論中,神經元模型可模擬生物神經元的3種基本功能。首先,根據不同的權重對所有輸入信號進行不同程度的加權,然后將這些信號相加以獲得組合效果。最后,利用神經元輸出函數進行信息輸出。神經元PID控制器是采用人工神經元建立的PID控制器模型,通過BP神經網絡算法調整PID參數。神經元網絡計算量小、運行速度快,且可自適應調整權值。將它用在PID閉環控制中,形成單神經元PID控制器。這樣PID參數整定過程就相當于單神經元網絡的權值調整過程。人工神經元PID控制器的結構如圖2所示,單神經元控制原理如下:

圖2 神經元PID控制算法原理
由圖2得到神經元PID控制器的前向傳播過程:

(1)
=++
(2)
采用Sigmoid型函數,對進行限幅輸出,使得輸出值限制在合理的范圍:

(3)
=()
(4)
誤差指標為

(5)
BP算法采用的誤差反向傳播是按照誤差指標函數()的負梯度方向不斷修正權值以達到神經元的輸出逼近期望的目的。根據前向傳播過程,得:

(6)
控制器的目標是讓實際當前值與目標值的誤差指標最小。根據BP算法進行PID參數的更新,PID參數的迭代使得系統的誤差指標盡可能小。迭代公式為(7),其中、、分別為比例增益、積分增益和微分增益的學習步長。

(7)
由式(5)得神經元控制指標對被控制量的偏導為

(8)
由式(3)得到限幅函數()對神經元輸出量的偏導為

(9)
被控系統對控制信號的偏導可以設為

(10)
由式(2)得神經元輸出量對比例增益、積分增益、微分增益的偏導為

(11)
將式(8)—(11)代入式(6),再根據式(7)得神經元PID控制器的比例增益、積分增益和微分增益的迭代更新算法:

(12)
二輪平衡車的平衡是通過前后移動保持的。將平衡車偏離平衡位置的角度作為偏差,通過負反饋控制消除偏差。
在僅有比例控制的情況下,二輪平衡車處于平衡位置時,因為偏差為0,所以控制器輸出也為0。但是,車體繞車軸轉動時具有慣性,平衡車會往另一個方向倒去,如此反復,平衡車會在平衡位置出現振蕩且無法停止。由于平衡車繞輪軸的轉動慣量客觀存在,控制平衡車平衡不僅需要施加和傾角成正比的回復力,還需要和角速度方向相反的阻尼力進行疊加,才能達到控制平衡的效果。
平衡車的平衡控制需要快速性,故比例系數較大。當比例系數較大時,系統幾乎不存在靜差。因為PID控制器中積分的作用是消除靜差,所以靜差對于直立控制的影響很小,自然就不需要積分。實際上,平衡車并不一定要完全處于機械中值,略微的偏移不會有太大影響。因此,對于準確性要求不高的系統可以不引入積分控制,平衡車只需PD控制即可實現直立。因此,將平衡控制器設計為PD平衡控制器。
構建PD平衡控制器,如圖3所示。

圖3 PD平衡控制器
為實現PD參數可調,引入神經元PD平衡控制器,如圖4所示。

圖4 神經元PD平衡控制器
根據式(4),神經元PD平衡控制器的前向傳播過程如下:
=(pp+dd)
(13)
由式(5),設置平衡控制器的誤差函數為

(14)
其中:代表目標值;()代表傳感器的檢測值。
由式(6)—(11)可知神經元PD平衡控制器的PD參數的更新過程如下:

(15)
因為平衡車的速度控制是在平衡車進行直立控制的前提下進行的,所以速度控制相比直立控制更加復雜。為保證直立控制的優先級,把速度控制器放在直立控制器的前面,即速度控制調節的結果僅僅是改變平衡控制的目標值。平衡車運行的加速度與平衡車傾角相關。若要提高平衡車向前行駛的速度,就需要平衡車向前傾斜,車輪在直立控制的作用下向前運動保持平衡車平衡。反之亦然,因此速度控制可以通過調節平衡控制的目標值來實現。根據上述過程,將速度控制器與直立控制器進行串聯。將速度控制器的輸出作為直立控制的輸入,將直立控制的輸出作為系統輸出。設計出串聯的平衡車控制器,如圖5所示,這其實就是一個串級速度控制系統。

圖5 串級PI速度控制
測量的機械中值與實際值存在誤差,若只有平衡控制器,平衡車會一直前進或后退來維持有誤差的測量中值,此時,速度控制器的輸出將修正平衡控制器的目標值。當平衡車一直前進或后退,速度與目標速度之間存在靜差。PI控制器具有消除靜差的特點,使得平衡車可以穩定在原點,故速度控制器選用PI控制器。
為了實現速度控制器的PI參數可調節,速度控制器采用神經元PI控制器,如圖6所示。

圖6 串級神經元PI速度控制
神經元平衡控制器的前向傳播算法公式:
=p(p-)+dd
(16)
=(pp+ii)
(17)
將式(17)代入式(16)得到:
=p[p-(pp+ii)]+dd
(18)
由式(5),設置神經元速度控制器的誤差函數為

(19)
由式(6)—(11)可知PI參數的更新過程如下

(20)
由于平衡車對轉向控制的響應要求不高,故轉向控制器為簡單的PD控制器。若設軸目標角度為0,則平衡車沿一條直線行走。
根據式(1)得到轉向控制器的算法:

(21)
=pp+dd
(22)
二輪平衡車由左右輪的差速來控制方向,故將轉向控制器的輸出值作為速度控制器輸出值的調整值,分別輸出給左右輪的電機驅動

(23)
將轉向控制器與串級速度控制器串聯,構建了二輪平衡車的神經元PID控制系統,如圖7所示。

圖7 二輪平衡車神經元PID控制系統
在Simulink環境中通過組裝Simscape提供的基本部件或運用基于Simscape基本組件創建新組件,可以快速創建電機、橋梁、整流器、液壓執行器和制冷器等物理系統。Simscape的基本組件可以使用MATLAB變量和表達式參數化模型。Simscape可幫助開發控制系統并測試控制系統的性能。
如圖8所示,Simscape中的Multibody主要包含帶和纜繩、形狀元素、約束限制、曲線和曲面、力和扭矩、坐標轉換、齒輪和配合、運動關節、機械配置九大基本組件集合。Multibody為機器人、車輛懸架、建筑設備和飛機起落架等3D機械系統提供仿真基本組件,可以表示身體、關節、約束、力和傳感器的基本組件,以對系統進行建模。Simscape可以將完整的CAD組件(包括質量、慣性、接頭、約束和3D幾何形狀)導入模型,為整個機械系統制定和解決運動方程,仿真運行時自動生成3D動畫來實現系統動態可視化。

圖8 Multibody集合
根據實物在SolidWorks中構建出車體零件,并進行裝配。將構建的各個零件轉換為STEP格式,導入形狀元素組件集的文件實體組件中。二輪平衡車主要包含的零部件如表2所示。編寫M文件,將零部件的顏色、質量等參數合存儲為工作區變量,可以在仿真的實體組件中引用變量作為零件的屬性參數。

表2 DWC機器人零件
如圖9所示,設置重力環境、世界坐標系、仿真求解器組件,三者缺一不可。世界坐標系原點為車軸的中心,通過設置坐標變換組件將地面放置在合適的位置,地面與車輪之間連接有接觸應力組件;通過滑動關節組件與平面關節組件連接,首先保證左右車輪具有固定的相對位置,其次平面關節保證車輪具有前后、左右2個自由度,滑動關節保證二輪平衡車沿受重力落在地面上,在車輪與地面之間接觸形成壓力。如圖10所示,以右輪為例,將轉動關節組件安置在合適的位置,將車輪進行坐標轉換與轉動關節組件連接。轉動關節組件接收轉矩的輸入與轉動關節的角速度輸出,并保證輪子的旋轉自由度;如圖11所示,車輪軸線與車體之間由轉動關節組件連接,該轉動關節接收扭矩的輸入和角度輸出。車體分為左右電機、電機架、電路主板、主體連接板、上蓋板、銅柱等。

圖9 二輪平衡車系統

圖10 右輪模型

圖11 傾角關節
運用Simulink搭建仿真控制系統,如圖12所示,圖右邊部分為二輪平衡車的控制系統。根據圖5所示的控制系統結構,搭建仿真模型,通過左邊的仿真模型采集模型的傾角信息、轉向角信息、輪速信息并進行單位轉換。

圖12 Simulink仿真系統
S-Function全稱System-Function,S-Function能夠與Sinulink引擎交互,它極大地拓展了Simulink的功能。S-Function可以容納連續、離散和混合系統,在S-Function中編寫算法,并添加到Simulink模型中。S-Function通過遵循一組簡單的規則,定義了在初始化、更新、求導、輸出和終止環節如何工作。在每一個環節中,Simulink的引擎都會調用一個方法完成特定的任務。
神經元平衡控制器和神經元速度控制器由MATLAB中的S-Function組件編寫。控制系統為離散系統,每0.01 s進行一次信號采樣和輸出。仿真啟動之后,首先進行狀態變量的初始化,控制系統在每0.01 s的時間中接收仿真系統的傳感器信息,采用BP神經網絡算法完成控制系統狀態變量的更新和控制量的輸出。為方便調節參數,使用示波器模塊完成數據的采集和監視。
BP神經網絡算法的學習率對算法的效果起著至關重要的作用。BP神經網絡算法采用梯度下降的搜索算法,這些算法會先初始化一個解,在這個解的基礎上,確定一個搜索方向和一個移動步長,使初解根據這個方向和步長移動后,能使被控系統的誤差下降。然后更新出新的解,再繼續搜尋下一步的移動方向的步長,這樣不斷迭代下去,被控系統的誤差不斷下降,最終能找到一個解,使得誤差盡可能地小。在尋求最優解的過程中,步長太大,就會搜索得不仔細,可能跨過更加合適的解;步長太小,又會使得尋解的過程進行得太慢。因此,步長設置適當非常重要。
對比PID控制器、神經元PID控制器在二輪平衡車上的控制效果,控制內容包括平衡控制和速度控制。分別在空載和負載下進行實驗,其中負載時,物塊的質量為100 g。圖13所示為仿真系統呈現的二輪平衡車的三維可視化仿真結果。

圖13 Simcape的三維可視化仿真結果
平衡車的平衡性能主要指它站立時,波動范圍越小,表明平衡車平衡控制性能越好。同時二輪平衡車輪子的速度變化范圍越小,說明二輪平衡車偏離原點的范圍越小,即平衡車的速度控制性能越好。
圖14所示為空載下神經元PD平衡控制器與傳統PD平衡控制器控制平衡車傾角變化過程。可知:神經元PD平衡控制器的傾角在2 s之前波動幅度大于PD控制器,但是隨著神經元更新PD參數至收斂值,二輪平衡車的傾角幾乎穩定在目標值0;PD平衡控制器的傾角變化幅度始終在-0.5°~0.5°之間,幾乎無變化。此時神經元PD平衡控制器的值和值學習過程如圖15所示,學習率分別為0.001和0.2。值收斂在0.365,值收斂在0.781。

圖14 空載下2種控制器傾角變化過程 圖15 神經元平衡控制器PD參數迭代
圖16所示為神經元PI速度控制器與PI速度控制器控制二輪平衡車速度變化過程。可知:神經元PI速度控制器控制的二輪平衡車速度在剛開始時有大幅度的波動,但是速度的波動幅度始終小于PI控制器,且在大約1.2 s之后,速度變化幾乎接近于目標值0;PI控制器控制的輪速始終在-2.5~ 2.5°/s的范圍內高頻波動。設置神經元PI速度控制器中、參數的學習率分別為0.000 2和0.000 000 1,如圖17所示,、的最終收斂值分別為0.011 1和0.000 001 43。

圖16 空載下2種控制器速度變化過程 圖17 神經元速度控制器PI參數迭代
在二輪平衡車上部施加0.1 N垂直向下的力來代表物塊。對比神經元PID與傳統PID控制的抗干擾能力。二輪平衡車越能夠快速地回到穩定狀態,且傾角和速度產生波動的范圍越小,波動曲線越平緩,控制器的抗干擾性能越好。
圖18所示為負載下神經元PD平衡控制器與傳統PD平衡控制器控制平衡車的傾角變化過程??芍荷窠浽狿D平衡控制器控制的傾角的波動范圍為-2°~2°,而PD平衡控制器的傾角波動范圍為-4.5°~4.5°,且波動頻率高于神經元PD平衡控制器。神經元PD平衡控制器的抗干擾性能優于PD平衡控制器,但是在干擾結束后,收斂速度慢于PD平衡控制器。此時神經元PD控制器的值和值的學習過程如圖19所示,學習率不變。值收斂在0.553,值終值在1.12,根據趨勢,隨著仿真時間的增加,也必然收斂。

圖18 負載下2種控制器傾角變化過程 圖19 負載下神經元平衡控制器PD參數迭代
圖20所示為負載下神經元PI速度控制器和PI速度控制器控制平衡車速度的變化過程 ,神經元PI速度控制器控制的速度波動范圍為0~16°/s,速度波形較為平緩,而PI速度控制器控制的速度波動范圍為-17.5~27.5°/s,且波動頻率遠高于神經元PI控制器。二輪平衡車在神經元PI速度控制器的控制下可迅速地到達目標速度值0。此時神經元PI速度控制器的值和值學習過程如圖21所示,學習率不變??芍褐凳諗吭?.218,值收斂在0.002 07。

圖20 有干擾速度變化過程 圖21 神經元速度控制器PI參數迭代
本文作者運用MATLAB-Simulink-Simscape-Multibody快速搭建二輪平衡車的三維仿真模型,并使用Simulink搭建控制系統。在S-Function組件中編寫神經元PID控制算法來實現傾角控制器、速度控制器和轉向控制器,并組合成二輪平衡車的控制器,進行二輪平衡車的平衡控制、速度控制和方向控制。通過空載和負載2個控制性能實驗,驗證了神經元PID控制器相比傳統的PID控制器具有更高的控制精度、更強的抗干擾能力、更快的響應速度、更能適應模型的非線性變化。相對于傳統PID控制器,采用神經元PID控制器的二輪平衡車在平衡控制和速度控制上都有具有更好的性能。