金冬子 朱軍
摘要:本系統(tǒng)是由STM32控制模塊、姿態(tài)檢測(cè)模塊、風(fēng)力擺模塊、液晶顯示模塊以及風(fēng)力擺機(jī)械結(jié)構(gòu)組成的閉環(huán)控制系統(tǒng)。其實(shí)現(xiàn)了風(fēng)力擺在直流風(fēng)機(jī)為動(dòng)力控制下迅速啟擺、直線運(yùn)動(dòng)、恢復(fù)靜止的功能,并能精準(zhǔn)地繪制不同直線,且在受風(fēng)力影響后能夠快速恢復(fù)畫圓狀態(tài),具有很好的重復(fù)性。姿態(tài)檢測(cè)模塊MPU6050采集風(fēng)力擺姿態(tài)角,STM32處理姿態(tài)角數(shù)據(jù)后通過PID精確算法調(diào)節(jié)直流風(fēng)機(jī)以控制風(fēng)力擺。另外,本系統(tǒng)具有良好的人機(jī)交互界面,各參數(shù)及測(cè)試模式可由按鍵輸入并通過液晶顯示,穩(wěn)定性高、反應(yīng)速度快。
關(guān)鍵詞: PID算法;MPU6050;STM32
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)23-0180-03
Abstract: This system is composed of STM32 control module, attitude detection module, the wind pendulum module, LCD module, and the machinery structure. In fact, the wind pendulum is now under the direct current fan for the dynamic control of the fast swing, linear motion, restore the stationary state, and it can accurately draw different lines, even though under the wind influence, it has a very good repeatability. Attitude detection module MPU6050 collects the attitude angle of the wind pendulum, and the STM32 processing attitude angle data is adjusted by PID to control the Wind pendulum. In addition, the system has a good man-machine interface, the parameters and test mode can be input by the key and display through the LCD, the stability is high, the reaction rate is fast.
Key words: PID Algorithm; MPU6050; STM32
風(fēng)力擺系統(tǒng)是自動(dòng)控制系統(tǒng)中的一個(gè)典型的研究對(duì)象。在工業(yè)和環(huán)境監(jiān)測(cè)等行業(yè)有著較為廣泛的應(yīng)用前景。本系統(tǒng)通過數(shù)字式PID算法可實(shí)現(xiàn)風(fēng)力擺的圓周運(yùn)動(dòng)和定向線段的運(yùn)動(dòng),并且系統(tǒng)具有一定的穩(wěn)定性和精確度。
1 系統(tǒng)方案
1.1總體方案
本風(fēng)力擺控制系統(tǒng)主要包括單片機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊、姿態(tài)采集模塊、風(fēng)力擺模塊、液晶顯示模塊、人機(jī)交互系統(tǒng)以及風(fēng)力擺機(jī)械結(jié)構(gòu)組成。風(fēng)力擺由萬(wàn)向節(jié)連接碳纖維管再連接風(fēng)機(jī)組成。位于碳桿最下方的姿態(tài)采集模塊不斷采集風(fēng)力擺當(dāng)前姿態(tài)角并反饋給主控芯片STM32。STM32控制液晶顯示姿態(tài)角數(shù)據(jù)并處理數(shù)據(jù)后通過控制PWM波占空比控制風(fēng)機(jī)轉(zhuǎn)速實(shí)現(xiàn)對(duì)風(fēng)力擺的控制。本系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
1.2方案論證
1.2.1風(fēng)力擺運(yùn)動(dòng)控制方案的選擇與論證
方案一:將三個(gè)直流風(fēng)機(jī)兩兩分別成120°角,作為動(dòng)力系統(tǒng)。此方案有利于減輕擺自身的重力,但由于形成等邊三角形,相鄰兩風(fēng)機(jī)夾角過大,依舊不利于精確控制風(fēng)力擺狀態(tài)。
方案二:采用四只直流風(fēng)機(jī)作為動(dòng)力系統(tǒng)。四只風(fēng)機(jī)尾部靠于擺桿,朝向成順時(shí)針排列,通過控制四只風(fēng)機(jī)轉(zhuǎn)速控制風(fēng)力擺當(dāng)前狀態(tài),此方案風(fēng)力擺負(fù)載最重,但對(duì)于控制風(fēng)力擺狀態(tài)最為精確,且動(dòng)力最足。
綜合上述比較,考慮系統(tǒng)的快速工作以及精確控制,本系統(tǒng)采用方案二。
1.2.2角度測(cè)量方案的選擇與論證
方案一:采用二維平面內(nèi)角位移傳感器測(cè)量風(fēng)力擺轉(zhuǎn)動(dòng)時(shí)關(guān)于靜止?fàn)顟B(tài)時(shí)的偏轉(zhuǎn)角。該方案軟件處理繁瑣,且二維平面內(nèi)的角位移傳感器不利于測(cè)量風(fēng)力擺的空間位置,不利于實(shí)現(xiàn)對(duì)風(fēng)力擺的精確控制。
方案二采用三維角度傳感器。用三維角度傳感器時(shí)刻測(cè)量風(fēng)力擺當(dāng)前姿態(tài)通過處理采集的姿態(tài)角數(shù)據(jù)控制風(fēng)機(jī)帶動(dòng)擺運(yùn)動(dòng)。此方案可精確測(cè)量風(fēng)力擺當(dāng)前姿態(tài),實(shí)現(xiàn)對(duì)風(fēng)力擺的精確控制。
綜合比較上述兩個(gè)方案,本系統(tǒng)采用方案二。
1.2.3 控制算法方案的選擇與論證
方案一:采用模糊控制算法, 模糊控制有許多良好的特性,它不需要事先知道對(duì)象的數(shù)學(xué)模型,具有系統(tǒng)響應(yīng)快、超調(diào)小、過渡過程時(shí)間短等優(yōu)點(diǎn),但編程復(fù)雜,數(shù)據(jù)處理量大。
方案二:采用經(jīng)驗(yàn)法,弱化加速度計(jì)的作用,根據(jù)多次試驗(yàn)經(jīng)驗(yàn)將距離、角度等變量與PWM輸出參數(shù)相對(duì)應(yīng)并存儲(chǔ)在數(shù)組中等待調(diào)用,優(yōu)點(diǎn)是可以簡(jiǎn)化算法與程序,缺點(diǎn)是適應(yīng)環(huán)境能力差。
方案三:采用PID算法,按比例、積分、微分的函數(shù)關(guān)系,進(jìn)行運(yùn)算,將其運(yùn)算結(jié)果用以輸出控制。優(yōu)點(diǎn)是控制精度高,且算法簡(jiǎn)單明了。對(duì)于本系統(tǒng)的控制已足夠精確,與方案一相比節(jié)約了單片機(jī)的資源和運(yùn)算時(shí)間。
綜合比較上述三個(gè)方案,本系統(tǒng)采用方案三。
2 軟件設(shè)計(jì)
2.1軟件流程圖
軟件流程如圖2所示,首先開啟對(duì)姿態(tài)傳感器的檢測(cè),確定是否產(chǎn)生中斷。產(chǎn)生中斷,則對(duì)數(shù)據(jù)進(jìn)行接受。四路PWM波控制四路風(fēng)機(jī)的轉(zhuǎn)動(dòng)。接下來(lái),用戶通過按鍵對(duì)風(fēng)機(jī)進(jìn)行模式的選擇。主要有兩個(gè)模式,分別為圓周運(yùn)動(dòng)和定向線段。根據(jù)姿態(tài)傳感器的數(shù)據(jù),調(diào)用PID算法調(diào)整PWM波的輸出,調(diào)節(jié)風(fēng)力姿態(tài)。預(yù)先可以通過姿態(tài)傳感器進(jìn)行實(shí)驗(yàn),設(shè)定一個(gè)姿態(tài)變化幅度大小的閾值。當(dāng)超過設(shè)定值時(shí),認(rèn)為存在干擾,進(jìn)入防干擾模式。
2.2 PID控制規(guī)律
2.2.1 數(shù)學(xué)表達(dá)
2.2.2 PID原理詳解
比例控制規(guī)律P:采用P控制規(guī)律能較快地克服擾動(dòng)的影響,它的作用于輸出值較快,但不能很好穩(wěn)定在一個(gè)理想的數(shù)值,不良的結(jié)果是雖較能有效的克服擾動(dòng)的影響,但有余差出現(xiàn)。它適用于控制通道滯后較小、負(fù)荷變化不大、控制要求不高、被控參數(shù)允許在一定范圍內(nèi)有余差的場(chǎng)合。
比例積分控制規(guī)律(PI):在工程中比例積分控制規(guī)律是應(yīng)用最廣泛的一種控制規(guī)律。積分能在比例的基礎(chǔ)上消除余差,它適用于控制通道滯后較小、負(fù)荷變化不大、被控參數(shù)不允許有余差的場(chǎng)合。
比例微分控制規(guī)律(PD):微分具有超前作用,對(duì)于具有容量滯后的控制通道,引入微分參與控制,在微分項(xiàng)設(shè)置得當(dāng)?shù)那闆r下,對(duì)于提高系統(tǒng)的動(dòng)態(tài)性能指標(biāo),有著顯著效果。因此,對(duì)于控制通道的時(shí)間常數(shù)或容量滯后較大的場(chǎng)合,為了提高系統(tǒng)的穩(wěn)定性,減小動(dòng)態(tài)偏差等可選用比例微分控制規(guī)律。
2.2.3 PID算法應(yīng)用于本系統(tǒng)
對(duì)于該系統(tǒng)來(lái)說(shuō),風(fēng)力擺轉(zhuǎn)動(dòng)角度比例 P對(duì)風(fēng)力擺角速度進(jìn)行比例調(diào)整,即對(duì)舵機(jī)轉(zhuǎn)動(dòng)速度調(diào)整。比例越大,調(diào)節(jié)速度越快。但不能過大,過大可能造成四風(fēng)機(jī)因工作狀態(tài)突變而是擺桿不穩(wěn)定。角度誤差積分 I使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無(wú)差度。加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動(dòng)態(tài)響應(yīng)變慢。本系統(tǒng)追求更快更穩(wěn)完成對(duì)風(fēng)力擺的控制,因此,本系統(tǒng)對(duì)積分調(diào)節(jié)的需要就非常弱。即保證在不需要時(shí)系統(tǒng)不會(huì)受到影響。角度微分D微分作用反映風(fēng)力擺角度的變化率,即角速度。具有預(yù)見性,能預(yù)見偏差變化的趨勢(shì)因此能產(chǎn)生超前的控制作用,在偏差還沒有形成之前,已被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動(dòng)態(tài)性能。在微分時(shí)間選擇合適情況下,減少調(diào)節(jié)時(shí)間。
3 硬件設(shè)計(jì)
3.1機(jī)械結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)采用四只直流風(fēng)機(jī)作為動(dòng)力系統(tǒng)。四只風(fēng)機(jī)取尾部靠于擺桿,各風(fēng)機(jī)依次呈09°排列,通過控制四只風(fēng)機(jī)轉(zhuǎn)速控制風(fēng)力擺當(dāng)前狀態(tài),此方案風(fēng)力擺負(fù)載最重。擺桿由碳纖維管制作,長(zhǎng)度約68cm,頂部與一萬(wàn)向節(jié)相連接固定于金屬支架上。在擺桿底部放置一小型激光發(fā)射器。便于精確判別擺桿運(yùn)動(dòng)狀態(tài)。
3.2電路設(shè)計(jì)
3.2.1主控電路板
該電路基于STM32核心板,并在此基礎(chǔ)上增加了程序下載、按鍵模式選擇、四路PWM輸出、蜂鳴器報(bào)警等功能,覆蓋了本系統(tǒng)對(duì)硬件電路的需求,如圖4所示。
3.2.2電機(jī)驅(qū)動(dòng)電路板
本系統(tǒng)中,直流風(fēng)機(jī)作為動(dòng)力系統(tǒng)需要較大的驅(qū)動(dòng)電流及穩(wěn)定的驅(qū)動(dòng)電壓,并且需要對(duì)四個(gè)風(fēng)機(jī)進(jìn)行驅(qū)動(dòng),故本系統(tǒng)對(duì)電機(jī)驅(qū)動(dòng)提出了較高要求,該電路利用主控芯片產(chǎn)生PWM波[4-9]控制MOS管通斷成功實(shí)現(xiàn)了對(duì)大電流直流風(fēng)機(jī)的驅(qū)動(dòng),如圖5所示。
4 系統(tǒng)測(cè)試
4.1測(cè)試方法及儀器
測(cè)試方法:控制變量法、理想化方法、等效替代法
儀器:低頻毫伏表、數(shù)字風(fēng)速儀、水平儀、萬(wàn)用表、秒表、量角器、尺子
4.2測(cè)試結(jié)果
4.2.1驅(qū)動(dòng)風(fēng)力擺工作
在15s內(nèi)使激光筆穩(wěn)定地在地面畫出一條長(zhǎng)度不短于 50cm的直線段,來(lái)回五次,記錄其最大偏差距離。測(cè)試結(jié)果如表1所示。
4.2.3設(shè)置風(fēng)力擺自由擺時(shí)角度,驅(qū)動(dòng)風(fēng)力擺工作
記錄不同角度畫出20cm直線時(shí)的最大偏差角度。測(cè)試結(jié)果如表3所示。
4.2.4將風(fēng)力擺拉起一定角度放開,驅(qū)動(dòng)風(fēng)力擺工作
測(cè)試風(fēng)力擺制動(dòng)達(dá)到靜止?fàn)顟B(tài)所用時(shí)間。測(cè)試結(jié)果如表4所示。
5 結(jié)論
通過系統(tǒng)測(cè)試可知,本系統(tǒng)基本達(dá)到目標(biāo),具有一定的精確度和穩(wěn)定度??梢赃M(jìn)行定向線段和圓周運(yùn)動(dòng),方便運(yùn)用于很多對(duì)物體運(yùn)動(dòng)進(jìn)行控制的場(chǎng)景。今后,將針對(duì)系統(tǒng)進(jìn)行完善,以達(dá)到更多方式的運(yùn)動(dòng)并且提高運(yùn)動(dòng)的精準(zhǔn)性和穩(wěn)定性。
參考文獻(xiàn):
[1] 賈誠(chéng)安,葉林,葛俊峰,等.一種基于STM32和ADS1248的數(shù)字PID溫度控制系統(tǒng)[J].傳感器與微系統(tǒng),2015,34(11):103-105
[2] 郭智源,韓建,張西鵬,張彥龍.基于STM32的PID和PWM溫度控制系統(tǒng)研究[J].科學(xué)技術(shù)與工程,2011,11(16),3805-3807
[3] 王毅,王平,蘇偉達(dá),等. 基于數(shù)字PID控制的直流電機(jī)控制系統(tǒng)的設(shè)計(jì)[J]. 福建師范大學(xué)學(xué)報(bào),2010,26(4):59-62.
[4] 陳景賢. 單片機(jī)控制的直流電機(jī)PWM 調(diào)速控制器設(shè)計(jì)[J]. 湛江師范學(xué)院學(xué)報(bào),2008,29(3):123-126.
[5] 彭志永,穆學(xué)楨,孫艷華. 基于DSP的無(wú)刷直流電機(jī)控制系統(tǒng)[J]. 測(cè)控技術(shù),2008,27(4):44-46.
[6] 張立麗,王洪波. 基于PIC單片機(jī)的直流電機(jī)控制器的設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2009,30(11):2681-2683.
[7] 楊靖. 用單片機(jī)控制的直流電機(jī)調(diào)速系統(tǒng)[J]. 機(jī)床電器,2008(1):45-47.
[8] 茹占軍,謝家興. 基于AT89S52單片機(jī)直流電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)[J]. 軟件導(dǎo)刊,2010,9(8):106-107.
[9] 王曉明.電動(dòng)機(jī)的單片機(jī)控制[M]. 北京:航空航天大學(xué)出版社, 2007.