基于單片機的教育機器人的設計
系統軟件設計
系統控制的實現是由軟件完成的。軟件設計基于keilC51編寫的,采用模塊化結構設計,各個功能子塊獨立。在結構上由1個主程序文件main.c和8個子程序文件(key.c、pid.c、detect.c、seg.c、speed.c和motor.c)組成。main.c主程序文件完成一系列任務的初始化工作和處理各個任務工作的協調。key.c文件完成按鍵中斷檢測和蜂鳴器報警任務;seg.c文件完成數碼管顯示;sp∞d.c文件完成電機速度檢測;motor.c完成PWM的配置和電機的控制;detect.c文件完成紅外光電傳感器陣列檢測;pid.c文件實現模糊參數自整定PID運算處理。其中定時器TO產生采樣周期T秒定時中斷,每間隔T秒中斷一次,完成一次PID控制計算,同時調用模糊參數自整定PID運算子程序對測試轉速和設定轉速進行差值計算得到輸出值,用于配置PWM的輸出,控制電機轉速。主程序和定時器TO中斷處理流程圖如圖4所示。
圖4 主程序和定時器TO中斷處理流程圖
4.1 模糊PID參數自整定控制器原理
PID參數模糊自整定是找出PID中3個參數與e和ec之間的模糊關系,在運行中通過不斷檢測e和ec,根據模糊控制原理來對3個參數進行在線修改,以滿足不同e和ec對控制參數的不同要求,而使被控對象有良好的動穩態性能。從系統的穩定性、響應速度、超調量和穩態精度等方面來考慮,Kp,Ki,Kd的作用如下:Kp的作用是加快系統的響應速度,提高系統的調節精度;Ki用于消除系統的穩態誤差;Kd改善系統的動態性能。圖5是PID控制器設計結構原理圖。
圖5 PID控制器設計結構原理圖
由PID各個參數對系統的影響得到:
(1)當誤差|e|較大時,說明誤差的絕對值較大,不論誤差的變化趨勢如何,都應該考慮控制器的Kp取較大值,以提高響應的快速性;而為防止因為|ec|瞬時過大,kd應該取較小的值;為控制超調,ki也應該取值很小。
(2)當誤差|e|在中等大小時,為保證系統的相應速度并控制超調,應減小Kp,Ki值應增大,Kd應適中。
(3)當誤差|e|較小時,為保證系統具有良好的穩態特性,應加大Kp、Ki的取值,同時為避免產生振蕩,Kd的取值應該和|ec|聯系起來。
教育機器人屬于典型的非線性、時變、模型不確定復雜系統。在實際中,機器人行駛道路有直道、大彎道、“S”型小彎道。利用教育機器人在相同的路況下其特性基本不變,可分別確定這3種道路參數下的最佳PID參數。其核心思想是把控制周期內的機器人狀態視為不變,只要控制周期較短,就可實現很好的控制效果。在機器人實際的行使中,每10ms進行1次控制,可滿足要求。
4.2 PID參數設定
模糊PID控制根據系統運行的不同狀態,考慮Kp、Ki、Kd三者的關聯,根據工程經驗并依據各參數的作用,通過大量的測試獲得本系統對應路況下的PID參數,實驗數據如下:
(1)在直道上系統取kp=3,Ki=5,kd=0,測試環境為一條長度5 m的長直道;
(2)在大彎道上系統取kp=10,Ki=1,kd=1,測試環境為直道進入一個半徑為100 cm的3/4圓;
(3)在“S”型小彎道上系統取kp=7,Ki=4,kd=3,測試環境為3個90度圓弧構成的"S"型小彎道。
5 結束語
用STC12C5A60S2單片機配合紅外光電陣列檢測模塊對直流電機執行參數自整定模糊PID控制器,解決了直流電機在巡航過程中產生抖動前進的控制問題,使得教育機器人在行走的過程中更平穩,且控制方法簡單、實用。
參考文獻:
[1].MAX810datasheethttp://www.dzsc.com/datasheet/MAX810_1019165.html.
[2].LM7805datasheethttp://www.dzsc.com/datasheet/LM7805_843721.html.
[3].L298Ndatasheethttp://www.dzsc.com/datasheet/L298N_442931.html.
評論