基于FPGA的永磁同步電機(jī)控制器的設(shè)計(jì)
1 引言
國(guó)內(nèi)普遍采用TM320系列的DSP器件作為永磁同步電機(jī)控制系統(tǒng)的主控制器,因CPU負(fù)載過(guò)重導(dǎo)致系統(tǒng)實(shí)時(shí)性降低的問(wèn)題日益顯著。采用具有并行工作特性的FPGA器件作為主控制器能夠提高系統(tǒng)實(shí)時(shí)性。因此,這里給出一種基于FPGA的永磁同步電機(jī)控制器設(shè)計(jì)方案。
FPGA器件內(nèi)嵌NiosⅡCPU軟核的SoPC是Altera公司首創(chuàng)的SoC解決方案。將SoPC應(yīng)用到電機(jī)控制中,是當(dāng)前的研究熱點(diǎn)。FPGA依靠硬件邏輯門(mén)工作,NiosⅡ處理器依靠執(zhí)行軟件程序工作。而在電機(jī)控制中實(shí)現(xiàn)軟硬件協(xié)同工作則是設(shè)計(jì)的難點(diǎn)和創(chuàng)新之處。本設(shè)計(jì)需要特別注意軟硬件協(xié)同工作的時(shí)序控制。軟硬件之間信號(hào)的交換需按嚴(yán)格時(shí)序進(jìn)行控制。
2 片上系統(tǒng)規(guī)劃
片上系統(tǒng)功能總體規(guī)劃為電機(jī)硬件驅(qū)動(dòng)和NiosⅡ系統(tǒng)模塊兩部分,前者主要完成速度外環(huán),電流內(nèi)環(huán)的雙閉環(huán)運(yùn)算;而后者主要完成按鍵輸入、LED數(shù)碼管顯示、電機(jī)驅(qū)動(dòng)器參數(shù)設(shè)置和傳輸以及上位機(jī)通信。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 NioslI系統(tǒng)模塊
3.1.1 Nios lI系統(tǒng)模塊的設(shè)計(jì)
在QuaauslI的SoPC builder中調(diào)出nioslI軟核。調(diào)用4個(gè)用于輸出的PIO核,掛接到Avalon總線(xiàn)上,作為信號(hào)輸出I/O端口,這4個(gè)PIO核分別是start(啟動(dòng)電機(jī)信號(hào)),Data(16位,電機(jī)參數(shù)值),ec(8位,參數(shù)寄存器使能信號(hào)),choice(3位,多路選擇信號(hào))。調(diào)用6個(gè)作為輸入的PIO核用以按鍵輸入。設(shè)置中斷掩碼寄存器為中斷有效,邊沿捕獲寄存器為上升沿檢測(cè)。按鍵經(jīng)FPGA引腳,用戶(hù)設(shè)計(jì)硬件防抖動(dòng)后,產(chǎn)生一個(gè)上升沿信號(hào),啟動(dòng)NioslI處理器中斷,執(zhí)行相應(yīng)中斷功能。調(diào)用異步串口UART內(nèi)核,實(shí)現(xiàn)與上位機(jī)通信,設(shè)置其波特率同定,UART通過(guò)中斷請(qǐng)求實(shí)現(xiàn)數(shù)據(jù)通信功能。圖1和圖2分別給出Niosll系統(tǒng)結(jié)構(gòu)框圖和其電路原理圖。
3.1.2 NiosⅡ系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)設(shè)計(jì)的軟件程序主要在Nios IED軟件中編輯調(diào)試,實(shí)現(xiàn)按鍵中斷程序,按鍵如下:reset(復(fù)位),start/stop(啟動(dòng)和暫停),choose(參數(shù)選擇),increase(參數(shù)值的增量),de-crease(參數(shù)值的減量),transmit(參數(shù)的傳輸);并實(shí)現(xiàn)串口通信中斷程序。圖3為NiosⅡ處理器軟件執(zhí)行流程。
這里只給出 stait按鍵中斷軟件程序代碼,而choose,in-crease,decrease,transmit程序與之相同。
int main(void)
{ alL_irq_register(start_IRQ,start_BASE,start_ISR);//按鍵
start的中斷注冊(cè)
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(start_BASE,
0x01);//開(kāi)啟中斷使能;
IOWR_ALTERA_AVALON_PIO_EDGE_CA(start_BASE,
0x00)://清除捕獲寄存器;
//只給出start變量(用于啟動(dòng)電機(jī))初始化,并寫(xiě)入輸出
寄存器:其他變量初始化相同;
Unsigned start=0;
. IOWR_ALTERA_AVALON_PIO_data(start_BASE,start);
//變量寫(xiě)入輸出PIO寄存器;
While()
}
3.2 電機(jī)硬件驅(qū)動(dòng)模塊
電機(jī)硬件驅(qū)動(dòng)模塊實(shí)現(xiàn)clark,park,i_park坐標(biāo)變換,PI調(diào)節(jié)器,SVPWM產(chǎn)生器,轉(zhuǎn)速檢測(cè)等硬件模塊等雙閉環(huán)結(jié)構(gòu)。由于上述各個(gè)模塊設(shè)計(jì)比較簡(jiǎn)單常見(jiàn),因此,這里主要介紹SoPC時(shí)序控制部分。Reset按鍵為全局復(fù)位。復(fù)位后系統(tǒng)軟件從主程序入口開(kāi)始執(zhí)行;而此時(shí)硬件驅(qū)動(dòng)模塊中的兩個(gè)狀態(tài)計(jì)數(shù)器為“-1”。這兩個(gè)計(jì)數(shù)器計(jì)數(shù)時(shí)間對(duì)應(yīng)50μs和1 ms,分別對(duì)應(yīng)于電流環(huán)和速度環(huán)的采樣時(shí)間。一旦檢測(cè)到來(lái)自NiosⅡ處理器的start高電平信號(hào),該信號(hào)作為計(jì)數(shù)使能信號(hào),這兩個(gè)計(jì)數(shù)器從“0”開(kāi)始計(jì)數(shù),計(jì)數(shù)為“0”時(shí)產(chǎn)生一個(gè)高電平脈沖信號(hào),電流環(huán)計(jì)數(shù)器脈沖用于鎖存SVPWM中的Ta,Tb,Tc(三相占空比信號(hào)),并啟動(dòng)A/D轉(zhuǎn)換。速度環(huán)的
計(jì)數(shù)器脈沖鎖存一個(gè)反饋速度信號(hào),然后計(jì)數(shù)器循環(huán)計(jì)數(shù)。
4 仿真結(jié)果
該系統(tǒng)設(shè)計(jì)對(duì)電機(jī)驅(qū)動(dòng)部分進(jìn)行開(kāi)環(huán)驗(yàn)證。給定uq(旋轉(zhuǎn)坐標(biāo)中的力矩分量)為2 048(16位Q12的定點(diǎn)),ud(旋轉(zhuǎn)坐標(biāo)中的勵(lì)磁分量)為0。正余弦兩個(gè)查找表各有720個(gè)地址,相鄰地址相差0.5°。每相隔50μs查找地址增量為l,即電機(jī)每隔50μs轉(zhuǎn)過(guò)0.5°,約為1 666 r/m。在QuartusⅡ中進(jìn)行時(shí)序仿真可得到如圖4和圖5所示的波形。
由圖4可知,A相上橋臂在每個(gè)PWM周期的占空比不同,具有從增到減,從減到增的規(guī)律;從圖5可知,器件實(shí)際工作時(shí),上下橋臂死區(qū)時(shí)間為2μs,而且死區(qū)時(shí)間可采用NiosⅡ處理器設(shè)置。由于有死區(qū)時(shí)間的控制,該P(yáng)WM可接入電機(jī)進(jìn)行開(kāi)環(huán)調(diào)試。
5 結(jié)論
本設(shè)計(jì)的SoPC器件已產(chǎn)生PWM波,用于開(kāi)環(huán)驗(yàn)證,為后續(xù)閉環(huán)驗(yàn)證提供條件。FPGA在高速數(shù)字信號(hào)處理領(lǐng)域逐顯優(yōu)越,且SoC已成為集成電路發(fā)展的主流,而SoPC是SoC一種靈活的解決方案。其具有軟硬件協(xié)同工作,合理分配軟硬件功能等特點(diǎn),從而能夠快速靈活實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。SoPC控制電機(jī)可提高電機(jī)動(dòng)態(tài)響應(yīng),縮小系統(tǒng)面積,節(jié)省成本。
評(píng)論