基于模糊控制的智能競速車舵機轉(zhuǎn)向系統(tǒng)設(shè)計
由于位置偏差有正負,則舵機轉(zhuǎn)角也有正負,位置模糊控制器輸出控制舵機偏轉(zhuǎn)的信號u就有正負。設(shè)定u為正時舵機向右偏轉(zhuǎn),u為負時舵機向左偏轉(zhuǎn),則u的模糊子集與位置偏差e的模糊子集相似,即u={nb,nm,ns,ze,ps,pm,pb}。將u的大小也量化為七個等級,其論域u={-45,-30,-15,0,15,30,45}。u的隸屬函數(shù)如圖6所示。
控制規(guī)則
模糊規(guī)則反映了輸入輸出變量之間的關(guān)系,模糊控制規(guī)則是模糊控制的核心。
智能車運動時,舵機控制信號u的選擇應(yīng)與位置偏差的大小和符號相關(guān)。位置偏差e絕對值較大時應(yīng)以較大的絕對值的控制信號控制舵機偏轉(zhuǎn);而位置偏差e絕對值較小時應(yīng)以較小的絕對值的控制信號控制舵機偏轉(zhuǎn)。當(dāng)位置偏差e為正,即智能車向左偏離路徑時,控制信號控制舵機向右偏轉(zhuǎn)才能減小位置偏差;而當(dāng)位置偏差e為負,即智能車向右偏離路徑時,控制信號控制舵機向左偏轉(zhuǎn)才能減小位置偏差。
模糊控制規(guī)則如表1所示。
表1 模糊控制規(guī)則表
模糊推理和清晰化
推理是模糊控制系統(tǒng)的核心。以模糊概念為基礎(chǔ),模糊控制信息可通過模糊蘊涵和模糊邏輯的推理規(guī)則來獲取,并可實現(xiàn)擬人決策過程。根據(jù)模糊輸入量(偏差e)和模糊控制規(guī)則,模糊推理求解模糊關(guān)系方程,獲得模糊輸出量(偏轉(zhuǎn)角u)。
清晰化是將模糊推理后得到的模糊集轉(zhuǎn)換為用作控制的數(shù)字值的過程。可采用重心法的方法清晰化。重心法是指取模糊集隸屬函數(shù)曲線同基礎(chǔ)變量軸所圍面積的重心對應(yīng)的基礎(chǔ)變量作為清晰值的方法。
舵機控制策略及算法
對傳感器檢測到的信號進行量化處理,對應(yīng)舵機偏轉(zhuǎn)角的計算。另外為了避免從直道入彎的過沖,和從彎道進入直道的振蕩問題,程序中還需要對速度進行控制。
量化的過程
智能車通過7個光傳感器進行位置的采樣,根據(jù)傳感器的布局,從左至右依次編號為1,2,3,4,5,6,7。由于傳感器分布比較密,會出現(xiàn)一個或兩個傳感器同時檢測到黑線的情況,這樣可以得到13種路面情況。為了方便處理,將所得到的傳感器的信號量化為[1,2,3,4,5,6,7,8,9,10,11,12,13]。
舵機偏轉(zhuǎn)角的計算
通過計算來得到最后的舵機偏轉(zhuǎn)角,具體計算推理過程如下:
(1)將傳感器的設(shè)計位置投影到基準(zhǔn)線上得到的對應(yīng)偏差從左到右依次為-9,-6,-3,0,3,6,9。與上面的量化處理之后的1,3,5,7,9,11,13對應(yīng)。這樣的話,量化結(jié)果可用zadeh表示法來表示其在論域e上的模糊集合,如:10的位置可以表示為。
(2)通過模糊推理,可得到個量化結(jié)果的輸出量(模糊量),用zadeh表示法表示在論域u上,如10對應(yīng)的輸出結(jié)果(模糊量)可以表示為。
(3)再通過重心法清晰化后得到各量化結(jié)果對應(yīng)的輸出結(jié)果,則10對應(yīng)的輸出結(jié)果為0.5×15+0.5×30=22.5。
(4)為了使競速車在直道上行駛平穩(wěn),對量化值5到9的輸出結(jié)果進行適當(dāng)調(diào)整,使中間6,7,8對應(yīng)的輸出量為0度,其他的相應(yīng)調(diào)整使得角度變化較為平均。
速度的控制
小車勻速行駛時,從直道進入彎道,可能會產(chǎn)生過沖,從彎道進入直道,可能會有振蕩,所以必須進行速度調(diào)節(jié)。具體做法是,在檢測到傳感器偏出時立即減速,當(dāng)從偏出回到中心位置時再恢復(fù)原速。
試驗結(jié)果
通過采集當(dāng)前路況信號,對舵機的轉(zhuǎn)向角進行控制,以實現(xiàn)對小車循跡功能的控制。智能小車前輪轉(zhuǎn)向角度的輸出,是通過對舵機輸入pwm信號的調(diào)制脈寬進行控制的。實驗中測出脈寬在8316至9084微秒之間,對應(yīng)舵機轉(zhuǎn)軸的轉(zhuǎn)角為-45度到+45度,轉(zhuǎn)向機構(gòu)將舵機轉(zhuǎn)角傳遞到前輪。忽略舵機的動態(tài)響應(yīng)過程,在舵機處于穩(wěn)態(tài)時,脈寬與前輪的方向轉(zhuǎn)角存在一一對應(yīng)的映射關(guān)系。因此模糊控制器的輸出就是控制舵機的脈沖寬度,范圍為8316至9084微秒,輸出時將論域定為0到768微秒,則對應(yīng)舵機向左或向右轉(zhuǎn)動45度。本設(shè)計中采用的是智能車對黑線的直接變化量作為偏差輸入,在給pwm模塊設(shè)置脈寬時加上8316微秒的偏移量。具體的舵機轉(zhuǎn)角與pwm對應(yīng)關(guān)系如表2所示。
表2 舵機轉(zhuǎn)角與pwm對應(yīng)關(guān)系表
根據(jù)本文介紹的模糊算法和傳統(tǒng)pid算法為智能車編制了兩個控制程序,將這兩個控制程序分別下載到同一個智能車的mcu中,并在跑道上運行。通過多次對比,把制作完成的智能小車放到特定的跑道上進行試驗,如圖7、圖8、圖9、圖10,實驗結(jié)果表明,小車都能很好的、快速的在規(guī)定的軌道內(nèi)行駛。基于模糊控制的轉(zhuǎn)向控制器在直線、曲率半徑大的彎道、曲率半徑小的彎道、蛇形彎處行駛是都可以實現(xiàn)智能車輛的轉(zhuǎn)向控制,轉(zhuǎn)向穩(wěn)定性較好。
pid控制器相關(guān)文章:pid控制器原理
評論