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