您現(xiàn)在的位置:
                中國傳動(dòng)網(wǎng)
                >
                技術(shù)頻道
                >
                技術(shù)百科
                >
                基于FPGA的步進(jìn)電機(jī)正弦波細(xì)分驅(qū)動(dòng)器設(shè)計(jì)
            時(shí)間:2008-04-03 13:59:00來源:lijuan

圖3 步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)主回路圖[/align]
    步進(jìn)電機(jī)控制系統(tǒng)框圖如圖4所示。采用FPGA作為主控制芯片, 將控制器與驅(qū)動(dòng)器的數(shù)字電路部分集成在一片F(xiàn)PGA上實(shí)現(xiàn)。為了控制繞組電流,在設(shè)計(jì)中引入電流跟蹤型閉環(huán)反饋,反饋電流與給定的正弦電流(離散的正弦表)經(jīng)過改進(jìn)的比例積分PI調(diào)節(jié)后進(jìn)行SPWM調(diào)制,輸出6路PWM波,來控制驅(qū)動(dòng)電路三個(gè)橋臂上的6個(gè)IGBT開通關(guān)斷。如果忽略死區(qū)時(shí)間控制每個(gè)橋臂的上下半橋的兩路PWM波互補(bǔ)即上半橋PWM波為高/低電平時(shí),下半橋PWM波為低/高電平。系統(tǒng)采用14位寬度200MHz計(jì)數(shù)器產(chǎn)生PWM載波,載波頻率12.2KHz,電流數(shù)據(jù)全部采用14位精度進(jìn)行離散化。200MHz時(shí)鐘由50MHz時(shí)鐘經(jīng)PLL倍頻產(chǎn)生。FPGA輸出的PWM波經(jīng)功率模塊放大后,控制步進(jìn)電機(jī)運(yùn)行。步進(jìn)電機(jī)運(yùn)行狀態(tài)(轉(zhuǎn)速和轉(zhuǎn)向)通過LED指示。步進(jìn)電機(jī)轉(zhuǎn)速是由查表速度決定的,CP是用來決定查表頻率,在細(xì)分等級(jí)一定的情況下CP速度越高電機(jī)轉(zhuǎn)速越快。如果電機(jī)在高細(xì)分下高速旋轉(zhuǎn)則CP脈沖頻率就會(huì)很高,導(dǎo)致PWM脈寬過小,使功率模塊IGBT控制橋臂頻繁開關(guān),其結(jié)果是開關(guān)損耗大為增加,功率模塊過熱。而高細(xì)分在步進(jìn)電機(jī)高速旋轉(zhuǎn)時(shí)其優(yōu)勢(shì)并不明顯,所以在不影響電機(jī)運(yùn)行精度的情況下,系統(tǒng)根據(jù)轉(zhuǎn)速對(duì)細(xì)分精度在4096、2048、1024、512、256、128、64、32之間自動(dòng)調(diào)節(jié),使電機(jī)更加平穩(wěn)可靠的運(yùn)行。
[align=center]
圖4 控制系統(tǒng)框圖[/align]
    3.1  FPGA結(jié)構(gòu)設(shè)計(jì) 
    本系統(tǒng)是由集成在系統(tǒng)采用層次化開發(fā)方式,頂層模塊由多個(gè)子模塊組合而成,F(xiàn)PGA設(shè)計(jì)系統(tǒng)框圖如圖5所示。系統(tǒng)由Nios II微處理器模塊和數(shù)字邏輯模塊組成。
[align=center]
圖5 FPGA設(shè)計(jì)系統(tǒng)框圖[/align]
    控制器采Nios II的32位CPU軟核,由SOPC Builder 生成。用來接收外界控制信號(hào)并把信號(hào)處理后送給脈沖發(fā)生器,并通過輸出端口控制LED來指示系統(tǒng)工作情況。系統(tǒng)頂層設(shè)計(jì)圖如圖6所示,系統(tǒng)由CPU軟核(stepmotor_controller、CP發(fā)生器(PatternGenerator)、正弦查表控制模塊(interface)、A/D電流采樣模塊(currenttop)、C相電流計(jì)算模塊(Current_c)調(diào)節(jié)模塊、PI調(diào)節(jié)模塊(pimodule)、PWM發(fā)生模塊(PWM)組成,各模塊功能如下: 
    CPU:接受外界控制信號(hào)把信號(hào)處理后得到相應(yīng)的細(xì)分等級(jí)和與速度對(duì)應(yīng)的控制信號(hào)送給CP發(fā)生器,把轉(zhuǎn)向信號(hào)處理后送到查表控制模塊,并把轉(zhuǎn)速和轉(zhuǎn)向信號(hào)送到LED數(shù)碼管和發(fā)光二極管來指示電機(jī)運(yùn)行情況; 
    CP發(fā)生器:接受轉(zhuǎn)速控制信號(hào)發(fā)出與轉(zhuǎn)速相對(duì)應(yīng)的CP脈沖并給出相應(yīng)轉(zhuǎn)速下對(duì)應(yīng)的最佳細(xì)分等級(jí); 
    正弦查表控制模塊:根據(jù)CP脈沖和細(xì)分等級(jí)進(jìn)行查表產(chǎn)生參考電流,根據(jù)轉(zhuǎn)向控制信號(hào)來決定查表方向來實(shí)現(xiàn)轉(zhuǎn)向控制; 
    A/D電流采樣模塊:采集步進(jìn)電機(jī)A、B兩相電流值; 
    C相電流計(jì)算模塊:根據(jù)基爾霍夫電流定律A、B、C三相電流之和為零,由A/D采集的A、B兩相的電流計(jì)算出C相電流; 
    PI調(diào)節(jié)模塊:將參考正弦電流與反饋電流差值進(jìn)行PI調(diào)節(jié),把調(diào)節(jié)后的控制信號(hào),為了防止IPM內(nèi)上下半橋的IGBT同時(shí)導(dǎo)通,導(dǎo)致IPM短路,PI模塊內(nèi)設(shè)置的了死區(qū)時(shí)間。 
[align=center]
圖6 系統(tǒng)頂層設(shè)計(jì)圖[/align]
    頂層接口說明: 
    AD_in_a、AD_in_b 是    AD1674轉(zhuǎn)換輸出的數(shù)字信號(hào); 
    AD_CE、AD_RD、AD_STS為AD的控制信號(hào); 
    clk、reset分別為系統(tǒng)時(shí)鐘輸入端口和系統(tǒng)復(fù)位端口; 
    enable端口是PWM發(fā)生器使能端,功率模塊溫度過高熱保護(hù)就會(huì)動(dòng)作將enable置0停止發(fā)出PWM波,保護(hù)驅(qū)動(dòng)器; 
    setspeet、rotate_dirc分別為轉(zhuǎn)速和轉(zhuǎn)向控制端口; 
    led_sel、speeddisplay、led_indicator為工作情況指示電路; 
    pl_a、ph_a、pl_b、ph_b、pl_c、ph_c為A、B、C三相橋臂的上下半橋控制端; 
    3.2 Nios II軟核設(shè)計(jì) 
    在本控制器中利用CPU控制靈活的功能用來接受并處理外界控制號(hào)再將處理過的控制信號(hào)送到各個(gè)功能模塊,因此Nios II軟核采用了經(jīng)濟(jì)型即Nios II/e,加入了用于輸入輸出端口(PIO)、片上存儲(chǔ)器模塊(On chip Memory)?刂破鞒绦蛄鞒虉D軟件程序工作流程如圖7所示。 
[align=center]
圖7  CPU控制流程圖[/align]
    CPU內(nèi)部程序采用C++語言編寫,并對(duì)電機(jī)的控制狀態(tài)建立類。通過對(duì)電機(jī)的控制狀態(tài)對(duì)象的操作,即可輸出各種控制命令到接口模塊和CP脈沖發(fā)生模塊,控制電機(jī)狀態(tài);同時(shí)在程序主循環(huán)中監(jiān)視用戶的各種輸入,更新電機(jī)的控制狀態(tài)對(duì)象的成員變量。 
    3.3 CP發(fā)生器模塊和查表控制模塊 
    PatternGenerator模塊根據(jù)設(shè)置的電機(jī)轉(zhuǎn)速產(chǎn)生相應(yīng)的CP脈沖和在該轉(zhuǎn)速下的最適宜的細(xì)分等級(jí),并把這些信號(hào)傳送給查表控制模塊。CP發(fā)生器模塊和查表控制模塊如圖8所示。 
[align=center]
圖8 CP 發(fā)生器模塊和查表控制模塊[/align]
    查表控制模塊(interface)內(nèi)部例化了一個(gè)只讀存儲(chǔ)器,存放一個(gè)周期的正弦數(shù)據(jù)表。正弦表數(shù)據(jù)寬度與系統(tǒng)數(shù)據(jù)流數(shù)據(jù)寬度一致,因此選擇14位寬度。正弦表深度決定了驅(qū)動(dòng)器的最大細(xì)分等級(jí),關(guān)系式表示為:NMAX=2N,當(dāng)N=12時(shí),達(dá)到最高細(xì)分等級(jí)4096細(xì)分。外部輸入CP和CCW信號(hào)后,通過順序的給出三相繞組對(duì)應(yīng)的地址數(shù)據(jù),即可查得三相相電流的給定數(shù)據(jù),并同時(shí)更新三個(gè)給定數(shù)據(jù)寄存器,送入下一個(gè)環(huán)節(jié)。轉(zhuǎn)向交換也在本模塊實(shí)現(xiàn)。輸入的CCW信號(hào)將控制一個(gè)路選擇器,控制正弦表的查表方向來改變步進(jìn)電機(jī)轉(zhuǎn)向。本模塊通過輸入的細(xì)分等級(jí)信號(hào)和CP脈沖信號(hào)共同決定三相繞組的地址數(shù)據(jù)的每次增量大小。當(dāng)細(xì)分等級(jí)最高時(shí),地址計(jì)數(shù)器每次增1或減1;當(dāng)處于非最高細(xì)分精度時(shí),地址計(jì)數(shù)器每次遞增2的N次冪,N由當(dāng)前的細(xì)分等級(jí)確定。 
    3.4 AD采樣模塊與C相電流計(jì)算模塊
    步進(jìn)電機(jī)A、B兩相電流通過霍爾元件進(jìn)行采集,AD采樣模塊通過采集采樣電阻上的電壓來將電機(jī)A、B兩相電流的模擬量轉(zhuǎn)換為數(shù)字量,C相電流模塊由基爾霍夫電流定律ia+ib+ic=0計(jì)算得到。圖9為兩模塊的端口。
[align=center]
圖9 AD采樣模塊與C相電流計(jì)算模塊[/align]
    3.5 PI調(diào)節(jié)模塊 
    PI調(diào)節(jié)模塊是對(duì)給定數(shù)據(jù)和反饋數(shù)據(jù)進(jìn)行離散化PI調(diào)節(jié)。模塊的數(shù)據(jù)寬度統(tǒng)一為14位,即給定數(shù)據(jù)/反饋數(shù)據(jù)/控制數(shù)據(jù)都用14位寬度無符號(hào)整型數(shù)據(jù)表示。本模塊實(shí)現(xiàn)一個(gè)PI控制器功能,如圖10所示。
[align=center]
圖10  PI控制邏輯框圖[/align]
    PI調(diào)節(jié)離散化公式如(4)式所示。 
    I(K)=I(K-1)+KP*(E(K)-E(K-1))+KI*E(K)                  (4) 
    其中,1500≤I(K)≤14384,I(0) = 8192,E(K)=IREF-IOUT 
     模塊在收到啟動(dòng)信號(hào)后,先寄存給定數(shù)據(jù)/反饋數(shù)據(jù),再對(duì)二者擴(kuò)寬符號(hào)位做有符號(hào)減法,并啟動(dòng)KI乘法器計(jì)算KI乘以誤差e的結(jié)果。對(duì)減法的計(jì)算結(jié)果取絕對(duì)值,并與閥值作比較(常數(shù)比較器),比較的結(jié)果存入寄存器。計(jì)算e的誤差增量,即E(K)-E(K-1) ,并用KP乘法器計(jì)算KP乘以誤差增量的結(jié)果。將KI乘法器計(jì)算的結(jié)果先送入累加器,然后再將KP乘法器計(jì)算的結(jié)果送入累加器;模塊的累加器在每次累加的時(shí)候會(huì)進(jìn)行溢出處理和數(shù)據(jù)超出邊界處理,無論哪種情況都會(huì)置為邊界值(最大/最小值)。 
   3.6 PW 
    M發(fā)生器模塊 
    PWM發(fā)生器模塊將PI調(diào)節(jié)后輸出的數(shù)據(jù)轉(zhuǎn)化為PWM波形輸出給IGBT模塊,通過IGBT的通斷切換調(diào)整相電壓,進(jìn)而改變相電流按照給定進(jìn)行變化。PWM波形的生成是通過將給定控制數(shù)據(jù)和載波數(shù)據(jù)比較,通過比較二者大小情況確定PWM的高低電平,實(shí)現(xiàn)PWM調(diào)制,如圖11所示。 
[align=center]
圖11 PWM模塊總體框圖[/align]
    鋸齒波作為PWM載波,驅(qū)動(dòng)時(shí)鐘頻率為200MHz,14位寄存器寬度。為減少計(jì)數(shù)器的進(jìn)位鏈長度,采用計(jì)數(shù)器,拆分為3位計(jì)數(shù)器和11位計(jì)數(shù)器,減少了組合邏輯延遲。死區(qū)保護(hù)發(fā)生器模塊根據(jù)給定的死區(qū)長度數(shù)據(jù),將輸入的PWM信號(hào)輸出為PH和PL信號(hào),分別對(duì)應(yīng)IGBT的上下橋臂,并在PH和PL數(shù)據(jù)的變沿插入死區(qū)保護(hù)(同時(shí)置為低電平)。插入的死區(qū)保護(hù)是通過上升計(jì)數(shù)器和下降計(jì)數(shù)器來實(shí)現(xiàn)的,保證上橋臂和下橋臂不同時(shí)導(dǎo)通。 
    4   仿真結(jié)果 
    對(duì)PWM模塊進(jìn)行功能仿真,仿真波形如圖12所示。經(jīng)分析,六路PWM波滿足時(shí)序和死區(qū)保護(hù)的要求,實(shí)現(xiàn)了設(shè)計(jì)所要達(dá)到的目。將圖12進(jìn)行放大可見IGBT死區(qū)如圖13所示。 
[align=center]
圖15 步進(jìn)電機(jī)反轉(zhuǎn)時(shí)電流波形[/align]
    實(shí)驗(yàn)結(jié)果表明步進(jìn)電機(jī)運(yùn)行時(shí)三相電流相位差120度,三相電流為正弦波,電機(jī)運(yùn)行平穩(wěn),電機(jī)反轉(zhuǎn)時(shí)進(jìn)行反相查表,轉(zhuǎn)換方向時(shí)反應(yīng)時(shí)間短,電流波動(dòng)小。 
    6   結(jié)論 
  本控制器采用Altera 公司嵌入Nios II處理器軟核的FPGA實(shí)現(xiàn)了步進(jìn)電機(jī)正弦波可變細(xì)分控制,大大提高了系統(tǒng)的可靠性,降低了設(shè)計(jì)成本。 
  控制部分采用Nios II CPU軟核是系統(tǒng)控制更加方便靈活。CPU和各個(gè)控制模塊集成在單片F(xiàn)PGA內(nèi),使驅(qū)動(dòng)器集成度大為提高,減小了驅(qū)動(dòng)器的體積。大大提高了細(xì)分精度,實(shí)現(xiàn)了步進(jìn)電機(jī)在是低轉(zhuǎn)速下的4096高細(xì)分的運(yùn)行,消除了步進(jìn)電機(jī)存在的低頻振蕩問題,控制精度顯著提高,在高精密數(shù)控機(jī)床中有廣泛的應(yīng)用前景。 標(biāo)簽:
                                
                            
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(www.cdcst56.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>「頻」實(shí)力,新上市——富士電機(jī) FRENIC...
2025-09-08
華為昇騰Atlas800iA2 910B服務(wù)器Deepsee...
2025-09-04
2025-08-06
2025-07-08