
本文約7,580字,建議收藏閱讀
作者 | 魯大師
出品 | 汽車電子與軟件
前言
日子過得真快,算算從事自動駕駛系統開發已經近10年了。當初入門便是從控制算法開發做起的,從最初調試PID參數、搭建純跟蹤幾何模型,到后來優化LQR權重、打磨MPC預測時域,踩過的坑、解決的難題不計其數。在自動駕駛技術從“概念”走向“量產”的過程中,感知、規劃模塊常常是大眾關注的焦點,但真正將決策意圖轉化為車輛實際動作的,卻是橫縱向控制模塊。今天我們就聊聊,這個“幕后英雄”般的橫縱向控制算法,在自動駕駛中到底扮演著怎樣的角色,以及那些工程上常用的控制算法各自的優劣。
模塊式自動駕駛
方案的整體構架


聊橫縱向控制之前,得先明確它在整個自動駕駛系統中的位置。當前量產主流的自動駕駛方案,依然是“模塊式架構”——把復雜的系統拆解為感知、定位、預測、規劃、控制五大核心模塊,各個模塊各司其職、數據互通,最終形成“環境感知-決策規劃-執行控制”的完整閉環。
我們可以用“開車”的邏輯來理解這個架構:
感知模塊:相當于“眼睛和耳朵”,通過攝像頭、激光雷達、毫米波雷達等傳感器,識別周圍的車輛、行人、騎行者、交通燈、車道線等環境元素,輸出目標的位置、速度、姿態等信息;
定位模塊:相當于“導航地圖+指南針”,通過高精地圖、GNSS、IMU等技術,精準確定車輛自身在世界坐標系中的位置,誤差通常要求厘米級;
預測模塊:相當于“預判能力”,基于感知和定位結果,預測周圍交通參與者的未來行為(比如前車是否會變道、行人是否會橫穿馬路),為規劃模塊提供決策依據;
規劃模塊:相當于“大腦決策”,結合感知、定位、預測結果和導航路線,制定車輛的行駛策略,包括縱向的加速/減速/跟車方案,以及橫向的車道保持/變道/轉彎路徑;
控制模塊:相當于“手腳”,把規劃模塊輸出的抽象策略(比如“保持60km/h速度行駛”“沿這條曲線變道”),轉化為車輛執行器(油門、剎車、方向盤)的具體控制指令,確保車輛精準、平穩地完成駕駛動作。
從數據流向來看,感知、定位、預測模塊為規劃模塊提供輸入,規劃模塊輸出“縱向速度曲線”和“橫向參考路徑”兩大核心指令,這正是橫縱向控制模塊的直接輸入??梢哉f,控制模塊是自動駕駛系統與車輛執行器之間的“橋梁”,再好的感知、再優的規劃,若沒有可靠的控制算法支撐,也無法實現穩定的駕駛體驗。
橫縱向控制模塊的
作用與主流算法

橫縱向控制模塊本質上是“雙分支并行工作”的結構:橫向控制負責“轉向”,確保車輛沿著規劃的路徑行駛;縱向控制負責“加速/減速”,確保車輛的速度符合規劃要求。兩者既獨立工作,又協同配合——比如變道場景中,橫向控制調整方向盤實現路徑偏移,縱向控制同步微調速度保證變道平穩,避免出現側翻或追尾風險。
1. 橫向控制
橫向控制的核心目標是“路徑跟蹤”,即控制車輛的轉向角,使車輛實際行駛軌跡與規劃模塊輸出的參考路徑(通常是車道中心線或變道曲線)保持一致,同時保證轉向過程平穩、無過度震蕩。常見的應用場景包括:低速園區巡檢、城市道路車道保持、高速變道、無保護左轉、環島行駛等。根據車速、場景復雜度的不同,工程上會選擇不同的橫向控制算法,從簡單的幾何類算法到復雜的模型預測控制,覆蓋不同等級的自動駕駛需求。當前主流的橫向控制算法包括:PID控制、純跟蹤算法、Stanley算法、LQR控制、最優預瞄控制、模型預測控制(MPC)、滑模控制。

(1)PID控制
PID控制是工業控制領域的經典算法,也是自動駕駛橫向控制的“基礎款”,在L2及以下等級的車道保持功能中應用最廣。它通過比例(P)、積分(I)、微分(D)三個環節的組合,根據“偏差”來調節控制量:
比例環節(P):直接根據當前偏差(橫向偏差、航向角偏差)大小輸出控制量,偏差越大,轉向角調整越明顯,核心作用是“快速糾偏”;
積分環節(I):累計歷史偏差,解決比例環節無法消除的“靜態偏差”(比如車輛因負載不均、輪胎磨損導致的輕微跑偏);
微分環節(D):根據偏差的變化率預測未來偏差趨勢,提前調整控制量,核心作用是“抑制震蕩”,讓轉向更平穩。
工程上,橫向PID控制的輸入通常是“橫向偏差”(車輛質心到參考路徑的垂直距離)和“航向角偏差”(車輛實際航向與參考路徑切線方向的夾角),輸出是“方向盤轉角指令”。由于算法結構簡單、計算量小、魯棒性強,PID控制是量產車橫向控制的“標配”,但它無法考慮車輛動力學約束和未來路徑變化,在高速、急彎等復雜場景下易出現超調、震蕩。
(2)純跟蹤算法
純跟蹤算法是一種基于幾何關系的路徑跟蹤算法,核心邏輯非常直觀——模擬人類駕駛員“盯目標點”的駕駛習慣,通過計算使車輛行駛軌跡經過預設的“前視目標點”,從而實現路徑跟蹤。它的核心原理是:在參考路徑上選取一個距離車輛當前位置一定距離的前視目標點,根據車輛當前位置、前軸中心位置與目標點的幾何關系,計算出所需的轉向角,使車輛前軸中心沿著圓弧軌跡到達目標點。
純跟蹤算法的優勢在于“簡單易懂、無需復雜模型”,僅需知道參考路徑的坐標信息和車輛當前位置,就能計算出轉向角,計算量極小,非常適合低速場景(如園區巡檢、低速泊車)。但它的缺點也很明顯:前視距離的選擇直接影響控制效果,低速時需選短前視距離保證精度,高速時需選長前視距離保證穩定性,難以通過固定前視距離適配全車速范圍;且無法考慮車輛動力學約束,高速場景下路徑跟蹤精度會顯著下降。
(3)Stanley算法
Stanley算法是斯坦福大學為自主駕駛車輛Stanley設計的橫向控制算法,專為低速自主導航場景(如園區、景區觀光車)優化,核心優勢是能同時處理“橫向偏差”和“航向角偏差”,且對低速場景的路徑跟蹤精度較高。它的控制律由兩部分組成:一部分是針對橫向偏差的比例控制,另一部分是針對航向角偏差的反饋控制,通過加權組合輸出最終的轉向角指令。
與純跟蹤算法類似,Stanley算法也無需復雜的車輛動力學模型,計算量小、調試簡單,適合低速、低動態的場景。但它的局限性也很突出:高速場景下,由于未考慮車輛的側向加速度約束,易出現側滑風險;且對參考路徑的平滑性要求較高,若路徑存在突變(如急彎、折線),控制效果會明顯下降。目前,Stanley算法主要應用于低速L4級自動駕駛車輛(如園區接駁車)。
(4)LQR控制
LQR(線性二次型調節器)是一種基于線性系統的最優控制算法,核心目標是在滿足系統約束的前提下,最小化由狀態偏差和控制量組成的二次型性能指標(比如“路徑跟蹤偏差最小”+“轉向角變化最平滑”)。在橫向控制中,LQR需要先建立車輛的線性化動力學模型(通常是簡化的“單車模型”或“動力學模型”),將橫向偏差、航向角偏差、側向速度等作為狀態變量,將轉向角作為控制變量,通過求解黎卡提方程得到最優控制律。
LQR的優勢在于:能在 linear 系統框架下實現“最優控制”,兼顧跟蹤精度和控制平穩性;魯棒性優于PID控制,能應對輕微的車輛參數變化。但它的缺點是依賴車輛的線性化模型,而實際車輛是強非線性系統(尤其是高速、大轉向角場景),線性化模型的誤差會導致控制精度下降;且無法處理非凸約束(如最大轉向角限制),在復雜場景下的適應性有限。工程上,LQR常應用于中低速、線性特性較好的場景,或作為MPC算法的簡化版本降低算力需求。
(5)最優預瞄控制
最優預瞄控制的核心思路是“模擬人類駕駛員的預瞄特性”——人類駕駛員開車時,不會只盯著車頭前方的路面,而是會提前預瞄前方一段距離的道路,根據預瞄點的信息調整轉向。最優預瞄控制正是基于這一原理,通過選取前方多個預瞄點,建立預瞄偏差與控制量的關系,求解最優預瞄點和對應的控制指令,使車輛沿參考路徑行駛。
該算法的優勢在于:能提前感知參考路徑的變化(如前方彎道、變道),提升高速場景下的路徑跟蹤穩定性;通過優化預瞄距離,可適配不同車速(高速時增大預瞄距離,低速時減小)。但它的缺點是預瞄點的選取和權重設計依賴經驗,且需要精準的車輛定位信息,在定位誤差較大的場景下控制效果會下降。目前,最優預瞄控制常與PID、LQR結合使用,提升高速車道保持的穩定性。
(6)模型預測控制(MPC)
隨著自動駕駛等級提升,車輛需要應對變道、環島、高速急彎等更復雜的橫向場景,PID、純跟蹤等簡單算法的局限性逐漸顯現。此時,模型預測控制(MPC)憑借其“預測未來、滾動優化”的特性,成為L3及以上等級自動駕駛橫向控制的核心算法。
MPC的核心邏輯是“預測未來、滾動優化”:
1. 建立車輛動力學模型:精準描述車輛的運動特性(如轉向角與側向加速度、橫擺角速度的關系),明確車輛的物理約束(最大轉向角、最大側向加速度等);
2. 預測未來狀態:基于當前車輛狀態和控制指令,預測未來一段時間內(通常是0.5-2秒)車輛的行駛軌跡;
3. 滾動優化:以“車輛實際軌跡與參考路徑的偏差最小”“控制量變化最平滑”“側向加速度不超過安全閾值”為目標,在物理約束范圍內,求解最優的控制指令序列;
4. 實施并更新:只執行最優序列的第一個控制指令,然后根據新的車輛狀態和環境信息,重新進行預測和優化,實現“滾動式”調整。
MPC的優勢在于能夠提前考慮未來路徑和車輛約束,在復雜場景下的路徑跟蹤精度和穩定性遠優于其他算法,但它的計算量較大,對車載控制器的算力要求較高,且模型的準確性直接影響控制效果。
(7)滑??刂?/span>
滑??刂剖且环N非線性控制算法,核心特點是“魯棒性強”——能夠有效應對車輛參數變化(如負載變化、輪胎磨損)和外部擾動(如側風、路面附著系數變化),在極端場景下(如冰雪路面轉向、高速急彎)仍能保持穩定的控制效果。
其核心邏輯是:設計一條“滑動模態面”(通常是橫向偏差和航向角偏差的線性組合),通過切換控制策略,迫使車輛狀態沿著滑動模態面運動,最終收斂到參考路徑。由于控制策略是“不連續切換”的,滑??刂茣嬖谝欢ǖ摹岸墩瘛爆F象(即轉向角小幅高頻波動),需要通過邊界層設計、飽和函數等方法進行抑制。目前,滑??刂贫鄳糜谔厥鈭鼍暗妮o助控制,或與MPC算法融合使用,提升系統的魯棒性。
2. 縱向控制
縱向控制的核心目標是“速度跟蹤”和“安全跟車”,即控制車輛的油門和剎車,使車輛的實際速度精準跟蹤規劃模塊輸出的速度曲線,同時在跟車場景下,與前車保持安全距離,避免追尾。常見的應用場景包括:定速巡航(CC)、自適應巡航(ACC)、跟車行駛、紅綠燈啟停、緊急制動等??v向控制的核心挑戰在于:車輛的動力響應存在延遲(比如踩油門后,動力傳遞需要時間),且不同工況下(加速、減速、勻速)的動力學特性差異較大。當前主流的縱向控制算法主要包括:PID控制、模型預測控制(MPC)、模糊控制,其中PID控制是量產車的主流選擇,MPC則用于高階縱向控制場景。

(1)PID控制
與橫向控制類似,縱向PID控制的輸入是“速度偏差”(規劃速度與實際速度的差值),輸出是“油門開度”或“剎車壓力”指令。為了適應不同工況,工程上通常會采用“分段PID”策略——在加速工況、勻速工況、減速工況下,分別標定不同的P、I、D參數,確保各場景下的速度跟蹤精度和平穩性。
例如,在加速工況下,適當增大P參數以提升加速響應速度;在勻速工況下,減小P參數、增大D參數以避免速度震蕩;在減速工況下,根據減速需求的緊急程度,切換不同的PID參數組(常規減速、緊急減速)。由于算法簡單、可靠性高,PID控制仍是當前量產車縱向控制的主流算法,尤其是在L2級自適應巡航功能中。
(2)模型預測控制(MPC)
在復雜的縱向場景中(比如城市道路跟車、紅綠燈啟停、高速加減速變道),PID控制的局限性同樣存在——無法考慮車輛的動力約束(比如最大加速度、最大減速度)和未來的速度變化趨勢,容易出現“跟車過近”“啟停頓挫”等問題。此時,MPC算法憑借其“預測優化”的特性,成為高階縱向控制的核心選擇。
縱向MPC的核心邏輯與橫向MPC一致,區別在于建立的是“車輛縱向動力學模型”(描述油門/剎車指令與車輛加速度、速度的關系),優化目標包括“速度偏差最小”“加速度變化率最小”“與前車距離安全”等。例如,在紅綠燈啟停場景中,MPC可以提前預測紅燈時長和前車啟停狀態,規劃平滑的加減速曲線,避免急加速、急剎車導致的頓挫感;在高速跟車場景中,MPC可以根據前車速度變化趨勢,提前調整本車速度,保持安全跟車距離的同時,提升乘坐舒適性。
(3)模糊控制
模糊控制是一種基于規則的非線性控制算法,核心特點是“無需精準模型”——通過模擬人類駕駛員的駕駛經驗,將“速度偏差大”“跟車距離近”等模糊信息,轉化為具體的控制指令。例如,人類駕駛員會根據“前車速度慢、距離近”的經驗,果斷踩剎車;根據“前車速度快、距離遠”的經驗,緩慢踩油門。
模糊控制的優勢在于對模型誤差和外部擾動的適應性強,適合應用于城市道路等復雜縱向場景(比如行人橫穿導致的緊急減速、前車頻繁加減速的跟車場景)。但它的缺點是控制規則需要依賴大量的人工經驗,且在高精度速度跟蹤場景下的表現不如MPC算法。因此,模糊控制通常作為PID或MPC算法的輔助補充,用于復雜工況的應急控制。
3. 主流橫縱向控制算法優缺點對比


橫縱向控制的實操
注意事項與技巧

在實驗室里調好的控制算法,到了實車上面往往會出現各種問題——比如參數漂移、場景適配性差、穩定性不足。這也是很多算法工程師從“理論”走向“工程”的必經之路。結合10年的開發經驗,我總結了橫縱向控制工程應用的4個核心注意事項,都是實打實的實操技巧,覆蓋參數標定、車輛適配、魯棒性設計、延遲補償,希望能幫大家少踩坑。

1. 參數標定
控制算法的性能,很大程度上取決于參數的標定質量——尤其是PID、LQR、純跟蹤這些依賴參數的算法,參數選擇不當,再好的算法框架也無法發揮作用。工程上的核心技巧是“分場景、分車型、分工況”精細化標定,而不是追求“一套參數通吃所有場景”。
以橫向算法標定為例,我的經驗是:
純跟蹤算法:重點標定“前視距離”,采用“車速-前視距離”映射表,低速時前視距離取0.5-1m,高速時取3-5m,避免固定前視距離導致的高速震蕩、低速精度不足;
PID算法:先在平坦路面、勻速工況下確定基礎參數,再針對高速、急彎、側風等場景細化參數——比如高速場景增大D參數提升穩定性,急彎場景增大P參數提升糾偏速度;
LQR算法:重點調整狀態權重和控制權重,平衡跟蹤精度和控制平穩性——比如路徑跟蹤精度要求高時,增大橫向偏差的權重;乘坐舒適性要求高時,增大轉向角變化率的權重;
動態自適應標定:通過實車路測收集大量數據,建立“場景-參數”映射模型,實現參數的動態自適應調整——比如根據車速、路面附著系數,自動切換參數組。
縱向PID標定則要重點關注“工況切換平滑性”,比如加速轉勻速、勻速轉減速時,參數要漸變過渡,避免出現速度突變導致的頓挫感。
2. 車輛適配
對于LQR、MPC這類基于模型的控制算法,車輛動力學模型的準確性直接決定控制效果。而實車的動力學參數(比如輪胎附著系數、轉向遲滯、動力響應延遲、車輛質量)會隨著車速、負載、路面條件的變化而變化,這就要求我們在工程上做好“模型適配”和“參數實時更新”。
我的實操技巧包括:
建立“簡化+精準”的動力學模型:不追求過度復雜的模型(否則計算量過大),而是保留核心參數——橫向模型重點保留“轉向遲滯、側向剛度”,縱向模型重點保留“動力響應延遲、制動效能”;
實時估計關鍵參數:通過傳感器數據(輪速、加速度、轉向角、橫擺角速度),實時估計輪胎附著系數、車輛負載等變化參數——比如在冰雪路面,實時檢測輪胎附著系數下降,調整MPC的側向加速度約束,避免側滑;
提前做“車型適配測試”:針對每款車型,在不同負載(空載、滿載)、不同溫度(高溫、低溫)、不同路面(瀝青、水泥、冰雪)條件下,進行大量動力學測試,建立參數數據庫,為模型提供基礎數據支撐。
3. 魯棒性設計
自動駕駛車輛行駛在復雜的真實道路上,難免會遇到各種擾動(比如側風、路面顛簸、前車突發變道)和故障(比如傳感器噪聲、執行器延遲、定位漂移)??刂颇K的魯棒性設計,直接決定了自動駕駛的安全性。工程上的核心思路是“多層級防護”,包括擾動抑制、故障診斷、降級策略。
具體實操技巧:
擾動抑制:在控制算法中加入“擾動觀測器”,實時估計外部擾動(比如側風導致的橫向偏移、路面顛簸導致的速度波動),并通過控制指令補償——比如檢測到側風時,輕微調整轉向角抵消側風影響;
故障診斷:實時監測傳感器數據和執行器狀態,若發現異常(比如轉向角傳感器故障、剎車延遲過大、定位誤差超標),立即觸發故障報警;
降級策略:預設多套降級方案,根據故障嚴重程度切換——比如輕微傳感器噪聲時,啟用濾波算法優化輸入;MPC算法故障時,切換到PID算法;嚴重執行器故障時,立即退出高階控制模式,提示駕駛員接管。
4. 延遲補償
車輛的執行器(油門、剎車、方向盤)存在天然的響應延遲——比如控制模塊輸出轉向角指令后,方向盤需要0.1-0.3秒才能達到目標角度;輸出油門指令后,車輛動力需要0.2-0.5秒才能響應。這種延遲會導致控制精度下降,甚至出現震蕩,尤其是高速場景下,延遲的影響會被放大。工程上必須做好“延遲補償”。
我的常用補償技巧:
預測補償:通過歷史數據建立“延遲模型”,預測未來0.3-0.5秒的車輛狀態,提前輸出控制指令——比如根據當前橫向偏差,預測延遲后的偏差大小,提前調整轉向角;
相位超前補償:在PID的微分環節加入相位超前校正,抵消延遲導致的相位滯后,提升系統的穩定性;
執行器動態建模:在MPC、LQR等模型類算法中,加入執行器的動態模型,將延遲特性融入控制優化過程——比如MPC算法中,將執行器延遲作為約束條件,求解最優控制指令。
結 語


近年來,“端到端自動駕駛”成為行業熱點——通過深度學習模型,直接將傳感器數據轉化為控制指令,省去了感知、規劃等中間模塊,看似簡化了系統架構。但很多人因此產生疑問:未來端到端時代,橫縱向控制模塊還需要嗎?
作為一名資深控制算法工程師,我的答案是:無論技術如何迭代,控制模塊的核心作用都無可替代。原因很簡單:自動駕駛的終極目標是“安全、平穩地控制車輛”,而控制模塊是直接對接車輛執行器的“最后一環”——端到端模型的輸出,本質上依然是控制指令;即使中間模塊被簡化,最終仍需要控制算法將抽象的指令轉化為符合車輛動力學特性的具體動作,避免執行器飽和、車輛失控。
更重要的是,控制模塊是自動駕駛的“最后一道安全關”。當感知、規劃模塊出現異常時,控制模塊的魯棒性設計和降級策略,能夠確保車輛不會失控;當遇到極端場景時,控制模塊的精準控制能力,能夠最大限度地保障駕乘人員和道路參與者的安全。比如端到端模型輸出的轉向角指令超出車輛最大轉向角約束時,仍需要控制模塊進行限幅處理;模型輸出的加速度過大時,需要控制模塊結合路面附著系數進行調整,避免側滑、抱死。
從模塊式到端到端,自動駕駛技術在不斷進化,但控制模塊的核心價值始終未變——它是連接“算法意圖”與“車輛動作”的橋梁,是實現自動駕駛安全落地的關鍵支撐。對于算法工程師而言,深耕控制算法,做好工程落地,不僅是技術積累,更是對自動駕駛安全的責任擔當。畢竟,再先進的技術,最終都要回歸到“平穩、安全”的駕駛本質上。