李廣南 葉洪濤 羅文廣
摘? 要:針對(duì)無(wú)人駕駛車(chē)輛縱向控制中的速度跟蹤精度問(wèn)題,提出一種基于改進(jìn)的粒子群優(yōu)化算法(improved particle swarm optimization,IPSO)的模型預(yù)測(cè)控制方法。首先,在模型預(yù)測(cè)控制中將問(wèn)題轉(zhuǎn)換為二次規(guī)劃問(wèn)題,使用粒子群算法進(jìn)行求解,并通過(guò)分層縱向控制器,實(shí)現(xiàn)對(duì)速度的跟蹤控制。為降低其陷入局部最優(yōu)解的風(fēng)險(xiǎn),引入了隨機(jī)權(quán)重策略和學(xué)習(xí)因子調(diào)整策略。其次,為了提高粒子尋優(yōu)的速度,保存了上一時(shí)刻的最優(yōu)粒子序列作為下一時(shí)刻粒子的群體極值。最后,為了驗(yàn)證算法的有效性,通過(guò)Simulink/CarSim建立了聯(lián)合仿真平臺(tái),仿真結(jié)果表明,該算法有效提高了車(chē)輛速度跟蹤的控制精度,最大誤差減小了0.274 7 km/h。
關(guān)鍵詞:無(wú)人駕駛車(chē)輛;模型預(yù)測(cè)控制;粒子群算法;縱向控制
中圖分類(lèi)號(hào):TP273;U471.15? ? ? ? ? ? DOI:10.16375/j.cnki.cn45-1395/t.2022.01.014
0? ? 引言
運(yùn)動(dòng)控制是無(wú)人駕駛車(chē)輛研究領(lǐng)域中的核心問(wèn)題之一,車(chē)輛根據(jù)周?chē)h(huán)境以及車(chē)輛狀態(tài)信息向油門(mén)、剎車(chē)以及轉(zhuǎn)向系統(tǒng)等發(fā)出控制指令[1]。其中,縱向控制主要研究車(chē)輛的速度跟蹤能力,控制車(chē)輛按照預(yù)定的速度行走是實(shí)現(xiàn)車(chē)輛穩(wěn)定跟蹤期望軌跡的關(guān)鍵。
模型預(yù)測(cè)控制(model predictive control,MPC)具有預(yù)測(cè)模型、滾動(dòng)優(yōu)化和反饋校正等特點(diǎn),適用于不易建立精確數(shù)學(xué)模型且存在約束條件的控制。 文獻(xiàn)[2]提出了一種模型預(yù)測(cè)控制(MPC)框架的自動(dòng)地面車(chē)輛速度跟蹤的控制方法,結(jié)合簡(jiǎn)單的縱向逆動(dòng)力學(xué)模型和MPC自適應(yīng)調(diào)節(jié),實(shí)現(xiàn)車(chē)輛縱向速度的控制。文獻(xiàn)[3]提出了一種分層控制架構(gòu)下的智能電動(dòng)汽車(chē)縱向跟車(chē)運(yùn)動(dòng)自適應(yīng)模糊滑??刂品椒?,上位控制器由滑模控制器與自適應(yīng)模糊控制器組成,下位控制器根據(jù)控制方式由縱向動(dòng)力學(xué)逆模型計(jì)算出期望力矩,實(shí)現(xiàn)對(duì)加速度期望值的跟蹤。同樣地,文獻(xiàn)[4]使用車(chē)輛縱向運(yùn)動(dòng)的上下位分層控制器結(jié)構(gòu),在上位控制器中提出改進(jìn)的MPC算法,下位控制器根據(jù)期望加速度求解發(fā)動(dòng)機(jī)節(jié)氣門(mén)開(kāi)度和制動(dòng)壓力。
眾多研究學(xué)者還將其他優(yōu)化算法加入縱向運(yùn)動(dòng)控制中。文獻(xiàn)[5]引入了一種帶有混沌初始化的粒子群優(yōu)化算法(CPSO),將其應(yīng)用到模型預(yù)測(cè)控制中, 用于解決同時(shí)帶有輸入約束和狀態(tài)約束的控制問(wèn)題。文獻(xiàn)[6]設(shè)計(jì)了基于PSO算法的模型預(yù)測(cè)控制器,通過(guò)粒子(MPC中的參數(shù)[Np]、[Nc])和該粒子所對(duì)應(yīng)的適應(yīng)值(控制系統(tǒng)的性能指標(biāo))建立聯(lián)系,能夠有效地對(duì)車(chē)輛軌跡進(jìn)行跟蹤。文獻(xiàn)[7]通過(guò)數(shù)值驗(yàn)證,證明使用一種改進(jìn)的粒子群算法可以降低計(jì)算迭代次數(shù),減少M(fèi)PC計(jì)算成本。
縱向控制可分為直接式和分層式2種控制方式,為了便于研究控制系統(tǒng),本文采用分層控制結(jié)構(gòu)。在上位控制器中,針對(duì)二次規(guī)劃求解優(yōu)化問(wèn)題不夠精確的問(wèn)題, 對(duì)基本粒子群算法進(jìn)行改進(jìn),由此設(shè)計(jì)上位控制器輸出期望的加速度,下位控制器運(yùn)用逆縱向動(dòng)力學(xué)輸出期望節(jié)氣門(mén)開(kāi)度和期望制動(dòng)壓力,對(duì)車(chē)輛速度跟蹤效果問(wèn)題進(jìn)行研究。
1? ? 無(wú)人駕駛車(chē)輛縱向控制器策略
無(wú)人駕駛車(chē)輛的縱向速度控制器框圖如圖1所示。根據(jù)參考速度以及道路信息,縱向上位控制器對(duì)參考速度進(jìn)行跟蹤控制,通過(guò)目標(biāo)函數(shù)得到控制量,輸出車(chē)輛的期望加速度[ades]給下位控制器。下位控制器運(yùn)用切換邏輯以及逆縱向動(dòng)力學(xué)輸出期望節(jié)氣門(mén)開(kāi)度信號(hào)[αthdes]或期望制動(dòng)主缸壓力信號(hào)[Pbdes],控制無(wú)人駕駛車(chē)輛跟蹤期望的速度。
2? ? 縱向控制器設(shè)計(jì)
2.1? ?上位控制器設(shè)計(jì)
車(chē)輛在行駛過(guò)程中,假設(shè)沒(méi)有橫擺運(yùn)動(dòng)對(duì)車(chē)輛縱向運(yùn)動(dòng)控制的影響,近似認(rèn)為車(chē)輛的加速度等同于縱向速度的導(dǎo)數(shù),利用一階慣性系統(tǒng)[8]來(lái)表示:
[a=(K/τd)×(ades-a)],? ? ? ? ? ? ? ? ? (1)
其中:[a]為縱向加速度,[ades]為期望加速度,[K]為系統(tǒng)增益,[τd]為時(shí)間常數(shù)。
考慮速度與加速度之間的關(guān)系,速度跟蹤控制用連續(xù)系統(tǒng)的狀態(tài)方程表示:
[x=Ax+Bu],? ? ? ? ? ? ? ? ? ? ? ?(2)
式中:[x∈R2]為系統(tǒng)縱向狀態(tài)變量,[x=[va]T];[u∈R]為系統(tǒng)控制輸入,[R]為實(shí)數(shù)集, [u=ades];[A=010-1/τd],[B=0K/τd]。將式(2)通過(guò)向前歐拉法進(jìn)行離散化處理,得系統(tǒng)的離散狀態(tài)方程:
[x(k+1)=Akx(k)+xku(k)],? ? ? ? ? ? ? (3)
其中,[Ak]、[xk]分別為狀態(tài)矩陣和控制輸入矩陣,矩陣分別表示為[Ak=1Ts01-Ts/τd],[xk=0KTs/τd],[k]為當(dāng)前采樣時(shí)刻,[k+1]為下一采樣時(shí)刻,[Ts]為采樣周期。
系統(tǒng)輸出量為車(chē)輛速度[v(k)]:
[v(k)=Cx(k)],? ? ? ? ? ? ? ? ? ? ? ? ?(4)
式中:[C=10].
在無(wú)人駕駛車(chē)輛控制系統(tǒng)中,車(chē)輛的控制目標(biāo)是在保證車(chē)輛不發(fā)生過(guò)于劇烈的加速度和加速度變化率的前提下,保證速度跟蹤精度,因此,將性能評(píng)價(jià)函數(shù)定義為:
[J(x(k), u(k-1), △u(k))=]
[i=1NPVp(k+i|k)-Vref(k+i|k)2Q+]
[i=1Nc△u(k+i)2W] ,? ? ? ? ? ? ? ? ? ?(5)
式中:[k-1]為上一采樣時(shí)刻,[NP]為預(yù)測(cè)步長(zhǎng),[Nc]為控制步長(zhǎng),[Vp(k+i|k)]為控制輸出預(yù)測(cè)值,[Vref(k+i|k)]為控制輸出變量參考值,[(k+i|k)]和[△u(k+i)]分別表示根據(jù)[k]采樣時(shí)刻的狀態(tài)信息來(lái)預(yù)測(cè)第[k+i]時(shí)刻的信息和第[k+i]時(shí)刻的控制輸入增量,其中[i=1, 2, …, Np];[Q]為系統(tǒng)輸出量的權(quán)重系統(tǒng)矩陣,[W]為系統(tǒng)控制增量的權(quán)重系統(tǒng)矩陣。
在控制器跟蹤速度過(guò)程中,需要考慮添加主動(dòng)約束,即控制過(guò)程中的加速度約束及其變化率約束,保證其約束在合理的范圍之內(nèi),其不等式表達(dá)如下:
[umin≤u(k+i)≤umax],[i=1, 2, …, Nc-1],? (6)
加速度變化率約束表達(dá)形式為:
[△umin≤△u(k+i)≤△umax],[i=1, 2, …, Nc-1], (7)
其中:[umin]和[umax]為縱向加速度閾值,[Δumin]和[Δumax]為縱向加速度變化量閾值,[u(k+i)]是[k+i]時(shí)刻的控制輸入。
系統(tǒng)在每個(gè)周期完成對(duì)優(yōu)化問(wèn)題的求解,得出每個(gè)周期一系列的最優(yōu)解控制輸入增量[ΔU*],并將第一個(gè)控制增量作為系統(tǒng)的實(shí)際輸出變化量,加入系統(tǒng)中。在新的時(shí)刻,系統(tǒng)根據(jù)系統(tǒng)狀態(tài),重新預(yù)測(cè)下一時(shí)刻的一系列控制增量,不斷在線滾動(dòng)優(yōu)化,直到完成控制過(guò)程。
2.2? ? 二次優(yōu)化問(wèn)題的轉(zhuǎn)化
結(jié)合性能要求,優(yōu)化問(wèn)題可以轉(zhuǎn)化為標(biāo)準(zhǔn)的二次規(guī)劃(QP)問(wèn)題進(jìn)行求解,式(7)可以簡(jiǎn)化成以下形式:
[minΔU12ΔUTHΔU+GTΔU],? ? ? ? ? ? ? ? ? (8)
[s.t.? ? ? ? ? ? ?ΔUmin≤ΔU≤ΔUmax],
[Umin≤AtΔU+Ut≤Umax],
式中:[H∈R2×2]對(duì)稱(chēng)正定,[G∈R2],[ΔU=Δu(k),Δu(k+1), …, Δu(k+Nc)T],[Ut=1Nc][?][u(k-1)],[1Nc] 為Nc行的單位列向量,[u(k-1)]為上一時(shí)刻實(shí)際控制量,[ΔUmin]和[ΔUmax]為控制時(shí)域內(nèi)加速度變化量的最小值、最大值集合,[Umin]和[Umax]為控制時(shí)域內(nèi)加速度的最小值、最大值集合,[At=100…0110…0111…0????111…1Nc×Nc].該優(yōu)化問(wèn)題可以通過(guò)MATLAB提供的QP求解器quadprog函數(shù)來(lái)實(shí)現(xiàn):
[ΔU?=quadprog(H, G, Ak, Bk)]
2.3? ?下位控制器設(shè)計(jì)
下位控制器的作用是根據(jù)期望加速度對(duì)車(chē)輛進(jìn)行準(zhǔn)確控制,該控制會(huì)涉及到車(chē)輛制動(dòng)和驅(qū)動(dòng)模式的切換過(guò)程,以及將控制量轉(zhuǎn)換為執(zhí)行器控制? ? ?輸入。
考慮空氣阻力、滾動(dòng)阻力以及坡度阻力,將車(chē)輛阻力需求加速度方程[9]用式(9)表示:
[mathre=Fres=Froll+Faero+Fgrade],? ? ? ? ? ?(9)
式中:[m]為車(chē)輛質(zhì)量,[athre]為阻力需求加速度,[Fres]為阻力合力,[Froll]為滾動(dòng)阻力,[Faero]為空氣阻力,[Fgrade]為坡度阻力。
坡度阻力為汽車(chē)重力沿坡道的分力,在CarSim中設(shè)置了坡度為[ia]的直線道路,其中[ia=tanα],[α]為坡角。因此,考慮坡度較小時(shí),重力加速度g取9.8 m/s2,坡度阻力[Fgrade]:
[Fgrade=m×g×ia],? ? ? ? ? ? ? ? ? ? (10)
滾動(dòng)阻力[Froll]為:
[Froll=m×g×cosα×Cr],? ? ? ? ? ? ? ?(11)
式中:[Cr]為滾動(dòng)阻力系數(shù)。
空氣阻力[Faero]為:
[Faero=12×ρa(bǔ)×Sa×CW×v2],? ? ? ? ? ? ?(12)
式中:[CW]為空氣阻力系數(shù);[ρa(bǔ)]為空氣密度,正常的干燥空氣可取[1.29] kg/m3;[Sa]為車(chē)輛迎風(fēng)面積。假設(shè)車(chē)輛在行駛過(guò)程中,以上參數(shù)均不發(fā)生變化。
在設(shè)計(jì)邏輯切換的過(guò)程中,要保證制動(dòng)和驅(qū)動(dòng)模式不能同時(shí)起作用,也要根據(jù)現(xiàn)實(shí)情況,不能頻繁地切換制動(dòng)和驅(qū)動(dòng)模式。因此,根據(jù)期望加速度定義以下邏輯切換:
[αthdes=αthdes, ades≥-αthre0, ades<-αthre],? ? ? ? ? ? ? ? ? ?(13)
[Pbdes=0, ades>-αthrePbdes, ades≤-αthre],? ? ? ? ? ? ? ? ? ? ?(14)
式中:[αthdes]為期望節(jié)氣門(mén)開(kāi)度,[Pbdes]為期望制動(dòng)主缸壓力。
經(jīng)過(guò)驅(qū)動(dòng)模式或制動(dòng)模式的邏輯切換時(shí),當(dāng)期望加速度大于等于阻力需求加速度時(shí),切換為驅(qū)動(dòng)模式??紤]車(chē)輛內(nèi)部的旋轉(zhuǎn)構(gòu)件換算質(zhì)量、道路坡度阻力、空氣阻力以及滾動(dòng)阻力,可以得到驅(qū)動(dòng)模式下車(chē)輛的驅(qū)動(dòng)力[FE]為:
[FE=δmades+Fgrade+Froll+Faero] ,? ? ? (15)
式中:[δ]為旋轉(zhuǎn)質(zhì)量換算系數(shù),通過(guò)經(jīng)驗(yàn)公式得到。
因此得發(fā)動(dòng)機(jī)所需的輸出扭矩[10-11]為:
[Te=FErwigi0η] ,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(16)
式中:[rw]為車(chē)輪有效半徑,[ig]為變速器減速比,[i0]為主減速器傳動(dòng)比,[η]為傳動(dòng)系機(jī)械效率。根據(jù)車(chē)輛發(fā)動(dòng)機(jī)轉(zhuǎn)速[n]、節(jié)氣門(mén)開(kāi)度、發(fā)動(dòng)機(jī)輸出扭矩[Te]三者的關(guān)系,以及轉(zhuǎn)速和有效扭矩,通過(guò)發(fā)動(dòng)機(jī)扭矩[TMAP]可得到節(jié)氣門(mén)開(kāi)度[αthdes]為:
[αthdes=T-1MAP(n, Te)],? ? ? ? ? ? ? ? ? ? ? ?(17)
當(dāng)邏輯切換為制動(dòng)模式[12]時(shí),考慮道路坡度阻力、空氣阻力以及滾動(dòng)阻力,當(dāng)前車(chē)輛需求制動(dòng)力[FB]為:
[FB=-mades-Fgrade-Froll-Faero],? ? ? ? ? (18)
期望的制動(dòng)主缸壓力計(jì)算為:
[Pbdes=FBkB],? ? ? ? ? ? ? ? ? ? ? ? ?(19)
式中:[kB]為制動(dòng)力與制動(dòng)主缸壓力的比值。
通過(guò)制動(dòng)驅(qū)動(dòng)模式切換以及計(jì)算,得到期望節(jié)氣門(mén)開(kāi)度[αthdes]和期望制動(dòng)主缸壓力[Pbdes],將控制量作為執(zhí)行器控制輸入,控制車(chē)輛根據(jù)期望的速度 行駛。
3? ? 優(yōu)化PSO結(jié)合的MPC算法
采用模型預(yù)測(cè)控制進(jìn)行速度跟蹤的基本思想是車(chē)輛在根據(jù)期望速度行駛的過(guò)程中,將最優(yōu)化問(wèn)題轉(zhuǎn)化為一個(gè)帶約束的二次規(guī)劃問(wèn)題進(jìn)行求解。針對(duì)原本QP算法在求解過(guò)程中出現(xiàn)精度不足的問(wèn)題,本文利用改進(jìn)型的粒子群優(yōu)化算法對(duì)性能指標(biāo)進(jìn)行優(yōu)化,解出控制律。
3.1? ?算法介紹
在粒子群算法中,假設(shè)在一個(gè)[S]維的目標(biāo)搜索空間中,有[M]個(gè)粒子組成一個(gè)粒子群體,粒子在[S]維的搜索空間中以一定的飛翔速度搜索,每一個(gè)粒子所在的位置都是一個(gè)潛在的解,粒子根據(jù)目標(biāo)函數(shù)計(jì)算出其適應(yīng)值,根據(jù)適應(yīng)值的大小判斷該粒子的優(yōu)劣性。在[S]維中,第[i]個(gè)粒子的位置為:[Xi=xi1, xi2, …, xiS];第[i]個(gè)粒子的速度表示為:[Vi=vi1, vi2, …, viS],[1≤i≤S]。粒子在游歷過(guò)程中,第[i]個(gè)粒子經(jīng)歷過(guò)的歷史最好點(diǎn),即個(gè)體極值[pbest]表示為:[PiS=pi1, pi2, …, piS];整個(gè)粒子群迄今為止搜索到的最好的位置,即群體極值[gbest]表示為? ? ? [PgS=pg1, pg2, …, pgS],[g∈1, 2, …, M]。
空間中各粒子隨著每一次的迭代都會(huì)不斷地更新自己的狀態(tài)[13],其速度和位置的更新方程為:
[viS(t+1)=ωviS(t)+c1r1(t)piS(t)-xiS(t)+c2r2(t)pgS(t)-xiS(t)],? ? ? ? ? (20)
[xiS(t+1)=xiS(t)+viS(t+1)],? ? ? ? ? (21)
式中:[ω]為慣性因子,其大小可以保證粒子的搜索能力,[ω]較大時(shí)可以保證全局的搜索能力,反之,局部搜索能力較強(qiáng);正常數(shù)[c1]和[c2]稱(chēng)為學(xué)習(xí)因子,分別調(diào)整粒子飛向自身、全局最好位置方向的步長(zhǎng);[r1]和[r2]為互相獨(dú)立且均勻分布于[0,1]的2個(gè)隨 機(jī)數(shù)。
設(shè)[f(x)]為最小化的目標(biāo)函數(shù),則第[i]個(gè)粒子當(dāng)前位置[pi(t+1)]由以下公式確認(rèn):
[xiS(t+1)=xiS(t)+viS(t+1)],? ? ? ? ? ? ?(22)
[pi(t+1)=pi(t), f(xi(t+1)≥f(pi(t))xi(t+1), f(xi(t+1)<f(pi(t))]. (23)
3.2? ? 改進(jìn)粒子群算法
由于PSO在優(yōu)化過(guò)程中會(huì)向自身歷史最佳位置以及群體中歷史最佳位置靠近,而且其優(yōu)化速度跟其初始化設(shè)置參數(shù)有很大聯(lián)系,使得粒子容易陷入局部最優(yōu)或停滯,導(dǎo)致輸出結(jié)果波動(dòng)較大[14-15]。因此,為了提高粒子群算法效率,對(duì)粒子群算法進(jìn)行改進(jìn)。
3.2.1? ? ?添加壓縮因子
在優(yōu)化過(guò)程中,算法容易陷入局部尋優(yōu)中,會(huì)直接影響算法的性能,從而導(dǎo)致優(yōu)化出的參數(shù)不精確。為確保算法的收斂性,在粒子的每一步移動(dòng)過(guò)程中添加壓縮因子,不僅能夠滿足收斂速度,而且收斂精度大大提高。對(duì)粒子更新方程進(jìn)行如下改進(jìn):
[viS(t+1)=ψωviS(t)+c1r1(t)piS(t)-xiS(t)+]
[c2r2(t)pgS(t)-xiS(t)] ,? ? ? ? ? (24)
[xiS(t+1)=xiS(t)+viS(t+1)] ,? ? ? ? (25)
式中:[ψ]為壓縮因子, [ψ=22-φ-φ2-4φ],其中[φ=c1+c2>4]。
3.2.2? ? 調(diào)整慣性權(quán)重
在MPC計(jì)算求解過(guò)程中要求時(shí)間越短越好,在粒子群算法中需要多次迭代收斂才能尋找到最小值。慣性權(quán)重[ω]是PSO優(yōu)化算法的可調(diào)參數(shù)之一,其大小控制了迭代過(guò)程中歷史因素對(duì)當(dāng)前狀態(tài)的影響程度[16]。為了更好地平衡算法的全局搜索與局部搜索能力,加入了隨機(jī)權(quán)重策略[ω],使得粒子的歷史速度對(duì)這一時(shí)刻速度具有隨機(jī)影響性,克服[ω]的線性遞減所帶來(lái)的不足。[ω]的取值為:
[ω=μ+σ×N(0, 1)μ=μmin+(μmax-μmin)×rand(0, 1)],? ? ? (26)
式中:[μmin]為隨機(jī)權(quán)重平均值的最小值,[μmax]為隨機(jī)權(quán)重平均值的最大值,[σ]為隨機(jī)權(quán)重的方差,[N(0, 1)]表示標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù),[rand(0, 1)]表示[0]~[1]的隨機(jī)數(shù)。
3.2.3? ? ?調(diào)整學(xué)習(xí)因子
在基本的粒子群算法中,認(rèn)為粒子在尋找最優(yōu)值的過(guò)程中,其自我學(xué)習(xí)能力及群體的學(xué)習(xí)能力是一樣的,即學(xué)習(xí)因子[c1]、[c2]的取值是固定的;但是在迭代初級(jí)階段,粒子具有較強(qiáng)的自我學(xué)習(xí)能力,而在迭代后期,粒子需要較強(qiáng)的社會(huì)學(xué)習(xí)能力去快速收斂,尋找最優(yōu)值[17-18]。因此,學(xué)習(xí)因子[c1]在算法求解過(guò)程中應(yīng)呈線性遞增形式,學(xué)習(xí)因子[c2]在算法求解過(guò)程中呈線性遞減形式。
[c1=c1min+(c1max-c1min)×itKt],? ? ? ? ? ? ?(27)
[c2=c2min+(c2max-c2min)×itKt],? ? ? ? ? ? (28)
式中,[it]為當(dāng)前迭代次數(shù),[Kt]為最大迭代次數(shù)[(it=1, 2, …, Kt)]。但是在求解適應(yīng)度函數(shù)值時(shí),其收斂曲線并不是呈線性遞減的直線而是呈指數(shù)函數(shù)趨勢(shì)遞減的形式,這會(huì)導(dǎo)致學(xué)習(xí)因子的遞增遞減程度與適應(yīng)度函數(shù)變化程度不一致的現(xiàn)象。因此,將線性遞增遞減的曲線修改為呈指數(shù)函數(shù)趨勢(shì)的曲線,與適應(yīng)度函數(shù)變化曲線相匹配,設(shè)置學(xué)習(xí)因子形式如下所示:
[c1=c1min+(c1max-c1min)×(itKt)1it],? ? ? ? (29)
[c2=c2min+(c2max-c2min)×(itKt)1it].? ? ? ? (30)
3.3? ? IPSO-MPC算法流程與步驟
經(jīng)改進(jìn)后的粒子群優(yōu)化算法,其算法流程如 圖2所示[19]。
將粒子群算法和MPC相結(jié)合,把輸入向量[ΔU]作為優(yōu)化變量,則粒子群中各個(gè)粒子的維數(shù)等同于預(yù)測(cè)的控制時(shí)域;目標(biāo)函數(shù)選取式(8)計(jì)算各個(gè)粒子的適應(yīng)度;由于這一時(shí)刻的優(yōu)化變量的最優(yōu)解與上一時(shí)刻優(yōu)化變量的最優(yōu)解的變化不大,為保證優(yōu)秀粒子的影響力,將上一時(shí)刻的控制序列作為下一時(shí)刻粒子的[gbest]初值,提高算法的效率。算法的具體步驟如下:
Step 1? ?初始化[MPC]參數(shù)以及粒子群參數(shù),采集第[k]時(shí)刻[Carsim]輸出的系統(tǒng)狀態(tài)量信息;
Step 2? ?根據(jù)車(chē)輛模型、狀態(tài)量和輸入量,計(jì)算出優(yōu)化問(wèn)題中的矩陣[H]和[G],以及目標(biāo)函數(shù)[J(△u(k))];
Step 3? ?運(yùn)用粒子群優(yōu)化算法進(jìn)行求解,根據(jù)目標(biāo)函數(shù)以及約束,進(jìn)行迭代計(jì)算,直到滿足終止條件,得到該控制時(shí)域內(nèi)的一系列控制輸入增量[ΔU];
Step 4? ?將該控制序列中第一個(gè)元素[△u?(k)]作為實(shí)際的控制輸入增量作用于系統(tǒng)中;
Step 5? ?令[k=k+1],循環(huán)執(zhí)行,直到系統(tǒng)完成控制過(guò)程。
4? ? 仿真驗(yàn)證
為驗(yàn)證粒子群算法結(jié)合MPC算法的有效性,通過(guò)搭建Simulink/CarSim聯(lián)合仿真平臺(tái),對(duì)所設(shè)計(jì)的控制器進(jìn)行仿真驗(yàn)證,并與MATLAB提供的QP算法進(jìn)行比較分析。 在MPC控制器中,預(yù)測(cè)步長(zhǎng)[Np=30],控制步長(zhǎng)[Nc=2],采樣時(shí)間[Ts=0.02] s,[umin=-5] [m/s2],[umax=3.5] [m/s2],[Δumin=-5] [m/s2] ,[Δumax=5] [m/s2],系統(tǒng)輸出量的權(quán)重系統(tǒng)系數(shù)[Q=200],控制增量的權(quán)重系統(tǒng)矩陣[W=2]。粒子群算法中的參數(shù)數(shù)值為:最大迭代次數(shù)[Kt=100],粒子群數(shù)目[M=30],學(xué)習(xí)因子[c1=2.1],[c2=2],? [φ=4.1],[μmin=0.5], [μmax=0.8],[σ=0.2],壓縮因子[ψ=0.729 8],[c1min=c2min=0.5],[c1max=c2max=3.5]。由于不同的路面附著系數(shù)對(duì)車(chē)輛的控制量輸出有較大的影響,因此,將附著系數(shù)設(shè)置為0.85,并考慮車(chē)輛行駛坡道情況,設(shè)置在坡度[ia=0.05]的工況下進(jìn)行測(cè)試。實(shí)際測(cè)試中,車(chē)輛空氣阻力系數(shù)數(shù)值為0.28~0.40。車(chē)輛迎風(fēng)面積數(shù)值為1.4~2.6 [m2],良好路面的滾動(dòng)阻力系數(shù)為0.008~0.030。綜合考慮,模型參數(shù)取值為:滾動(dòng)阻力系數(shù)[Cr=0.016],空氣阻力系數(shù)[CW=0.280],車(chē)輛迎風(fēng)面積[Sa=2.51] [m2],[rW=0.379] m,[i0=4.1],[η=0.95],[kB=]1 350 [N·m/Pa]。仿真測(cè)試選用的車(chē)型為D-Class,SUV,車(chē)輛具體參數(shù)如圖3所示。
在有坡度的道路工況下,驗(yàn)證控制器的有效性,設(shè)置了包含不同加速度的加速過(guò)程與減速過(guò)程的期望速度曲線,車(chē)輛根據(jù)該期望速度曲線進(jìn)行速度跟隨控制,對(duì)控制算法進(jìn)行仿真驗(yàn)證,其車(chē)輛速度比較以及速度誤差圖如圖4所示。
如圖4所示,車(chē)輛的實(shí)際行駛速度與參考車(chē)速基本上重合,3種算法都能實(shí)現(xiàn)很好的跟蹤,在加速以及減速過(guò)程中會(huì)有較小的超調(diào)量,但隨后很快跟隨期望速度進(jìn)行行駛。但在3種算法中,IPSO算法的誤差要比PSO和QP算法小,在加速過(guò)程中最大的跟隨誤差為0.392 2 m/s,減速過(guò)程的最大跟隨誤差為0.283 8 m/s,且整體的跟蹤誤差結(jié)果效果更好??刂破魉俣雀櫿`差如表1所示。
在IPSO控制器算法中,節(jié)氣門(mén)開(kāi)度和制動(dòng)壓力控制量如圖5所示,并沒(méi)有出現(xiàn)頻繁切換驅(qū)動(dòng)制動(dòng)模式及同時(shí)起作用的情況,滿足控制的需求。
同時(shí),為控制系統(tǒng)的實(shí)時(shí)性,記錄單次解算時(shí)間,從控制器獲取車(chē)輛狀態(tài)信息進(jìn)行問(wèn)題的構(gòu)建和分析求解,得到輸出控制量之間的時(shí)間長(zhǎng)度。
對(duì)有坡度的道路工況中每個(gè)控制周期的單次解算所需時(shí)間進(jìn)行統(tǒng)計(jì),如圖6所示,加了IPSO優(yōu)化算法的MPC控制器的計(jì)算時(shí)間約20 ms。由于IPSO算法是基于MPC框架,需要進(jìn)行優(yōu)化求解,單次解算時(shí)間相對(duì)于QP時(shí)間要長(zhǎng),但遠(yuǎn)小于無(wú)人駕駛車(chē)輛實(shí)時(shí)控制周期50 ms,故滿足實(shí)時(shí)性要求。
5? ? 結(jié)論
本文針對(duì)基于模型預(yù)測(cè)控制方法的無(wú)人駕駛車(chē)輛縱向控制中的速度跟蹤精度問(wèn)題,利用一種改進(jìn)型的粒子群優(yōu)化算法求解該問(wèn)題??v向速度控制采用分層控制結(jié)構(gòu),上位控制器采用一階慣性環(huán)節(jié)預(yù)測(cè)車(chē)輛狀態(tài)信息,利用IPSO優(yōu)化算法求解目標(biāo)函數(shù)的最優(yōu)解,得出車(chē)輛的期望加速度;下位控制器通過(guò)逆縱向動(dòng)力學(xué)模型得出期望節(jié)氣門(mén)開(kāi)度以及制動(dòng)主缸壓力,在Simulink/CarSim建立了聯(lián)合仿真平臺(tái)進(jìn)行驗(yàn)證,在有坡度的道路工況下能夠有效地使車(chē)輛實(shí)現(xiàn)縱向加速、勻速和減速的速度跟隨,并且控制車(chē)輛速度的最大誤差減小了0.274 7 km/h,符合控制實(shí)時(shí)性的要求,證明了改進(jìn)型控制器的有效性。
參考文獻(xiàn)
[1]? ? ?郭景華,李克強(qiáng),羅禹貢.智能車(chē)輛運(yùn)動(dòng)控制研究綜述[J].汽車(chē)安全與節(jié)能學(xué)報(bào),2016,7(2):151-159.
[2]? ? ?ZHU M,CHEN H Y,XIONG G M.A model predictive speed tracking control approach for autonomous ground vehicles[J].Mechanical Systems and Signal Processing,2017,87:138-152.
[3]? ? ?李文昌,郭景華,王進(jìn).分層架構(gòu)下智能電動(dòng)汽車(chē)縱向運(yùn)動(dòng)自適應(yīng)模糊滑??刂芠J].廈門(mén)大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,58(3):422-428.
[4]? ? ?劉富春,賀云,陳奕峰.時(shí)延MPC自主車(chē)輛協(xié)同控制算法與仿真[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(23):222-227.
[5]? ? ?董娜,陳增強(qiáng),孫青林,等.基于粒子群優(yōu)化的有約束模型預(yù)測(cè)控制器[J].控制理論與應(yīng)用,2009,26(9):965-969.
[6]? ? ?唐傳茵,趙懿峰,趙亞峰,等.智能車(chē)輛軌跡跟蹤控制方法研究[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,41(9):1297-1303.
[7]? ? ?周晶晶,徐友春,張自立,等.IPSO-MPC算法在智能車(chē)縱向速度控制中的應(yīng)用[J].軍事交通學(xué)院學(xué)報(bào),2017,19(4):38-42.
[8]? ? ?龔建偉,姜巖,徐威.無(wú)人駕駛車(chē)輛模型預(yù)測(cè)控制[M].北京:北京理工大學(xué)出版社,2014.
[9]? ? ?謝輝,劉爽爽.基于模型預(yù)測(cè)控制的無(wú)人駕駛汽車(chē)橫縱向運(yùn)動(dòng)控制[J].汽車(chē)安全與節(jié)能學(xué)報(bào),2019,10(3):326-333.
[10]? ?李芳.智能車(chē)輛軌跡跟蹤的橫縱向協(xié)同控制研究[D].重慶:重慶郵電大學(xué),2018.
[11]? ?HU P,GUO J,LI L H.A robust longitudinal sliding–mode controller design for autonomous ground vehicle based on fuzzy logic[J].International Journal of Vehicle Autonomous Systems,2013,11(4):368-383.
[12]? ?鄧濤,李鑫.智能車(chē)輛橫縱向運(yùn)動(dòng)綜合控制方法研究[J].重慶交通大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,40(4):133-140.
[13]? ?MOHANTY P K,DEWANG H S. A smart path planner for wheeled mobile robots using adaptive particle swarm optimization[J].Journal of the Brazilian Society of Mechanical Sciences and Engineering,2021,43(2):101-118.
[14]? ?高飛.MATLAB智能算法超級(jí)學(xué)習(xí)手冊(cè)[M].北京:人民郵電出版社,2014.
[15]? ?郁磊.MATLAB智能算法30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2011.
[16]? ?皮倩瑛,葉洪濤.一種動(dòng)態(tài)調(diào)節(jié)慣性權(quán)重的粒子群算法[J].廣西科技大學(xué)學(xué)報(bào),2016,27(3):26-32.
[17]? ?丁承君,閻欣怡,馮玉伯,等.基于APF的AGV局部路徑規(guī)劃改進(jìn)算法研究[J/OL].計(jì)算機(jī)工程與應(yīng)用,2021:1-10[2021-06-27]. https://kns.cnki.net/kcms/detail
/11.2127.TP.20210420.1504.085.html.
[18]? ?YU X,YU Q. Enhanced comprehensive learning particle swarm optimization with dimensional independent and adaptive parameters[J].Computational Intelligence and Neuroscience,2021,2021(6):1-16.
[19]? ?許家赫,陳岳坪.改進(jìn)粒子群算法與fmincon函數(shù)混合尋優(yōu)的平面度、垂直度誤差評(píng)定[J].廣西科技大學(xué)學(xué)報(bào),2019,30(4):105-109.
Longitudinal motion control of unmanned vehicle based
on IPSO-MPC
LI Guangnan1,3, YE Hongtao*1,2,3, LUO Wenguang1,3
(1.School of Electrical, Electronic and Computer Science, Guangxi University of Science and Technology,
Liuzhou 545616, China; 2. Guangxi Key Laboratory of Automatic Detecting Technology and Instruments (Guilin University of Electronic Technology), Guilin 541004, China; 3. Guangxi Key Laboratory of Automobile
Components and Vehicle Technology (Guangxi University of Science and Technology), Liuzhou 545006, China)
Abstract: A model predictive control method based on an improved particle swarm optimization? ? ? ? ?algorithm (IPSO) was proposed to solve the speed tracking accuracy problem in the longitudinal control of unmanned vehicles. Firstly, the model predictive control converted the problem into a quadratic? ? programming problem, used particle swarm algorithm to solve it, and implemented the speed tracking control through the layered longitudinal controller. The random weight strategy and the learning factor adjustment strategy were used to reduce the risk of falling into a local optimal solution. Secondly, the optimal particle sequence at the previous moment was preserved as the population extreme value of the particle at the next moment to improve the speed of particle searching. Finally, a co-simulation platform was established through Simulink/CarSim to verify the effectiveness of the algorithm. Simulation? ? ? ? results show that the algorithm effectively improves the control accuracy of vehicle speed tracking, and the maximum error is reduced by 0.274 7 km/h.
Key words: unmanned vehicle; model predictive control; particle swarm optimization; longitudinal control
(責(zé)任編輯:黎? 婭)