步進(jìn)電機(jī)控制
步進(jìn)電機(jī)控制,步進(jìn),電機(jī),機(jī)電,控制,節(jié)制
哈爾濱工業(yè)大學(xué)2006屆本科優(yōu)秀畢業(yè)設(shè)計(jì)(論文)選集
步進(jìn)電機(jī)控制系統(tǒng)優(yōu)化技術(shù)研究
電氣工程及自動(dòng)化學(xué)院:宋 翔 指導(dǎo)教師:楊春玲
摘 要:本文設(shè)計(jì)了一種基于FPGA的正弦波可變細(xì)分步進(jìn)電機(jī)驅(qū)動(dòng)器,可有效地解決步距角的高細(xì)分問(wèn)題,從而提高電機(jī)的運(yùn)行力矩,提高轉(zhuǎn)角分辨率,使電機(jī)旋轉(zhuǎn)更加平滑。設(shè)計(jì)過(guò)程中采用自底向上的模塊化設(shè)計(jì)方法,用VHDL語(yǔ)言對(duì)電路進(jìn)行描述,采用Xilinx的ISE開(kāi)發(fā)工具進(jìn)行了綜合和布局布線,使用Modelsim軟件的PLI仿真接口實(shí)現(xiàn)了行為仿真和門(mén)級(jí)仿真驗(yàn)證。經(jīng)測(cè)試表明,該驅(qū)動(dòng)器具有調(diào)試方便,抗干擾能力較強(qiáng),驅(qū)動(dòng)能力較強(qiáng),體積小,規(guī)模化成本低的優(yōu)點(diǎn)。
關(guān)鍵詞:步進(jìn)電機(jī);可變細(xì)分;脈寬調(diào)制;驅(qū)動(dòng);FPGA
Abstract:In this paper, a FPGA-based step motor driver implementing adjustable subdivision and sine pulse width modulation is introduced. This driving system can solve the high subdivision problem, increase the driving torque and angle resolution, and smooth the motor angle. Employing the bottom-top design method, the circuit was described by the VHDL language, synthesized by Xilinx ISE integrated environment, and simulated by Modelsim in both behavior level and gate level through the PLI interface. According to experiment’s result, this driver has the advantages of easy debugging, high anti-interference ability, larger driving power, low volume and low cost in large scale production.
Key words:stepper motor adjustable subdivision PWM driving FPGA
1 引 言
步進(jìn)電動(dòng)機(jī)是工業(yè)控制中應(yīng)用十分廣泛的一種電動(dòng)機(jī),具有較高的定位精度,無(wú)位置積累誤差,并且能夠開(kāi)環(huán)運(yùn)行。但是步進(jìn)電動(dòng)機(jī)運(yùn)行工況存在許多不足之處,如低頻振蕩、噪聲大、分辨率不高及驅(qū)動(dòng)系統(tǒng)可靠性差等,嚴(yán)重制約了步進(jìn)電動(dòng)機(jī)的應(yīng)用范圍。如果步進(jìn)電機(jī)能夠克服低頻振蕩,降低振動(dòng),提高分辨率,可以肯定步進(jìn)電機(jī)的應(yīng)用范圍將更大。目前市場(chǎng)上的主流驅(qū)動(dòng)技術(shù)采用正弦波可變細(xì)分技術(shù)[1],但是能夠?qū)崿F(xiàn)此功能的控制器成本較高,一些同類(lèi)產(chǎn)品(基于單片機(jī))的步進(jìn)信號(hào)頻率不夠高,因此低成本,高性能的步進(jìn)電機(jī)驅(qū)動(dòng)器很有市場(chǎng)前景。本課題是利用FPGA為控制模塊,IR2175構(gòu)成電流反饋模塊,使用IPM集成功率模塊構(gòu)建步進(jìn)電機(jī)主電路,構(gòu)成低成本,高性能的步進(jìn)電機(jī)驅(qū)動(dòng)器[2]。
2 步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì)
2.1驅(qū)動(dòng)器硬件總體設(shè)計(jì)
步進(jìn)電機(jī)三相繞組的電流是階段性的正弦階梯波電流,通過(guò)改變給定電流的每一次變化的階梯數(shù)就可以實(shí)現(xiàn)可變細(xì)分功能。該驅(qū)動(dòng)器的任務(wù)就是控制電機(jī)繞組的電流,使之按正弦階梯波的規(guī)律變化。每給一個(gè)步進(jìn)脈沖,A/B/C三相繞組的電流沿正弦階梯波前進(jìn)一步,電機(jī)轉(zhuǎn)動(dòng)一個(gè)步距角。
為了控制繞組電流,在設(shè)計(jì)中引入電流反饋,驅(qū)動(dòng)器的系統(tǒng)框圖如圖2-1所示。六路PWM輸出經(jīng)過(guò)光耦后輸入到IPM驅(qū)動(dòng)模塊控制電機(jī)的繞組電流。電機(jī)的繞組電流被采樣后變成電壓信號(hào),再經(jīng)濾波后輸入到電流傳感器IR2175中,IR2175輸出占空比變化的PWM波,經(jīng)過(guò)光耦后輸入到FPGA中,F(xiàn)PGA根據(jù)輸入的PWM波的占空比的值確定反饋電流的大小。
圖2-1 驅(qū)動(dòng)器的系統(tǒng)框圖
2.2 驅(qū)動(dòng)器軟件設(shè)計(jì)
系統(tǒng)采用層次化開(kāi)發(fā)方式,頂層模塊由多個(gè)子模塊組合而成,采用自底向上的方式進(jìn)行開(kāi)發(fā)[3]。FPGA設(shè)計(jì)系統(tǒng)框圖如圖2-2所示。
圖2-2 FPGA設(shè)計(jì)系統(tǒng)總體框圖
設(shè)計(jì)劃分為控制器和驅(qū)動(dòng)器兩個(gè)部分,其中MicroBlaze微處理器模塊和CP脈沖發(fā)生器模塊屬于控制器,剩下的模塊屬于驅(qū)動(dòng)器??刂破鹘邮苡脩糨斎耄鶕?jù)命令計(jì)算當(dāng)前轉(zhuǎn)速和轉(zhuǎn)向,輸出CP、細(xì)分等級(jí)和轉(zhuǎn)向信號(hào)。這些信號(hào)進(jìn)入驅(qū)動(dòng)器后,通過(guò)三相PI調(diào)節(jié)就能夠控制步進(jìn)電機(jī)的繞組電流按照正弦規(guī)律受控變化。
具體工作過(guò)程是:用戶輸入在MicroBlaze微處理器中進(jìn)行處理,并產(chǎn)生轉(zhuǎn)速和轉(zhuǎn)向信號(hào),轉(zhuǎn)速信號(hào)送入CP脈沖發(fā)生器產(chǎn)生CP脈沖和細(xì)分等級(jí)數(shù),同轉(zhuǎn)向信號(hào)CCW共同送入正弦表數(shù)據(jù)接口模塊中,通過(guò)內(nèi)部邏輯產(chǎn)生三相相電流給定數(shù)據(jù)。電流反饋模塊采樣相電流,產(chǎn)生相電流反饋數(shù)據(jù)。在PI模塊中,通過(guò)當(dāng)前以及此前的給定數(shù)據(jù)/反饋數(shù)據(jù),進(jìn)行PI調(diào)節(jié),并產(chǎn)生控制信號(hào)送入PWM發(fā)生器中,PWM發(fā)生器模塊將輸出PWM控制信號(hào)[4],控制三相逆變器的6個(gè)IGBT通斷,實(shí)現(xiàn)電機(jī)控制。
2.3 驅(qū)動(dòng)器的優(yōu)化實(shí)現(xiàn)
2.3.1 時(shí)鐘網(wǎng)絡(luò)與復(fù)位
設(shè)計(jì)采用的FPGA輸入的外部晶振產(chǎn)生的50MHz時(shí)鐘,經(jīng)過(guò)時(shí)鐘管理模塊的兩個(gè)DCM模塊進(jìn)行倍頻,得到50MHz時(shí)鐘CLK50,100MHz時(shí)鐘CLK100,200MHz時(shí)鐘CLK200。其中控制器和控制精度無(wú)關(guān),因此采用50MHz低頻時(shí)鐘,約束時(shí)較為容易。驅(qū)動(dòng)器中數(shù)據(jù)流較為緩慢的模塊采用100MHz時(shí)鐘,也可以使約束易于實(shí)現(xiàn)。驅(qū)動(dòng)器中的載波模塊、比較器模塊、電流計(jì)算模塊以及PWM模塊與控制精度有關(guān),所以采用200MHz時(shí)鐘。時(shí)鐘域交叉處的信號(hào)傳遞基本上采用的是擴(kuò)寬脈沖寬度的方法,因?yàn)檫@三個(gè)時(shí)鐘頻率有倍數(shù)關(guān)系,且同相位,因此能夠比較容易的解決跨時(shí)域數(shù)據(jù)傳輸問(wèn)題。
全局異步復(fù)位由ClockMnger模塊產(chǎn)生,該信號(hào)在外部Reset時(shí)置1,并在第二個(gè)DCM信號(hào)鎖定后置0,輸出時(shí)與CLK100的上升沿同步,同時(shí)對(duì)于高頻時(shí)鐘或者高扇出復(fù)位模塊都設(shè)計(jì)了異步置位到模塊內(nèi)部的同步置位,減小復(fù)位信號(hào)扇出的同時(shí)消除了部分DFF因?yàn)楫惒絉ESET導(dǎo)致建立時(shí)間不夠的現(xiàn)象。
2.3.2設(shè)計(jì)約束
(1)Period約束 通過(guò)周期約束,指導(dǎo)PAR工具必需盡量減小指定時(shí)鐘網(wǎng)絡(luò)上DFF之間的純組合邏輯延遲,滿足指定時(shí)鐘網(wǎng)絡(luò)上DFF的建立時(shí)間和保持時(shí)間。
約束輸入晶振時(shí)鐘的頻率為50MHz * 110%;并對(duì)時(shí)鐘管理模塊產(chǎn)生的CLK50,CLK100和CLK200三條時(shí)鐘網(wǎng)絡(luò)分別施加比實(shí)際頻率高10%的Period約束。由于CLK200約束到220MHz比較難,降低為215MHz約束。
(2)手動(dòng)布局約束 使用Floorplanner手動(dòng)布局時(shí)序等于比較器、Block RAM和MULT18X18等資源,減小連線延遲,達(dá)到芯片性能。
(4)區(qū)域約束 使用區(qū)域約束限定各個(gè)模塊的布局范圍,指導(dǎo)PAR工具進(jìn)行外圍資源的布局布線,綜合控制Interconnect的走線延遲。施加區(qū)域約束時(shí),需要將功能相近的單元模塊放在一起,同時(shí)遵循縱橫方向布局控制流、水平方向布局?jǐn)?shù)據(jù)流的準(zhǔn)則進(jìn)行布局。根據(jù)FPGA的芯片結(jié)構(gòu),按照上述準(zhǔn)則進(jìn)行布局規(guī)劃后,能夠較大提高器件性能。本設(shè)計(jì)中對(duì)各個(gè)模塊進(jìn)行了區(qū)域約束。
通過(guò)靜態(tài)時(shí)序分析工具輸出的時(shí)序分析報(bào)告可以看出,經(jīng)過(guò)手動(dòng)布局約束和區(qū)域約束后,設(shè)計(jì)滿足時(shí)序要求。
2.4控制器的硬件設(shè)計(jì)
控制器采用Xilinx的32位軟CPU核。在Xilinx的嵌入式開(kāi)發(fā)軟件包EDK中添加MicroBlaze軟核、代碼ROM、數(shù)據(jù)RAM和外部I/O接口,如圖2-3所示。
圖2-3 MicroBlaze部件配置
部件說(shuō)明:
(1)microblaze:CPU內(nèi)核,實(shí)現(xiàn)了一個(gè)32位CPU。
(2)lmb_bram_if_cntrl:片內(nèi)存儲(chǔ)器控制層邏輯,本設(shè)計(jì)中使用了兩個(gè)實(shí)例,分別用于數(shù)據(jù)存儲(chǔ)器和指令存儲(chǔ)器的實(shí)現(xiàn)。
(3)bram_block:片內(nèi)塊RAM,作為指令和數(shù)據(jù)存儲(chǔ)區(qū)。
(4)opb_gio:符合IBM的開(kāi)放總線規(guī)范opb的標(biāo)準(zhǔn)IO口,本設(shè)計(jì)中使用了多個(gè)實(shí)例,實(shí)現(xiàn)CPU核與外部模塊的數(shù)據(jù)交互。其中DIP_Switches用于撥碼按鈕的輸入,LEDS用于發(fā)光二級(jí)管的輸出,Push_Buttons用于按鈕的輸入,SpeedSet用于設(shè)定CP Pattern模塊的速度輸入寄存器,ControlPort控制片內(nèi)關(guān)鍵控制信號(hào),OC_IN來(lái)自外部過(guò)流信號(hào)的輸入,Prob_Monitor作為調(diào)試的通用預(yù)留管腳。
(5)opb_7segled:opb總線兼容的自定義驅(qū)動(dòng)器,用于驅(qū)動(dòng)7段數(shù)碼管的顯示。在程序中通過(guò)該驅(qū)動(dòng)器能非常方便地控制數(shù)碼管顯示各類(lèi)數(shù)字和符號(hào)。
2.5控制器的C++程序設(shè)計(jì)
本設(shè)計(jì)的軟件程序工作流程如圖2-4所示。
圖2-4 電機(jī)控制軟件流程圖
在EDK中開(kāi)發(fā)MicroBlaze嵌入式應(yīng)用程序可以使用C/C++語(yǔ)言,EDK采用的編譯器是GCC,支持ANSI C或者標(biāo)準(zhǔn)C++語(yǔ)法。本設(shè)計(jì)中采用了C++語(yǔ)言,并對(duì)電機(jī)的控制狀態(tài)建立類(lèi)。
通過(guò)電機(jī)的控制狀態(tài)對(duì)象的操作,即可輸出各種控制命令到接口模塊和CP脈沖發(fā)生模塊,控制電機(jī)狀態(tài);同時(shí)在main函數(shù)的主循環(huán)中監(jiān)視用戶的各種輸入,更新電機(jī)的控制狀態(tài)對(duì)象的成員變量。
2.6控制器的軟硬協(xié)同設(shè)計(jì)
用于控制器的軟件代碼其可能因?yàn)榭刂频囊鈭D的變化而頻繁改變,同時(shí)硬件電路并不需要改變。因此找到僅更新軟件的執(zhí)行代碼,而不需要重新進(jìn)行硬件綜合與實(shí)現(xiàn)的方法是很重要的。Xilinx公司提供的Data2mem輔助工具很好地解決了這一問(wèn)題。
圖2-5 軟硬件協(xié)同設(shè)計(jì)流程圖
本設(shè)計(jì)通過(guò)使用該輔助工具,實(shí)現(xiàn)了軟硬件協(xié)同設(shè)計(jì)的設(shè)計(jì)方法,流程如圖2-5所示。其中方框內(nèi)為設(shè)計(jì)步驟,括號(hào)內(nèi)為實(shí)現(xiàn)使用的軟件工具。
每次編譯完成新的程序后,得到elf可執(zhí)行文件,使用Data2mem輔助工具手動(dòng)更新下載文件topflow.bit中的ROM區(qū)。通過(guò)這個(gè)工具,下載文件不需要重新進(jìn)行十多分鐘的綜合實(shí)現(xiàn),節(jié)省了調(diào)試時(shí)間。
3步進(jìn)電機(jī)的仿真建模
3.1 步進(jìn)電機(jī)建模
為了達(dá)到系統(tǒng)的仿真要求,使用PLI技術(shù)用C語(yǔ)言對(duì)步進(jìn)電機(jī)建模。
根據(jù)分析,步進(jìn)電機(jī)的繞組模型可以用一個(gè)電阻和一個(gè)電感表示,公式如(3-1)所示。
(3-1)
在相電流較小時(shí)可以忽略反電動(dòng)勢(shì),即Ea ≈ 0。
圖3-1 步進(jìn)電機(jī)繞組模型
根據(jù)電路學(xué)中的三要素公式:
(3-2)
可以建立繞組的瞬態(tài)電路方程:
(3-3)
在inertia_engine.c文件中建立該瞬態(tài)電路模型,并提供接口函數(shù)供Testbench調(diào)用,從而模擬步進(jìn)電機(jī)三相相電流的變化。接口函數(shù)有:
(1)NetDriverLink(para1,para2,para3,para4) 該函數(shù)接收Testbench傳送過(guò)來(lái)的四個(gè)網(wǎng)絡(luò)信號(hào)ghPA,ghPB,ghPAOC和ghPBOC,并綁定到程序內(nèi)部局柄上,用于設(shè)定這四條網(wǎng)絡(luò)的輸出信號(hào)。
(2)MotorSimulate (para1) 輸入?yún)?shù)為合成的六個(gè)IGBT橋臂的控制信號(hào),根據(jù)6條信號(hào)的電平狀態(tài)解算相電壓大小,如圖3-2所示。
圖3-2 三相橋式PWM型逆變電路
設(shè)直流電源中點(diǎn)為N’,則相電壓計(jì)算公式為:
(3-4)
函數(shù)會(huì)比對(duì)上一次輸入的控制信號(hào),如果控制信號(hào)變化則保存當(dāng)前的瞬態(tài)相電流,建立新的三要素方程式;如果控制信號(hào)沒(méi)有變化則繼續(xù)求解先前建立的三要素方程式,更新相電流數(shù)據(jù)。如果相電流超過(guò)額定值會(huì)報(bào)告警告信息。每隔固定時(shí)間,函數(shù)會(huì)報(bào)告當(dāng)前的A/B兩相相電流數(shù)據(jù),以提供參考。
(3)PWM_Gen (para1) 根據(jù)MotorSimulate函數(shù)更新后的相電流數(shù)據(jù)產(chǎn)生PWM波形,Testbench會(huì)每隔10ns調(diào)用一次本函數(shù)。函數(shù)通過(guò)當(dāng)前相電流/額定相電流的比率產(chǎn)生占空比變化的PWM信號(hào)。
3.2仿真結(jié)果
通過(guò)PLI技術(shù)用C語(yǔ)言對(duì)步進(jìn)電機(jī)建模后,經(jīng)過(guò)VC編譯后生成動(dòng)態(tài)連接庫(kù)文件inertia_engine.dll,與Modelsim聯(lián)合進(jìn)行仿真。部分仿真波形如圖3-3所示。
圖3-3 頂層時(shí)序仿真波形
結(jié) 論
本文詳細(xì)探討了開(kāi)發(fā)研制的基于FPGA的步進(jìn)電機(jī)正弦波可變細(xì)分驅(qū)動(dòng)器的設(shè)計(jì)方法,通過(guò)對(duì)硬件和軟件的設(shè)計(jì),實(shí)現(xiàn)了一種低成本、高性能的步進(jìn)電機(jī)驅(qū)動(dòng)器,成功地將控制器和驅(qū)動(dòng)器集成到單一FPGA芯片中,大大提高了系統(tǒng)的可靠性,降低了設(shè)計(jì)成本??刂破鞑捎昧?2位CPU軟核實(shí)現(xiàn),可定制功能強(qiáng),工作穩(wěn)定。實(shí)現(xiàn)了從16細(xì)分到4096細(xì)分之間階梯細(xì)分,全自動(dòng)切換,無(wú)需用戶干預(yù),使用方便。特別是低速下的4096超高細(xì)分設(shè)計(jì)消除了步進(jìn)電機(jī)存在的低頻振蕩問(wèn)題。 硬件方面采用IR公司的線性電流傳感器IR2175取代傳統(tǒng)的霍爾元件加A/D轉(zhuǎn)換器的方式進(jìn)行反饋電流的測(cè)量,降低了成本,縮小了體積;采用IR公司的智能功率模塊(IPM)進(jìn)行功率驅(qū)動(dòng),簡(jiǎn)化了設(shè)計(jì),提高了硬件調(diào)試的效率。設(shè)計(jì)使用的FPGA型號(hào)是XC3S400,通過(guò)優(yōu)化設(shè)計(jì),部分模塊工作頻率達(dá)到200MHz,對(duì)于PWM信號(hào)生成和電流反饋信號(hào)的精度達(dá)到14位,極大地提高了控制精度。驅(qū)動(dòng)器內(nèi)部實(shí)現(xiàn)了全數(shù)字式的PI控制器,且可在線調(diào)解KP、KI參數(shù),便于優(yōu)化控制策略。針對(duì)IR2175易受干擾的特點(diǎn),在電流反饋模塊中設(shè)計(jì)了軟濾波環(huán)節(jié),實(shí)踐證明能夠非常有效的抑制反饋電流的干擾。
參考文獻(xiàn)(略)
225
- -
收藏
編號(hào):3310029
類(lèi)型:共享資源
大?。?span id="phtwdan" class="font-tahoma">18.18MB
格式:ZIP
上傳時(shí)間:2019-12-11
38
積分
- 關(guān) 鍵 詞:
-
步進(jìn)
電機(jī)
機(jī)電
控制
節(jié)制
- 資源描述:
-
步進(jìn)電機(jī)控制,步進(jìn),電機(jī),機(jī)電,控制,節(jié)制
展開(kāi)閱讀全文
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書(shū)面授權(quán),請(qǐng)勿作他用。