申長(zhǎng)捷, 柴志軍
(黑龍江大學(xué) 電子工程學(xué)院, 哈爾濱150080)
雙輪平衡車作為倒立擺的現(xiàn)實(shí)應(yīng)用是一個(gè)非線性、強(qiáng)耦合和時(shí)變的復(fù)雜系統(tǒng)[1],最早是由日本教授山藤一雄教授設(shè)計(jì)創(chuàng)造的[1]。2002年,美國(guó)Segwag公司推出了世界首臺(tái)商用的雙輪平衡車[1]。早期雙輪平衡車的控制系統(tǒng)采用經(jīng)典PID控制時(shí),雖然能夠使平衡車正常運(yùn)行,但控制效果好壞取決于所控制人員選取的比例、積分和微分參數(shù),主觀性較強(qiáng)且由于控制參數(shù)恒定的原因使其缺乏自適應(yīng)能力[2],因此對(duì)于時(shí)變系統(tǒng)的雙輪平衡車控制精度有限,其后提出了采用以狀態(tài)空間模型為基礎(chǔ)的狀態(tài)反饋控制,其控制精度取決于狀態(tài)空間模型的精確程度[2],而對(duì)于非線性時(shí)變的雙輪平衡車系統(tǒng),由于其狀態(tài)空間難以精確求解,因此該策略在雙輪平衡車上控制精度略顯不足。模糊控制則存在關(guān)鍵參數(shù)沒(méi)有理論指導(dǎo)只能通過(guò)試湊法獲得的缺點(diǎn),影響控制精度[2]。綜上所述,傳統(tǒng)控制策略在非線性系統(tǒng)的應(yīng)用中存在著控制參數(shù)由人工決定、控制效果取決于控制人員個(gè)人經(jīng)驗(yàn)的限制、被控對(duì)象真實(shí)模型求解分析困難和缺乏在面對(duì)時(shí)變系統(tǒng)的自適應(yīng)能力等諸多缺點(diǎn)。
模型參考自適應(yīng)控制系統(tǒng)是按照設(shè)計(jì)的自適應(yīng)定律,持續(xù)對(duì)可調(diào)模型的待辨識(shí)參數(shù)進(jìn)行調(diào)整,迫使構(gòu)造的可調(diào)模型的參數(shù)收斂于被控系統(tǒng)的真實(shí)參數(shù)[3],通過(guò)建立的可調(diào)模型,自動(dòng)調(diào)整相關(guān)控制參數(shù)以達(dá)到理想狀態(tài)的自適應(yīng)控制系統(tǒng)[4]。人工神經(jīng)網(wǎng)絡(luò)自出現(xiàn)以來(lái),已經(jīng)非常成功地應(yīng)用于非線性動(dòng)力系統(tǒng)的識(shí)別和控制工作中,多層前饋和反饋網(wǎng)絡(luò)對(duì)非線性關(guān)系強(qiáng)大的逼近能力使其成為非線性系統(tǒng)建模和控制工作的主要選擇[5-6]。同時(shí),模型參考自適應(yīng)控制能與神經(jīng)網(wǎng)絡(luò)相結(jié)合,利用模型參考自適應(yīng)控制系統(tǒng)能夠更好地估計(jì)被控系統(tǒng)的參數(shù),且利用神經(jīng)網(wǎng)絡(luò)對(duì)非線性問(wèn)題的強(qiáng)大處理能力,能更好地對(duì)雙輪平衡車系統(tǒng)進(jìn)行辨識(shí)和控制[7]。
本文針對(duì)雙輪平衡車PID控制策略下控制參數(shù)選取困難、沒(méi)有自適應(yīng)能力的缺點(diǎn),設(shè)計(jì)了以模型參考自適應(yīng)控制參考為理論基礎(chǔ),采用PID控制策略,并引入神經(jīng)網(wǎng)絡(luò)算法對(duì)PID控制參數(shù)進(jìn)行優(yōu)化的復(fù)合控制策略,通過(guò)對(duì)PID控制參數(shù)的實(shí)時(shí)自整定,以提高雙輪平衡車的運(yùn)行精度[8]。BP神經(jīng)網(wǎng)絡(luò)自適應(yīng)能力強(qiáng),但容易陷入局部最優(yōu),且學(xué)習(xí)速度慢,RBF神經(jīng)網(wǎng)絡(luò)相較于BP神經(jīng)網(wǎng)絡(luò),有較高的學(xué)習(xí)速度,但泛化能力較差[9]。本文設(shè)計(jì)并使用RBF-BP雙隱層組合神經(jīng)網(wǎng)絡(luò),進(jìn)一步提高對(duì)非線性關(guān)系逼近精度和逼近速度,整體上提高了控制系統(tǒng)的精度和反應(yīng)速度。
建立的坐標(biāo)系對(duì)雙輪平衡車的右輪、車體進(jìn)行力學(xué)分析如圖1和圖2所示,可得出車輪扭矩與車身傾斜角度的關(guān)系,建立直流電機(jī)所受電壓與產(chǎn)生的扭矩之間關(guān)系,綜合分析后得到直流電機(jī)所受電壓與車身傾斜角度之間的關(guān)系。
圖1 右輪坐標(biāo)系
由圖1所示,右輪的力學(xué)方程為:
(1)
(2)
由式(2)可得式(3),且因?yàn)樽笥逸喪芰σ恢?,因此有?4):
(3)
(4)
由圖2所示,對(duì)車體進(jìn)行適當(dāng)?shù)暮?jiǎn)化處理后可得:
在水平方向有:
m(x+Lsinθ)″=HL+HR
(5)
在豎直方向上:
m(Lcosθ-L)″=PL+PR-mg
(6)
(7)
(8)
雙輪平衡車系統(tǒng)由左、右兩臺(tái)相同的直流電機(jī)提供扭矩,保證系統(tǒng)平衡。左直流電機(jī)輸出扭矩與輸入電壓之間的關(guān)系為:
(9)
(10)
在雙輪平衡車的運(yùn)行過(guò)程中,因?yàn)閡β在λ的范圍內(nèi)變化,從而有λ、β、γ,聯(lián)立式(1)~式(9)可得:
(11)
(12)
(13)
(14)
使用參數(shù)的具體值如表1所示。
表1 雙輪平衡車參數(shù)
代入表1中的平衡車參數(shù)后,得具體的狀態(tài)方程為:
(15)
(16)
控制系統(tǒng)通過(guò)獲取雙輪平衡車運(yùn)行過(guò)程中產(chǎn)生角度、角速度、速度和速度積分?jǐn)?shù)據(jù)判斷雙輪平衡車的運(yùn)行狀態(tài),從而向直流電機(jī)輸出合適的電壓以控制雙輪平衡車保持平衡。設(shè)計(jì)了基于RBF-BP組合神經(jīng)網(wǎng)絡(luò)的模型參考自適應(yīng)控制系統(tǒng)用于對(duì)雙輪平衡車的控制[10]。RBF-BP組合神經(jīng)網(wǎng)絡(luò)是由RBF神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)組成的四層前饋神經(jīng)網(wǎng)絡(luò)。RBF-BP組合神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖如圖3所示。其中s、m、n和p分別表示從輸入層到輸出層各層神經(jīng)元的個(gè)數(shù),第一隱含層神經(jīng)元的激活函數(shù)為高斯函數(shù)、Csm為中心向量矩陣、σm為高斯函數(shù)寬度矩陣,wnm為第一隱含層到第二隱含層之間的權(quán)值矩陣,第二隱含層的激活函數(shù)為雙曲正切函數(shù),wpn為第二隱含層到輸出層之間的權(quán)值矩陣,字母下標(biāo)表示矩陣的大小。RBF-BP組合神經(jīng)網(wǎng)絡(luò)的算法運(yùn)行分為正向傳播和反向傳播兩個(gè)過(guò)程,正向傳播即樣本從輸入層逐層向輸出層傳遞。反向傳播是將網(wǎng)絡(luò)輸出與期望輸出之間的誤差從輸出層向輸入層逐層傳遞,并按特定規(guī)律計(jì)算權(quán)值、中心向量和寬度的調(diào)整量。通過(guò)對(duì)大量樣本反復(fù)進(jìn)行正向和反向傳播過(guò)程,使神經(jīng)網(wǎng)絡(luò)的輸出與期望輸出之間的誤差滿足要求。
圖3 RBF-BP組合神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
假定訓(xùn)練樣本為X,輸入層的輸入與輸出相同,訓(xùn)練樣本X和第k個(gè)神經(jīng)元的輸入和輸出如下:
X=[x1,x2,……,xs]T
(17)
I(1)(k)=O(1)(k)=X(k)
(18)
第一隱含層中第k個(gè)神經(jīng)元的輸出為:
(19)
第二隱含層中第k個(gè)神經(jīng)元的輸入輸出為:
(20)
O(3)(k)=f(I(3)(k))
(21)
式中f(x)為第二隱含層的激活函數(shù),即雙曲正切函數(shù):
(22)
組合神經(jīng)網(wǎng)絡(luò)輸出層的第k個(gè)神經(jīng)元的輸入輸出為:
(23)
為確保組合神經(jīng)網(wǎng)絡(luò)的輸出向期望輸出靠攏,選取性能函數(shù)為:
(24)
RBF-BP組合神經(jīng)網(wǎng)絡(luò)的權(quán)值、中心向量及高斯函數(shù)寬度的修正方式為梯度下降法,根據(jù)鏈?zhǔn)角髮?dǎo)法則求解權(quán)值、中心向量及高斯函數(shù)寬度的修正量。第二隱含層與輸出層之間的權(quán)值調(diào)整為:
(25)
根據(jù)鏈?zhǔn)角髮?dǎo)法則,有:
=-e(k)·1·O(3)(k)
(26)
式中:μ=0.02,為組合神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率;α=0.01,為動(dòng)量項(xiàng);E(k)、I(4)(k)、O(4)(k)、wpn(k)表示組合神經(jīng)網(wǎng)絡(luò)第k次訓(xùn)練時(shí)的性能函數(shù)、輸出層的輸入輸出以及第二隱含層與輸出層之間的權(quán)值。
同理,第一隱含層與第二隱含層之間的權(quán)值調(diào)整為:
(27)
式中:
=-e(k)·1·wpn(k)·(1-f2(I(3)(k)))·O(2)(k)
(28)
第一隱含層中的第j個(gè)神經(jīng)元的中心向量修正過(guò)程為:
(29)
式中:
(30)
第一隱含層中第j個(gè)神經(jīng)元的高斯函數(shù)寬度修正過(guò)程為:
(31)
式中:
(32)
至此,組合神經(jīng)網(wǎng)絡(luò)的第k次訓(xùn)練時(shí)的權(quán)值、中心向量以及高斯函數(shù)的寬度修正完成。當(dāng)組合神經(jīng)網(wǎng)絡(luò)的輸出與期望輸出之間的誤差在預(yù)定范圍內(nèi)時(shí),訓(xùn)練結(jié)束。
圖4 GA優(yōu)化RBF-BP神經(jīng)網(wǎng)絡(luò)流程Fig.4 Flow of GA optimization RBF-BP neural network
RBF-BP組合神經(jīng)網(wǎng)絡(luò)的初始權(quán)值、中心向量和寬度的選取決定了組合神經(jīng)網(wǎng)絡(luò)的收斂速度和逼近精度,使用自適應(yīng)遺傳算法對(duì)RBF-BP組合神經(jīng)網(wǎng)絡(luò)的初始權(quán)值、中心向量和寬度進(jìn)行優(yōu)化[11],可以提高組合神經(jīng)網(wǎng)絡(luò)的性能,其優(yōu)化過(guò)程如圖4所示,遺傳算法對(duì)RBF-BP組合神經(jīng)網(wǎng)絡(luò)的優(yōu)化主要分為RBF-BP神經(jīng)網(wǎng)絡(luò)部分和遺傳操作部分,其中RBF-BP神經(jīng)網(wǎng)絡(luò)部分具體為:
(1) 將訓(xùn)練樣本代入RBF-BP神經(jīng)網(wǎng)絡(luò)中,得到神經(jīng)網(wǎng)絡(luò)輸出與實(shí)際輸出的誤差,并以此作為適應(yīng)度函數(shù)。
(2) 根據(jù)所建立的RBF-BP組合神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)確定權(quán)值、中心向量以及寬度的個(gè)數(shù),從而確定遺傳算法中的個(gè)體長(zhǎng)度。
(3) 對(duì)初始權(quán)值、中心向量以及寬度進(jìn)行實(shí)數(shù)編碼,通過(guò)適應(yīng)度函數(shù)計(jì)算個(gè)體的適應(yīng)度值,再進(jìn)行遺傳操作。
(1) 選擇
采用輪盤轉(zhuǎn)賭法選取種群中的個(gè)體,使用該方法時(shí)個(gè)體的適應(yīng)度值越高,被選中的概率也越高,選擇組合神經(jīng)網(wǎng)絡(luò)的均方誤差作為適應(yīng)度值f:
(33)
選擇操作方法為:
Fk=a/fk
(34)
(35)
式中:a為正整數(shù),本設(shè)計(jì)取10;pk為第k個(gè)個(gè)體被選中的概率,m=70為種群中個(gè)體的數(shù)目,fk為第k個(gè)個(gè)體的均方誤差。
(2) 交叉
采用實(shí)數(shù)交叉法也稱為十進(jìn)制編碼[12],在種群中隨機(jī)選擇第k個(gè)個(gè)體和第l個(gè)個(gè)體在隨機(jī)選擇的第j位染色體處進(jìn)行交叉操作,具體操作方法為:
Xkj=Xkj(1-b)+Xlj·b
(36)
Xlj=Xlj(1-b)+Xkj·b
(37)
式中b為交叉率,一般情況下為[-1,1]之間的隨機(jī)數(shù)。
(3) 變異
變異操作用數(shù)學(xué)方法模擬了生物體在自然界由于外部因素而導(dǎo)致的基因變異的過(guò)程,而一般情況下為保證基因的遺傳,生物體的變異概率非常低,同樣的在遺傳算法中,變異率一般0.000 1~0.1。如式(38)和式(39)所示為高斯變異算子[12],并隨機(jī)選取第i個(gè)個(gè)體的第j位染色體進(jìn)行變異。
(38)
f(g)=r1·(1-g/Gmax)
(39)
式中:g為遺傳算法的迭代次數(shù);Gmax為最大迭代次數(shù),本設(shè)計(jì)取70;Xmax和Xmin為染色體的上界和下界,本設(shè)計(jì)中分別為3和-3;r為(0,1)之間的隨機(jī)數(shù)。
(4) 自適應(yīng)交叉率和變異率
遺傳算法中的變異率和交叉率的選擇是影響遺傳算法性能的關(guān)鍵,交叉率越大,新個(gè)體產(chǎn)生的速度越快,但會(huì)破壞遺傳模式,而過(guò)小的交叉率則會(huì)導(dǎo)致搜索過(guò)程緩慢;變異率過(guò)大時(shí)遺傳算法則會(huì)退化成純粹的隨機(jī)搜索算法,過(guò)小時(shí)則不容易產(chǎn)生新的個(gè)體。針對(duì)不同的優(yōu)化問(wèn)題,很難直接確定最優(yōu)的變異率和交叉率,導(dǎo)致遺傳算法優(yōu)化程度有限,因此采用交叉率和變異率可變的自適應(yīng)遺傳算法作為本文所使用的優(yōu)化算法,相較于固定交叉率和變異率的傳統(tǒng)遺傳算法,自適應(yīng)遺傳算法有更好的優(yōu)化效果。式(40)和式(41)所示為交叉率和變異率的選取規(guī)則。
(40)
(41)
式中:fmax是種群中最大的適應(yīng)度;favg為種群的平均適應(yīng)度;f′為兩個(gè)要進(jìn)行交叉的個(gè)體中適應(yīng)度較高的個(gè)體的適應(yīng)度值;f為要進(jìn)行變異的個(gè)體的適應(yīng)度值;Pc1=0.85,Pc2=0.5,Pm1=0.1,Pm2=0.01。
使用改進(jìn)后的自適應(yīng)遺傳算法進(jìn)行優(yōu)化工作時(shí),會(huì)使神經(jīng)網(wǎng)絡(luò)擁有更高的離線辨識(shí)精度,分別使用經(jīng)典遺傳算法和自適應(yīng)遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值后,離線辨識(shí)環(huán)節(jié)中的角度辨識(shí)誤差如圖5和圖6所示。可以看出,角度環(huán)節(jié)的離線辨識(shí)誤差從6×10-3降低至1.8×10-3,有著顯著的優(yōu)化效果。
圖5 經(jīng)典遺傳算法角度辨識(shí)誤差
(5) 最優(yōu)個(gè)體保留策略
為保證每一代個(gè)體中最優(yōu)個(gè)體能夠完整遺傳,采取最優(yōu)個(gè)體保留策略,即如果下一代種群中最優(yōu)個(gè)體的適應(yīng)度值小于當(dāng)前的最優(yōu)個(gè)體適應(yīng)度值,則使用當(dāng)代的最優(yōu)個(gè)體替換掉下一代的最優(yōu)個(gè)體,同時(shí)替換掉下一代的最差個(gè)體。該策略保證了最優(yōu)個(gè)體,不會(huì)因?yàn)檫M(jìn)行交叉和變異等操作被破壞。
圖7 雙輪平衡車控制系統(tǒng)Fig.7 Control system of two-wheel balancing vehicle
根據(jù)神經(jīng)網(wǎng)絡(luò)間接模型參考自適應(yīng)控制原理[13],為雙輪平衡車設(shè)計(jì)了如圖7所示的控制系統(tǒng),控制系統(tǒng)主要由四部分組成:GA-RBF-BP神經(jīng)網(wǎng)絡(luò)離線辨識(shí)器、RBF-BP神經(jīng)網(wǎng)絡(luò)在線辨識(shí)器、RBF-BP神經(jīng)網(wǎng)絡(luò)在線控制器和雙輪平衡車的理想模型。
辨識(shí)器的設(shè)計(jì)分為離線辨識(shí)器和在線辨識(shí)器,離線辨識(shí)器對(duì)系統(tǒng)進(jìn)行初步的辨識(shí)工作,其輸入為雙輪平衡車的多組歷史運(yùn)行數(shù)據(jù),輸出為系統(tǒng)的非實(shí)時(shí)的輸入輸出關(guān)系,離線辨識(shí)工作在Matlab中進(jìn)行,不需要擔(dān)心遺傳算法的復(fù)雜度。在線辨識(shí)器的輸入為實(shí)時(shí)的運(yùn)行數(shù)據(jù)y(k-1),輸出為實(shí)時(shí)的雙輪平衡車系統(tǒng)的輸入輸出關(guān)系Jacbian(k),其初始權(quán)值采用離線辨識(shí)器的最終權(quán)值,這使控制系統(tǒng)能在啟動(dòng)的那一刻開(kāi)始在線辨識(shí)器就能得到較為準(zhǔn)確地調(diào)控系統(tǒng)的輸入輸出關(guān)系,減小控制系統(tǒng)的穩(wěn)定時(shí)間。
控制器的輸入為雙輪平衡車系統(tǒng)實(shí)時(shí)的運(yùn)行數(shù)據(jù)y(k-1)以及在線辨識(shí)器提供的實(shí)時(shí)的雅克比信息矩陣Jacbian(k),輸出為控制系統(tǒng)計(jì)算所得的實(shí)時(shí)雙輪平衡車系統(tǒng)的輸入u(k)。
=1·wpm·(1-f2(I(3)(k)))·wnm·O(2)(k)·((Csm(k)-O(1)(k))/σm(k))1·1
(42)
為驗(yàn)證本文所設(shè)計(jì)的控制系統(tǒng)性能,在Matlab中將BP神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)和RBF-BP雙隱層神經(jīng)網(wǎng)絡(luò)這三種控制策略分別進(jìn)行仿真,結(jié)果如圖8所示。驗(yàn)證的三種控制策略的抗干擾能力如圖9所示,加入2°的擾動(dòng)后三種控制系統(tǒng)的運(yùn)行效果。
圖8 無(wú)干擾情況下的仿真結(jié)果
表2 控制系統(tǒng)仿真數(shù)據(jù)
依據(jù)表2中的仿真數(shù)據(jù)可知,相較于前兩種控制策略的穩(wěn)態(tài)時(shí)間為0.65 s, RBF-BP雙隱層神經(jīng)網(wǎng)絡(luò)控制策略下的平衡車穩(wěn)態(tài)時(shí)間為0.1 s,且穩(wěn)態(tài)誤差更低??垢蓴_方面,RBF-BP神經(jīng)網(wǎng)絡(luò)控制下,在10 ms之后系統(tǒng)重新進(jìn)入穩(wěn)態(tài),RBF神經(jīng)網(wǎng)絡(luò)控制下,擾動(dòng)加入0.45 s后系統(tǒng)進(jìn)入穩(wěn)態(tài), BP神經(jīng)網(wǎng)絡(luò)控制策略下40 ms后,系統(tǒng)進(jìn)入穩(wěn)態(tài)??梢钥闯?,無(wú)論是控制系統(tǒng)的反應(yīng)時(shí)間、控制精度還是抗干擾能力,RBF-BP組合神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)都更加優(yōu)秀。
圖10 雙輪平衡車運(yùn)行效果 Fig.10 Two-wheel balancing car running effect
控制系統(tǒng)對(duì)控制芯的計(jì)算性能有較高的要求,算法實(shí)現(xiàn)的硬件方案采用一塊STM32F103ZET6芯片完成除神經(jīng)網(wǎng)絡(luò)計(jì)算以外的所有功能,一塊STM32F767ZGT6芯片完成神經(jīng)網(wǎng)絡(luò)的計(jì)算工作,兩塊芯片之間通過(guò)CAN協(xié)議進(jìn)行通信,該硬件方案可以很好地滿足所設(shè)計(jì)的控制系統(tǒng)對(duì)實(shí)時(shí)性的要求。設(shè)計(jì)的控制系統(tǒng)和PID控制系統(tǒng)的運(yùn)行效果圖如圖10所示,可以看出,相較于在PID控制下雙輪平衡車運(yùn)行角度范圍為-2.7°~2.4°,在本文所設(shè)計(jì)的控制系統(tǒng)作用下運(yùn)行角度降低至-0.6°~0.7°,很大程度上改善了雙輪平衡車的運(yùn)行品質(zhì)。
針對(duì)雙輪平衡車這一非線性、強(qiáng)耦合系統(tǒng)的控制策略,首先建立了系統(tǒng)的數(shù)學(xué)模型,研究了RBF-BP組合神經(jīng)網(wǎng)絡(luò)的算法,并使用遺傳算法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化。在Matlab中的仿真結(jié)果說(shuō)明:該控制策略相對(duì)于單一的BP和RBF神經(jīng)網(wǎng)絡(luò)控制策略,具有反應(yīng)迅速、控制精度高和抗干擾能力強(qiáng)的特點(diǎn),很大程度上改善了雙輪平衡車的運(yùn)行性能。實(shí)際的控制表明其改善了雙輪平衡車的平衡品質(zhì)。