杜金祥,岳 光
(太原工業(yè)學院 自動化系,山西 太原 030008)
鑒于很難確定智能小車精確的數(shù)學模型以及無法確定的外界干擾,特別是行進蹺蹺板的平衡,利用傳統(tǒng)的控制理論很難實現(xiàn)對智能小車的高精度平衡控制[1]?;谀壳皣鴥?nèi)傳統(tǒng)電動車蹺蹺板控制系統(tǒng)的已有算法,經(jīng)過多次的實驗測試和算法分析,本文提出了一種新穎的基于神經(jīng)網(wǎng)絡(luò)BPTT電動車蹺蹺板運動控制方法。其采用專門應(yīng)用于控制領(lǐng)域的STM32F103C8T6芯片為控制系統(tǒng)核心,采用隨時間反向傳播(Backpropagation Through Time,BPTT)算法PID控制技術(shù)[2],通過陀螺儀傳感器MPU6050精確測量電動車的運行姿態(tài)數(shù)據(jù),精確控制驅(qū)動四個電機的運轉(zhuǎn)速度,達到對電動車蹺蹺板運動的精確控制,在完成指定任務(wù)后報警模塊給予任務(wù)完成提示,同時STM32F103C8T6芯片外擴LED顯示屏,方便用戶讀取數(shù)據(jù)。該設(shè)計主要是針對小朋友的智能電動玩具以及一些模擬比賽進行的研究,具有一定的參考價值和實用意義。
圖1為智能車蹺蹺板控制系統(tǒng)結(jié)構(gòu)框圖,它由STM32F103C8T6為核心的主控制器組成的主控系統(tǒng)、小車速度控制子系統(tǒng)、小車角度檢測子系統(tǒng)和運動執(zhí)行機構(gòu)組成。智能車角度檢測子系統(tǒng)的主要功能是實時檢測小車運行角度,并計算出角度偏差量;速度控制子系統(tǒng)基于先進的神經(jīng)網(wǎng)絡(luò)BPTT與深度學習PID控制算法,通過三維角速度陀螺儀加速度計模塊MPU6050對蹺蹺板三維運動狀態(tài)的數(shù)字信號進行采集、計算[3],得出相應(yīng)的值,輸出到直流電機控制回路參與蹺蹺板姿態(tài)控制。
圖1 智能車蹺蹺板控制系統(tǒng)結(jié)構(gòu)框圖
智能車蹺蹺板運動原理如圖2所示,蹺蹺板處于兩邊都懸空的狀態(tài),小車在起點端安置配重(質(zhì)量為m1),當小車(質(zhì)量為m2)從一邊行駛上蹺蹺板,越過支點C,板的一端開始受力直到車體到達板的平衡重力點位置,蹺蹺板兩端受力均勻,此時達到平衡。本次設(shè)計實驗中的蹺蹺板選擇長度160 cm、寬度30 cm的輕質(zhì)PVC板,m1和m2的質(zhì)量遠遠大于PVC板質(zhì)量,所以建模時忽略板的質(zhì)量。控制系統(tǒng)的工作原理是:智能車駛上蹺蹺板后,通過傾角傳感器不斷地測量蹺蹺板的傾角(即實際傾角),該實際傾角與給定傾角作比較,形成傾角偏差,通過電機控制智能車前后微移,不斷修正該傾角偏差,最終使傾角保持在給定范圍之內(nèi),此時蹺蹺板便達到平衡狀態(tài)。
圖2 智能車蹺蹺板運動原理
要使智能車蹺蹺板運行具有一定的穩(wěn)定性及精確度,我們需要通過MPU6050傳回的姿態(tài)數(shù)據(jù)實時提供蹺蹺板的傾角θ,依據(jù)θ在運行時間內(nèi)的變化,可以計算出系統(tǒng)相關(guān)參數(shù)。圖2中,Δh為蹺蹺板在任意點k的高度,ΔL為過支點后任意點k的小車位移距離。在運動控制平衡的任務(wù)中,開始運動只提供蹺蹺板的傾角θ,通過傾角θ來控制電動車運動速度。再設(shè)置規(guī)定傾角為目標角度,其與實際傾角的差值為偏差,聯(lián)系蹺蹺板變量傾角θ與運動速度u得出在k點時刻有下式成立:
θ=arcsin(Δh/ΔL)=arcsin(Δh/ukt).
(1)
AB杠桿以C為圓心轉(zhuǎn)動,根據(jù)扭矩平衡∑M=0,又考慮到過C點后小車做減速運動,經(jīng)過多次測試取初速度u0=0.312 m/s。設(shè)在任意點k的加速度為a(k),由位移距離ΔL得方程:
(2)
由角速度陀螺儀測得的數(shù)據(jù)可計算角加速度α(k),再將其轉(zhuǎn)化為加速度,用公式表示為:
a(k)=ΔLα(k).
(3)
依據(jù)杠桿原理扭矩總和∑M=0,在任意點k處得出:
m1×|AC|-m2×ΔL=0.
(4)
這樣依據(jù)公式(1)~公式(3)建立受控對象的差分方程:
y(k)=0.312y(k-1)+0.26y(k-2)+
0.11u(k-1)+0.312u(k-2).
(5)
其中:y(k)為控制對象在k時刻的輸出值。
本系統(tǒng)中通過智能車在蹺蹺板上的運動,動態(tài)地調(diào)整蹺蹺板的角度,使電動小車的重心恰好處在蹺蹺板的平衡點。針對平衡系統(tǒng)的主要任務(wù)是設(shè)計小車,即對系統(tǒng)搭建實際平衡車模型,然后再集中對小車進行設(shè)計。
蹺蹺板小車控制系統(tǒng)根據(jù)角度偏差調(diào)整速度反饋值,在CPU的PID控制器采用了基于BPTT神經(jīng)網(wǎng)絡(luò)的PID控制構(gòu)架,如圖3所示,其組成部分為BPTT神經(jīng)網(wǎng)絡(luò)運算器(圖3 中虛線框內(nèi)部分)和PID控制器(u(k)與Δu(k)反饋及受控對象部分),這種組合控制策略能夠利用PID和BPTT神經(jīng)網(wǎng)絡(luò)的最優(yōu)功能[4],結(jié)合以STM32F103C8T6為核心的主控制器開發(fā)的硬件平臺,使控制參數(shù)達到最優(yōu)。
圖3中,轉(zhuǎn)換器的功能是進行微積分計算,其輸入為設(shè)定值r(k)與輸出值y(k)的誤差e(k)=r(k)-y(k),Δu(k)為控制率信號u(k)與控制器輸出量加一步延遲后的誤差值。轉(zhuǎn)換器的輸出為神經(jīng)元學習控制所需要的輸入狀態(tài)量x1、x2、x3,分別?。?/p>
圖3 深度學習PID控制結(jié)構(gòu)圖
(6)
設(shè)ω1、ω2、ω3為神經(jīng)元各輸入狀態(tài)量所對應(yīng)的權(quán)系數(shù),神經(jīng)網(wǎng)絡(luò)的閥值Q取為零,使用改進的Hebb學習算法得到三個權(quán)值的更新規(guī)則為:
(7)
其中:ηp、ηi、ηd分別為比例、積分、微分的學習速率。可以選擇這3個權(quán)值變量為系統(tǒng)的狀態(tài)變量。
神經(jīng)網(wǎng)絡(luò)輸出激發(fā)函數(shù)取Tanh函數(shù),表示為:
(8)
因此,神經(jīng)網(wǎng)絡(luò)控制器的輸出控制量為:
u(k)=u(k-1)+Δu(k)=
(9)
其中:K為比例系數(shù)。
神經(jīng)網(wǎng)絡(luò)的自適應(yīng)功能是通過改變權(quán)系數(shù)ωi來實現(xiàn)的,學習規(guī)則即是如何調(diào)整ωi的規(guī)則,它是神經(jīng)元控制器的核心。在這里學習算法借用最優(yōu)控制中二次型性能指標的思想,在權(quán)重值的調(diào)整引入二次性能指標,實現(xiàn)對輸出誤差的約束控制。
目標函數(shù)為:
(10)
為了保證權(quán)重值修正以J(k)相應(yīng)于ωi(k)的負梯度方向進行,必須滿足:
(11)
其中:ηi為學習速率,1>ηi>0。學習速率η的選擇也要合理恰當。本設(shè)計單神經(jīng)網(wǎng)絡(luò)自適應(yīng)算法的穩(wěn)定條件是:
0<η<2(AAT)-1.
(12)
(13)
學習速率決定每次循環(huán)訓練生成的權(quán)值變化量。學習速率過大可提高訓練效率,但可能會導致系統(tǒng)不穩(wěn)定;學習速率過小則可能導致訓練時間過長,收斂慢[5]。因此選取較小的學習速率可以保證系統(tǒng)的穩(wěn)定性。學習速率的選取范圍一般在0.001~1 之間。在本系統(tǒng)中為了保證系統(tǒng)有足夠的穩(wěn)定性,選擇偏小的學習速率,取η在0.05左右。加權(quán)系數(shù)取值范圍[-1,+1],K值取1,這樣由式(10)~式(13)可得到PID的參數(shù)應(yīng)滿足:
(14)
Kω2(k)=Kp.
(15)
(16)
其中:T為采樣周期。
這樣就可以推出自適應(yīng)的比例、積分、微分參數(shù)。
利用設(shè)計的智能車蹺蹺板控制系統(tǒng)(實物如圖4所示),測量每次蹺蹺板的高度變化差Δh,用秒表記錄每次到達平衡所用時間,重復測試多次,并記錄相關(guān)數(shù)據(jù)。同時與傳統(tǒng)的控制算法進行比較,結(jié)果表明:與傳統(tǒng)控制算法運行數(shù)據(jù)比較,采用BPTT的PID控制算法在平衡時間方面效率平均提高了11%,平衡高度差Δh的精度提高了29.3%。這主要是因為神經(jīng)網(wǎng)絡(luò)BPTT控制算法實時修正系統(tǒng)控制參數(shù),使得反復校正次數(shù)減少,較大縮短了有效運行時間。實驗數(shù)據(jù)證明了本控制算法的可行性。兩種行進算法實驗數(shù)據(jù)對比如表1所示。
圖4 智能平衡小車控制實驗
根據(jù)表1所示數(shù)據(jù)可得智能平衡小車基本能夠按照預期的要求行駛在蹺蹺板上并將其調(diào)平衡。通過觀察比較數(shù)據(jù)可以看出智能車在平衡運動方面存在著的誤差Δh經(jīng)過算法修正后大大減小,從而使平衡角度θ較小,達到理想期望狀態(tài)。
表1 兩種算法實驗數(shù)據(jù)對比
本文設(shè)計的蹺蹺板控制系統(tǒng)與傳統(tǒng)蹺蹺板控制系統(tǒng)相比,控制核心是電機的轉(zhuǎn)速,控制精確并且擴展性優(yōu)越,同時采用三維加速度陀螺儀模塊作為檢測反饋系統(tǒng)部件,在輸出驅(qū)動模塊也采用了典型的電機驅(qū)動模塊,加上神經(jīng)網(wǎng)絡(luò)BPTT的PID控制算法,從而為智能小車精確控制打下扎實的基礎(chǔ),同時也為下一步研究奠定了基礎(chǔ)。