圖3為經過簡化的H橋電路,當S1、S4 導通且S2、 S3 截止時,電流正向流過直流電機,智能車前進;當S2、S3 導通且S1、S4 截止時,電流反向流過直流電機,適當利用這個過程可以使車模處于反接 制動的狀態(tài),迅速降低車速;當S3、S4導通且S1、S2 截止時,沒有電源加在直流電機上,直流電機電樞兩端相當于短接在一起。由于電機軸在外力作用下 旋轉時,電機可以產生電能,此時可以把直流電動機看作一個帶了很重負載的發(fā)電機,電機上會產生一個阻礙輸出軸運動的力,這個力的大小與負荷的大小成正比, 此時電機處于能耗制動狀態(tài)。
本設計方案中采用兩片MC33886并聯(lián),一方面減小導通電阻對直流電機特性的影響,另一方面減小MC33886內部的過流保護電路對電機啟動及制動時的影響。直流電機驅動模塊電路原理圖如圖4所示。
(3)傳感器電路設計。智能車采用CMOS攝像頭作為圖像傳感器,保證賽道信息采集準確有效。CMOS攝像頭的輸出信號是PAL制式的復合全電視 信號,每秒輸出50幀(分為偶場和奇場)。當CMOS攝像頭采集圖像時,偶場和奇場不是同時采集的,因此,可以在每場信號都對路徑進行識別。
(4) 無線數(shù)據(jù)傳輸模塊設計。智能車加裝了基于射頻收發(fā)芯片nRF403的無線數(shù)據(jù)傳輸模塊,并在此基礎上實現(xiàn)了MODBUS 通信協(xié)議,在測試智能車參數(shù)及程 序調試的過程中很有幫助。在運行的過程中可以將智能車的各項參數(shù)實時地發(fā)送上來,分析智能車的運行狀態(tài)可以更有針對性地對控制程序進行改進。在調試運動參 數(shù)的過程中,可以通過上位機軟件改變如Kp、Ki、Kd 等參數(shù),而不用重新燒寫程序,迅速而方便。
5 軟件設計
智能車控制 系統(tǒng)程序結構如圖5所示,這是一個兩層的分級控制系統(tǒng)。底層控制系統(tǒng)包括“轉向控制系統(tǒng)”和“車速控制系統(tǒng)” ,上層主控程序通過改變底層控制系統(tǒng)的設定 值、控制參數(shù)和約束條件的方法,對整個控制系統(tǒng)進行調度。設計這種分層結構的控制系統(tǒng)是參照了集散控制系統(tǒng)DCS的結構特點,程序各部分功能明確、結構清 晰,便于調試和維護。為了調試方便,主控程序中添加了基于無線信道的MODBUS通訊協(xié)議,對智能車行駛參數(shù)的監(jiān)視和調整提供了很大的便利。
軟件所實現(xiàn)的功能有:
①初始化。
②數(shù)據(jù)采集及濾波處理。為了盡量減少引入的純滯后時間,本文提出 了一種獨特的具有創(chuàng)新性的視頻信號采集方法,即用MC9S12DG128 單片機提供的SPI 口直接讀取經過二值化處理的視頻信號。大賽規(guī)則中指定了賽 道上黑色引導線的寬度為2.5 厘米,故攝像頭中采集到的引導線寬度在正常情況下也應當落在一定范圍內。可以用實驗的方法測得引導線對應的像素寬度,然后 在濾波程序中對采集到的引導線線寬進行控制,如果超出正常范圍即認為是無效數(shù)據(jù)。實驗證明,這種方法可以有效地將干擾濾除。
③道路識 別。智能車分層控制系統(tǒng)的核心是賽道的識別。實際測試發(fā)現(xiàn)由于CMOS攝像頭的可視范圍比較小而且視野范圍呈梯形,在快速運動中經常發(fā)生賽道部分甚至全部 脫離視野范圍的情況,給賽道識別帶來很大的困難,因此完整識別賽道模式幾乎是不可能的。為了簡化問題,本方案只識別賽道中的直線段,根據(jù)直線段的數(shù)量和長 度將賽道分割成不同的區(qū)域,在一個區(qū)域中對控制參數(shù)進行優(yōu)化。
④電機控制。單片機通過接收旋轉編碼器檢測智能車后輪轉動所產生的脈沖數(shù),采用位置式PID控制算法的遞推形式對直流電機的轉速進行快速準確地控制。
位置式PID控制算法的遞推形式: Δu(k) =Kp[e(k) -e(k-1)] +Ki×e(k) +Kd[e(k) -2e(k-1) +e(k-2)],u(k) =u(k-1) +Δu(k) 式中:u(k)為k時刻控制器的輸出; e(k)為k時刻的偏差;Kp、Ki、Kd分別為位置式PID控制算法的比例系數(shù)、積分常數(shù)和微分常數(shù)[7]。
⑤舵機控制。單片機通過CMOS攝像頭檢測到的路徑信息,采用不完全微分PD控制算法控制舵機的轉角,實現(xiàn)路徑跟蹤。