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