賀佳輝 侯明 路悅 蔣澤鑫
北京信息科技大學(xué),北京 100192
隨著汽車數(shù)量的急劇增長,對交通系統(tǒng)提出了越來越高的要求。優(yōu)化道路網(wǎng)絡(luò)系統(tǒng),提供安全舒適的駕車環(huán)境成為目前科技界需要攻克的一大難題。
在提出的各種解決方案中,無人駕駛技術(shù)脫穎而出,這種解決方法受到了越來越多的關(guān)注。而智能小車系統(tǒng)就是現(xiàn)實(shí)生活中的無人駕駛汽車的縮影,智能小車與無人駕駛汽車在核心控制方向有著極為相似的地方,因此,智能小車的研究對于無人駕駛技術(shù)的發(fā)展無疑起到了較大的推動(dòng)。
本次設(shè)計(jì)的最終目的是要使用PID控制技術(shù)實(shí)現(xiàn)電磁循跡小車在軌跡上高速、平穩(wěn)、準(zhǔn)確地行駛。電磁循跡小車就是要檢測賽道中心通有20 kHz、100 mA交流電的通電導(dǎo)線所產(chǎn)生的交變電磁場,并使小車沿著導(dǎo)線所形成的軌跡進(jìn)行平穩(wěn)的行駛。本文將使用三個(gè)工字電感檢測導(dǎo)線產(chǎn)生的交變磁場,從而辨別車在軌跡上的位置。工字電感產(chǎn)生的交變信號(hào)通過整流、濾波,并經(jīng)過運(yùn)放將交流信號(hào)轉(zhuǎn)變?yōu)橹绷餍盘?hào),以便于單片機(jī)讀取并解算位置。
在智能車整體系統(tǒng)的搭建中,硬件電路的作用就有如建筑物的地基,在整個(gè)系統(tǒng)中占有舉足輕重的地位,尤其是到了后期速度快了之后更是尤為明顯。
智能小車的硬件可以主要概括為五個(gè)部分:單片機(jī)系統(tǒng)模塊、主控電路模塊(藍(lán)牙串口傳輸模塊、液晶及按鍵模塊)、電池供電及電源管理模塊、路徑檢測模塊、測速模塊以及直流電機(jī)驅(qū)動(dòng)模塊和舵機(jī)控制模塊。 硬件電路整體組成見圖1所示。
1、單片機(jī)最小系統(tǒng)模塊
最小系統(tǒng)部分是整個(gè)智能小汽車的“大腦”,是智能車系統(tǒng)采集以及處理信號(hào)的核心,所以最小系統(tǒng)的可靠性成為了整個(gè)系統(tǒng)穩(wěn)定運(yùn)行的重中之重。本文將使用飛思卡爾公司的K60作為系統(tǒng)的控制核心。采用飛思卡爾公司的K60單片機(jī)作為主控芯片,并使用了山外的最小系統(tǒng)板。使用三路ADC采集,兩路PWM,以及LPTMR模塊的脈沖計(jì)數(shù)功能,UART串口功能以及I/O口若干。
2、主控電路模塊
主控電路模塊以單片機(jī)最小系統(tǒng)為核心,延伸出小車各個(gè)模塊需使用的外設(shè)接口。外設(shè)接口是通過洞洞板把K60單片機(jī)的接口引出來的,主控電路的設(shè)計(jì)要求主要就是抗干擾能力強(qiáng)以及布局布線的整齊合理度。除了外設(shè)接口外,本系統(tǒng)主控板還設(shè)計(jì)了藍(lán)牙轉(zhuǎn)串口電路,OLED顯示屏部分以及鍵盤、LED等調(diào)試所用的人機(jī)交互模塊。
3、電池供電及電源管理模塊
電池供電及管理也是很重要的一部分,合理分配電源資源可保證小車正常運(yùn)行。電池使用7.2 V、2000 mAh的鎳鎘電池作為動(dòng)力保障,使用TPS7350作為穩(wěn)5 V電壓源單獨(dú)為運(yùn)算放大器供電;使用lm2940穩(wěn)5 V給藍(lán)牙、編碼器等模塊供電;使用ASM1117-3.3芯片直接為單片機(jī)系統(tǒng)供電,這樣的供電管理為小車的正常工作提供了保障。電源供電模塊如圖3所示。
4、路徑檢測模塊
人正常走路首先通過眼睛看路,然后通過大腦決策控制雙腿正常走路。而我們這里的路徑檢測模塊就是相當(dāng)于人身體中的“眼睛”。
智能車所在的電磁組的道路中心線鋪設(shè)有一根漆包線,里面通有100 mA的20 kHz交變電流。因此,在道路中心線周圍產(chǎn)生一個(gè)交變磁場,通過道路電磁中心線偏差檢測與電機(jī)差動(dòng)控制實(shí)現(xiàn)方向控制。本車使用三個(gè)電感解算出小車的偏差,然后通過PID控制算法得到控制量,最后作用到舵機(jī)上實(shí)現(xiàn)小車的正常打角。
智能車采用10 mH的工字電感線圈搭配6.8 nF的諧振電容作為整個(gè)系統(tǒng)的“眼睛”,采用工字電感是因?yàn)檫@類電感的磁滯現(xiàn)象可以感應(yīng)出類正弦波,從而方便對信號(hào)的處理。
運(yùn)算放大器采用lm386作為信號(hào)放大器,并設(shè)計(jì)了相關(guān)的整流濾波電路,最終得到了可靠的直流電供給單片機(jī)的ADC進(jìn)行信號(hào)采集。 信號(hào)放大電路如圖4所示。
5、直流電機(jī)驅(qū)動(dòng)模塊
直流電機(jī)驅(qū)動(dòng)模塊是提供給電機(jī)強(qiáng)大驅(qū)動(dòng)力的模塊。具有能過強(qiáng)電流而整個(gè)模塊發(fā)熱少,散熱快的能力。我們小車所用的小車模塊是使用mos管搭建的H全橋驅(qū)動(dòng)電路,電路的可靠性高,過流能力強(qiáng),可以滿足要求。
系統(tǒng)的軟件部分大體可以分為三大板塊:轉(zhuǎn)向控制系統(tǒng)的程序?qū)崿F(xiàn)、速度控制系統(tǒng)的程序?qū)崿F(xiàn),以及人機(jī)交互部分的軟件實(shí)現(xiàn)。軟件實(shí)現(xiàn)思路如圖6所示。
1、智能車轉(zhuǎn)向控制算法的實(shí)現(xiàn)
轉(zhuǎn)向控制將采用經(jīng)典PID控制來完成智能車的轉(zhuǎn)向。
2、智能車速度控制算法的實(shí)現(xiàn)
轉(zhuǎn)向加速度二者可以保證小車的正常運(yùn)行,本系統(tǒng)將使用傳統(tǒng)增量式PI控制來實(shí)現(xiàn)小車的速度控制,并且做到直道、彎道根據(jù)不同的曲率設(shè)定不同的速度,以保障智能小車可以沿著賽道中線穩(wěn)定行駛。
3、智能車人機(jī)交互系統(tǒng)的軟件設(shè)計(jì)
人機(jī)交互主要有兩大模塊:第一個(gè)是OLED顯示屏,OLED顯示屏主要顯示三個(gè)電感采集的電壓值和解算出來的偏差是否正確;第二個(gè)是基于串口通信的虛擬示波器上位機(jī),主要用于調(diào)參時(shí)觀察曲線的跟隨度,從而進(jìn)行調(diào)參。
1、車模轉(zhuǎn)向控制算法
(1)車模轉(zhuǎn)向的基本原理
本車使用三個(gè)電感解算出小車的偏差,然后通過PID控制算法得到控制量,最后作用到舵機(jī)上實(shí)現(xiàn)小車的正常打角。PID 控制以其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為智能車控制的主要技術(shù)之一。當(dāng)被控對象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場調(diào)試來確定,這時(shí)應(yīng)用 PID 控制技術(shù)最為方便。
(2)位置解算算法
為了使電感采集到可靠的電壓值要進(jìn)行軟件濾波處理,軟件濾波主要有均值濾波、中值濾波,以及滑動(dòng)濾波等多種濾波方式,而均值濾波的軟件實(shí)現(xiàn)思路簡單,并且濾波效果好,所以采用了均值濾波。位置解算算法之前,我們使用的是經(jīng)典的位置解算算法差比和。
(3)PD控制算法的實(shí)現(xiàn)
智能車的方向控制采用位置PID控制。因?yàn)橹悄苘噷ほE本質(zhì)上是一個(gè)隨動(dòng)系統(tǒng),積分項(xiàng)在彎道累積的偏差錯(cuò)誤地加在直道的跟蹤上造成在進(jìn)入直道時(shí)轉(zhuǎn)向不夠準(zhǔn)確,跑直道時(shí)雖然能跟蹤電磁線,但是轉(zhuǎn)向調(diào)整往往超調(diào),導(dǎo)致車身在直道上左右震蕩,這種震蕩嚴(yán)重影響了車的整體表現(xiàn)。將積分項(xiàng)系數(shù)Ki設(shè)為0,發(fā)現(xiàn)車在直線高速行駛時(shí)仍能保持車身非常穩(wěn)定,沒有震蕩,所以沒有必要使用Ki參數(shù) 。該控制方案調(diào)整為PD 控制。Kp和Kd參數(shù)由工程整定得出,經(jīng)過多次試驗(yàn),得到一組穩(wěn)定快速的參數(shù)。設(shè)置合適的調(diào)節(jié)范圍,讓智能車更準(zhǔn)確地控制轉(zhuǎn)向。
2、車模的速度控制算法
智能車的速度控制也是很重要的一環(huán)。為了得到車模可靠的運(yùn)行速度,使用500線的歐姆龍編碼器對小車的速度進(jìn)行獲取。車模的速度控制最后使用了傳統(tǒng)的PI控制器,并選取50 ms作為控制周期。經(jīng)驗(yàn)證,PI控制器可以使小車按自己設(shè)定的速度規(guī)劃進(jìn)行穩(wěn)定的行駛,速度規(guī)劃大概就是直道加速,彎道減速。速度使用增量式PI控制。傳統(tǒng)的PID控制器主要有增量式和位置式兩種算法。位置式看名字就知道它適用于舵機(jī)等位置式器件。而電機(jī)的速度控制很明顯適用增量式的PI控制,小車的速度使用增量式PID后不會(huì)產(chǎn)生很大的震蕩,所以D這個(gè)阻尼系數(shù)的存在無關(guān)緊要。PI控制器在我們的使用過程中還發(fā)現(xiàn)了一個(gè)問題,就是I增大使速度控制有滯后,并且積分飽和也給我們帶來了很大的困擾,如果取消I的話,速度控制又會(huì)產(chǎn)生靜態(tài)誤差。針對這個(gè)問題,我們將I參數(shù)設(shè)定到1以下,控制效果不錯(cuò)。針對于彎道減速問題,我們將速度設(shè)定值與偏差整合成了一個(gè)二次函數(shù),這個(gè)二次函數(shù)a值為負(fù)數(shù)開口向下,剛好可以滿足彎道減速,直道加速的要求。
經(jīng)過一段時(shí)間的參數(shù)調(diào)整以及不斷地現(xiàn)場調(diào)試,智能車能夠準(zhǔn)確地識(shí)別電磁信號(hào),并且穩(wěn)定的在賽道上行走。運(yùn)行情況如圖7所示。
本文詳細(xì)闡述了小車的轉(zhuǎn)向控制與速度控制的軟件實(shí)現(xiàn)。在轉(zhuǎn)向控制中還說明了ADC采集時(shí)各種濾波方案的優(yōu)缺點(diǎn)。在速度控制中,我們還說明了增量式PID與位置式PID的適用情況,并且說明了增量式PI控制器的軟件實(shí)現(xiàn)。在此還特別介紹了停車的反接制動(dòng)法用軟件的實(shí)現(xiàn)。