陶玉貴 ,胡 飛
(蕪湖職業技術學院信息與人工智能學院,安徽 蕪湖 241006)
全國大學生智能汽車競賽是教育部倡導的課外學術科技A類競賽,其被列入國家教學質量與教學改革工程資助項目,是涉及機械、電子、計算機、自動控制等多學科知識的綜合性專業競賽,已成為培養學生工程實踐能力的重要平臺[1]。課題組以STC8A8K64S4A12作為主控制單元,運用PID控制理論進行智能控制策略研究,設計了一種能夠自主識別道路的智能競速小車,可以完成對車模平衡、速度、方向的控制。測試結果證明,該小車具有控制精確、轉向靈敏等優點,提高了車速和車速控制的穩定性。
課題組設計的智能競速小車主要由傳感檢測、控制決策和動力驅動三部分組成,自主設計的六路電磁傳感器模塊負責采集賽道信息,控制決策系統使用搭載STC8A8K64S4A12的最小核心板,控制動力系統驅動舵機轉角和直流電機轉速[2]。電磁傳感器檢測賽道信息并發送給單片機,通過計算左右電感的偏差值來計算PID,輸出量分別發送給舵機和電機,編碼器采集并輸出速度信息反饋給主控單片機,主控單片機根據所獲得的賽道信息和車體當前速度信息做出決策,通過PWM信號控制直流電機和舵機進行相應調整,從而實現車體的轉向控制和速度控制,控制小車平穩行駛。智能競速小車系統總體結構框架如圖1所示。

圖1 小車總體結構框架圖
選用STC8A8K64S4A12為主控的核心板,該核心板結構簡單,調試方便,支持串口ISP調試方式,能夠應對復雜的控制需求,板載USB-TTL232,可使用USB供電及下載程序。核心板采集賽道電磁信號和編碼器檢測到的速度信息,通過PID算法處理后輸出合適的控制量,再對舵機與直流電機模塊進行精準控制,實現小車快速平穩運行。
電感采集賽道信息,排布位置主要考慮檢測范圍能否覆蓋到整個賽道,同時將賽道的各類元素進行準確劃分,考慮到賽道元素的多樣性,對于特殊元素的判斷要聯合使用多個電感。水平電感有助于直道循跡,八字電感有助于過彎,豎直電感在普通賽道上的電感值很小,但在環島部分會突增。根據右手螺旋定則,因三岔口中間部分有斷層,當電感垂直向下時更利于小車判斷三岔口。次外側兩個水平電感用于判斷直道,最外面兩端的豎直電感用于判斷入環和出環,在電磁桿的中心位置放置兩個垂直向下電感用于三岔路口判斷[3]。電感排布檢測方案圖如圖2所示。

圖2 電感排布方案圖
電源模塊所采用的是主供電電壓7.2 V的鎳鉻電池,針對各部分傳感器及驅動板分別設計穩壓電路。對于單片機和傳感器模塊,選用AMS1117轉5 V后對其供電,其電路原理圖如圖3所示。

圖3 5 V穩壓電路原理圖
舵機的供電選用LM2596S芯片,在6 V供電的情況下輸出1 A以上的電流,使舵機的反應更靈敏。6 V穩壓電路原理圖如圖4所示。

圖4 6 V穩壓電路原理圖
電機驅動電路采用雙BTN7971B大電流H橋雙路電機驅動[4],電機選用耐久度高、驅動力強勁的RS380直流電機,緩沖器選用三態輸出的8通道的SN74HC244。電機驅動電路原理圖如圖5所示。

圖5 BTN7971B驅動電路原理圖
運放模塊選用集成運放LMV358芯片,其具有失真小、范圍大、性價比高等特點。LMV358運放電路對電磁傳感器檢測的信號進行濾波、放大、檢波,得到直流電壓信號,經單片機AD采集獲得正比于感應電壓幅值的數值,輸出信號穩定。運放模塊電路原理圖如圖6所示,運放模塊實物圖如圖7所示。

圖6 運放模塊電路原理圖

圖7 運放模塊實物圖
小車通過加裝編碼器來檢測速度實現閉環控制,通過對小車電路性能和機械結構的考量,選用龍邱科技512線mini編碼器[5]。這是一款512線增量式編碼器,具有質量輕、體積小等特點,工作電壓為3.3 V~5.0 V,CMOS輸出。工作時,單片機讀取編碼器輸出一定周期的脈沖數,實現速度的檢測,為閉環反饋控制提供數據。
舵機驅動模塊控制舵機的轉向,舵機型號選用Futaba S3010,其具有精度高、壽命長、扭矩大等特點。舵機安裝直接關系到轉向問題,若調整不到位,將極大地限制轉向角度和轉向響應速度。智能競速小車整車圖如圖8所示。

圖8 智能競速小車整車圖
程序設計主要采用順序結構,減小任務之間的相互影響以提高智能競速小車的穩定性和執行效率[6]。一方面,完成傳感器信號的采集與處理、舵機PWM輸出、電機PWM輸出,這三項在一個周期定時中斷,設置一個標志變量作為執行周期的標志。另一方面,完成賽道各元素識別、小車運行時的方向控制與速度控制、小車運行流程控制(包括程序初始化、啟動與結束、狀態監控等),在主程序中完成。程序結構流程圖如圖9所示。

圖9 程序結構流程圖
電感值的處理采用限幅法,減少突變,用左右兩個電感進行循跡。濾波算法采用限幅、算術平均值濾波、歸一化相結合的方法,對電磁信號進行穩定性處理,以保證采集到的信號的實時性和可靠性。
PID控制是應用最為廣泛的一種自動控制器,智能車中常用增量式和位置式兩種算法對車身進行控制,此處選擇增量式PID算法,輸出控制量的相對增量Δuk,其算法公式如下:

在運用增量式PID算法進行控制時,使用前中后3次測量的偏差得出控制量,通過調節Kp、Ki、Kd這3個參數來改善控制效果[7]。PID閉環控制流程圖如圖10所示。

圖10 PID控制流程圖
智能車轉向具有較高的實時性要求,通常采用舵機控制。舵機是一種由不同脈寬的PWM信號來控制的位置伺服系統[8],在控制策略上采用增量式PID算法。但引入積分環節會使舵機轉向系統產生遲滯性,方向控制不需要消除系統靜態誤差,為了使舵機轉向系統不產生遲滯性,需要將PID算法中的積分環節略去,只用PD控制,舵機控制整體流程圖如圖11所示。若PWM脈寬過大會導致舵盤旋轉角度超出其機械限位,因此要對PD控制器的輸出進行限幅處理[9]。

圖11 舵機控制流程圖
有效控制智能小車速度的一種方法是利用負反饋產生的偏差信號,通過控制器對被控對象進行實時修正,使系統的輸出量與給定量保持一致,實現速度閉環控制[10]。因此,電機控制也采用增量式PID算法作為閉環控制,將其放入定時器中斷,在中斷中用左右兩個編碼器分別測出實時速度,使速度控制更加精確。電機速度閉環控制流程圖如圖12所示。
僅僅靠舵機并不能很好地使小車精確轉彎,在調試過程中還需要分別控制兩個電機的目標速度,通過左右電機的差速輔助競速小車轉彎。
課題組設計了一種基于PID算法的智能競速小車,并從系統軟硬件兩方面詳細闡述了該設計方案,有效實現了對智能競速小車運行平穩、精確控制的目的。在軟件算法上大膽創新,在保證其穩定的同時,力求突破智能車速度的極限,總體提高了車速和車速控制的穩定性,可以應用于學生日常實驗教學和其他研究領域。