??汽車控制如同每個人駕駛自己車輛一樣,當(dāng)你熟悉前方道路的時候你如何控制你的車輛?
??顯然,如果你不是專業(yè)的選手的話,你無法做到一步到位的控制,你需要一邊觀察車輛相對于你想要開的路線的相對偏差,一邊調(diào)整你的方向盤的角度和油門踏板的力度,這種基于環(huán)境反饋的控制我們稱為反饋控制?。反饋控制是現(xiàn)代控制理論的基礎(chǔ),這是反饋控制的一般思路:
??我們希望我們控制的對象(無人車)能夠按照我們希望(規(guī)劃好)的路徑行駛,我們會將環(huán)境當(dāng)前給我們的反饋(我們當(dāng)前的位置)和參考線進(jìn)行比較,得到我們當(dāng)前偏離參考線的距離(誤差),基于這個誤差,我們設(shè)計一定的算法來產(chǎn)生輸出信號,使得這個誤差不斷的變小,這樣的過程就是反饋控制的一般過程。那么我們?nèi)绾位谶@個誤差來產(chǎn)生控制指令呢?我們最直觀的感覺就是要讓誤差在我們的控制下逐漸變小直到為0:
? 零誤差就意味著車一直在你想讓它開的路徑上開。如何減少誤差就是我們這幾篇博客要向大家介紹的內(nèi)容。
??為了了解反饋控制,我先向大家介紹 PID控制,PID控制是目前利用最為廣泛的控制理論,我們以它為出發(fā)點(diǎn)討論控制理論。
比例、積分、導(dǎo)數(shù):
PID就是指比例(proportion)、積分(integral)、導(dǎo)數(shù)(derivative),這三項(xiàng)表示我們?nèi)绾问褂梦覀兊恼`差來產(chǎn)生控制指令,整個流程如下:
首先是根據(jù)反饋和參考值求出誤差,這里的誤差根據(jù)具體的情況可以是各種度量,比如說控制車輛按照指定的路徑形式,那么就是車輛當(dāng)前位置和參考線的距離,控制車輛的速度在設(shè)定的值,那么就是當(dāng)前速度和設(shè)定速度的差值,求出誤差以后,再根據(jù)誤差求比例,積分和微分三項(xiàng),其中?Kp
一、P控制
? 考慮一個簡單的情況,假設(shè)我們希望無人車按照圖中綠線行駛,但是我們的車在如圖所示的位置:
? 那么我們要轉(zhuǎn)多少度角呢?如果都按照固定的角度轉(zhuǎn)(如下圖),那么車的軌跡將如圖中所示:
? 那么顯然坐這樣的車是不舒服的。一個直觀的解決方法就是使用比例控制。如圖所示,當(dāng)偏差大的時候,我們偏轉(zhuǎn)更多的角度,當(dāng)偏差小的時候,則偏轉(zhuǎn)小一點(diǎn)。
? 那么這就是P control(比例控制)這里我們使用?CTE(Cross Track Error)?作為偏差度量 ,CTE就是我們到參考線的距離。那么這個時候轉(zhuǎn)角就變成了:
? 其中的?e(t)
??所以說,如果?Kp
??此時車輛雖然在參考線上,但是并不是我們希望的狀態(tài)(它在下一刻就會偏離),但是對于P控制而言,這是理想狀態(tài),此時控制轉(zhuǎn)角為0,因此,P控制會一次又一次的超過參考線(overshot),為了矯正這種overshot,我們需要考慮一個額外的誤差項(xiàng)——CTE變化率。
二、PD控制
??
CTE的變化率描述了我們的無人車向著參考線方向移動的有多快,如果我們的無人車一直都完美的在參考線上運(yùn)動的話,那么我們的CTE變化率就為0。那么這一項(xiàng)(描述誤差的變化率)就可以用導(dǎo)數(shù)來表示,那么,現(xiàn)在我們的控制輸出就變成了比例項(xiàng)和導(dǎo)數(shù)項(xiàng)求和的形式:
其中的?Kd
PD控制似乎已經(jīng)能夠勝任良好的反饋控制了,但其實(shí)還不夠,PD控制器可以保證正常的控制的需求,但是當(dāng)環(huán)境存在擾動的時候,比如說下面這種情況:
?車在受力發(fā)生輕微偏移以后,由于PD控制中下?P
三、PID控制
我們將積分項(xiàng)也代入到我們的控制輸出函數(shù)中,這個時候,無人車的轉(zhuǎn)角就可以表示為:
? 其中?Ki
??同樣的,這里的積分項(xiàng)系數(shù)的大小也會影響我們整個控制系統(tǒng)的穩(wěn)定性,過大的?Ki
??PID控制就是由這三項(xiàng)共同決定的,還有其他應(yīng)用于無人駕駛汽車的高級控制算法,但是他們都和我們介紹的PID控制的原理相似。