摘要:系統(tǒng)以AT89S52單片機(jī)為控制器,L298N芯片構(gòu)成電機(jī)驅(qū)動(dòng)電路,利用四個(gè)直流風(fēng)機(jī)完成對(duì)擺運(yùn)動(dòng)的控制。通過傳感器MPU6050采集擺的姿態(tài)數(shù)據(jù),同時(shí)將采集數(shù)據(jù)傳送給單片機(jī),單片機(jī)利用PID算法計(jì)算得到相應(yīng)控制量,輸出PWM脈沖控制驅(qū)動(dòng)電路驅(qū)動(dòng)風(fēng)機(jī)使擺完成規(guī)定運(yùn)動(dòng)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)性能較好,能滿足設(shè)計(jì)指標(biāo)要求。
關(guān)鍵詞:風(fēng)力擺;單片機(jī);L298N;PID算法
中圖分類號(hào):TP302.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)11-0216-02
Abstract: Control system is composed of MCU AT89S52, driver circuit L298N etc., and using four DC motors controlling the swing activity. Six axis angle sensor MPU6050 collects information about swing position, at the same time it sends data to MCU. MCU computes control variable by PID algorithm, then drive circuit drives the swing completing requested motion. Experiment demonstrating the system can achieve design requirements.
Key words: wind power swing; MCU; L298N; PID algorithm
1 風(fēng)力擺控制系統(tǒng)組成
系統(tǒng)由五部分構(gòu)成,分別是控制器AT89S52,驅(qū)動(dòng)電路L298N,風(fēng)力擺運(yùn)動(dòng)部件,擺角度檢測(cè)電路、人機(jī)交互鍵盤和LCD顯示器。
1.1 AT89S52控制器
AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在線可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器,時(shí)鐘頻率、存儲(chǔ)空間和基本接口完全可以滿足系統(tǒng)控制要求。
1.2 L298N直流風(fēng)機(jī)驅(qū)動(dòng)
L298N是一款高輸入電壓,具有雙H橋大電流輸出驅(qū)動(dòng)的集成電路,輸入信號(hào)兼容TTL電平,輸入電壓最大46V,輸出直流電流最大4A,可以驅(qū)動(dòng)直流電機(jī)、步進(jìn)電機(jī)或繼電器等執(zhí)行機(jī)構(gòu)。它具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許器件控制兩路輸入信號(hào),所以使用一片L298N芯片可以驅(qū)動(dòng)兩臺(tái)直流電機(jī)。通過輸入PWM脈沖,控制加在直流電機(jī)上的平均電壓,從而達(dá)到控制風(fēng)機(jī)轉(zhuǎn)速[1]。
1.3 MPU6050三維角度傳感器[2]
MPU是一款6軸運(yùn)動(dòng)檢測(cè)傳感器,包括三軸陀螺儀角速度檢測(cè),利用內(nèi)部16位A/D轉(zhuǎn)換器可以實(shí)現(xiàn)檢測(cè)X、Y、Z軸在±250°、±500°、±1000°與±2000°/s數(shù)字量可控輸出,三軸加速度檢測(cè)可以實(shí)現(xiàn)±2g,±4g,±8g和±16g范圍測(cè)量,利用16位A/D轉(zhuǎn)換器輸出相應(yīng)數(shù)字量。另外芯片內(nèi)部集成一個(gè)數(shù)字運(yùn)動(dòng)處理器DMP完成三維運(yùn)動(dòng)數(shù)據(jù)處理或運(yùn)動(dòng)姿態(tài)識(shí)別。
將MPU6050固定在風(fēng)力擺上,通過它監(jiān)測(cè)擺的角度,同時(shí)將采集的數(shù)據(jù)送給控制器進(jìn)行處理。MPU6050構(gòu)成的角度監(jiān)測(cè)電路如圖2。
1.4 LCD液晶顯示電路
系統(tǒng)采用12864LCD,用于顯示角度、幅度等參數(shù),為了節(jié)省單片機(jī)I/O口資源,LCD選擇串行通信方式完成信息傳遞。
1.5 按鍵電路
為了能夠?qū)︼L(fēng)力擺運(yùn)動(dòng)的模式、距離和偏轉(zhuǎn)角度等參數(shù)進(jìn)行設(shè)定,同時(shí)考慮電路簡潔,選擇獨(dú)立式結(jié)構(gòu)的五個(gè)鍵組成按鍵電路,分別接到單片機(jī)的I/O口上。
2 風(fēng)力擺控制算法
由于風(fēng)力擺是在運(yùn)動(dòng)狀態(tài)下控制器不斷地采集姿態(tài)數(shù)據(jù)并進(jìn)行判斷,然后控制風(fēng)機(jī)對(duì)擺的運(yùn)動(dòng)軌跡做出修正。這是一種典型的隨動(dòng)系統(tǒng),由于控制對(duì)象的準(zhǔn)確數(shù)學(xué)模型建立較為困難所以采用數(shù)字PID控制算法。
2.1 PID算法
PID算法就是對(duì)偏差的比例(P)、積分(I)和微分(D)進(jìn)行控制的調(diào)節(jié)算法[3]。數(shù)字化的PID算法如(1)。
[uk=Kpek+TTIj=0kej+TDTek-ek-1] (1)
其中uk是控制量,e(k)是控制偏差,Kp是比例系數(shù),T是系統(tǒng)采樣周期,TI是積分時(shí)間,TD是微分時(shí)間。
由于風(fēng)力擺的實(shí)時(shí)性要求較高,要能夠迅速對(duì)擺的運(yùn)動(dòng)做出響應(yīng),所以除了比例調(diào)節(jié)外,必須要有微分調(diào)節(jié),由于積分調(diào)節(jié)過程會(huì)增加調(diào)節(jié)時(shí)間,所以算法利用PD調(diào)節(jié)器進(jìn)行偏差計(jì)算得到控制量。
[e=set_angle-cur_angle]
其中e是擺的偏差,set_angle是擺的設(shè)定角度,cur_angle是采集到當(dāng)前擺的角度。
[u=Kpek+TDTek-ek-1=Kpek+Kd?ek] (2)
其中Kd是微分系數(shù)。通過上述算法式計(jì)算出控制量u(最后將控制量轉(zhuǎn)變?yōu)镻WM),利用計(jì)算出的PWM控制量控制風(fēng)機(jī)速度,同時(shí)反復(fù)調(diào)整Kp和Kd值使控制系統(tǒng)運(yùn)動(dòng)性能符合要求。
2.2 系統(tǒng)軟件流程
3 結(jié)論
實(shí)驗(yàn)結(jié)果表明,通過反復(fù)測(cè)試和調(diào)整PD調(diào)節(jié)器參數(shù),風(fēng)機(jī)可控制擺做指定長度直線運(yùn)動(dòng)、指定角度直線運(yùn)動(dòng)和指定半徑的圓周運(yùn)動(dòng),在穩(wěn)定性、準(zhǔn)確性和快速性上能夠達(dá)到設(shè)計(jì)要求。
參考文獻(xiàn):
[1] 藺鵬.電磁控制運(yùn)動(dòng)裝置設(shè)計(jì)[J].電腦知識(shí)與技術(shù),vol10(16):3937-2940
[2] Invensen Inc. MPU6050datasheet[DB/OL]. www.invensense.com,2013.
[3] 楊寧,黃元峰.微機(jī)控制技術(shù)[M].2版 北京:高等教育出版社,2002.