1 緒 論
1.1 智能車的背景及意義智能車系統(tǒng)以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感技術、電子、電氣、計算機、機械、車輛運動學等多個學科;主要由路徑識別、角度控制及車速控制等功能模塊組成。一般而言,智能車系統(tǒng)要求小車在白色的場地上,通過控制小車的轉向角和車速,使小車能自動地沿著一條任意給定的黑色帶狀引導線行駛。
智能車輛,是一個集環(huán)境感知、規(guī)劃決策、多等級輔助駕駛等功能于一體的綜合系統(tǒng),它集中地運用了計算機、現(xiàn)代傳感、信息融合、通訊、人工智能及自動控制等技術,是典型的高新技術綜合體.它具有道路障礙自動識別、自動報警、自動制動、自動保持安全距離、車速和巡航控制等功能。智能車輛致力于提高汽車的安全性、舒適性和提供優(yōu)良的人車文互界面,是目前各國重點發(fā)展的智能交通系統(tǒng)中一個重要組成部分,也是世界車輛工程領域研究的熱點和汽車工業(yè)增長的新動力。
隨著科學技術的發(fā)展,特別是計算機技術、信息技術、人工智能、電子技術的突飛猛進,智能車輛技術有了實現(xiàn)的技術基礎。目前智能車輛技術在轎車和重型汽車上主要應用于碰撞預警系統(tǒng)、防撞及輔助駕駛系統(tǒng)、智能速度適應、自動操作等,其在軍事上的應用更加廣泛和重要。
車輛智能化是汽車工業(yè)今后的發(fā)展趨勢,也是人們對安全性要求越來越高未來汽車的發(fā)展方向。隨著計算機技術和信息技術為代表的高新技術的發(fā)展,人工神經(jīng)網(wǎng)絡技術、模糊控制技術、神經(jīng)模糊技術、虛擬實現(xiàn)等新技術的出現(xiàn),智能車輛技術的研究將會有突破性的進展。智能車輛系統(tǒng)的實用化是是智能車輛發(fā)展的前進方向,適應性強、環(huán)境適應性好的智能車輛將是研究的重點。
對智能車系統(tǒng)的研究在某種程度上講是對于智能車輛自動駕駛系統(tǒng)研究的縮影。目前自動駕駛技術的發(fā)展水平已經(jīng)能在相對簡單的路況實現(xiàn)全自動駕駛。例如在高速公路上,所有的車輛都向同一個方向行駛,沒有行人,沒有急轉彎路段,車道都有明顯的標記,這樣就為自動駕駛提供了較好的條件。高速公路自動駕駛的一個主要技術是車道跟蹤。一種車道跟蹤系統(tǒng)由攝像機和處理器測定車道標記,傳感器測定駕駛員加在方向盤上的扭矩;電子控制裝置接收這些測量信息,驅(qū)動電機通過變速箱調(diào)整輸送到轉向機構的扭矩。
美國通用汽車公司計劃在2015年前測試無人駕駛汽車技術,2018年左右將無人駕駛汽車推向市場。該公司正在聯(lián)合零部件供應商、大學教授和其他汽車制造商共同研發(fā)這種無人駕駛汽車,給人們的長短途旅行帶來革命性變革,大大減少交通堵塞和交通事故。為了減少交通事故,美國正在推廣防止翻車的電子穩(wěn)定性控制系統(tǒng),要求2012年推出的新車型必須配備這種技術。接下來,美國還要實施車輛之間的通訊系統(tǒng)。
盡管與自然路況下的完全自動駕駛尚有一段不小的距離,人們已經(jīng)研究出包含上述在內(nèi)的許多自動駕駛輔助系統(tǒng)并成功地加以使用。隨著科學技術的發(fā)展,我們相信不久的將來在市場上能夠買到功能全面的自動駕駛汽車。不過,依筆者所見,汽車智能駕駛這種靈活而又復雜的操作,百分之百自動并不是最佳選擇,在復雜的路段上還是寧愿相信人類自己[1,2]。
就目前情況看,智能車系統(tǒng)研究的重點是集中力量發(fā)展決定智能車控制成敗的兩大關鍵技術,即軟硬件對于智能車穩(wěn)定性和速度的提升。只有在這兩大關鍵技術上獲得突破性進展,才能實現(xiàn)“跟蹤前沿,跨越發(fā)展”的目標。本文著重研究控制算法智能車控制系統(tǒng)的穩(wěn)定性問題,兼顧硬件設計與機械調(diào)整,介紹一種基于HCS12單片機設計的智能車系統(tǒng)。硬件系統(tǒng)中的路徑識別功能由雙排紅外光電傳感器實現(xiàn),車速控制主要由PID控制器進行調(diào)節(jié)。軟件設計中實時檢測路況,并定時中斷采集速度反饋值。
1.2 智能車競賽的研究現(xiàn)狀
1.2.1 國外智能車競賽現(xiàn)狀韓國大學生智能模型車競賽是韓國漢陽大學汽車控制實驗室在飛思卡爾半導體公司資助下舉辦的以 HCS12單片機為核心的大學生課外科技競賽。組委會將提供一個標準的汽車模型、直流電機和可充電式電池,參賽隊伍要制作一個能夠 自主識別路線的智能車,在專門設計的跑道上自動識別道路行駛,誰最快跑完全程而沒有沖出跑道并且技術報告評分較高,誰就是獲勝者。制作智能車,需要參賽隊伍學習和應用嵌入式軟件開發(fā)工具軟件 code warrior和在線開發(fā)手段,自行設計和制作可以自動識別路徑的方案、電機的驅(qū)動電路、模型車的車速傳感電路、模型車轉向伺服電機的驅(qū)動以及微控制器MC68S912DP256控制軟件的編程,等等。其專業(yè)知識涉及 控制、模式識別、傳感技術、汽車電子、電氣、計算機、機械等多個學科, 對 學生的知識融合和實踐動手能力的培養(yǎng),對 高等學校控制及汽車電子學科學術水平的提高,具有良好的長期的推動作用。

圖1.1 韓國大學生智能模型車競賽車模
隨著賽事的逐年開展,將不僅有助于大學生自主創(chuàng)新能力的提高,對于高校相關學科領域?qū)W術水平的提升也有一定幫助,最終將有助于汽車企業(yè)的自主創(chuàng)新,得到企業(yè)的認可。這項賽事在韓國的成功可以證明這一點。2000年智能車比賽首先由韓國漢陽大學承辦開展起來,每年全韓國大約有100余支大學生隊伍報名并準予參賽,至今已舉辦5屆,得到了眾多高校和大學生的歡迎,也逐漸得到了企業(yè)界的極大關注。韓國現(xiàn)代公司自2004年開始免費捐贈了一輛轎車作為賽事的特等獎項。德國寶馬公司也提供了不菲的資助,邀請3名獲獎學生到德國寶馬公司研究所訪問,2005年SUNMOON大學的參賽者獲得了這一殊榮,圖1.1為他們設計的智能車模型[3]。
此外,歐美國家也在進行智能車系統(tǒng)的研究。
1.2.2 國內(nèi)智能車競賽現(xiàn)狀我國在智能車系統(tǒng)方面的研究主要是指從2006年起歷年舉辦的“飛思卡爾”杯智能汽車競賽:參賽選手須使用競賽秘書處統(tǒng)一指定的競賽車模套件,采用飛思卡爾半導體公司的8位、16位微控制器作為核心控制單元,自主構思控制方案進行系統(tǒng)設計,包括傳感器信號采集處理、電機驅(qū)動、轉向舵機控制以及控制算法軟件開發(fā)等,完成智能車工程制作及調(diào)試,于指定日期與地點參加各分賽區(qū)的場地比賽,在獲得決賽資格后,參加全國決賽區(qū)的場地比賽。參賽隊伍的名次(成績)由賽車現(xiàn)場成功完成賽道比賽時間為主,技術報告、制作工程質(zhì)量評分為輔來決定。各分賽區(qū)預賽以及全國總決賽間,在實際可操作性基礎上力求公正與公平參與。
“飛思卡爾”杯智能汽車競賽是教育部為了加強大學生實踐、創(chuàng)新能力和團隊精神的培養(yǎng),委托教育部高等學校自動化專業(yè)指導分委員會主辦每年一度的全國大學生智能汽車競賽。
全國大學生智能汽車競賽與全國大學生數(shù)學建模、電子設計、機械設計、結構設計等四大競賽一起被列為教育部主辦的全國大學生五大競賽之一。該大賽綜合性很強,以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感、電子、電器、計算機和機械等多個學科交叉的科技創(chuàng)意性比賽,對進一步深化高等工程教育改革據(jù)有重要意義,對學生的知識融合和動手能力的培養(yǎng),對高等學?刂萍捌囯娮訉W科學術水平的提高,具有良好的推動作用。
智能汽車競賽所使用的車模是一款帶有差速器的后輪驅(qū)動模型賽車,有大賽組委會統(tǒng)一提供。參賽隊伍通過設計基于單片機的自動控制器控制模型車在封閉的跑道上自主循線運行。在保證模型車運行穩(wěn)定即不沖出跑道的前提下,跑完一圈的時間越小,成績越好。
大賽分為光電與攝像頭兩個賽題組,如果車模利用道路圖像信息進行路徑檢測方法屬于攝像頭賽題組,除此之外則屬于光電賽題組。

圖 1.2 第四屆“飛思卡爾”杯智能汽車競賽比賽賽道
1、 光電賽題組

圖 1.3 光電賽題組車模
參加光電賽題組中不允許傳感器獲取道路圖像信息進行路徑檢測。
“飛思卡爾”杯全國大學生智能車邀請賽的賽題是控制比賽小車,使其按要求用盡可能短的時間完成比賽賽道,比賽允許選手自行設計傳感器和控制電路,并編寫控制程序,禁止改動舵機和輪胎等小車結構。針對這種要求,從控制系統(tǒng)的觀點出發(fā),按照設計跟隨系統(tǒng)的思路設計車模的控制策略;從幾何關系上講,為了實現(xiàn)車模的尋線運動,控制器應當控制前輪轉向,滿足在車模運動中車身相對于線的位置偏差和車身縱向相對于線的夾角為0的控制目標。根據(jù)以上思路,尋線跟隨系統(tǒng)應當有2個輸入——位置偏差和角度偏差,1個輸出——舵機轉角,考慮了速度的因素后,系統(tǒng)便成為一個3輸入2輸出的復雜系統(tǒng)。在光電賽題組的方案中,位置偏差和角度偏差由光偶傳感器檢測得到,舵機轉角由PWM信號控制。由于通常傳感器檢測得到的量是離散量,動作控制也只能針對離散量進行控制,并且根據(jù)單片機的處理能力,使用數(shù)字PID作為基本的控制器,但這只適用于低速情況,高速情況下過于離散的控制將造成系統(tǒng)控制緩慢、滯后,階躍變化較大,甚至無法達到控制目標。由于這種原因,將小車速度提升之后,對小車進行連續(xù)控制是十分必要的,實際結果證明,傳感器檢測模擬量進行連續(xù)位置和角度的PID控制可以使小車具有很好的穩(wěn)定性和跟隨特性。
光電賽題組一般電路設計簡單、信息檢測頻率高,但檢測范圍、精度有限且能耗較大。
2、 攝像頭賽題組

圖1.4 攝像頭賽題組車模
參加攝像頭賽題組可以使用光電管作為輔助檢測手段。
選擇采用攝像頭作為尋線傳感器。一方面,攝像頭所能檢測的賽道信息遠多于光電傳感器構成陣列所能檢測的信息,有利于區(qū)分各種道路類型;另一方面,攝像頭檢測范圍調(diào)整靈活,可以提供足夠遠的預判距離(通常1m左右,光電賽題組前瞻通常為20~30cm)。實際上,通過“超頻”和提高代碼效率,并選擇合適的圖像處理算法,使用比賽規(guī)定的單片機完全可以對低線數(shù)黑白攝像頭的視頻信號進行采樣和處理,有效識別出導引線的位置和相關幾何信息[4,5]。
攝像頭賽題組獲取的賽道信息豐富,但電路設計和軟件處理較復雜,且信息更新速度較慢
1.3 本文的概況及結構安排本畢業(yè)設計共七章,以光電組智能車為實際研究對象,以隨動系統(tǒng)為理論研究對象,以前饋控制技術、PID控制技術以及分程控制技術等作為研究工具,對智能車的控制方法進行了研究。本文的主要內(nèi)容如下:
第1章闡述了本文的研究背景及研究意義,與智能車循跡控制相關的主要控制方法及所要解決的問題,給出本文的研究內(nèi)容。同時介紹了智能車的國外競賽進展,以及國內(nèi)智能車競賽的情況,指明研究環(huán)境。
第2章為智能車系統(tǒng)方案的設計,主要包括智能車系統(tǒng)模板設計的基本要求、循跡方案選擇和車模參數(shù);
第3章為為智能車的硬件系統(tǒng)設計,介紹了電源管理模塊、傳感器分布模塊、轉向舵機控制模塊和直流電機驅(qū)動模塊等;
第4章研究智能車模型的機械結構調(diào)整,并介紹了本設計中智能車模型在機械方面的改造;
第5章為智能車軟件系統(tǒng)設計,包括小車的開發(fā)環(huán)境,軟件設計的整體流程,各個模塊初始化,以及控制策略的實現(xiàn)等;
第6章為智能車系統(tǒng)調(diào)試的總結,歸納出設計中發(fā)現(xiàn)的光電智能車自身的問題與不足,對后續(xù)的研究進行了展望。
第7章為結束語并致謝。
2 智能車方案設計2.1 智能車設計的基本要求比賽跑道表面為白色,中心用連續(xù)黑線作為引導線,黑線寬2.5cm。比賽規(guī)則先頂了賽道的寬度和拐彎最小半徑等參數(shù),賽道具體形狀在比賽當天現(xiàn)場公布。車模自主識別引導線并控制模型車沿著賽道運行。在保證模型車運行穩(wěn)定既不沖出跑道的前提下,跑完一圈的時間越小,成績越好。在嚴格遵守規(guī)則中對于電路限制條件,保證智能車可靠運行的前提下,電路設計盡量簡潔緊湊,以減輕系統(tǒng)負載,提高智能車的靈活性,同上應堅持充分發(fā)揮創(chuàng)新原則,以結構簡單功能完美為出發(fā)點,并以穩(wěn)定性為首要前提,實現(xiàn)智能車快速運行。
2.2 智能車的雙排傳感器循跡策略方案設計本設計以循跡策略為主要研究對象,以采用雙排傳感器的智能車為例,輔以做了優(yōu)化的直線、大彎、S彎等不同道路情況的循跡策略。經(jīng)實驗證明,此策略緊密結合雙排紅外的特點,發(fā)揮出了雙排的優(yōu)勢,使智能車實現(xiàn)了以穩(wěn)定為先,并追求極限速度的要求,適應能力強,能在各種賽道上均有出色發(fā)揮。
2.2.1 雙排傳感器的優(yōu)勢目前,大多數(shù)光電智能車采用單排傳感器的道路檢測方式,這種方式獲得的道路信息少,對智能車的狀態(tài)和道路的狀況都不能很好地區(qū)別,造成控制上的麻煩。為了彌補不足,形成了大功率大前瞻的單排傳感器的道路檢測方式,這種方式檢測的距離更遠,能夠更早地判斷出道路的走向,在一定程度上彌補了檢測精度低的缺點,但也無法有效地區(qū)分智能車狀態(tài)與道路狀況[6]。
比賽的車?蛇x用攝像頭或傳感器的方式進行道路信息檢測,我們的車模采用的是雙排紅外的循跡方式,采用大前瞻雙排傳感器可以得到更多的賽道信息,更早地采取策略處理,形成更好的行車軌跡。是采用復雜的攝像頭方案的一種替代方式。
可以在直道中實現(xiàn)穩(wěn)定控制,加速順暢的能力;在S彎中以小曲線的方式前進,減少行進路線和舵機調(diào)整次數(shù)。在大彎中實現(xiàn)提前轉彎,切內(nèi)彎的效果。尤其是在轉彎方面,通過前后排共同對彎道的預測,達到延伸物理識別距離的能力,從而做出提前的動作,減少由于檢測距離近而帶來的負面影響,達到上述效果。
2.2.2 傳感器陣列布局圖2.1中僅以接受管示意傳感器位置。

圖 2.1傳感器陣列布局
布局方式說明:
前排傳感器伸出距離較遠,小車中心偏離黑線后,會在前排傳感器上產(chǎn)生較大偏移量。
后排傳感器伸出距離較近,小車中心偏離黑線后,會在后排傳感器上產(chǎn)生較小偏移量。
利用前后排傳感器對小車偏移時不同的敏感度對小車進行控制。
為了使前后排體現(xiàn)出更明確的分工和采集到更遠處的信息,我們把前排傳感器傾斜約50°角,使前排的前瞻距離更大(28cm),更能體現(xiàn)出前排的優(yōu)勢和特點。
2.2.3 直道識別方式控制策略1 直道識別方式
(1)采用此種方式布局雙排紅外,對于直道的判別方法可有以下5種物理方式,每種方式應用的時機列在表后。
第一種直道情況(圖2.2)

圖2.2第一種直道情況
在左轉大彎后,出彎時最可能出現(xiàn)的前后排傳感器檢測到黑線時的組合情況。適用于左轉 90°彎、180°彎。提前得到出彎信息,舵機向左轉動較小角度,并在此時采取加速動作,起到彌補前瞻不足的作用。此情況在賽道的s彎出現(xiàn)時,不滿足直道的第二種識別方式,故不會加速。
第二種直道情況(圖2.3)

圖2.3第二種直道情況
此情況是對第一種情況的再確認,左轉大彎并經(jīng)過第一種情況后,再經(jīng)歷此種情況,可確認無誤前方為直道,繼續(xù)提升小車的加速能力?刂瞥绦蛴蓮澋莱绦蚯袚Q到直線穩(wěn)定程序。
第三種直道情況 (圖2.4)

圖2.4第三種直道情況
此時采取直線穩(wěn)定控制。由于前兩種情況已經(jīng)明確識別為直道,此種情況只是增加直道識別的成功率。
第四種直道情況(圖2.5)
圖2.5第四種直道情況
與第二種情況類似,對第五種情況的再確認,右轉轉大彎并經(jīng)過第五種情況后,再經(jīng)歷此種情況,可確認無誤前方為直道,繼續(xù)提升小車的加速能力?刂瞥绦蛴蓮澋莱绦蚯袚Q到直線穩(wěn)定程序。
第五種直道情況(圖2.6)

圖2.6第五種直道情況
在右轉大彎后,出彎時最可能出現(xiàn)的前后排傳感器檢測到黑線時的組合情況。適用于右轉轉 90°彎、180°彎。提前得到出彎信息,舵機向右轉動較小角度,并在此時采取加速動作,起到彌補前瞻不足的作用。在賽道的s彎出現(xiàn)時,不滿足直道的第二種識別方式,故不會加速。
(2)直道識別,程序輔助確認
進入彎道后,隨著小車的行進,會發(fā)生振蕩,致使出彎時不一定滿足上述5種情況。為了提高直道的識別成功率,增加第二種直道判別方法。兩者同時起作用,滿足第一種后經(jīng)過最多15ms確認是直道。
程序是循環(huán)執(zhí)行,我們的程序執(zhí)行頻率是2KHz。采用定時中斷(15ms)的方式,對前排中間3個傳感器(編號為3、4、5)使用3個計數(shù)器分別計數(shù),每次執(zhí)行程序若是其中一個檢測到黑線,相對應的計數(shù)器加1。經(jīng)過計算,15ms內(nèi)所能計數(shù)的最大值為31。我們設定計數(shù)的最大值,若在15ms內(nèi)達到所要求的計數(shù)值,就認為是直道,切換直道程序并將計數(shù)器清零;若15ms內(nèi)沒有達到所要求的計數(shù)值,計數(shù)器清零,重新計數(shù)。例如小車為2m/s的速度,小車行進3cm。我們只要判斷2~2.5cm內(nèi)為直道即可。所以設最大計數(shù)值為20~25即認為是直道,跳出彎道程序。
當然也可以采用更嚴格的方法來判斷,只需調(diào)整定時中斷的時間和計數(shù)值即可。此條件在進入直道后總能滿足,所以作為第一種直道判別方式的補充,保證直道的穩(wěn)定可靠識別[7]。
2.2.4 直線穩(wěn)定控制策略小車出彎后,由于舵機的反應不靈敏,智能車會發(fā)生振蕩,隨后才能達到穩(wěn)定,為了盡早減小振蕩,采用如下方式控制小車出彎后的動作:
在彎道策略中設置標志位,進入直線程序后,識別標志位,對控制舵機轉向的公式采取修正設置。公式為:q=K1q1+K2q2;其中q為最終送給舵機的控制量,q1為前排光電傳感器的返回轉角值,q2為后排紅外返回轉角值。K1、K2分別為前后排傳感器的加權比例值。通常情況下K1、K2為定值1,需要時則改變賦值。
當小車從彎道進入直道并成功識別出直道后,減小K1的值,由于后排傳感器距離小車的前輪(轉向輪)很近,小車中心偏離黑線時,不會在后排傳感器橫向位置產(chǎn)生很大位移(相對于前排傳感器),故小車在直線上舵機調(diào)整的次數(shù)就會明顯減少,直線的穩(wěn)定性會好。同時,根據(jù)前后排不同傳感器的組合,給出不同的轉角策略(在程序中以列表的方式體現(xiàn)),近一步提高直線的穩(wěn)定控制能力。
2.2.5 彎道控制策略PID算法在上述直道控制中效果很好,控制簡單,在起跑加速時可設置前饋控制器,先全力加速到一個速度值,在加上PID調(diào)節(jié),形成一個類似于分段的控制,即可較快地達到規(guī)定的速度。
但實驗證明,雙排光電控制時單純用PID算法,智能車在大S彎上會出現(xiàn)抖動,降低車速,造成智能車在通過此類彎道時間的大大延長。為此,想出了5種解決方法:
(1)延長控制周期:這樣,智能車舵機的反映靈敏度降低,減少了在大S彎上會出現(xiàn)抖動的次數(shù),缺點是延長控制周期,造成軟件對車體控制延時的加長,最明顯的劣勢在于長直道加速后轉大彎反應不及時,沖出賽道,為了不沖出賽道,只有降低直道最大速度,間接影響了智能車的速度性。
(2)改變PID參數(shù):改變PID參數(shù)可以減小舵機在轉彎時控制的PWM信號,即讓車體轉向變小,縮小了在大S彎上出現(xiàn)抖動的幅度,缺點是改變PID參數(shù)在縮小了在大S彎上出現(xiàn)抖動的幅度的同時,也縮小了智能車在于長直道加速后轉大彎時的轉向幅度,使車體在相同速度下,不能轉過以往可轉過的大彎,最后導致滑出賽道或直接沖出賽道,也影響了智能車的比賽性能。
(3)做賽道標志位,對小S彎,大S彎,90°彎,180°彎,環(huán)彎進行數(shù)據(jù)采集,分類設成標志位,此后智能車運行時不斷記錄最近采集的5組數(shù)據(jù),分析其符合那種彎道,進而加以控制。實驗后知其缺點為標志位識別易出錯誤,可行性不高,這主要是因為雙排光電傳感器的前瞻不足(僅28cm),采集到的賽道信息也不像攝像頭那樣多,可以作出準確的識別。
(4)利用速度傳感器返回的實際速度值,做標志位,變舵機PID參數(shù)對彎道進行分段控制:在軟件中設一系列速度值,按智能車運行速度予以分段,在低速區(qū)(大S彎的情況多為低速),控制量給中等值,因車速不高,較小的控制量在控制周期相對多時可很好的調(diào)節(jié)車體,穩(wěn)定過彎;在中速區(qū)(主要針對小S彎)?刂屏拷o小,可在一定程度上實現(xiàn)S彎直線跑,節(jié)省時間,在大S彎之所以不這樣跑,是由于雙排光電的前瞻小和采集信息不足的緣故;在高速區(qū)(通常只在長直道車體加速后方速度值可達到此區(qū)域),控制量給大,防止高速時,轉90°彎,180°彎不及時而沖出跑道。實驗中,效果很好,但后發(fā)現(xiàn)當賽道結構(直道,各類彎道的不同組合)未考慮周全時,在兩速度區(qū)銜接處會出現(xiàn)失控,例如直道直接接大S彎的賽道處,車體進入大S彎,而其速度尚未減下來,即在高速區(qū),控制量給大,不能完成在大S彎上的正確控制,車體擺動2-3次后方可正常行進(此時是由于車速隨擺動降低,符合低速區(qū)標準,控制量給的正確)。
(5)在(4)的基礎上做類似(3)的標志位處理后以實驗法確定給定參數(shù)值(主要是不同情況下改變舵機的控制量q大小與Kp值大。涸谠O計期間,曾試著在軟件對速度區(qū)間做細分,由原先的低、中、高三段改進為5段、7段、9段,進行控制,根據(jù)實驗結果,隨著細分段數(shù)的增加,可以減少減弱區(qū)間銜接處的車體擺動,但不能完全解決問題,而且算法執(zhí)行時間受到一定影響。繼而做標志位,并以實驗法確定給定參數(shù)值后,智能車可充分發(fā)揮其雙排可識別前方賽道的優(yōu)勢,識別后再進行速度分段控制,使車體在彎道上的控制得到了保證,控制效果比較滿意。
2.2.6 實測結果和現(xiàn)象分析下圖為我們使用上述算法前后小車行進的實際軌跡。

圖2.7 兩種算法小車行進的實際軌跡對比
圖2.7 是使用實驗法確定給定參數(shù)值前后小車在賽道上的實際軌跡,其中的紅線是賽車行駛軌跡
注:這張圖的繪制方法是這樣的,先通過串口把誤差值和速度通過無線串口發(fā)到上位機,然后通過在計算機上描點畫出小車實際的軌跡,有偏差但是與實際情況非常近似。
可以非常明顯的看到使用實驗法確定給定參數(shù)值之后,小車雖然也有偏出賽道的情況存在,但是比用 Kp 參數(shù)恒定的算法情況就好多了。這主要是因為在彎道上 Kp 參數(shù)變大的緣故。Kp 變大時,一旦檢測到偏差,系統(tǒng)就能更快的恢復到平衡位置。從表中可以看到小車偏差的方差實際減小了,因而小車走的實際距離也減小了,自然跑完賽道的時間也減小了。
2.3 車模參數(shù)此次比賽選用的賽車車模采用1/10 的仿真車模。賽車機械結構只使用競賽提供車模的底盤部分及轉向和驅(qū)動部分?刂撇捎们拜嗈D向,后輪驅(qū)動方案。具體車模數(shù)據(jù)如下:
表2.1 改造前車;境叽鐓(shù) 基本參數(shù) 尺寸
如圖2.8所示:其中虛線部分為輪胎,A點為右輪的轉動軸點,同理,對
應左側相應位置。

圖2.8 模型車尺寸
改造后車模主要參數(shù)如下:
表2.2 改造后車模基本尺寸參數(shù) 基本參數(shù) 尺寸
| |
| |
| |
| |
| 共15個(14個用于道路信息采集,1個用于速度檢測) |
| |
| |
| |
表2.3 車模部件基本作用及軟件端口使用
3 硬件設計硬件電路設計是自動控制系統(tǒng)的基礎。本次畢業(yè)設計我們自行設計制作了單片機的硬件電路,同時集成了外圍接口驅(qū)動電路、調(diào)試電路等,形成功能完備,體積小的控制電路。下面就硬件設計各個模塊做詳細介紹。
3.1 智能車整體結構該系統(tǒng)采用飛思卡爾MC9S12DG128B單片機為檢測和控制核心;以紅外傳感器為路徑檢測傳感器,自動檢測賽道上的黑線;并根據(jù)采集到的黑線信息,通過軟件對小車進行轉向和速度的控制,再通過速度反饋和小車的位置,實時監(jiān)控調(diào)節(jié)智能車的行進狀態(tài),整體結構框圖如下:

圖3.1 硬件結構框圖
本系統(tǒng)硬件結構主要由S12控制核心、電源管理模塊,路徑識別模塊、車速檢測模塊、顯示模塊、轉向舵機控制模塊和直流電機驅(qū)動模塊組成。
3.2 mc9sdg128b的最小系統(tǒng)及接口設計單片機的最小系統(tǒng)及功能如下:
①時鐘電路給單片機提供一個外接的16MHz的石英晶振;
②串口的RS-232驅(qū)動電路可實現(xiàn)TTL電平RS-232電平的轉換;
③BDM口讓用戶可以通過BDM調(diào)試工具向單片機下載和調(diào)試程序;
④供電電路主要是由單片機提供+5V電源;
⑤復位電路是通過一個復位按鍵給單片機一個復位信號,調(diào)試過程中非常有用;
⑥調(diào)式按鍵和單片機的PORTA口相連,調(diào)試小燈和PORTB口相連,供程序調(diào)試使用[8]。

圖3.2 單片機接口框圖
3.3 電源管理及分布電源模塊為系統(tǒng)其他各個模塊提供所需要的電源。設計中除了需要考慮電壓范圍和電流容量等基本參數(shù)之外,還有在電源轉換效率、降低噪聲、防止干擾和電路簡單等方面進行優(yōu)化。
全部硬件電路的電源由7.2V 、2A/h的可充電你個蓄電池提供。由于電路中的不同電路模塊所需要的工作電壓和電流容量各不相同,因此電源模塊應該包含多個穩(wěn)壓電路,將充電電池電壓轉換成各個模塊所需要的電壓。
5V電壓。主要為單片機、紅外管以及部分接口電路提供電源,電壓要求穩(wěn)定、噪聲小,電流容量大于500mA。
6V電壓。主要是為舵機提供工作電壓。實際工作室,舵機所需要的工作電流一般在幾十毫安左右,電壓無需十分穩(wěn)定。
7.2V電壓。這部分直接取自電池兩端電壓,主要為后輪電機驅(qū)動模塊提供電源。

圖3.3 電源管理示意圖
3.4 光電傳感器布局3.4.1 賽道識別傳感器模塊相對于單排的光電管,雙排的可以獲取道路的中心位置,同時還可以得到方向信息,本系統(tǒng)采用雙排分布來進行道路信息采集。
紅外管的供電電壓為5V,由LM2940供電,供電電路如下圖:

圖3.4 賽道識別傳感器模塊供電電路
由于紅外發(fā)射管是基于漫反射原理的,其發(fā)射的紅外光可能影響到安裝在附近的紅外接收管。消除這種干擾可以采取以下幾種措施:
選擇發(fā)射與接收方向性好的紅外傳感器;
選擇發(fā)射與接收一體化的紅外傳感器,它的外殼可以抑制相鄰干擾;
在紅外接收管上安裝黑色套管,使其只接收前方一定角度內(nèi)的紅外光線,這種減小互擾動的措施效果較好。
使相鄰的紅外發(fā)射/接收管交替工作。這種方法不僅減小了相鄰紅外傳感器之間的干擾,同時也降低了整體傳感器的功耗。
本系統(tǒng)采用雙排結構,上面一排采用發(fā)射與接收方向性好的紅外傳感器,并且在接收管安裝熱縮管,減小相互之間的干擾。對下面一排的紅外傳感器采用TCRT5000即發(fā)射與接收一體化的紅外傳感器。實驗得到較好的效果。
3.4.2 測速模塊本智能車在調(diào)試最后階段將光電編碼盤改裝至左后輪,采用大直徑編碼盤,目的是提高測速精度,便于對車模速度的精確控制。
小車后輪旋轉帶動光碼盤旋轉,當紅外發(fā)射管發(fā)射出的紅外光遇到法蘭盤的齒的時候,紅外光被遮擋,至紅外接收管接收不到發(fā)射管發(fā)射的紅外光,光電開關處于斷開狀態(tài);而當紅外光遇到間隙的時候,接收管便可接受到紅外光線,紅外光線處于導通狀態(tài)。這樣,紅外接受管輸出間隔的高低電平。將此信號再通過CD40106進行整形,送入單片機中,便可實現(xiàn)對車速的檢測。
測速盤安裝如圖 3.5,選用的對射管型號是IRT8105,發(fā)射端需要串接120Ω的限流電阻,接收端需要串聯(lián)10KΩ下拉電阻,在試驗中有時因為轉速過快出現(xiàn)檢測不出脈沖信號的情況,通過增大發(fā)射端的限流電阻可以解決這種問題。

圖 3.5 測速模塊實物安裝圖
3.5 電機驅(qū)動模塊模型車在啟動過程中往往會產(chǎn)生很大的沖擊電流,一方面會對其他電路產(chǎn)生電磁干擾;另一方面由于電池內(nèi)阻造成電池兩端的電壓下降,甚至會低于穩(wěn)壓電路所需要的最低電壓值,產(chǎn)生單片機復位現(xiàn)象。為了客服啟動沖擊電流的影響可以再電源中增加電容值較大的電解電容,在啟動時驅(qū)動電路輸出電壓有一個漸變的過程,使得電機啟動速度略為降低從而減小啟動沖擊電流的幅度。
電機型號為RS-380,工作電壓7.2V 空載電流0.5A,轉速16200r/min,在工作電流為3.3A,轉速為14060r/min時,工作效率最大。

圖3.6 智能車電機實物圖
MOSFET管的優(yōu)點是開關速度快, 通路電阻低和電壓門信號低, 適合于大電流和低電壓運行。當加上一個足夠的門信號電壓時, 功率MOSFET的通路電阻小于常規(guī)二極管;而在沒有門信號電壓的情況下,它具有常規(guī)二極管的反向特性電阻R1~R4用于控制MOS 門的升降時間, 也有利于避免門電壓的振蕩, 門電壓的振蕩通常是與門電容處的連接線的平行電感所引起的。R27、R31、R32、R33 的值通常為10~100Ω。電容C50 用于存儲能量并對通過電橋的電壓進行濾波。在電壓上升和下降期間, 為了保證系統(tǒng)的可靠性, 可在兩個低端MOS 管的門極各接一個下拉電阻以確保電橋保持關斷。
電機驅(qū)動模塊由信號輸入電路、TD340 和H橋電路組成。其中 TD340 用于構成PWM發(fā)生器, 功率放大電路是由4 個MOSFET管組成的H橋電路。

圖3.7 電機驅(qū)動模塊電路圖
3.6 舵機驅(qū)動模塊舵機本身是一個位置隨動系統(tǒng),由舵盤、減速齒輪組、位置反饋電位計、直流電機和控制電路組成。通過內(nèi)部的位置反饋,使它的舵盤輸出轉角正比于給定的控制信號,因此對于它的控制可以使用開環(huán)控制。在負載力矩小于其最大輸出力矩的情況下,它的輸出轉角正比于給定的脈沖寬度。舵機接口一般采用三線連接方法,黑線為地線,紅線為電源線,另外一根為控制信號線?刂菩盘柺侵芷谠20ms左右的脈沖信號,脈沖信號的寬度決定舵機輸出舵盤的角度。舵機供電電壓為6V,也可以由電池電壓直接供電。經(jīng)實驗發(fā)現(xiàn)由電池直接供電舵機響應速度較快,本系統(tǒng)采用電池直接供電(7.2V-8.35V均可)。

圖3.8 智能車舵機實物圖
本設計所采用的舵機型號:Futaba S3010。

圖3.9 舵機轉角與PWM輸出占空比關系圖
3.7 撥碼開關模塊由于比賽時不知道賽道狀況,如果賽道狀況過于復雜,不利于小車高速運行的話,就要適當降低小車的速度或者改變小車的一些調(diào)試參數(shù),這個時候就需要利用撥碼開關,給小車設定幾個運行狀態(tài),或者開關在軟件預置的一些功能,以根據(jù)實際情況讓小車走出最理想的狀態(tài)。

圖3.10 撥碼開關模塊電路圖
在調(diào)試過程中發(fā)現(xiàn),小車不同行駛速度下,要使小車沿著既定的賽道前進,舵機的PD參數(shù)需要進行一定的調(diào)整,我們測知,隨著小車速度的提高,KP值不斷增大,會提高舵機的響應速度,從而讓小車在最短的時間內(nèi)調(diào)整車身,讓小車沿著黑線行駛;同時,為了減小系統(tǒng)的超調(diào)量,加入KD系數(shù),在動態(tài)響應不變的前提下,使小車盡可能的不沖出賽道。
4 機械結構調(diào)整模型車的機械結構是整個智能車系統(tǒng)的基礎。對模型車的機械調(diào)整完善是提高智能車速度的一個關鍵因素。鑒于這個原因,我們小組在車輛機械方面的改進做了很多的工作,從傳感器安裝布置、轉向機構調(diào)節(jié)、重心位置的調(diào)整、后輪差速定位到制動機構的設計都進行了大膽的嘗試和改進。這些工作大大提高了車的可靠性和適應性,為后來調(diào)試模型車打下了基礎。
4.1 一些重要參數(shù)對賽車的影響(1)路徑識別傳感器的固定
本設計路徑識別傳感器采用紅外反射式傳感器,雙排一字型排列,前排7傳感器,后排5傳感器,制作好的路徑識別傳感器PCB板為長度為25cm的長方形板,簡單輕便。在安裝此PCB板時,考慮到如果此電路板安裝不穩(wěn)定,在模型車運行的過程中,電路板會發(fā)生上下振動,或在轉彎時發(fā)生左右晃動,會大大降低路徑識別的準確性。所以,我們購買到硬度較好的鋁合金,采用其帶有拐角的部分做支架,并經(jīng)過反復試驗,在使勁搖晃小車的情況下,路徑識別電路板也不會發(fā)生松動及位置上的改變,防震性滿足要求。
路徑識別電路板安裝在模型車的正前方,考慮到安裝位置與方法決定檢測道路范圍,我們通過試驗,得到紅外傳感器相對地面的高度為7cm、相對地面的角度大約為50°的時候,其檢測前瞻距離可以滿足模型車的控制要求,并且在此情況下,得到紅外傳感器檢測到黑線與白線時的電壓值區(qū)分明顯,有利于小車的軟件控制。同時,在滿足大賽要求,并且模型車的重心前移不影響小車運行的整體效果的前提下,我們增大小車的探出距離到28cm,大大加大了檢測前瞻距離。
(2)舵機力臂調(diào)整
舵機轉動一定角度有時間延時,時間延時正比于旋轉過的角度,反比于舵機的響應速度。通過控制策略分析可知,舵機的響應速度直接影響模型車通過轉彎通道時的最高速度,提高舵機的響應速度是提高模型車平均速度的一個關鍵。
提高舵機響應速度有二個方法,一是提高舵機的工作電壓;二是在機械上進行調(diào)整,根據(jù)杠桿原理,我們采用立式固定,將舵機的輸出動力臂適當加長,將轉向傳動桿連接在加長的輸出盤的末端。這樣就可以在舵機輸出較小的轉角下,取得最大的前輪轉角,提高了舵機的響應速度,即加大了小車的整體速度。
(3)重心的控制
在模型車的控制方面,如果重心靠近后軸,對模型車的動力性能有益,后輪抓地力增加,增大轉向靈敏度,但會減少轉向;如果重心靠近前軸,則對模型車的制動性和操縱穩(wěn)定性有益,會增加轉向,但會降低轉向靈敏度,并且降低了后輪的抓地力。考慮到模型車頻繁轉向,動力性能并不高,所以我們在不增加車重的前提下,通過電路板設計安裝來使模型車的重心適當前移。
(4)后輪的調(diào)整
后輪是模型車的驅(qū)動輪,對車模性能起著重要作用。我們對后輪的差速及輪距進行了適當?shù)恼{(diào)整。通過試驗發(fā)現(xiàn):差速較緊時,模型車直道不易擺動,行駛平穩(wěn),但轉彎不夠靈活;差速較松時,模型車轉彎靈活,但直道易擺動。我們通過安裝零件是后輪距比未安裝時加大了4mm,采用大后輪距,減小了行駛中的側滑。
(5)傳感器間隔
各個傳感器的布局間隔對智能車行車是有一定的影響的。根據(jù)比賽的賽道規(guī)則,中間黑色導引線的寬度為25mm,因此如果要求傳感器問不出現(xiàn)同時感應現(xiàn)象(即每次采集只出現(xiàn)一 個傳感器值為1),那么傳感器間隔就必須大于25mm。如果將間隔設計成小于25mm,從而產(chǎn)生更多的情況,有利于車與賽道偏移距離的判斷。此外,如果間隔過大,還會出現(xiàn)另一種情況,即在間隔之問出現(xiàn)空白。對于防飛車能力,我們可以用最大限制速度來衡量。20mm間隔的最大限制速度存3m/s,40mm間隔的最大限制速度則為3.3m/s。經(jīng)過分析后,我們認為這是由T傳感器間隔人造成車的橫向控制范圍較大(40mm的車控制在±13mm內(nèi),而20mm的則在±7mm內(nèi)),因此它不易造成迷失。
4.2 車模底盤參數(shù)調(diào)整轉向輪定位參數(shù)對于汽車而言,要保持車輛直線行駛的穩(wěn)定性,使之轉彎自動回正、轉向輕便,必須確定車輪定位參數(shù),包括主銷后傾、主銷內(nèi)傾、前輪外傾和前輪前束。
(1)主銷后傾角
主銷后傾角在車輪偏轉后形成一回正力矩,阻礙車輪偏轉。主銷后傾角越大,車速愈高,車輪偏轉后自動回正力越強,但回正力矩過大,將會引起前輪回正過猛,加速前輪擺振,并使轉向沉重。通常后傾角為1°-3°


圖4.1 主銷后傾角示意圖
(2)主銷內(nèi)傾角
在汽車前后方向上,主銷向內(nèi)傾斜一個角度,主銷軸線與垂線間的夾角稱為主銷內(nèi)傾角。當汽車轉向輪在外力作用下發(fā)生偏轉時,由于主銷內(nèi)傾, 則車輪連同整個汽車的前部將被抬起一定高度,在外力消失后,車輪就會在重力作用下力圖恢復到原來的中間位置。通常主銷內(nèi)傾角不大于8°

圖4.2 主銷內(nèi)傾角示意圖
(3)前輪外傾角
在汽車的橫向平面內(nèi),前輪中心平面向外傾斜一個角度,稱為前輪外傾角。前輪外傾角一方面可以使車輪接近垂直路面滾動而滑動減小轉向阻力,使汽車轉向輕便;另一方面減少了軸承及其鎖緊螺母的載荷,增加了使用壽命,提高了安全性。一般前輪外傾角為1°左右,但對于有高速、急轉向要求的車輛,前輪外傾角可減小甚至為負值。
(4)前輪前束
俯視車輪,汽車的兩個前輪的旋轉平面并不完全平行,而是稍微帶一些角度,這種現(xiàn)象稱為前輪前束。車輪前束的作用是減輕或消除因前輪外傾角所造成的不良后果,二者相互協(xié)調(diào),保證前輪在汽車行駛中滾動而無滑動。前輪前束一般為 0-12mm。而現(xiàn)代汽車的前輪外傾角出現(xiàn)減小甚至為負值的趨勢,前輪前束也應相應減小甚至也為負值[9]。

圖4.3 前輪外傾角及前輪前束示意圖
4.3 重心位置對汽車性能的影響汽車重心的位置通常用重心距前軸中心線的水平距離和重心距水平路面的高度來表示?赏ㄟ^實驗法、估算法測出重心位置。
(1)對動力性能的影響
汽車正常行駛必須滿足驅(qū)動-附著條件:即汽車的驅(qū)動力必須大于等于坡度阻力、滾動阻力、空氣阻力之和而等于汽車驅(qū)動輪的附著力。附著力與路面附著系數(shù)和驅(qū)動軸的軸荷有關,而驅(qū)動軸的軸荷取決于重心的水平位置,故重心位置必須保證驅(qū)動輪能夠提供足夠的附著力。僅從此方面考慮,重心越靠近驅(qū)動軸越好。
(2)對制動性能的影響
汽車制動性要求制動減速度大、制動距離短,有良好的制動方向穩(wěn)定性,即不易發(fā)生前輪喪失轉向、后輪側滑和跑偏現(xiàn)象。制動方向的穩(wěn)定性與前后輪的抱死次序有關,而抱死次序則與重心位置有關,若重心位置保證汽車的同步附著系數(shù)(β為前制動力占整車制動器制動力比例,b為重心到后軸水平距離)等于汽車常用路面附著系數(shù),那制動穩(wěn)定性即較好;若重心前移,b增大,易發(fā)生后軸側滑,對高速汽車危險性大;若重心后移,b減小,前輪易喪失轉向能力。
(3)對通過性的影響
汽車在較陡側坡行駛或高速急轉彎行駛時,會發(fā)生側向傾覆,為避免這種危險,重心應在保證最小離地間隙的前提下盡量降低。
綜合上面分析,在加裝諸多電路板后應盡可能保證模型車的重心垂直位置盡量的低,水平位置應在車中線上靠近后軸。
4.4 汽車側滑的處理為保證汽車轉向車輪無橫向滑移的直線滾動,要求車輪外傾角和車輪前束有適當配合,當車輪前束值與車輪外傾角匹配不當時,車輪就可能在直線行駛過程中不作純滾動,產(chǎn)生側向滑移現(xiàn)象。這種滑移現(xiàn)象過于嚴重時,將破壞車輪的附著條件,使汽車喪失定向行駛能力。側滑分為以下幾種情況。定向側滑,隨機側滑,轉向側滑,制動側滑。
汽車在制動過程中若前輪先抱死拖滑,則將可能發(fā)生側滑?梢圆扇∫恍┭a償措施減小側滑。對于定向側滑,用前輪前束產(chǎn)生的Q類側滑來補償外傾產(chǎn)生的此類側滑是基本手段。Q類側滑的性質(zhì)為:側滑大小等于前束角大小;側滑方向與前束角方向相反,與車輛行駛方向有關;與路面質(zhì)量無關。對于隨機側滑,主要是從改變獨立懸架結構入手,如本車模的雙橫臂式獨立懸架車橋車輪的隨機側滑可用四連桿機構綜合理論改變上下橫臂的長度,使模型行駛過程中輪距變化不大,從而減小隨機側滑。對于轉向側滑,主要靠選擇合適的主銷角度,合理搭配主銷內(nèi)傾與后傾角,盡可能使轉向內(nèi)輪產(chǎn)生外傾或增加外傾,使轉向外輪產(chǎn)生內(nèi)傾或減小外傾[10]。
4.5 底盤離地間隙在獨立懸架下擺臂與底板之間可以通過增減墊片來調(diào)整底盤前半部分的離地間隙,墊片有1mm和2mm兩種規(guī)格。一片墊片不加,車前部離地間隙為9mm,故離地間隙的調(diào)整范圍為9mm-12mm。從已有的經(jīng)驗來看,在加裝了傳感器之后,此距離過小,會降低模型車爬坡時的通過度;過大,則會影響傳感器的靈敏度。
4.6 齒輪傳動間距調(diào)整車模后輪采用RS-380SH-4045 電機驅(qū)動,由競賽主辦方提供。電機軸與后輪軸之間的傳動比為 9:38(電機軸齒輪齒數(shù)為18,后輪軸傳動輪齒數(shù)為76)齒輪傳動機構對車模的驅(qū)動能力有很大的影響。齒輪傳動部分安裝位置的不恰當,會大大增加電機驅(qū)動后輪的負載,從而影響到最終成績。調(diào)整的原則是:兩傳動齒輪軸保持平行, 齒輪間的配合間隙要合適,過松容易打壞齒輪,過緊又會增加傳動阻力,白白浪費動力;傳動部分要輕松、順暢,容易轉動,不能有卡住或遲滯現(xiàn)象.
判斷齒輪傳動是否調(diào)整好的一個依據(jù)是,聽一下電機帶動后輪空轉時的聲音。聲音刺耳響亮,說明齒輪間的配合間隙過大,傳動中有撞齒現(xiàn)象;聲音悶而且有遲滯,則說明齒輪間的配合間隙過小,或者兩齒輪軸不平行,電機負載加大。調(diào)整好的齒輪傳動噪音小,并且不會有碰撞類的雜音。
4.7 后輪差速機構調(diào)整差速機構的作用是在車模轉彎的時候,降低后輪與地面之間的滑動;并且還可以保證在輪胎抱死的情況下不會損害到電機。
當車輛在正常的過彎行進中 (假設:無轉向不足亦無轉向過度),此時4 個輪子的轉速(輪速)皆不相同,依序為:外側前輪>外側后輪>內(nèi)側前輪>內(nèi)側后輪。此次所使用車模配備的是后輪差速機構。差速器的特性是:阻力越大的一側,驅(qū)動齒輪的轉速越低;而阻力越小的一側,驅(qū)動齒輪的轉速越高‧以此次使用的后輪差速器為例,在過彎時,因外側前輪輪胎所遇的阻力較小,輪速便較高;而內(nèi)側前輪輪胎所遇的阻力較大,輪速便較低。
差速器的調(diào)整中要注意滾珠輪盤間的間隙,過松過緊都會使差速器性能降低,轉彎時阻力小的車輪會打滑,從而影響車模的過彎性能。好的差速機構,在電機不轉的情況下,右輪向前轉過的角度與左輪向后轉過的角度之間誤差很小,不會有遲滯或者過轉動情況發(fā)生。
5 智能車軟件開發(fā)環(huán)境及軟件設計5.1智能車軟件開發(fā)環(huán)境5.1.1 軟件調(diào)試軟件Code Warrior在制作過程中,運行的編譯環(huán)境為 CodeWarrior 4.7 。CodeWarrior4.7是Metrowerks公司一套比較著名的集成開發(fā)環(huán)境,具有直觀,易用的優(yōu)點。CodeWarrior4.7包括項目管理,代碼生成,語法敏感編輯器等,具有快速下載,單步調(diào)控的特點,同時可以融合C語言和匯編語言的混合編程。CodeWarrior4.7具有在線調(diào)試,單步運行程序的功能,同時能夠觀察到主程序中定義的所有的變量的值。這一功能在進行程序錯誤檢查和改正時起到了至關重要的作用。下圖即為CodeWarrior4.7的編程界面:

圖5.1 Code Warrior4.7編程界面
如圖5.1所示,利用BDM和CodeWarrior4.7的調(diào)試界面,可以進行一系列的調(diào)試工作,如黑白線的電壓值,路徑采集狀態(tài),各個寄存器值,程序調(diào)試的變量值,能夠很好的傳感器的狀態(tài),小車舵機和電機的當前值等,給調(diào)試提供了極大的方便。

圖5.2 調(diào)試界面

圖5.3 調(diào)試的變量
5.1.2 無線調(diào)試模塊在系統(tǒng)調(diào)試初期,雖然利用CodeWarrior4.7的調(diào)試界面,可以觀察小車的運行狀態(tài),但是我們發(fā)現(xiàn),CodeWarrior4.7的調(diào)試環(huán)境只能觀察一些當前值,不能實時的調(diào)試觀察,例如小車的速度值,所以利用了串口線把小車的一些狀態(tài)值發(fā)送到PC機上進行觀察,但是由于串口線的距離有限,最后使用了無線串口調(diào)試,這樣的話,即使在小車的行駛過程中,也可以觀察小車的運行狀態(tài)。
5.2軟件設計
圖5.4 主程序流程圖
5.2.1 初始化模塊(1) 時鐘初始化
單片機的晶振是16MHz,MC9S12DG128在時鐘初始化后可以通過鎖相環(huán)將系統(tǒng)時鐘系統(tǒng)時鐘提高到48MHz,這里就用到了一些寄存器中的某些位,倍頻公式如下:
其中,OSCCLK_VALUE——系統(tǒng)的外部晶振;
REFDV_VALUE——系統(tǒng)時鐘分頻系數(shù),在初始化中,它的值為3;
SYNR_VALUE——倍頻系數(shù),它的值為3。
而SYNR=SYNR_VALUE,REFDV=REFDV_VALUE,SYNR、REFDV就是寄存器中的對應位。
void CLK_init(void){ //鎖相環(huán)24M
SYNR=2;
REFDV=1; //PLL=2*OSC*(SYNR+1)/(REFDV+1)
while(!(CRGFLG & 0x08)){} //等待鎖相環(huán)穩(wěn)定
CLKSEL=CLKSEL_PLLSEL_MASK; //設置鎖相環(huán)為內(nèi)部時鐘
}[11]
(2) 串口初始化
可以看到,不論8位、16位還是32位單片機的最小系統(tǒng)都是通過異步串行口與人溝通的。使用串行通信接口SCI(Serial Communication Interface)通信是計算機與人對話最傳統(tǒng)、最基本的方法,異步通信接口也成為通用異步接受器/發(fā)送器UART(Universal Asynchronous Receiver/Tansmitter)。為了便于調(diào)試,本系統(tǒng)利用串口通信接口SCI實現(xiàn)數(shù)據(jù)的傳輸。串口部分程序主要是初始化各寄存器,其中包括設置波特率、數(shù)據(jù)格式、接受發(fā)送功能使能、設置接受模式等。
串口初始化函數(shù):SCI_Init(uchar BUS_CLK,unsigned long BR),它有兩個輸入變量,其中BUS_CLK是系統(tǒng)的時鐘頻率,BR為波特率。通過此函數(shù)可直接設置串口的時鐘頻率、波特率。
(3) AD初始化
AD的初始化主要是設置一些相關的寄存器位,以ATD0為例,相應的初始化如下。ATD0CTL2寄存器的ADPU置1,因為ADPU是AD的電源開關,置1打開電源;把AFFC置1,這樣可使ADC上電,快速清零, 無等待模式, 禁止外部觸發(fā), 禁止中斷;ATD0CTL3的S1C置1,表示每個序列1次轉換, No FIFO, Freeze模式下繼續(xù)轉換;ATD0CTL4的SRES8置1,這樣可實現(xiàn)8位精度,因為ATDClock=[BusClock*0.5]/[PRS+1],其中BusClock =24MHz,PRS=1, 所以分頻系數(shù)為4,即AD時鐘為6MHz;最后執(zhí)行ATD0DIEN=0x00,實現(xiàn)禁止數(shù)字輸入。
void AD_Init(void) //AD初始化
{ ATD0CTL2 = 0xC0 ; //控制寄存器2:上電,標志位快速清零,關中斷 ATD0CTL3 = 0x7C; //控制寄存器3:轉換序列長度為8,F(xiàn)IFO模式
ATD0CTL4 = 0x83; //控制寄存器4:8位轉換精度,8分頻
ATD0CTL5 = 0xB0; //控制寄存器5:從0通道開始的多道連續(xù)無符號轉換,轉換結果右對齊方式
ATD0DIEN=0x00; // 禁止數(shù)字輸入緩沖
ATD1CTL2 = 0xC0 ; //控制寄存器2:上電,標志位快速清零,關中斷 ; ATD1CTL3 = 0x7C; //控制寄存器3:轉換序列長度為8,F(xiàn)IFO模式
ATD1CTL4 = 0x83; //控制寄存器4:8位轉換精度,8分頻
ATD1CTL5 = 0xB0; //控制寄存器5:從0通道開始的多道連續(xù)無符號轉換,轉換結果右對齊方式
ATD1DIEN=0x00; //禁止數(shù)字輸出[12]
(4) PWM初始化
PWM(Pulse Width Modulation)即脈寬調(diào)制,脈寬調(diào)制波是一種可用程序來控制波形占空比、周期、相位的波形。它在電動機驅(qū)動、D/A變換等場合有著廣泛的應用。
對于控制電機的PWM信號的頻率應小于10KHZ 。
還有一個PWM信號用于驅(qū)動路徑識別傳感器,本系統(tǒng)設計了14對光電傳感器用于路徑識別,同時,為了提高檢測前瞻距離,需要加大紅外發(fā)射功率使得返回的紅外線的強度提高,來抑制外界環(huán)境光線的干擾。這樣,不僅使得電池電能的消耗量增加,同時也會縮短紅外發(fā)射管的壽命,甚至會燒毀紅外發(fā)射管。為了解決這個問題,本設計采用了脈沖發(fā)射/接收的方法。具體來說,由于紅外接收管響應速度快,而道路檢測周期一般為十幾毫秒,相比之下,紅外接收管對于道路反射光的響應時間以及單片機通過A/D端口讀取該信號的十幾都很短,一般在幾十微妙。因此,在一個檢測周期內(nèi)大部分時間,紅外發(fā)射管不需要工作,只要在檢測瞬間發(fā)射紅外線即可。用PWM信號周期信號驅(qū)動大功率MOSFET管,這樣紅外發(fā)射管工作在周期窄脈沖方式下,大大降低了平均工作電流,從而降低了整個發(fā)射電路的電量消耗。圖5.6是PWM初始化程序流程圖


圖5.5 PWM初始化流程圖
具體程序如下:
void pwminitial(void)
{
PWMCTL_CON01 = 1; // PWM01 合并 16 bt
PWMPRCLK = 0x20; // A=24M/1=24M,B=24/4=6M
PWMSCLA =12; // SA=A/2/12=1M
PWMSCLB =150; // SB=B/2/150=20KHz
PWMCLK = 0x3E; // PWM0,1-SA;PWM4,5-SA,PWM2,3-SB;
PWMPOL = 0xff; // 位極性=1 Duty=High Time
PWMCAE = 0x00; // 對齊方式-左對齊
PWMPER01 = 20000;
PWMDTY01 =1430 ;
PWMPER4 = 100; //Frequency=SA/300=10KHz
PWMPER5 = 100; //Frequency=SA/300=10KHz
PWMDTY4 = 0;
PWMDTY5 = 0;
PWME = 0x32; // 舵機使能
}
5.2.2 智能車系統(tǒng)的控制策略的設計及實現(xiàn)為保證小車一直沿著黑色引導線快速行駛,系統(tǒng)主要的控制對象是小車的轉向和車速。即應使小車在直道上以最快的速度行駛。在進入彎道的時刻盡快減速,且角度的轉向要適合彎道的曲率,確保小車平滑地轉彎,并在彎道中保持恒速。從彎道進入直道時,小車的舵機要轉向至中間,速度應該立即得到提升,直至以最大的速度行進。為實現(xiàn)上述控制思想,我們采用不同的控制方法來控制不同情況下小車的轉角和速度,具體設計思路在前面已講明。系統(tǒng)控制策略流程圖如圖5.7所示:

圖5.6 系統(tǒng)控制策略圖
(1) 道路信息采集策略
道路信息采集我們采用了實時中斷采集的方式,中斷時間為5ms,即5ms采集一次賽道信息。兩排光電傳感器的信號線為PORTP口的2、3口。圖5.4為一次采集信息的流程圖:

圖5.7 采集程序流程圖
(2) 處理當前數(shù)據(jù)
前排數(shù)據(jù)處理流程:

圖5.8 前排數(shù)據(jù)處理流程圖
后排數(shù)據(jù)處理同前排。
(3) 方向控制策略
根據(jù)前后兩排光電傳感器采集回來的道路信息,進行存儲、分析和計算。前后兩排分別計算此時的黑線的偏差。通過大量實驗得出公式
Deviation=4*Dev[0]-Dev[1]
(Deviation——兩排總偏差 Dev[0]——前排偏差 Dev[1]——后排偏差)
通過計算從而得到車子的總偏差。當車子處于不同位置的時候Deviation不同,舵機的PWM模塊就給不同的值,使舵機擺動不同的角度。因為我們采用的是雙排傳感器,所以可以近似計算當前賽道的斜率,使舵機的輸入量與輸出量保持近似線性的關系,使控制更加準確。
我們對舵機的控制采用分段比例控制。即:
if (Deviation>-100&&Deviation<100)Angled=AngleMid-3*Deviation/10;
else if(Deviation>=100&&Deviation<200)AngleTmp=AngleMid-8*Deviation/10+50;
else if(Deviation<=-100&&Deviation>-200)AngleTmp=AngleMid-8*Deviation/10-50;
else if(Deviation>=200)AngleTmp=AngleMid-10*Deviation/10+90;
else if(Deviation<=-200)AngleTmp=AngleMid-10*Deviation/10-90;
控制舵機的原則是:小車處于直道等小偏差賽道時,給舵機的控制量小,使在直道不抖動。小車處于彎道的曲率越大,則將舵機的轉角擺的越大。除此之外,小車還會遇到黑色交叉線的特殊情況,對此,本系統(tǒng)將保持原有的小車方向與速度,使小車不受交叉線的干擾。如果小車轉過的彎過大,則可能使前排光電管全部偏離黑色軌跡,從而沒有一個光電管檢測到黑線,這時本系統(tǒng)將會把舵機轉至最大角,讓小車急轉駛回黑線,同時,將速度降至最低,防止小車沖出軌跡。
5.2.3 PID參數(shù)的整合PID(Proportional Integral Differential)控制是比例、積分、微分控制的簡稱。在自動控制領域中,PID控制是歷史最久、實用性最強的基本控制方式。
PID控制器的原理是根據(jù)系統(tǒng)的被調(diào)量實測值與設定值之間的偏差,利用偏差的比例、積分、微分桑環(huán)節(jié)的不同組合計算出對廣義被控對象的控制量。下圖是常規(guī)PID控制系統(tǒng)的原理框圖。

圖5.9 常規(guī)PID控制系統(tǒng)原理圖
e(t) 代表理想輸入與實際輸出的誤差,這個誤差信號被送到控制器,控制器計算出誤差信號的積分值和微分值,并將它們與原誤差信號進行線性組合,得到輸出量u(t) [13.14]。
式(5.1)
其中,其中
,
,
分別稱為比例系數(shù)、積分系數(shù)、微分系數(shù)。u 接著被送到了執(zhí)行機構,這樣就獲得了新的輸出信號Y。這個新的輸出信號被再次送
到感應器以發(fā)現(xiàn)新的誤差信號,這個過程就這樣周而復始地進行。
運用PID 控制的關鍵是調(diào)整三個比例系數(shù),即參數(shù)整定。PID 控制器參數(shù)整定的方法很多,概括起來有兩大類:一是理論計算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學模型,經(jīng)過理論計算確定控制器參數(shù)。二是工程整定方法,它主要依賴工程經(jīng)驗,直接在控制系統(tǒng)的試驗中進行,且方法簡單、易于掌握,在工程實際中被廣泛采用。
一般來說,增大比例系數(shù)能夠減小上升時間,并減小穩(wěn)態(tài)誤差,但不能消除。
增大積分系數(shù)能夠消除穩(wěn)態(tài)誤差,但會使瞬時響應變差。增大微分系數(shù)能夠增
強系統(tǒng)的穩(wěn)定特性,減小超調(diào),并且改善瞬時響應。
以上簡要介紹了PID 算法的原理和特性,實際過程中,由于傳感器是按一
定間隔周期獲取位置信息的,因此必須將連續(xù)PID 控制離散化,這樣得到的就是數(shù)字PID 算法。
式(5.2)
當智能車在直道行走的時候,可以給最高速度;當智能車在彎道出直道時,速度相對高速;當智能車直道入彎的時候,速度突然減下來;當智能車在彎道時,相對低速。
在計算機控制系統(tǒng)中,數(shù)字PID控制算法通常又分為位置式PID和增量式PID。我們采用的是位置式PID。
增量式與位置式算法是有差別的,增量式是計算機的積累功能,又硬件或者被控對象完成。而我們的小車的硬件沒有這樣的功能,所以我們選用位置式,而且位置式在實踐中,也能很好的PID跟隨性,符合小車要求的速度調(diào)節(jié)[15]。
比例系數(shù)kp的作用是對偏差作出的影響,使系統(tǒng)向減少偏差的方向變化。
積分系數(shù)ki的作用是消除系統(tǒng)靜差,但ki增加太大不利于減少超調(diào)、減少震蕩,使系統(tǒng)不穩(wěn)定,系統(tǒng)靜差的消除反而減慢。
微分系統(tǒng)kd的作用是加快系統(tǒng)的響應。
我們采用了彎道勻速跑的策略,這樣可以提高過彎的速度,減少頻繁的加速剎車。
結 論本文主要介紹了基于 Freescale 單片機的智能車設計流程,以及各個主要模塊的工作原理和設計思路;仡櫿麄設計過程,通過前期的信息搜集,到以雙排紅外光電傳感器為賽道檢測裝置,基于此方案從總體上確立了硬件和軟件的基本框架。接下來分別對系統(tǒng)的機械結構調(diào)整、硬件設計和軟件設計進行了詳細的介紹。
在智能車設計過程中,我主要負責機械部分的調(diào)整和控制算法的完善,經(jīng)過這段時間的進一步探索,通過大量的試驗作為基礎,采用PID算法控制小車行駛,最終智能車運行良好,系統(tǒng)性能穩(wěn)定。為了使性能更穩(wěn)定,速度更高,嘗試了許多新想法,主要體現(xiàn)在以下幾個方面:
首先,使用雙排光電傳感器使智能車前瞻距離更遠,從而提高了智能車直道最高速度。
其次,針對觀點傳感器單次采集信息少,一些較復雜的標志位很難在軟件中構成,易造成識別錯誤,如識別倒三角(比賽中規(guī)定的窄賽道標志位)和起跑線,可能第一次識別了,下次就沒識別,對控制的穩(wěn)定性影響大等一些問題,我們在控制策略上不斷嘗試,改進,可以在軟件上連續(xù)采集更多次的數(shù)據(jù),做成類似于面陣控制的算法,這樣在賽道識別上比攝像頭也不遜色,可以做出比較出色的切彎,走捷徑跑等復雜的行進動作控制。
再次,光電傳感器會受到比賽場地光線明暗的影響,這主要體現(xiàn)在光電管閾值上,造成控制上的不便,我們通過硬件上的改進,如在后排傳感器上方加輔助遮光板;在軟件上,通過做動態(tài)閾值和采樣數(shù)據(jù)歸一化,使軟件上的編程更簡單,實用,算法不一定要很復雜,在實驗中發(fā)現(xiàn)思路越是簡單的算法控制就越直接,出錯率也小,穩(wěn)定。
最后,在硬件方面,電機驅(qū)動芯片沒有用MC33886,而用了L298N是因為前者在車體正常行進中的發(fā)熱情況太嚴重,L298N性能更佳。
在設計過程中,對賽車各個模塊進行了測試、改進。但由于受知識水平和時間上的限制,本設計仍有一些不足之處,例如:對輪胎摩擦力的研究,對車體左右平衡性的研究等也需要下一步做更多的工作。
致 謝在本次智能車設計的準備期間,我們遇到了許多困難。從最開始的開發(fā)軟件的使用到后來的傳感器調(diào)試,從電路板設計到系統(tǒng)搭建,一個個問題的解決見證了我們這支隊伍的成長。首先要感謝機械系老師王紅星的悉心指導,。老師多次詢問研究進程,并為我們指點迷津,幫助我們開拓研究思路,精心點撥、熱忱鼓勵。其嚴謹?shù)闹螌W態(tài)度、淵博的學術知識、誨人不倦的敬業(yè)精神以及寬容的待人風范使我們獲益頗多。
。
參考文獻[1] (法)埃里克•德里德馬丁. 甩掉方向盤的汽車駕駛. 它們將改變我們的生活:21世紀發(fā)明簡史.上?茖W技術文獻出版社. 2007:2~3,5
[2] 拉里•伯恩斯. 交通史上革命性變革!美無人駕駛汽車10年內(nèi)上路. 中國日報. 2008.1.13: 2
[3] 黃開勝,金華民,蔣荻南. 韓國智能模型車技術方案分析.2006:1~2
[4] 卓晴. 學做智能車-挑戰(zhàn)飛思卡爾杯.北京航空航天大學出版社. 2007
[5] 陳澤濱. 第四屆飛思卡爾智能車比賽規(guī)則. 第四屆飛思卡爾智能車比賽官方網(wǎng)站. 2008: 1~2
[6] 周斌,李立國,黃開勝. 智能車光電傳感器布局對路徑識別的影響研究.電子產(chǎn)品世界.2006 05S
[7] Xiaozhou Song,Guangsheng Han,Jiji Xu. An Double Row Infrared Sensor Tactic. The World of Electronic Production Biology. 2008, 7
[8] 邵貝貝. 單片機嵌入式應用的在線開發(fā)方法. 清華大學出版社. 2006
[9] 陳宋,李立國,黃開勝. 智能模型車底盤淺析.電子產(chǎn)品世界。2006.6
[10] 黃開勝,陳宋. 汽車理論與智能模型車機械結構調(diào)整方法.學做智能車-挑戰(zhàn)飛思卡爾杯.北京航空航天大學出版社. 2007
[11] 孫同景,陳貴友. Freescale 9S12 十六位單片機原理及嵌入式開發(fā)技術. 機械工業(yè)出版社. 2008
[12] 王威. HCS12微控制器原理及應用. 北京航空航天大學出版社. 2007
[13] 任彥碩. PID調(diào)節(jié)器、調(diào)節(jié)器的參數(shù)整定,自動控制系統(tǒng). 機械工業(yè)出版社, 2007:201~217
[14] 任彥碩. 自動控制系統(tǒng)的數(shù)學模型.自動控制原理. 機械工業(yè)出版社, 2007:14~48
[15] 康世胤,李長城,莫一林,顧全全,陸耿. 基于光耦傳感器的控制方法-從離散量到連續(xù)量.學做智能車.2006: 2
附錄附錄A:智能車硬件連接圖
附錄B:智能車最終實物圖
附錄C:PID controllerPID controller
A proportional–integral–derivative controller (PID controller) is a generic control loop feedback mechanism widely used in industrial control systems. A PID controller attempts to correct the error between a measured process variable and a desired setpoint by calculating and then outputting a corrective action that can adjust the process accordingly.
The PID controller calculation (algorithm) involves three separate parameters; the Proportional, the Integral and Derivative values. The Proportional value determines the reaction to the current error, the Integral determines the reaction based on the sum of recent errors and the Derivative determines the reaction to the rate at which the error has been changing. The weighted sum of these three actions is used to adjust the process via a control element such as the position of a control valve or the power supply of a heating element.
By "tuning" the three constants in the PID controller algorithm the PID can provide control action designed for specific process requirements. The response of the controller can be described in terms of the responsiveness of the controller to an error, the degree to which the controller overshoots the setpoint and the degree of system oscillation. Note that the use of the PID algorithm for control does not guarantee optimal control of the system or system stability.
Some applications may require using only one or two modes to provide the appropriate system control. This is achieved by setting the gain of undesired control outputs to zero. A PID controller will be called a PI, PD, P or I controller in the absence of the respective control actions. PI controllers are particularly common, since derivative action is very sensitive to measurement noise, and the absence of an integral value may prevent the system from reaching its target value due to the control action.

Control loop basics
A familiar example of a control loop is the action taken to keep one's shower water at the ideal temperature, which typically involves the mixing of two process streams, cold and hot water. The person feels the water to estimate its temperature. Based on this measurement they perform a control action: use the cold water tap to adjust the process. The person would repeat this input-output control loop, adjusting the hot water flow until the process temperature stabilized at the desired value.
Feeling the water temperature is taking a measurement of the process value or process variable (PV). The desired temperature is called the setpoint (SP). The output from the controller and input to the process (the tap position) is called the manipulated variable (MV). The difference between the measurement and the setpoint is the error (e), too hot or too cold and by how much.
In theory, a controller can be used to control any process which has a measurable output (PV), a known ideal value for that output (SP) and an input to the process (MV) that will affect the relevant PV. Controllers are used in industry to regulate temperature, pressure, flow rate, chemical composition, speed and practically every other variable for which a measurement exists. Automobile cruise control is an example of a process which utilizes automated control.
Due to their long history, simplicity, well grounded theory and simple setup and maintenance requirements, PID controllers are the controllers of choice for many of these applications.
Manual tuning
If the system must remain online, one tuning method is to first set the I and D values to zero. Increase the P until the output of the loop oscillates, then the Pshould be left set to be approximately half of that value for a "quarter amplitude decay" type response. Then increase D until any offset is correct in sufficient time for the process. However, too much D will cause instability. Finally, increase I, if required, until the loop is acceptably quick to reach its reference after a load disturbance. However, too much I will cause excessive response and overshoot. A fast PID loop tuning usually overshoots slightly to reach the setpoint more quickly; however, some systems cannot accept overshoot, in which case an "over-damped" closed-loop system is required, which will require a P setting significantly less than half that of the P setting causing oscillation.
Effects of increasing parameters |
| | | | |
| | | | |
| | | | |
| | | | |
Physical implementation of PID control
In the early history of automatic process control the PID controller was implemented as a mechanical device. These mechanical controllers used a lever, springand a mass and were often energized by compressed air. These pneumatic controllers were once the industry standard.
Electronic analog controllers can be made from a solid-state or tube amplifier, a capacitor and a resistance. Electronic analog PID control loops were often found within more complex electronic systems, for example, the head positioning of a disk drive, the power conditioning of a power supply, or even the movement-detection circuit of a modern seismometer. Nowadays, electronic controllers have largely been replaced by digital controllers implemented withmicrocontrollers or FPGAs.
Most modern PID controllers in industry are implemented in software in programmable logic controllers (PLCs) or as a panel-mounted digital controller. Software implementations have the advantages that they are relatively cheap and are flexible with respect to the implementation of the PID algorithm.
Pseudocode
Here is a simple software loop that implements the PID algorithm:
start:
previous_error = error or 0 if undefined
error = setpoint - actual_position
P = Kp * error
I = I + Ki * error * dt
D = (Kd / dt) * (error - previous_error)
output = P + I + D
wait(dt)
goto start
Ideal versus standard PID form
The form of the PID controller most often encountered in industry, and the one most relevant to tuning algorithms is the "standard form". In this form the Kp gain is applied to the Iout, and Dout terms, yielding:

Where
Ti is the Integral Time Td is the Derivative Time
In the ideal parallel form, shown in the Controller Theory section

the gain parameters are related to the parameters of the standard form through
and Kd = KpTd. This parallel form, where the parameters are treated as simple gains, is the most general and flexible form. However, it is also the form where the parameters have the least physical interpretation and is generally reserved for theoretical treatment of the PID controller. The "standard" form, despite being slightly more complex mathematically, is more common in industry.
Laplace form of the PID controller
Sometimes it is useful to write the PID regulator in Laplace transform form:

Having the PID controller written in Laplace form and having the transfer function of the controlled system, makes it easy to determine the closed-loop transfer function of the system.
Series / interacting form
Another representation of the PID controller is the series, or "interacting" form. This form essentially consists of a PD and PI controller in series, and it made early (analog) controllers easier to build. When the controllers later became digital, many kept using the interacting form.
PID控制器
比例-積分-微分控制器(PID控制器)是一種控制回路反饋機制,它廣泛應用在工業(yè)控制系統(tǒng)中。PID控制器試圖根據(jù)被控量的偏差大小和正負,通過一定的算法產(chǎn)生調(diào)節(jié)控制量的輸出,實現(xiàn)對被控量的控制。
PID控制算法 ,涉及三個獨立參數(shù);比例值,積分值和微分值。比例值影響系統(tǒng)動態(tài)響應速度,積分值影響穩(wěn)態(tài)誤差,而微分值與偏差的變化率有關,能夠預測偏差。結合這三個獨立參數(shù)來調(diào)整過程中的控制元件,如控制閥或電加熱元件。
PID控制算法的參數(shù)是按照控制過程的要求來整定的。描述控制器動態(tài)響應特性的變量有穩(wěn)態(tài)誤差,超調(diào)量,振蕩時間。我們應該注意的是:使用PID控制算法并不能保證系統(tǒng)或系統(tǒng)穩(wěn)定性的最優(yōu)控制。
有些應用程序可能僅需要建立一個或兩個數(shù)學模型來提供適當系統(tǒng)控制。要實現(xiàn)這個目標,需設定不良控制的增益輸出幾乎為零。PID控制器有 PI 控制器 ,PD 控制器 , P 控制器 或 I 控制器幾種形式。其中 PI 控制器應用比較普遍,因為微分作用對干擾信號過于敏感,而 PI 控制是穩(wěn)定性較高的無差控制,能夠較好的達到控制要求。
PID控制器框圖

控制回路的基礎知識
控制回路的典型例子是,使淋浴水保持在理想溫度,這里涉及到冷熱水兩個過程的混合。如果某人用體膚來感受水溫,并根據(jù)估計的水溫采取控制作用:調(diào)節(jié)冷水閥門開度以調(diào)整水溫。該人將重復此輸入輸出控制回路操作,調(diào)節(jié)熱水流量直至過程溫度穩(wěn)定在期望值。
感受水溫是一個過程的測量值(PV) 。理想溫度稱為給定值(SP)?刂破鞯妮敵觯撮y門開度)稱為控制變量(MV) 。測量值與給定值之間的差值為誤差。
從理論上講,一個控制器可以控制任何過程,只要這個過程有一個可測量輸出(PV),一個已知的理想值為輸出(SP)和一個將影響到相關PV 的過程輸入(MV)表示?刂破鲝V泛應用于工業(yè)控制領域,以調(diào)節(jié)溫度、壓力、流量、成分、物性和其他變量。汽車巡航控制系統(tǒng)是一個采用自動化控制過程的系統(tǒng)。
由于其歷史悠久,結構簡單,以及理論深厚,操作簡便,便于維護,PID控制器廣泛應用在工業(yè)控制中。
經(jīng)驗整定法
經(jīng)驗整定法必須保持在線,具體步驟如下:
(1)讓調(diào)節(jié)器參數(shù) I=0, D=0,控制系統(tǒng)投入閉環(huán)運行,由小到大改變比例系數(shù) P,讓擾動信號作階躍變化,觀察控制過程,直到獲得滿意的控制過程為止。
(2)取比例系數(shù) P 為當前的值乘以 0.83,由小到大增加積分系數(shù)I,同樣讓擾動信號作階躍變化,直至求得滿意的控制過程。
(3)積分系數(shù) I 保持不變,改變比例系數(shù) P,觀察控制過程有無改善,如有改善則繼續(xù)調(diào)整,直到滿意為止。否則,將原比例系數(shù) P 增大一些,再調(diào)整積分系數(shù) I,力求改善控制過程。如此反復試湊,直到找到滿意的比例系數(shù) P 和積分系數(shù) I 為止。
(4)引入適當?shù)膶嶋H微分參數(shù),此時可適當增大比例系數(shù) P 和積分系數(shù) I 。
PID控制的物理實現(xiàn)
在早期自動化過程控制中,PID 控制器作為一個機械裝置來操作。這些機械控制器使用杠桿,彈簧和壓縮空氣來控制。這些氣動控制器曾經(jīng)是行業(yè)標準。
模擬電子控制器由固態(tài)繼電器或晶體管放大器,電容和電阻組成。模擬電子 PID 控制回路常應用于更復雜的電子系統(tǒng),例如,磁盤驅(qū)動器的頭部定位,電源供應器的功率調(diào)節(jié),甚至是現(xiàn)代地震儀的運動檢測電路,F(xiàn)如今,電子控制器很大程度上已經(jīng)被與微控制器或FPGA 相結合的數(shù)字控制器所取代。
在工業(yè)控制中最現(xiàn)代化的 PID 控制器應用在可編程邏輯控制器(PLC)或模塊化數(shù)字控制器上。軟件實現(xiàn)的優(yōu)點是他們相對便宜,且易于 PID 控制算法的實現(xiàn)。
程序代碼
下面是一段執(zhí)行 PID 算法的簡單程序:
start:
previous_error = error or 0 if undefined
error = setpoint - actual_position
P = Kp * error
I = I + Ki * error * dt
D = (Kd / dt) * (error - previous_error)
output = P + I + D
wait(dt)
goto start
標準PID形式
在工業(yè)控制中,經(jīng)常遇到 PID 控制器的各種形式,而與整定算法直接相關的是"標準形式" 。在這種形式中,Kp增益適用于計算 Iout 和Dout,公式如下:

其中
Ti 是積分時間,Td 是微分時間
在控制理論中的理想平行形式

其中積分增益
,微分增益 Kd = KpTd。這種參數(shù)作為簡單收益的平行形式,是最普遍和靈活的形式。然而,它也是有最少物理解釋的參數(shù),并通常是保留給 PID 控制器進行理論處理的形式。雖然在運算上稍微復雜,但在工業(yè)上這個“標準”形式是較常見的。
PID控制器的拉普拉斯形式
有時 PID 調(diào)節(jié)器需寫成拉普拉斯變換形式:

根據(jù) PID 控制器的拉普拉斯形式和控制系統(tǒng)的開環(huán)傳遞函數(shù),我們就易確定該系統(tǒng)的閉環(huán)傳遞函數(shù)。