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