新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的永磁同步電機控制器的設計

        基于FPGA的永磁同步電機控制器的設計

        作者: 時間:2017-06-05 來源:網絡 收藏

        1 引言

        國內普遍采用TM320系列的DSP器件作為控制系統的主控制器,因CPU負載過重導致系統實時性降低的問題日益顯著。采用具有并行工作特性的FPGA器件作為主控制器能夠提高系統實時性。因此,這里給出一種基于FPGA的控制器設計方案。

        FPGA器件內嵌CPU軟核的SoPC是Altera公司首創的SoC解決方案。將SoPC應用到電機控制中,是當前的研究熱點。FPGA依靠硬件邏輯門工作,處理器依靠執行軟件程序工作。而在電機控制中實現軟硬件協同工作則是設計的難點和創新之處。本設計需要特別注意軟硬件協同工作的時序控制。軟硬件之間信號的交換需按嚴格時序進行控制。

        本文引用地址:http://www.104case.com/article/201706/349317.htm


        2 片上系統規劃


        片上系統功能總體規劃為電機硬件驅動和系統模塊兩部分,前者主要完成速度外環,電流內環的雙閉環運算;而后者主要完成按鍵輸入、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控制電機可提高電機動態響應,縮小系統面積,節省成本。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鄂州市| 棋牌| 罗田县| 宣化县| 吉木乃县| 台安县| 鹤庆县| 翼城县| 随州市| 绵阳市| 康定县| 秦安县| 桦南县| 九台市| 永吉县| 大同市| 镇沅| 甘泉县| 奉节县| 马山县| 蚌埠市| 崇义县| 清苑县| 三穗县| 炎陵县| 阳高县| 崇州市| 宁波市| 雷波县| 克山县| 廉江市| 怀柔区| 烟台市| 黔南| 齐河县| 班玛县| 武川县| 怀宁县| 思南县| 都匀市| 南充市|