帆板角度控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘要 系統(tǒng)采用單片機(jī)(STC89C54RD)作為主要控制器件,采用HEDS9701槽型光耦加360線光柵片組成的編碼器獲取帆板的角度信息,由單片機(jī)實(shí)時(shí)采集編碼器的正交信號(hào),從而獲得實(shí)際角度。根據(jù)實(shí)際角度和目標(biāo)角度數(shù)值,通過PID算法獲得控制參量,調(diào)整PWM的參數(shù),從而控制風(fēng)扇轉(zhuǎn)速,實(shí)現(xiàn)對(duì)帆板的角度修正和動(dòng)態(tài)控制。
關(guān)鍵詞 單片機(jī);角度控制;PID
帆板控制系統(tǒng),通過對(duì)風(fēng)扇轉(zhuǎn)速的控制,調(diào)節(jié)風(fēng)力大小,改變遮風(fēng)板轉(zhuǎn)角θ,顯示范圍為0°~60°,分辨力為2°,絕對(duì)誤差≤5°;當(dāng)間距d=7~15 cm時(shí),通過操作鍵盤控制風(fēng)力大小,控制帆板轉(zhuǎn)角θ,θ在0°~60°,要求控制過程在5s內(nèi)完成,并實(shí)時(shí)顯示,且有聲光提示。如圖1所示。
1 總體方案確定
帆板控制系統(tǒng)總體框圖主要由單片機(jī)、角度信息采集模塊、鍵盤輸入模塊、顯示模塊、電機(jī)驅(qū)動(dòng)模塊以及電源模塊構(gòu)成。系統(tǒng)設(shè)計(jì)總體框圖如圖2所示。
(1)角度信息采集模塊:采用HEDS9701槽型光耦加360線光柵片組成的編碼器獲取帆板的角度信息,分辨率為1°,符合設(shè)計(jì)要求,且已經(jīng)是數(shù)字信號(hào),無需通過A/D采用模塊輸入單片機(jī)系統(tǒng),穩(wěn)定可靠。
(2)電機(jī)驅(qū)動(dòng)模塊:選用直流電機(jī)風(fēng)扇,工作電流1.2 A,工作電壓12 V。經(jīng)測(cè)試,風(fēng)力能將帆板吹至約80°。采用單片機(jī)STC89C54作為主控芯片,通過編碼器輸出的正交信號(hào)可以實(shí)現(xiàn)直流電機(jī)的正反轉(zhuǎn)控制,通過PWM方式控制風(fēng)扇轉(zhuǎn)速,從而實(shí)現(xiàn)對(duì)帆板的角度控制。
(3)控制系統(tǒng)的選擇:選用STC89C54作為主控器件,STC系列單片機(jī)是紅星科技生產(chǎn)的單時(shí)鐘、機(jī)器周期(IT)單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051。
2 理論分析與計(jì)算
2.1 角度信號(hào)的產(chǎn)生與計(jì)算
角度通過編碼器輸出的正交信號(hào)進(jìn)行計(jì)算獲得。如圖3所示,A、B分別是傳感器輸出的兩路正交信號(hào)。
如表1所示,正交信號(hào)A和B共同組成了4種情況,如當(dāng)前A為1;B為0時(shí);信號(hào)變?yōu)锳為0;B為0,則帆板往反方向轉(zhuǎn),角度減少1°;信號(hào)變?yōu)锳為0,B為1,則帆板往正方向轉(zhuǎn),角度增加1°;以此類推,正反方向各共有4種情況。
2.2 PID控制直流電機(jī)算法介紹
設(shè)計(jì)采用PI轉(zhuǎn)速控制,PI控制實(shí)現(xiàn)采用常規(guī)方法,并包含了一個(gè)(Kc*Excess)項(xiàng)以抑制積分飽和,如圖4所示。
相應(yīng)程序?yàn)?br />
3 硬件電路設(shè)計(jì)
3.1 電源模塊
采用開關(guān)電源12 V作為直流電源,經(jīng)過電容濾波、7805穩(wěn)壓后得到+5 V電壓,提供給單片機(jī)、存儲(chǔ)器24C02的供電,如圖5所示。
3.2 風(fēng)扇控制電路
圖6為風(fēng)扇控制電路,F(xiàn)S-和+12 V接風(fēng)扇,當(dāng)P23為0時(shí),Q2截止,Q1導(dǎo)通,電機(jī)運(yùn)轉(zhuǎn)。當(dāng)P23為1時(shí),Q2導(dǎo)通,Q1截止,電機(jī)不運(yùn)轉(zhuǎn)。
3.3 顯示按鍵電路
如圖7所示,系統(tǒng)由兩組4位共陰數(shù)碼管和4個(gè)按鍵組成,DPY1顯示測(cè)得的角度,DPY2顯示設(shè)定或改變的角度。4個(gè)按鍵分別為設(shè)定鍵,啟動(dòng)/停止鍵,-1鍵和+1鍵。74LS145為4線-10線譯碼器/驅(qū)動(dòng)器,A、B、C、D連單片機(jī)P00~P03,0~9分別連接兩組數(shù)碼管、鍵盤和發(fā)光二極管,其中數(shù)碼管的位控制和按鍵是共用的。74HC164是串行并出移位寄存器,提供接數(shù)碼管的段碼信號(hào)。
4 軟件部分
總程序流程圖如圖8所示,程序采用模塊化設(shè)計(jì),分成幾部分的獨(dú)立子程序。首先是按鍵判斷子程序,采用矩陣式按鍵的掃描方式來編寫程序,當(dāng)有鍵按下時(shí)把相應(yīng)的鍵值存儲(chǔ)在RAM中,主程序根據(jù)鍵值來判斷執(zhí)行哪一段程序。設(shè)定數(shù)據(jù)有兩種,一種是設(shè)定P值0~100%,對(duì)應(yīng)帆板的角度,另外一種是設(shè)定A在0°~60°,同樣,帆板的轉(zhuǎn)角也會(huì)到達(dá)相應(yīng)的設(shè)定值,然后進(jìn)行數(shù)據(jù)顯示處理,然后調(diào)整PI值進(jìn)行風(fēng)扇轉(zhuǎn)速控制輸出,如果帆板進(jìn)入設(shè)定值的絕對(duì)值5°內(nèi),則紅色發(fā)光二極管閃亮3次,同時(shí)蜂鳴器響3下;如果沒有進(jìn)入,則發(fā)光二極管不亮、蜂鳴器不響。
T0中斷是數(shù)據(jù)顯示和按鍵檢測(cè)、PWM數(shù)據(jù)處理、蜂鳴器輸出程序。如圖9所示。
T1中斷是正交編碼器信號(hào)檢測(cè)和處理程序,如圖10所示。
T2中斷產(chǎn)生PWM,脈寬調(diào)整。如圖11所示。
5 系統(tǒng)調(diào)試與測(cè)試結(jié)果
(1)用手轉(zhuǎn)動(dòng)帆板,能顯示帆板的轉(zhuǎn)角度數(shù)。角度范圍為0°~60°,分辨力為1°,經(jīng)測(cè)試系統(tǒng)誤差值為0°。(2)當(dāng)間距d=7~15 cm時(shí),通過操作鍵盤控制風(fēng)力大小,控制帆板轉(zhuǎn)角θ,θ在0°~60°,要求控制過程在5 s內(nèi)完成,并實(shí)時(shí)顯示,且有聲光提示。
6 結(jié)束語
經(jīng)測(cè)試,系統(tǒng)性能達(dá)到了設(shè)計(jì)要求,帆板角度控制屬于自動(dòng)化控制類,設(shè)計(jì)采用槽型光耦加360線光柵片組成的傳感器能精確定位角度,是一種良好的角度控制傳感器,再利用PID算法控制PWM參量,從而控制風(fēng)扇的轉(zhuǎn)速。