歡迎您光臨本站 登入註冊首頁

概述

   步進電機響應速度快、定位精度高、無積累誤差、驅動電路及控制方法簡單,在工業控制領域獲得了廣泛應用.但由於轉動不夠平穩,運行時會發生震蕩現象,對系統的正常運行會產生不……

    步進電機響應速度快、定位精度高、無積累誤差、驅動電路及控制方法簡單,在工業控制領域獲得了廣泛應用.但由於轉動不夠平穩,運行時會發生震蕩現象,對系統的正常運行會產生不良影響,目前普遍認為最有效的解決方法是細分法.常用的細分法是用單片機實現或將細分參數存在EPROM 類非易失性存儲器中通過邏輯電路實現細分輸出,上述方法缺點是電路複雜、調試及研發周期較長.隨著EDA技術的發展,目前已有將CPLD類可編程邏輯晶元用於步進電機細分控制器的嘗試.本文採用FPGA可編程晶元及VHDL語言實現了對步進電機轉角的十六細分控制,並在MAX+plus II平台上完成了設計及調試,由於FPGA晶元具有在系統編程的特點,不但使研發周期大大縮短,而且系統無需外接D/A轉換器,電路簡單,該方法為步進電機細分提供了一種新思路.

1 步進電機細分控制原理
    所謂細分驅動就是把機械步距角細分戍若干個電的步距角,當轉子從一個位置轉到下一個位置的時候,會出現一些“暫態停留點”.這樣使得電機啟動時的過調量或者停止時的過調量就會減小,電機軸的振動也會減小,使電機轉子旋轉過程變得更加平滑,更加細膩,從而減小了雜訊.
    步進電機內合成磁場的幅值及兩相鄰合成磁場的夾角決定了步進電機旋轉力矩的大小及步距角的大小,通過對步進電機勵磁繞組中電流加以控制,使步進電機內部的合成磁場形成幅值不變、均勻的圓形旋轉磁場,便可實現步進電機恆力矩及步進角均勻細分控制.
    圖1為本系統設計的四相步進電機的十六細分電流波形,一般情況下,總有兩相繞組同時通電,一相電流逐漸增大,另一相逐漸減小.對應於一個步距角,電流變化16個台階,也就是轉子位置被細分成16個小角度,實現了一個步距角16細分的控制.
 

2 用FPGA實現四相步進電機十六細分的電路結構
    圖2為步進電機細分驅動系統結構圖.其中,PWM 計數器在時鐘作用下遞增計數,產生階梯上升的周期性鋸齒波,載入到各數字比較器的一端PWM 波形ROM輸出的數據分別載入到各數字比較器的另一端.當PWM計數器的數值小于波形ROM輸出數據時,比較器輸出高電平,對應的功放模塊導通,當PWM 計數器的數值大于波形ROM輸出數據時,比較器輸出低電平,對應的功放模塊截止.隨著波形ROM 中讀出的數據變化,各比較器相應改變輸出信號的高電平占空比,導致電機相應繞組上的通電時間變化,從而改變了繞組上的電流平均值,實現了細分控制.
 

3 十六細分驅動模塊的設計
    文中設計了用FPGA晶元(EPF10K10LC84-4)及VHDL語言實現一個十六細分步距角的步進電機控制電路自動按照以下控制方式運行:啟動→勻加速→勻速→勻減速→停止.

3.1 十六細分驅動模塊
 
    細分驅動模塊dianji是根據圖2設計,在MAX+plus II平台下採用原理圖編輯方法實現的.圖3是FPGA內模塊的電路圖.其中compara4四位數據比較器電路及lpm-rom1PWM 波形ROM,都是採用LPM 元件定製實現,程序如下:
pwm_rom.mif文件
width=16;depth=64; --波形數據為16位,共64個
address_radix=hex;data_radix=hex; --地址和數據均用十六進位數表示
content begin --ROM 中的波形數據
0:8000;1:8100;2:8200;3:8300;4:8400;5:8500;6:8600;7:8700;8:8800;9:7800;a:6800;
b:5800;c:4800;d:3800;e:2800;f:1800;10:0800;11:0810;12:0820;13:0830;14:0840;
15:0850;16:0860;17:0870;18:0880;19:0780;1a:0680;1b:0580;1c:0480;1d:0380;1e:0280;
1f:0180;20:0080;21:0081;22:0082;23:0083;24:0084;25:0085;26:0086;27:0087;28:0088;
29:0078;2a:0068;2b:0058;2c:0048;2d:0038;2e:0028;2f:0018;30:0008;31:1008;32:2008;
33:3008;34:4008;35:5008;36:6008;37:7008;38:8008;39:8007;3a:8006;3b:8005;3c:8004;3d:8003;3e:8002;3f:8001;
end;
    lpm_rom1的配置數據:艾件名為pwm_rom.mif,CNT16為三位輸出的PWM 計數器,能產生八級階梯波;CNT64為64進位計數器,作為PWM 波形ROM 的地址計數器,均用VHDL語言實現.

3.2 速度控制模塊
    速度控制模塊crea_clk又由五個子模塊構成,如圖4所示.其中SEL模塊是時間控制塊,當檢測到start信號的上升沿后,它就會按順序給U、N、D三個輸出端輸出一定時間的高電平,作為後續模塊的控制信號,控制加速、勻速、減速各段的時間,UP、NORMAL、DOWN分別是勻加速、勻速和勻減速的時鐘發生模塊,GATE模塊是時鐘選通控制塊,依據U、N、D三個信號的狀態選通某一路時鐘,作為細分驅動電路的波形ROM地址轉換時鐘信號,圖5是該模塊的模擬圖.
 
 

結論
    該控制模塊在EDA模擬開發實驗箱主板上已下載調試通過,驅動四相步進電機運行,驗證了模塊設計的正確性,由於FPGA內部為SRAM結構,在實際應用中,應外加EPROM類非易失性存儲器保存控制程序。 ,並根據步進電機的轉速、負載等參數合理選擇晶振頻率及驅動電路的輸出功率等,方能取得好的控制效果.


[admin via 研發互助社區 ] 基於FPGA實現的步進電機細分控制信號發生器的設計已經有2394次圍觀

http://cocdig.com/docs/show-post-43144.html