王桂芳
摘要:本文利用FPGA可編程邏輯器件實現(xiàn)了對直流電機控制系統(tǒng)的設(shè)計。在熟悉直流電機工作原理及特性的前提下,掌握PWM控制原理,實現(xiàn)了對直流電機的速度、旋轉(zhuǎn)方向控制和速度測量。本系統(tǒng)使用VHDL編程,利用嵌入式邏輯分析儀進行測試,驗證設(shè)計的正確性。
關(guān)鍵詞: 直流電機; PWM; FPGA; VHDL
【Abstract】 In this paper,the design of DC motor control system is realized by FPGA programmable logic device. Under the premise of familiarizing with the principles and characteristics of DC motor, the PWM control is grasped, and the speed control, rotation direction control and speed measurement of DC motor are realized. The system described in the VHDL language, and the embedded logic analyzer is used for test to verify the correctness of the design.
【Key words】 ?DC motor; Pulse Width Modulation; Field Programmable Gate Array; Very High Speed Integrated Circuit Hardware Description Language
0 引 言
直流電機具有啟制動性能良好、速度易控制、能夠?qū)崿F(xiàn)較寬范圍內(nèi)的平滑調(diào)速等特點,在工業(yè)中得到廣泛應(yīng)用[1]。直流電機速度控制最常用的是電樞電壓控制法,通過調(diào)節(jié)電阻改變端電壓達到調(diào)速目的。PWM(Pulse Width Modulation,脈寬調(diào)制)控制技術(shù)以其控制簡單靈活和動態(tài)響應(yīng)好的優(yōu)點成為電力電子技術(shù)廣泛應(yīng)用的控制方式[2]。與此同時,可編程門陣列(Field ?Programmable ?Gate ?Array,F(xiàn)PGA)器件的出現(xiàn),為高性能的直流電機控制實現(xiàn)數(shù)字化提供了契機。FPGA器件是以硬件電路為基礎(chǔ)實現(xiàn)算法程序,能夠?qū)㈦娐钒寮壆a(chǎn)品集成為芯片級產(chǎn)品,簡化系統(tǒng)結(jié)構(gòu),提高系統(tǒng)的穩(wěn)定性和可靠性[3]。
1 系統(tǒng)總體設(shè)計
本系統(tǒng)采用模塊化設(shè)計方案,將系統(tǒng)按功能劃分為4個基本模塊,如圖1所示。轉(zhuǎn)速控制模塊:控制電機的轉(zhuǎn)動速度,即控制PWM信號的占空比(高電平寬度與低電平寬度的比值),實現(xiàn)不同的電機轉(zhuǎn)速;PWM信號發(fā)生模塊:以計數(shù)器代替三角波波形,產(chǎn)生占空比不同的頻率信號;電機的正反轉(zhuǎn)模塊:編寫程序控制DM1、DM2信號,用來控制電機不同方向的轉(zhuǎn)動;測速模塊:運用試驗箱內(nèi)部的紅外光電測速模塊測量電機的速度。
2 PWM信號產(chǎn)生模塊設(shè)計
一般的脈寬調(diào)制PWM信號是通過模擬比較器產(chǎn)生的,在比較器的一端接給定的參考電壓,另一端接周期性的鋸齒波電壓。當鋸齒波電壓小于參考電壓時輸出高電平,鋸齒波電壓大于參考電壓時輸出低電平,改變參考電壓就可以改變PWM信號的占空比[4]。如采用單片機產(chǎn)生PWM信號,需先用D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和參考電壓,再通過外接模擬比較器輸出PWM信號,外圍電路比較復(fù)雜[5]。而FPGA中的數(shù)字PWM調(diào)制電路與一般的模擬PWM調(diào)制電路相比,產(chǎn)生PWM信號只需要FPGA內(nèi)部資源就可以實現(xiàn)。PWM信號的產(chǎn)生如圖2所示。鋸齒波B與固定值A(chǔ)比較之后,能夠產(chǎn)生固定脈寬的PWM信號,如果想要改變PWM信號的占空比,只需要改變A的值即可。當輸入的直流電機速度值改變時,PWM信號的占空比也會隨之改變。PWM信號的占空比增加,電機轉(zhuǎn)速加快,PWM信號的占空比減小,則電機轉(zhuǎn)速變慢。
在系統(tǒng)中,計數(shù)器CNT8在時鐘信號CLK激勵下輸出計數(shù)脈沖。為了能夠輸出逐漸增大的鋸齒波,程序在每一個時鐘上升沿到來時都會輸出一個計數(shù)值,下一個上升沿到來時加1,直到cnt=“11111111”時將cnt清零,從而輸出周期性的鋸齒波波形。鋸齒波CNT8輸出信號cnt與轉(zhuǎn)速控制輸出信號count同時加到數(shù)字比較器的兩個輸入端口,然后將兩者進行比較。如果cnt的值小于count的值,比較器輸出高電平,反之輸出低電平。由此產(chǎn)生周期性的PWM信號,只要改變速率的設(shè)定值count,就可以改變PWM信號的占空比,達到調(diào)速的目的。
3 電機轉(zhuǎn)速測量模塊設(shè)計
根據(jù)直流電機轉(zhuǎn)速測量的原理,可以參照頻率計的設(shè)計方法來設(shè)計測速模塊,并且通過數(shù)碼管來顯示轉(zhuǎn)速測量的結(jié)果。直流電機轉(zhuǎn)速測量電路包括時序控制器、計數(shù)器和鎖存器。其中時序控制器能夠產(chǎn)生測量轉(zhuǎn)速時的工作時序;計數(shù)器能夠用來統(tǒng)計直流電機的轉(zhuǎn)數(shù)(光電碼盤產(chǎn)生的脈沖個數(shù));鎖存器用來鎖存計數(shù)器輸出的轉(zhuǎn)數(shù)值。
電機的轉(zhuǎn)速測量由3個模塊組成:時序模塊、計數(shù)器模塊、鎖存器模塊。如圖3所示。運用時序模塊產(chǎn)生3種信號,分別為:TSTEN、CLR_CNT、LOAD。TSTEN是使能信號,讓計數(shù)器開始工作,記錄1 s內(nèi)的電機旋轉(zhuǎn)圈數(shù);CLR_CNT是計數(shù)清零信號,當CLR_CNT=1時,計數(shù)器的值清零,從下1 s開始計數(shù);LOAD是鎖存信號,當LOAD=1時,鎖存器將數(shù)據(jù)鎖存,在數(shù)碼管上顯示電機當前轉(zhuǎn)速。CLK的頻率為1 Hz,在CLK=1 s的時間段內(nèi)(一個周期),計數(shù)使能信號TSTEN若為高電平則允許計數(shù)器CNT計數(shù),計算電機轉(zhuǎn)動的頻率。鎖存器的工作時鐘為LOAD信號,在CLK=1且LOAD=1時,將LTCH中鎖存的轉(zhuǎn)速脈沖個數(shù)進行輸出。在CLK信號接下來的1s的時段內(nèi),LOAD=1且CLK=0,計數(shù)器清零信號CLR_CNT=1有效,將計數(shù)器CNT中已經(jīng)鎖存的計數(shù)值清零,使得CNT能夠在下一個計數(shù)使能信號TSTEN=1有效期間繼續(xù)統(tǒng)計脈沖數(shù)。另外,直流電機的頻率測量值可通過P[7..0]連接帶譯碼器的數(shù)碼顯示電路,顯示電機的頻率,求得電機的轉(zhuǎn)速。
4 測試分析
隨著系統(tǒng)功能的不斷強大,邏輯設(shè)計也越來越復(fù)雜,已不能僅依靠軟件仿真測試的方法去了解系統(tǒng)的硬件功能,檢查存在的問題。應(yīng)采用更高效的測試手段與傳統(tǒng)測試方法相結(jié)合的方式進行系統(tǒng)測試,這就是嵌入式邏輯分析儀的基本思想[6]。
本文使用嵌入式邏輯分析儀對系統(tǒng)進行了測試分析。其中GW48試驗箱選用的FPGA器件是CycloneIII系列的EP3C40Q240C8N。操作過程如下:
(1)輸入信號。將程序下載到試驗箱,將要觀察的信號加入嵌入式邏輯分析儀中。下載之后需要先在試驗箱運行,才能實時觀察分析儀中的信號變化。如圖4所示,下載后信號初始值均為0。
(2)開始分析。按下start按鈕,電機開始正轉(zhuǎn)。由圖5可見,產(chǎn)生的PWM信號直接加載到控制電機正轉(zhuǎn)的信號i,使電機正轉(zhuǎn)。ctrl輸入為“11000011”,占空比等于76.47%。
(3)按下zhuan按鈕,使得電機的旋轉(zhuǎn)方向發(fā)生改變。PWM信號全部傳給信號o,count為“11000011”,占空比為76.47%。如圖6所示。
(4)電機反轉(zhuǎn)加速。加速時count為“11110011”,占空比為95.29%,電機旋轉(zhuǎn)速度加快。由圖7看到,此時PWM信號的占空比增大。
(5)電機反轉(zhuǎn)減速,減速時count為“10101100”,占空比為67.45%,電機旋轉(zhuǎn)速度減慢。從圖8中可見,PWM信號的占空比變小。
在試驗箱上驗證系統(tǒng)功能的同時,實時觀察信[CM)]號的變化情況,確保有問題時可以及時發(fā)現(xiàn)處理,這種方式能夠給予設(shè)計者們極大的便利。通過以上測試分析,驗證了直流電機綜合控制系統(tǒng)設(shè)計的合理性以及正確性。
5 結(jié)束語
本系統(tǒng)相比以往的直流電機控制系統(tǒng)有許多改進。PWM控制技術(shù)的使用使電機控制更加高效。利用FPGA內(nèi)部資源產(chǎn)生PWM信號,省去了D/A轉(zhuǎn)換器、模擬比較器,減少了外部連線,簡化了系統(tǒng)結(jié)構(gòu),使控制變得更容易。采用嵌入式邏輯分析儀進行測試分析,降低了程序設(shè)計的復(fù)雜性。綜上所述,研究且制造出這種高性能、高可靠性的直流電機控制系統(tǒng),對現(xiàn)實生活有著十分重要的意義。
參考文獻
[1] 王云飛,張凱.基于STM32的直流電動機測速系統(tǒng)設(shè)計[J].電子制作,2018(23):28-31,10.
[2]胡飛虎.基于FPGA的直流電機PWM控制器設(shè)計[J].機電信息,2012(30):144-145.
[3]齊晶晶,黃彩霞,黃利斌.基于FPGA的電機控制器的設(shè)計[J].信息技術(shù),2016(8):56-58.
[4]潘明,許勇.基于FPGA的直流電機脈寬調(diào)制控制[J].廣西科學(xué)院學(xué)報,2005(4):219-221.
[5]胡亞琦,胡翔宇,牛寶.基于FPGA直流電機的PWM控制[J].實驗室研究與探索,2014,33(9):44-47.
[6]潘 松,黃繼業(yè). EDA技術(shù)實用教程 [ M ].北京:科學(xué)出版社, 2013.