黃兢誠
(香港中文大學(xué),香港 999077)
多車輛協(xié)同控制的研究始于20世紀(jì)70年代。主要研究內(nèi)容是如何組織多車輛系統(tǒng)完成給定的任務(wù)。近年來,世界上許多研究機構(gòu)都在這一方向上取得了一定的成果。研究重點主要在以下四個問題:共識、群集、群集控制和編隊控制。
本文主要研究基于勢函數(shù)的多車輛編隊控制方法。目標(biāo)是使多車輛系統(tǒng)達到:一是到達指定位置;二是避免車與車、車與障之間的碰撞?;谲囕v的物理模型,構(gòu)建合適的系統(tǒng)勢函數(shù),以使得系統(tǒng)最后能夠收斂。使用Lyapunov理論驗證了系統(tǒng)的穩(wěn)定性,最后使用matlab進行了軟件仿真。
勢函數(shù)是在20世紀(jì)90年代提出的一種虛擬力場的方法,旨在構(gòu)造一個人工勢場,對場內(nèi)的車輛或智能體進行控制。在場內(nèi),目標(biāo)位置對車輛產(chǎn)生虛擬引力,引力方向從車輛指向目標(biāo)位置,引力大小與車輛和目標(biāo)之間的距離成正相關(guān);障礙物或其他車輛對控制車輛產(chǎn)生虛擬斥力,斥力方向從障礙物指向控制車輛,斥力大小與障礙物和控制車輛之間的距離成反相關(guān)[1]。
圖1 虛擬勢場
對系統(tǒng)中每一個個體進行物理建模。本文使用一階模型,輸入為線速度和角速度,其狀態(tài)空間方程為:
部分多車輛系統(tǒng)包含一個主機,多個從機。各從機通過傳感器感知到環(huán)境信息后,傳遞給主機,在主機內(nèi)進行決策判斷,最終下達控制指令給到各從機。也有一些系統(tǒng)是多主機系統(tǒng),各自個體接收到周圍個體信息后,自我決策。
實際系統(tǒng)中,常需要每一個個體之間都存在信息傳遞。受限于通信方式,存在約束是所有個體需要在一定的區(qū)域內(nèi)行動,保持連接。這就是群集,確保系統(tǒng)的連通性。
如圖2,考慮一個以r0為中心,以R0為半徑的圓形。系統(tǒng)中所有車輛在移動中,必須時刻保持在這樣的虛擬圓形區(qū)域內(nèi),以保證發(fā)送和接受信息的穩(wěn)定性。
圖2 連通區(qū)域
轉(zhuǎn)換成數(shù)學(xué)模型即:
其中,di0是個體i和限制區(qū)域中心圓點r0的距離;rα是個體車輛的物理半徑。由于限制區(qū)域的半徑R0和個體車輛的物理半徑rα是常量,使用R=R0-rα代替。
使用Ci0表示個體距離限制區(qū)域邊緣的距離,簡化后的模型即:
基于此,我們可以構(gòu)造連通性邊緣的斥力勢函數(shù)為:
為了使得系統(tǒng)收斂,使用梯度構(gòu)造目標(biāo)坐標(biāo)的引力勢函數(shù),結(jié)合上述斥力勢函數(shù),可得:
使用梯度函數(shù)的原因在于:1.當(dāng)Ci0接近于0時,即控制個體i即將超出限制區(qū)域時,斥力bi0(ri)將會趨近于無窮,阻止其沖出;2,當(dāng)個體i坐標(biāo)接近目標(biāo)坐標(biāo)rid時,即到達指定區(qū)域,那么綜合勢函數(shù)ri0(ri)將會趨近于0,不再有任何方向的勢力,使其可以收斂。
此外,式中的bi0(ri)的梯度表達式在此處給出:
為了確保得到一個可以使用Lyapunov理論的正定函數(shù),對其采取平方:
當(dāng)系統(tǒng)中多個車輛在移動時,有必要對整個系統(tǒng)進行協(xié)調(diào)控制,避免車與車之間的碰撞[2]。
圖3是個體i與個體j之間的物理距離示意圖。為確保兩者之間不發(fā)生碰撞,需要確保其質(zhì)心之間的距離大于兩者半徑之和。此處以圓形代替真實的車輛尺寸,在實際中,可以以車輛表面任意兩點連線中最長的距離,作為本文圓形模型的直徑,即可達到一樣的避撞效果。使用dij表示二者質(zhì)心的距離,約束可以用數(shù)學(xué)模型表達為:
圖3 避撞示意圖
使用坐標(biāo)表示,則有約束:
可以構(gòu)造同樣的斥力模型:
為使得系統(tǒng)能夠收斂,定義勢函數(shù)為:
最后將其平方,得到正定函數(shù),同時乘以系數(shù)ρ:
該系數(shù)ρ是取決于二個個體間距離的權(quán)數(shù)參數(shù),當(dāng)超出一定距離,可以忽略該斥力;當(dāng)距離太近時,權(quán)數(shù)增加到1,斥力充分發(fā)揮作用,避免碰撞;當(dāng)距離由遠(yuǎn)及近或由近及遠(yuǎn),斥力呈現(xiàn)出平穩(wěn)的變化趨勢。
結(jié)合上述保持連通性和避撞的約束條件,整合出每個個體i完整的勢函數(shù)方程:
為計算方便,將其歸一化:
基于勢函數(shù),可以計算得到控制方向和大小。針對每個個體i給出控制率:
其中,ki和λi是控制參數(shù)的比例系數(shù),而控制合力的方向,由勢函數(shù)求偏導(dǎo)后給出。
該系統(tǒng)的穩(wěn)定性在2.6小節(jié)中由Lyapunov理論證明。
存在類Lyapunov函數(shù)Vi,基于此求導(dǎo)有:
引入梯度向量,可得:
將其帶入Vi:
當(dāng)個體i到達目標(biāo)坐標(biāo)時,即ζi=0,顯然Vi值也為0。為避免存在某一點非目標(biāo)坐標(biāo)的其他坐標(biāo)rγ使得廣義梯度朝各向都是0,引入系數(shù)α∈[0,1]:
那么動態(tài)方程可以轉(zhuǎn)化成:
其中β∈[0,1],ui≥0。簡化后得:
因此,當(dāng)且僅當(dāng)個體i到達目標(biāo)坐標(biāo)時,才會收斂到0,ui也同步收斂。
將目標(biāo)坐標(biāo)帶入表達式,即ri→r0時,可表達為:
本文使用matlab進行了2次仿真。搭建的系統(tǒng)中一共設(shè)置了13個個體,分別有各自的初始坐標(biāo)和目標(biāo)坐標(biāo)。在仿真開始后,它們將在勢函數(shù)的作用下,朝著指定位置前進,同時保持連通性和避障。此外,在第15秒時,目標(biāo)位置發(fā)生變化,系統(tǒng)需要即時調(diào)整,朝新坐標(biāo)收斂。
記錄過程的圖組中清楚地顯示,在前15秒中,各個體均可以成功到達設(shè)置的目標(biāo)位置;但當(dāng)15秒調(diào)整了目標(biāo)位置后,存在2個個體無法正確收斂,而是停在了某一平衡點。
原因是出現(xiàn)了局部最小值[4]。在該點,個體在虛擬勢場中受到的引力和斥力是平衡的,合力為0,所以控制率也為0,個體不再移動,達到平衡。而出現(xiàn)局部最小值的原因是避障勢函數(shù)不合適,導(dǎo)致系統(tǒng)會存在多個平衡點。為解決這個問題,需要調(diào)整避障勢函數(shù)。
在此次仿真中,所有個體均能收斂到目標(biāo)位置,達到所有預(yù)期。
本文主要闡述了基于勢函數(shù)的多車輛編隊控制方法。通過系統(tǒng)的物理模型,構(gòu)建出合適的勢函數(shù),使得系統(tǒng)收斂到給定目標(biāo),且過程中保持連通性和沒有碰撞發(fā)生。仿真結(jié)果表明,系統(tǒng)搭建成功。
事實上,勢函數(shù)法存在很多問題,例如局部最小值和局部振蕩,但其也有獨特的優(yōu)勢,如安全可靠、響應(yīng)快速、控制平滑[5]……關(guān)鍵點在于找到合適的勢函數(shù)模型,才能夠有一個穩(wěn)定可靠的系統(tǒng)。