摘 要:針對電子競賽中輪式機器人的電機轉速控制,本文搭建了帶有反饋的電機控制系統,采用增量式數字PID算法,對控制參數進行優化匹配,目的是使直流電機的轉速控制效果得到優化。作者還通過計算機模擬仿真軟件進行數據測試,選取最優參數,再通過硬件調試,結果證明加入PID控制策略對于輪式機器人的電機轉速控制問題的解決是切實可行的,最后對優化結果進行分析。
關鍵詞:PID; 輪式機器人; 電機控制
中圖分類號:TP242.1 文獻標識碼:A 文章編號:1006-3315(2014)09-131-002
一、引言
近年來,輪式機器人的發展十分迅速,已經廣泛的應用于工廠電氣設備、醫療與公共服務的自動化設備、學校中有關教學的模擬仿真教學儀器中,甚至各國軍方都在致力于自行戰斗小車的研究與開發。以此為契機,我國很多電子類競賽也以機器人或者類機器人的自行小車作為競技的主要載體和方式,影響力比較大的包括專科類的全國職業院校技能大賽中的機器人技術應用賽項,本科類有全國大學生“飛思卡爾杯”智能小車競賽,近幾年的全國電子設計大賽也多次出現和自行小車或者電機控制有關的賽題,這些關于輪式機器人的控制最重要的一點就是對電機轉速的控制。本文研究的就是以這類比賽的專用賽道作為使用環境,以直流電機作為控制對象,建立一個帶有反饋的閉環系統,基于AVR單片機采用PID控制的方式保證系統穩定和轉速無靜差,確保電機動態響應快,抗干擾能力強,進而使輪式機器人更加的穩定可靠。
二、增量式數字PID
電機控制算法是當代技術人員熱衷的一門議題,各種先進的控制算法層出不窮,如PID控制、模糊控制、神經網絡控制等等,對于應用于競賽的輪式機器人,如果采用過于復雜的算法,由于其控制核心一般為單片機、ARM等芯片,沒有達到計算機的水平,運算速度和位數大多難以滿足要求,并且在調試過程中仿真的難度也比較大。如果采用的算法過于簡單或者僅依靠軟件程序判斷,一般情況下調節的偏差較大,相應時間也無法滿足。實際的經驗和以往的理論分析表明,PID算法由于其原理簡單,使用方便,單片機等控制芯片適應性強,魯棒性強和抗干擾能力強等一系列優點,再加上參賽學生都上過自控課程,對其原理有初步了解,上手快,基本能滿足大多數競賽輪式機器人的控制要求。
PID控制分為兩種:位置式PID和增量式PID。由于位置式PID輸出和以往所有的輸入狀態有關,并且計算時要考慮到每一次的絕對控制誤差,但對于機器人小車電機控制器來說,輸出量是一個相對量,這樣就和位置式PID的反饋要求不符。一般采用增量式PID,對于電機來說,這種算法根據本次檢測到的轉速與設定值比較得到偏差e(n),通過調節單片機輸出的PWM方波的占空比對偏差進行PID補償,實際就是調節電機兩端的電壓,使轉速逐級逼近設定值,從而實現了控制電機的轉速。運算公式如下:
其中:
上式中,e(n)、e(n-1)、e(n-2)均為第n次、n-1次、n-2次的偏差, u(n)表示第n次的輸出電壓,實際上對應的是PWM方波的占空比。Kp是比例系數P,增加就會提高系統的響應速度,但Kp過大會產生較大的超調量,穩定性降低,一般取值范圍在1-10之間。TI決定積分環節,主要用于消除靜差,1/TI就是積分系數I的值,一般取在0-5之間。Td就是微分系數D值,取在0.1-1之間。
三、電機轉速檢測與控制方案
電機的PID控制系統是一個閉環系統,所以對于電機轉速檢測必不可少。無論采用電子元器件搭建,還是現成傳感器,都可以實現。常見方案主要有以下幾類:采用光電對管檢測車輪上圓盤明暗相間的條紋,這種方法設計簡單,但對環境光線要求較高;采用轉速傳感器,常見的比如霍爾傳感器、光電傳感器等,這種方法可靠性高,檢測精度好,但是成本較高;采用編碼器或者測速電機,比較常見于大型電機的轉速與方向的檢測,而且是精度要求較高的情況下。本設計選擇光電對管的方式,將輸出連接到單片機I/O口。
在各類的電子大賽中,直流電機驅動方式的選擇是多樣的。大致可以分為以下三種方案:采用大功率三極管級聯總稱驅動電路,這種方法靈活性較強,適用于各種不同種類的直流電機,但是由于大量三極管的使用,需要設計者有著較強的硬件設計和調試經驗,而且晶體管的數量較多,也必然造成可靠性較差、抗干擾能力不強;采用專用的電機驅動芯片,電子大賽中比較常用的包括L298N和L297N、33886芯片等等,這種芯片可以減少對硬件電路設計的考慮,安全性能等參數也無須擔心,缺點就是此類芯片都帶有局限性,對于一些極端使用條件或者大功率直流電機的驅動就無能為力了;最后一類就是一些大賽指定用的電機驅動設備,比如全國高職高專技能大賽機器人賽項,原因是電機額定功率大,小型驅動芯片無法滿足。由于本設計驅動的是小型直流電機,所以選取33886驅動芯片,連接到單片機定時器PWM輸出管腳。
四、算法實現
根據硬件電路與設計需要,對于算法的實現主要分為以下幾個子函數模塊:
1、電機轉速檢測子函數。電機轉速計算公式為:v=■×60r/min。N是相見條紋數為40,t是采樣時間為50ms,n就是單片機檢測到的脈沖數。
2、鍵盤輸入與顯示子函數。矩陣鍵盤的輸入負責設定PID初始值,采用常用芯片BC7281驅動,顯示模塊采用12864液晶顯示屏,顯示實時速度和時間。
3、PID算法子函數。負責定義PID參數結構體,計算當前誤差,存儲誤差,根據PID參數通過以上公式計算增量,并且返回給主函數。
4、主函數。負責I/O初始化,定時器1初始化程序,調用以上子函數,顯示轉速與時間。
五、系統調試與結果分析
限于篇幅,以上的硬件電路結構簡單,搭建過程不再贅述,我們將算法程序下載到ATmega16單片機中,分別在所限范圍中改變PID系數,測試超調量、調節時間和誤差。具體過程如下:
1.首先需要為P去一個預設值。設定方法是將I、D設為零,將P逐步增大。初調時,選小一些,然后慢慢調大,直到系統波動足夠小。可以加入階躍信號擾動,觀察輸出波形,直到最佳為止,并記錄下當前P值。
2.將以上所得到的P值乘以0.83,再由小到大增加I值,重復上述步驟,直到輸出波形滿足要求為止,并記錄下當前I值。
3.在可接受的范圍內將P的預設值提高,并在此過程中調整I值,直到得到滿意的結果。具體步驟是先保持I值不變,調整P值,觀察調整效果。如果結果有變好的趨勢則繼續調整,如果沒有效果,則將P值稍微增大一點,再去調整I值。這種方法就是“經驗法”,在一定規則下將不同的P、I值反復組合,直到滿意為止。并記下最終的P、I值,實際上到此步驟為止調節效果已經很明顯了。
4.最后調整D值,一般可以先把之前得到的P、I值調大一些,再去逐漸增加D值。重復上述步驟直到控制效果最佳。
通過以上方法,由計算機仿真軟件Proteus7Professional進行數據測試,對PID參數進行匹配。下表抽樣出7組數據對匹配過程進行演示,得出優化結果較好的三個值分別為Kp=3.5,KI=2.2,KD=0.3,將此參數帶入PID算法子函數中,進行硬件調試,優化效果明顯。
表PID參數匹配抽樣數據
六、總結與展望
一般來說,加入閉環電機控制策略,可以有效提高電機轉速控制效果。本文針對電子競賽中的輪式機器人設備,采用增量式數字PID算法,合理匹配Kp、TI、Td參數,并且進行了計算機模擬仿真和實際電路搭建,結果證明直流電機的轉速控制效果得到了相對優化。雖然由于PID算法的原理簡單所帶來的局限性,優化效果還能提升空間,但是考慮到參賽大學生甚至還有高職高專學生的實際能力和接受水平,這種方法如果能夠得到徹底掌握,事實證明對于提高比賽成績還是有著重要的作用的。在后續研究中,可以討論的方面是針對小車轉彎或者顛簸路面時,傳感器檢測到的波形會受到干擾,需要對PID算法進行改進,在前向通道加入預處理算法,與傳統PID算法相結合,將更加符合實際情況,優化效果也更顯著。
參考文獻:
[1]Li Xiaoli,Shi Longhui,Li Ji. Neural network PID control for a water level system[J]. International Journal of Modelling,Identification and Control, 2010,11(1-2):124-129
[2] Ziegler J G,Nichols N B. Optimum settings for automatic controllers[J]. Trans.ASME,1942,11(64):759-768
[3]Cominos P, Munro N. PID controllers: Recent tuning methods and design to specification [J] IEE Proceedings: Control Theory and Applications,2002,149(1):46-53
[4]彭露群,解侖,李崇堅等.自抗擾控制器在同步電機調速系統中的應用[J]北京科技大學學報,2012,34(1):107-111
[5]車立志.智能PID控制算法的研究與實現[D]濟南:山東科技大學,2008:12-15