《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的永磁同步電機控制器設(shè)計
基于FPGA的永磁同步電機控制器設(shè)計
陳平,,曾岳南,,楊志平
摘要: 提出一種基于FPGA的永磁同步電機控制器的設(shè)計方案,該設(shè)計可應(yīng)用于具有高動態(tài)性能要求的永磁同步電機伺服控制系統(tǒng),。為提高伺服控制系統(tǒng)的實時性,,簡化電路及節(jié)省成本,,該系統(tǒng)設(shè)計采用Ahera公司生產(chǎn)的CycloneIII EP3C25Q240C8型FPGA器件實現(xiàn)電機控制器。嵌入NiosⅡCPU軟核配合片內(nèi)硬件乘法器及可編程邏輯門陣列,,實現(xiàn)軟硬件協(xié)同工作,。通過QuartusⅡ軟件自帶的SignalTaplI嵌入式邏輯分析儀進行板上調(diào)試驗證,得到帶有死區(qū)輸出的PWM波形,。該PWM波形可用于電機驅(qū)動,。
關(guān)鍵詞: SoPC FPGA 電機控制 NiosⅡ Altera
Abstract:
Key words :

摘要:提出一種基于FPGA的永磁同步電機控制器的設(shè)計方案,,該設(shè)計可應(yīng)用于具有高動態(tài)性能要求的永磁同步電機伺服控制系統(tǒng)。為提高伺服控制系統(tǒng)的實時性,,簡化電路及節(jié)省成本,,該系統(tǒng)設(shè)計采用Ahera公司生產(chǎn)的CycloneIII EP3C25Q240C8型FPGA器件實現(xiàn)電機控制器。嵌入NiosⅡCPU軟核配合片內(nèi)硬件乘法器及可編程邏輯門陣列,,實現(xiàn)軟硬件協(xié)同工作,。通過QuartusⅡ軟件自帶的SignalTaplI嵌入式邏輯分析儀進行板上調(diào)試驗證,得到帶有死區(qū)輸出的PWM波形,。該PWM波形可用于電機驅(qū)動,。

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