FPGA在直流電機位置控制中的應用
摘要:由于直流電機具有速度易控制,精度和效率高,能在寬范圍內實(shí)現平滑調速等特點(diǎn)而在冶金、機械加工制造等行業(yè)中得到廣泛應用。該設計采用FPGA作為直流電機的控制器件,負責信號處理,速度快、可靠性高。介紹直流電機進(jìn)行位置控制的方法,給出位置控制模塊的設計和實(shí)現,使用 VHDL語(yǔ)言進(jìn)行編程完成了FPGA對直流電機的各種控制。
關(guān)鍵詞:位置控制;直流電機;FPGA;VHDL
在直流電機控制系統中,被控制量一般都是電機的轉速,控制的目的是保持電機的轉速在所需要的定值上。但在實(shí)際生產(chǎn)過(guò)程中,電機帶動(dòng)生產(chǎn)機械或者其他負載運動(dòng)的表現不一定都是轉速,也可能是使生產(chǎn)機械或其機構產(chǎn)生一定的位置變化,這時(shí)需要的控制量就不再是電機的轉速,而是控制對象的直線(xiàn)位移,因此需將電機的轉速輸出轉換為電機的位移輸出。
1 電機位置控制模塊的設計
1.1 直流電機位置控制的方法
在此,使用maxon直流電機,通過(guò)與其配套的行星齒輪箱和磁編碼器,能夠實(shí)現從轉速到位移的轉換。其工作原理如下:電機轉動(dòng)時(shí),編碼器開(kāi)始輸出反饋脈沖,反饋脈沖的頻率與電機的轉速成正比,最高可達20 kHz。電機軸每旋轉一圈,編碼器就輸出16個(gè)反饋脈沖,通過(guò)計算得出每個(gè)脈沖代表電機所帶負載產(chǎn)生0.006 14 mm的位移。這樣就可以把要控制的位移量用反饋脈沖的個(gè)數來(lái)表示,作為FPGA中位置控制模塊給定值,當電機轉動(dòng)時(shí),FPGA中的計數器會(huì )把反饋脈沖計數并保存,位置控制模塊不斷讀取計數器里的計數值,并與位置控制模塊中的給定值比較。當它們相等的時(shí)候,位置控制模塊發(fā)出停止信號,從而控制電機剎車(chē)。電機停止運動(dòng)后,再讀取計數器中的計數值,與給定值做比較,計算出差值。如果差值在控制精度范圍內,則此次控制結束;如果不在范圍內,將差值作為下一次控制的給定值,繼續控制電機運動(dòng),直至達到要求的精度范圍為止。
1.2 位置控制模塊的組成
位置控制模塊由3部分組成:比較模塊、驅動(dòng)模塊和延時(shí)模塊。比較模塊的作用是將編碼器反饋的脈沖個(gè)數與給定的脈沖個(gè)數做比較,當它們相等時(shí),給出電機停止信號。驅動(dòng)模塊的作用是根據輸入的控制信號控制電機的運動(dòng)。延時(shí)模塊的作用是防止丟失反饋脈沖,確保準確讀回編碼器反饋的脈沖個(gè)數。接下來(lái)將重點(diǎn)介紹各個(gè)模塊的具體實(shí)現。
1.2.1 比較模塊
圖1中,data_in[15..O]為給定的反饋脈沖個(gè)數;EN為電機工作使能信號;inclk為工作時(shí)鐘;feedback[15..0]為電機運行時(shí)計數器的計數值;stopinter為電機停止時(shí)的模塊內部傳遞信號;“O”表示無(wú)效,“1”表示有效。比較模塊的工作原理如下:比較模塊在接收到給定值后,也就是根據要控制的位移量所計算出的反饋脈沖的個(gè)數,將其鎖存。在工作時(shí)鐘的作用下,模塊會(huì )不斷地檢測EN信號是否有效,如果EN信號有效,模塊將開(kāi)始讀取反饋計數值,并與給定值做比較;如果相等,模塊認為電機所帶負載的運動(dòng)到達指定位置,這時(shí)輸出的stopinter信號有效,控制電機剎車(chē);否則 stopinter信號無(wú)效,電機繼續運動(dòng)。
如圖2所示,假設給定的計數值為7。當使能信號EN有效時(shí),模塊開(kāi)始讀端口feedback[15..O]中的值(電機運行時(shí)通過(guò)磁編碼器反饋回來(lái)的脈沖個(gè)數),與data_in[15..0]中給定的脈沖個(gè)數做比較。當它們相等的時(shí)候,表示電機所帶的負載運動(dòng)到了指定位置,此時(shí)stopinter信號有效,開(kāi)始控制電機剎車(chē)并停止。
1.2.2 驅動(dòng)模塊
圖3中,derect[1..O]為電機的控制輸入信號;EN為電機工作使能信號,“0”表示無(wú)效,“1”表示有效;inclk為工作時(shí)鐘; stopinter為電機停止信號的模塊內部傳遞信號;control_outA,control_outB為控制電機的輸出信號,這兩個(gè)控制信號直接連接電機的驅動(dòng)芯片。驅動(dòng)模塊的工作原理如下:
評論