基于FPGA的永磁同步電機控制器設計
陳平,曾岳南,楊志平
摘要: 提出一種基于FPGA的永磁同步電機控制器的設計方案,該設計可應用于具有高動態性能要求的永磁同步電機伺服控制系統。為提高伺服控制系統的實時性,簡化電路及節省成本,該系統設計采用Ahera公司生產的CycloneIII EP3C25Q240C8型FPGA器件實現電機控制器。嵌入NiosⅡCPU軟核配合片內硬件乘法器及可編程邏輯門陣列,實現軟硬件協同工作。通過QuartusⅡ軟件自帶的SignalTaplI嵌入式邏輯分析儀進行板上調試驗證,得到帶有死區輸出的PWM波形。該PWM波形可用于電機驅動。
Abstract:
Key words :
摘要:提出一種基于FPGA的永磁同步電機控制器的設計方案,該設計可應用于具有高動態性能要求的永磁同步電機伺服控制系統。為提高伺服控制系統的實時性,簡化電路及節省成本,該系統設計采用Ahera公司生產的CycloneIII EP3C25Q240C8型FPGA器件實現電機控制器。嵌入NiosⅡCPU軟核配合片內硬件乘法器及可編程邏輯門陣列,實現軟硬件協同工作。通過QuartusⅡ軟件自帶的SignalTaplI嵌入式邏輯分析儀進行板上調試驗證,得到帶有死區輸出的PWM波形。該PWM波形可用于電機驅動。
1 引言
國內普遍采用TM320系列的DSP器件作為永磁同步電機控制系統的主控制器,因CPU負載過重導致系統實時性降低的問題日益顯著。采用具有并行工作特性的FPGA器件作為主控制器能夠提高系統實時性。因此,這里給出一種基于FPGA的永磁同步電機控制器設計方案。
FPGA器件內嵌NiosⅡCPU軟核的SoPC是Altera公司首創的SoC解決方案。將SoPC應用到電機控制中,是當前的研究熱點。FPGA依靠硬件邏輯門工作,NiosⅡ處理器依靠執行軟件程序工作。而在電機控制中實現軟硬件協同工作則是設計的難點和創新之處。本設計需要特別注意軟硬件協同工作的時序控制。軟硬件之間信號的交換需按嚴格時序進行控制。
2 片上系統規劃
片上系統功能總體規劃為電機硬件驅動和NiosⅡ系統模塊兩部分,前者主要完成速度外環,電流內環的雙閉環運算;而后者主要完成按鍵輸入、LED數碼管顯示、電機驅動器參數設置和傳輸以及上位機通信。
3 系統硬件設計
3.1 NioslI系統模塊
3.1.1 Nios lI系統模塊的設計
在QuaauslI的SoPC builder中調出nioslI軟核。調用4個用于輸出的PIO核,掛接到Avalon總線上,作為信號輸出I/O端口,這4個PIO核分別是start(啟動電機信號),Data(16位,電機參數值),ec(8位,參數寄存器使能信號),choice(3位,多路選擇信號)。調用6個作為輸入的PIO核用以按鍵輸入。設置中斷掩碼寄存器為中斷有效,邊沿捕獲寄存器為上升沿檢測。按鍵經FPGA引腳,用戶設計硬件防抖動后,產生一個上升沿信號,啟動NioslI處理器中斷,執行相應中斷功能。調用異步串口UART內核,實現與上位機通信,設置其波特率同定,UART通過中斷請求實現數據通信功能。圖1和圖2分別給出Niosll系統結構框圖和其電路原理圖。


3.1.2 NiosⅡ系統軟件設計
該系統設計的軟件程序主要在Nios IED軟件中編輯調試,實現按鍵中斷程序,按鍵如下:reset(復位),start/stop(啟動和暫停),choose(參數選擇),increase(參數值的增量),de-crease(參數值的減量),transmit(參數的傳輸);并實現串口通信中斷程序。圖3為NiosⅡ處理器軟件執行流程。

這里只給出 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 電機硬件驅動模塊
電機硬件驅動模塊實現clark,park,i_park坐標變換,PI調節器,SVPWM產生器,轉速檢測等硬件模塊等雙閉環結構。由于上述各個模塊設計比較簡單常見,因此,這里主要介紹SoPC時序控制部分。Reset按鍵為全局復位。復位后系統軟件從主程序入口開始執行;而此時硬件驅動模塊中的兩個狀態計數器為“-1”。這兩個計數器計數時間對應50μs和1 ms,分別對應于電流環和速度環的采樣時間。一旦檢測到來自NiosⅡ處理器的start高電平信號,該信號作為計數使能信號,這兩個計數器從“0”開始計數,計數為“0”時產生一個高電平脈沖信號,電流環計數器脈沖用于鎖存SVPWM中的Ta,Tb,Tc(三相占空比信號),并啟動A/D轉換。速度環的計數器脈沖鎖存一個反饋速度信號,然后計數器循環計數。
4 仿真結果
該系統設計對電機驅動部分進行開環驗證。給定uq(旋轉坐標中的力矩分量)為2 048(16位Q12的定點),ud(旋轉坐標中的勵磁分量)為0。正余弦兩個查找表各有720個地址,相鄰地址相差0.5°。每相隔50μs查找地址增量為l,即電機每隔50μs轉過0.5°,約為1 666 r/m。在QuartusⅡ中進行時序仿真可得到如圖4和圖5所示的波形。

由圖4可知,A相上橋臂在每個PWM周期的占空比不同,具有從增到減,從減到增的規律;從圖5可知,器件實際工作時,上下橋臂死區時間為2μs,而且死區時間可采用NiosⅡ處理器設置。由于有死區時間的控制,該PWM可接入電機進行開環調試。
5 結論
本設計的SoPC器件已產生PWM波,用于開環驗證,為后續閉環驗證提供條件。FPGA在高速數字信號處理領域逐顯優越,且SoC已成為集成電路發展的主流,而SoPC是SoC一種靈活的解決方案。其具有軟硬件協同工作,合理分配軟硬件功能等特點,從而能夠快速靈活實現系統設計。SoPC控制電機可提高電機動態響應,縮小系統面積,節省成本。
來源:電子設計工程
此內容為AET網站原創,未經授權禁止轉載。