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