何其文
摘要
本文設(shè)計(jì)了一種風(fēng)板控制裝置,選用單片機(jī)STM32F103V8T6作為控制器,程序采用自適應(yīng)PID控制算法。STM32F103V8T6通過對(duì)風(fēng)板預(yù)置轉(zhuǎn)角與實(shí)際轉(zhuǎn)角的偏差進(jìn)行PID運(yùn)算,輸出兩路占空比互補(bǔ)的脈沖寬度調(diào)制信號(hào)(PWM),分別驅(qū)動(dòng)兩臺(tái)風(fēng)機(jī),由此改變風(fēng)板轉(zhuǎn)動(dòng)的角度,使風(fēng)板轉(zhuǎn)動(dòng)角度與預(yù)置轉(zhuǎn)角之間的偏差接近為零。
【關(guān)鍵詞】STM32F103V8T6 自適應(yīng)PID PWM
1 系統(tǒng)總體設(shè)計(jì)方案
本系統(tǒng)以單片機(jī)STM32F103V8T6為風(fēng)板控制核心,程序采用自適應(yīng)PID控制算法。風(fēng)板預(yù)置角度由4*4矩陣式鍵盤設(shè)定,風(fēng)板的實(shí)際轉(zhuǎn)動(dòng)角度由兩路傳感器采樣并經(jīng)程序處理后得到。STM32F103V8T6通過對(duì)風(fēng)板預(yù)置轉(zhuǎn)角與實(shí)際轉(zhuǎn)角的偏差進(jìn)行PID運(yùn)算,輸出兩路占空比互補(bǔ)的脈沖寬度調(diào)制信號(hào)(PWM),分別驅(qū)動(dòng)兩臺(tái)風(fēng)機(jī),由此改變風(fēng)板轉(zhuǎn)動(dòng)的角度,使風(fēng)板轉(zhuǎn)動(dòng)角度與預(yù)置轉(zhuǎn)角之間的偏差接近為零。為精確測(cè)量風(fēng)板實(shí)際轉(zhuǎn)動(dòng)角度,采用兩路傳感器電路,其中一路數(shù)據(jù)由MMA7361采樣實(shí)現(xiàn),另一路由50K自制電位器采樣并經(jīng)AD7705進(jìn)行模數(shù)轉(zhuǎn)換后輸入到單片機(jī),如圖1所示。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 角度檢測(cè)電路設(shè)計(jì)與檢測(cè)原理
本系統(tǒng)采用雙角度傳感器檢測(cè)風(fēng)板的轉(zhuǎn)角。MMA7361加速度傳感器輸出βl,自制50K電位器與AD7705測(cè)量得到β2。β1與β2同時(shí)輸入到單片機(jī),利用程序?qū)崿F(xiàn)角度準(zhǔn)確測(cè)量。當(dāng)△β=βl-β2在允許范圍時(shí),取最終的測(cè)量角度為β=(βl+β2)/2,若△β超出精度要求,則重新采樣。MMA7361檢測(cè)電路如圖2所示。
MMA7361是一款低功耗、低寄生電容的微型機(jī)械加速度計(jì),具有尺寸小,精度高等特征,但其抗干擾能力弱。本系統(tǒng)另外設(shè)計(jì)了一路傳感器,由50K電位器電路采集角度信號(hào)后經(jīng)AD7705進(jìn)行模數(shù)轉(zhuǎn)換輸入到單片機(jī),電路如圖3所示。
2.2 風(fēng)板驅(qū)動(dòng)電路設(shè)計(jì)
STM32F103V8T6采用自適應(yīng)PID算法實(shí)現(xiàn)對(duì)風(fēng)扇電機(jī)轉(zhuǎn)速的控制,通過輸出兩路占空比互補(bǔ)的PWM波分別驅(qū)動(dòng)兩臺(tái)風(fēng)機(jī)的電動(dòng)機(jī),實(shí)現(xiàn)對(duì)風(fēng)板角度的控制,控制電路如圖4所示。
PWM脈寬調(diào)制方法是直流電機(jī)轉(zhuǎn)速控制中最重要也是最常見的一種驅(qū)動(dòng)方式。采樣控制理論中有一個(gè)重要的結(jié)論:沖量相等而形狀不同的窄脈沖加在慣性環(huán)節(jié)上時(shí),其效果基本相同,這正是PWM控制技術(shù)的理論基礎(chǔ)。設(shè)占空比為100%的PWM信號(hào)經(jīng)驅(qū)動(dòng)器驅(qū)動(dòng)后其有效電壓幅值為U,則占空比為a的PWM波其對(duì)應(yīng)的有效值輸出Ua=a*U。本系統(tǒng)驅(qū)動(dòng)電路采用8550三極管和場(chǎng)效應(yīng)管IRF540作為開關(guān)器件,易于與處理器接口,使用簡單。
在一個(gè)PWM周期里,電機(jī)的電樞承受單極性的電壓,電機(jī)的速度由PWM的脈寬決定。根據(jù)PWM占空比的大小控制晶體管的開關(guān)狀態(tài)來調(diào)節(jié)的電機(jī)的轉(zhuǎn)速。當(dāng)占空比為0時(shí),即電機(jī)停止轉(zhuǎn)動(dòng)。當(dāng)占空比為百分之百時(shí),電機(jī)處于全速運(yùn)轉(zhuǎn)狀態(tài),風(fēng)力達(dá)到最大,從而驅(qū)動(dòng)風(fēng)板偏轉(zhuǎn)角度達(dá)到最大。電機(jī)的轉(zhuǎn)動(dòng)速度由PWM的占空比的寬度決定。占空比越大,風(fēng)機(jī)的風(fēng)量越大;占空比越小,則風(fēng)量越小。
電路中二極管起續(xù)流保護(hù)作用。由于電機(jī)具有較大的感性,電流不能突變,若忽然將電流切斷將在功率管兩端產(chǎn)生巨大的電壓,損壞器件。為了進(jìn)一步提高抗干擾能力我們還使用了PC817高速光電耦合器件組成的隔離電路和控制電路和動(dòng)力電路進(jìn)行電氣隔離。
2.3 聲光報(bào)警模塊電路的設(shè)計(jì)原理
聲光報(bào)警電路的電路原理圖如圖5所示。P3是接單片機(jī)I/O口,三極管的工作條件要求是“發(fā)射結(jié)正偏,集電結(jié)反偏”。當(dāng)單片機(jī)為高點(diǎn)平時(shí),電流流過電阻R1到三極管9012的基極,處于截止?fàn)顟B(tài),蜂鳴器和發(fā)光二極管均不發(fā)聲和指示報(bào)警。
2.4 鍵盤電路設(shè)計(jì)
鍵盤采用4*4的行列式鍵盤。P4的低4位作為行線輸出,P4的高4位作為列線輸入。掃描采用定時(shí)方式,單片機(jī)每20ms掃描一次。16個(gè)按鍵分成兩大功能區(qū),其中4個(gè)作為功能選擇鍵菜單功能(并作為數(shù)值輸入確認(rèn)鍵)、按鍵退出、基本功能菜單、發(fā)揮部分功能菜單,10個(gè)作為轉(zhuǎn)角數(shù)值輸入,可以以10進(jìn)制輸入風(fēng)板轉(zhuǎn)角設(shè)定值。
2.5 顯示電路設(shè)計(jì)與原理
12864液晶顯不功能強(qiáng)大,可顯不各種字體的數(shù)字、漢字、圖像,還可以自定義顯示內(nèi)容,對(duì)于本系統(tǒng)可以通過鍵盤可以在液晶上制作各種功能菜單,文字符號(hào)和圖形。使得系統(tǒng)具有人性化設(shè)計(jì)。顯示原理圖如圖6所示。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)采用C語言編程,軟件開發(fā)采用KdlC軟件平臺(tái)進(jìn)行調(diào)試。
3.1 系統(tǒng)程序說明
開機(jī)后,系統(tǒng)采集并顯示當(dāng)前風(fēng)板角度,當(dāng)有按鍵進(jìn)行功能選擇時(shí),分別進(jìn)入“基本功能”、“發(fā)揮部分”兩個(gè)不同的子程序。主程序流程圖如圖7所示。進(jìn)入基本功能模塊或發(fā)揮模塊后,程序先對(duì)兩路傳感器采集到的數(shù)據(jù)進(jìn)行處理,采樣數(shù)據(jù)處理后與鍵盤預(yù)置角度比較,對(duì)此偏差進(jìn)行自適應(yīng)PID運(yùn)算,輸出兩路占空比互補(bǔ)的PWM波,此子程序流程圖如圖8所示。
3.2 控制算法設(shè)計(jì)與實(shí)現(xiàn)
風(fēng)板轉(zhuǎn)角的控制采用自適應(yīng)PID控制算法,其中,PID算法中各參數(shù)均由程序通過算法自行設(shè)定。PID控制框圖如圖9所示。離散PID算法如式(1)所示。
被控對(duì)象風(fēng)板的轉(zhuǎn)角由按鍵設(shè)定給定值θ,加速度傳感器測(cè)量風(fēng)板當(dāng)前轉(zhuǎn)動(dòng)角度得到θ1(k),單片機(jī)對(duì)θ與θ1(k)作減法運(yùn)算,得到偏差△θ(k),式(1)中的e(k)即為△θ(k)。單片機(jī)執(zhí)行PID算法實(shí)現(xiàn)對(duì)被控風(fēng)板轉(zhuǎn)角的控制。
4 總結(jié)
本系統(tǒng)以STM32F103V8T6單片機(jī)為核心的風(fēng)板控制系統(tǒng),通過HD控制算法的優(yōu)化,完全達(dá)到設(shè)計(jì)目的。系統(tǒng)運(yùn)行平穩(wěn),控制精度高,硬件電路簡單。
參考文獻(xiàn)
[1]何希才.常用電子電路應(yīng)用365例[M].北京:電子工業(yè)出版社,2006.
[2]劉仁宇.模擬電子技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.
[3]孫肖子.實(shí)用電子電路手冊(cè)(模擬電路部分)[M].北京:高等教育出版社,1991.
[4]張?chǎng)?,王翠?C語言程序設(shè)計(jì)基礎(chǔ)[M].北京:北京理工大學(xué)出版社,2006.
[5]徐仁貴,廖哲智.單片機(jī)微型計(jì)算機(jī)應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2007.