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