袁振洋,孔放,劉峻宇
(河海大學 能源與電氣學院,江蘇南京,214122)
近年來,智能車的應用范圍越來越廣,包括無人駕駛、自動巡檢、物資配送等。這些應用不僅提高了工作效率、保證了人身安全,同時也促進了智能制造技術的進一步發展[1-3]。
基于電磁傳感器的智能循跡小車,相較于攝像頭式的循跡小車,具有不可替代的優勢:一是成本低,僅需若干組電感與電容,便可搭建出最簡單的電磁模塊,電路簡單、實現容易,并可根據實際情況合理排布,進行個性化定制;二是數據處理量少,僅對一組一維數組處理,芯片負荷低,效率高;三是抗干擾能力強、穩定性高。由于此類小車是根據預設的磁場發生軌道產生的磁場行駛,運行發異常概率很低。
目前常用的小車路徑識別控制算法包括比例積分差分算法(Proportion Integral Differential,PID)、線性二次型調節器算法(linear quadratic regulator,LQR)、模型預測控制算法 (Model Predictive Control,MPC)等算法[4]。其中,以PID 算法應用最為廣泛。該算法模型簡單、參數少,可使小車控制具有很好的魯棒性,且對非正常狀態的反應非常靈敏。
考慮到單片機芯片無法處理連續量,實際應用中將PID算法離散化,離散化后的PID 算法如式(1)所示:

其中,KP 為比例系數、KI 為積分系數、KD 為微分系數,E_now 為當前誤差,E_last 為上次誤差,E_last_all 為隨后誤差。這三個參數通過建立仿真模型,獲取各種組合的可視化控制結果,縮短調試周期,避免盲目性。
系統模塊的整體設計如圖1 所示。系統以TC264 作為主控芯片,7.8V 供電電源經過LMS1117 穩壓器給芯片提供3.3V 電壓。6 組10mH 電感、6.8nF 電容以及LMV358 運算放大器構成電磁模塊,放大倍數可通過電位器調節。

圖1 系統模塊整體設計圖
TC264D 芯片擁有非常豐富的片上資源,包括SPI、PWM、DMA 等功能,它有4 組ASCLIN 接口、4 組QSPI 接口、2 組MSC 接口,每個模塊都含有獨立的發送器和接收器。經過設計,該芯片共有31 條通道可用于實現模數轉換功能,滿足6 組電磁模塊數據處理的實際需求。
電磁模塊置于地面上方9cm 左右,以小車中心線為基準,在其前端左右兩側各安置3 組電磁模塊,如圖2 所示。

圖2 電磁模塊
TC264D 芯片、TFT 顯示屏等硬件的正常工作電壓在3.3V 左右比較合適,而舵機、電機等外設的工作電壓為5V甚至更高,本系統選擇7.8V 2000mAh Ni-Cd 電池作為電源,用AMS1117 低壓差線性穩壓器將電壓從7.8V 調至3.3V 或5V,分配給不同模塊[5]。電源模塊結構如圖3 所示。

圖3 電源模塊
電機驅動部分由直流電機、編碼器、驅動隔離以及經典MOSFET-H 橋驅動電路構成。本系統采用后置單電機驅動方式,通過控制四個MOS 管的開通和關斷實現電機的正轉與反轉。對于本文中的智能小車,由于電機無需在兩者之間切換,故使單片機控制方向的引腳輸出一恒定信號,使其處于正轉(或反轉)模式。電機轉速由驅動PWM 信號的占空比決定,這里給定頻率17kHz,編碼器可采集信號反饋給主控芯片,再由芯片輸出一定占空比的PWM 信號驅動電機旋轉。當小車速度過快時,系統自動降低電機驅動信號的占空比,降低車速從而避免小車失控;當小車速度過慢時,系統適當提高電機驅動信號的占空比,提高車速防止電機堵轉燒壞。

圖4 電機驅動模塊
本系統選擇MG995 舵機支持車輪轉向[6]。由于每種舵機的性能、參數不同,齒輪轉到中間位置時需要的占空比也不一定相同,這里給定頻率50Hz,使舵機齒輪轉到中間位置,通過按鍵功能進行校準,在尚不知占空比大小與齒輪擺動方向對應關系的情況下,也可通過按鍵調試確定二者的具體聯系。經過顯示屏、按鍵、舵機的聯合調試,發現當占空比小于中值(齒輪處于中間位置時的占空比)時,小車轉向右側,反之轉向左側。由于MG995 舵機齒輪最大可正負90度旋轉[7],為防止小車轉彎時舵機過擺,通過按鍵提前確定最大占空比和最小占空比,分別對應車輪左擺和右擺的最大角度,并將其納入PID 控制算法中。
圖5 是本系統的控制過程。在該控制過程中,軟件部分采用模塊化設計思想,包括ADC 模塊、PWM 模塊、TFT 模塊、按鍵模塊等。設定舵機回正時的占空比(中值)與電機正常運行時的占空比,ADC 模塊部分設定中斷周期20ms,芯片以每秒50 次的速度處理6 組電磁模塊傳回的數據,利用差比和算法計算小車位置與路徑中心線的偏差,在小車過彎時,為防止小車沖出道路,設計了主動降速機制。

圖5 系統控制過程
由于小車無法在初始階段就能比較完美地沿直線行使,魯棒性低,需要不斷地實驗才能找出比例系數、積分系數、微分系數的最佳組合。

圖6 KI=1、KD=1,不同KP 的尋優效果
PID 算法參數尋優過程可以根據偏差,快速得到對應控制信號的PID 參數,并允許一定的誤差。以小車舵機為例,假定初始占空比為900,三個參數的初始值均設為1,前端兩側電磁模塊組傳回信號的平均值分別為1500 和1000,將二者之差比上二者之和的結果放大50 倍后,交由PID 算法模塊計算出附加占空比。
尋優過程中,依據控制變量設置若干組實驗,以時間為橫坐標,占空比為縱坐標,將計算出的附加占空比加上小車初始占空比,自動生成小車占空比隨時間變化的曲線,從而研究參數變化對控制信號的具體影響。
分別以KP、KI、KD 表示比例系數、積分系數、微分系數,得到以下尋優結果。
實驗一:KI 和KD 固定,KP 改變
可以看出,當KP 增大,曲線趨于平緩,振蕩愈發不明顯,但相對的,曲線達到目標直線所需要的時間卻長,這意味著當小車需要調整方向時,從感應磁場的變化到產生控制信號再到實際方向調整將花費更多時間,靈活性較差,存在因調整不及時而駛離預設軌跡的風險,KP 應盡可能取小。
當KP 減到0.1 以下時,曲線幾乎重合。查閱資料可知,理想曲線應有明顯的一高一低兩個波,前后高低比為4∶1,本次實驗將KP 確定為0.08,此時曲線遠沒有達到理想狀態,但后面可以通過調節KI 調整曲線的振蕩頻率,再調節KD 調整曲線的振蕩幅度來使曲線達到理想狀態。
實驗二:KP 和KD 不變,KI 改變
在實驗一的基礎上,令KP 等于0.08,調整I,做若干組試探實驗,如圖7 所示。當KI 增大時,曲線的振蕩幅度和頻率都將增大,同時曲線逐漸向縱軸靠攏,與減小KP 作用類似,但該方法提高振蕩頻率和幅度的效果更明顯,又為了提高系統的靈敏度,所以應增大KI。

圖7 KD=1,KP=0.08,不同KI 的尋優效果
持續增大KI,又完成了9 組實驗。當KI 增加到12 附近時,每組曲線在第一個波位置已近乎重合,此時雖然繼續增大KI,對整體而言仍有向縱軸靠攏的效果,繼續增加KI對靈敏度的提高作用已不大,還會不斷與目標值的偏差。因此,從實驗角度不再繼續增加KI,后面通過調整KD,可以消除曲線多余的波,使曲線達到理想狀態。本次實驗將KI值確定為12。

圖8 KI=12,KP=0.08,不同KD 的尋優效果
實驗三:KP 和KI 不變,KD 改變
在前兩次實驗的基礎上,不斷增加D,發現曲線振蕩次數明顯增多,減小KD。通過11 組實驗,可以明顯看出曲線的振蕩得到明顯改善,尤其當KD 減小至0.1 時,曲線呈現的幾乎是“一上一下”兩個波動,且高低之比接近4∶1,為理想曲線。
經過上述三個實驗,最終得到一組以舵機為研究對象的PID 參數為KP=0.08;KI=12;KD=0.1 并進行實際驗證,實際驗證效果如圖9 所示。

圖9 小車的路徑圖和軌跡圖
以Δx 表征小車偏離軸線的最大距離,Δx 越小,說明小車的運行軌跡與路徑的擬合程度越高。表1 列出了不同的PID 參數對小車運行效果的影響。

表1 不同參數的影響

本文以電磁方式循跡的四輪移動小車為設計對象,從硬件和軟件層面搭建出一個較為完整的運行體系,并以小車舵機為研究對象,通過PID 算法仿真了解了比例系數、積分系數、微分系數對系統控制的影響,獲得了后期調試舵機和電機所需要的關鍵信息和數據。在實際調車過程中,在實驗獲得數據的基礎上對小車進行微調,最終使其實現了上坡、靈活過彎、平穩行使等功能,達到了設計目標。