吉林大學 李欣序 劉 豫 袁 培 紀永成
基于FPGA的無人機電調模塊的設計
吉林大學 李欣序 劉 豫 袁 培 紀永成
本設計分析了無刷直流電機的工作原理,依據工作原理,提出了一種全數字化的無人機無刷直流電機速度控制并驅動的方案,并且利用京微雅閣公司的FPGA開發板完成了電機控制器的設計、制作和調試。該方案綜合運用了FPGA豐富的邏輯資源,針對電動機信號檢測和控制的特點,采用verilog語言實現了PID控制器、PWM產生、速度檢測、換相控制的設計,整個系統響應速度快、可靠性高、靈活性強,實現了全數字控制。
FPGA;無刷直流電機;PID控制器;PWM模塊
無人機的電機是由電調驅動的,也是無人機的重要部分。傳統的無人機電調主要是由單片機、ARM等實現的。采用基于FPGA設計無人機電調,充分利用了FPGA并行數據處理能力和同步設計優勢,將大部分功能模塊都集成在FPGA芯片內部,外圍電路僅僅包含了電平轉換和驅動電路等簡單電路,避免了MCU等單指令周期芯片的時序特點,系統硬件結構簡單,擴展性更強。能夠滿足各種類型無人機的實時遠程控制要求。
本設計系統框圖如圖1所示,是一個閉環反饋系統,控制量是從FPGA開發板的鍵盤上輸入的,與無刷直流電機反饋回的速度值經過PID算法的修正,輸入到PWM波產生模塊中,產生有特定占空比的PWM信號,與霍爾傳感器反饋回的三路霍爾信號共同輸入到換相控制模塊中,產生實時的電機換相信號,輸出給硬件驅動電路,從而驅動無刷直流電機。
圖1 無人機電調模塊原理圖
圖2 三相功率橋電路以及位置檢測電路
本設計選用的是自帶數字型霍爾傳感器的無刷直流電機,電極對數為1,可反饋三路Ha、Hb、Hc霍爾信號。額定轉速為3000r/ min,額定電壓為24V。硬件電路部分包括功率橋電路,位置檢測電路和驅動電路。本設計所使用的是三相功率逆變橋電路,如圖2左所示,三相逆變功率橋電路采用6個MOSFET搭建而成的三相橋式逆變器,由于其開關速度快,適合中小功率開關電路。這種結構可以將直流驅動信號轉換為三路交流信號,用來控制無刷直流電機的三極。位置檢測電路圖2右所示,用電容電阻進行濾波,經過三極管使5V霍爾信號反饋值變成3.3V反饋回給FPGA。驅動電路采用的是IR2132芯片,此芯片是利用電容充放電技術來驅動功率MOSFET設計的,由于其內部驅動器的導通阻抗小,因此在MOSFET的柵極以及源極加入了電阻以保證更好的工作[1]。
無人機的電調模塊的控制器都集成在FPGA內部,采用verilog語言編程,并在京微雅閣公司的Primance以及Modelsim軟件環境下進行編譯和仿真。FPGA模塊主要包括:PID控制器模塊、PWM產生模塊、換相控制模塊、速度檢測模塊。
3.1 PID控制器
PID控制器是由比例單元P、積分單元I、微分單元D組成的,通過Kp、Ki、Kd三個參數的設定,對設定值與反饋值之差進行調節,輸出控制量。PID控制是最早發展起來的控制算法之一,也是無刷直流電機控制系統最常采用的控制算法,數字PID控制算法是將模擬PID離散化得到,調整方便。本設計的PID控制器采用的是增量式控制器,根據PID算法公式(3.1)可以推出(3.2)。圖3為PID控制器的原理圖[2]。
圖3 PID控制器原理圖
3.2 PWM產生模塊
PWM產生模塊是基于計數比較法產生的,如4圖所示,系統時鐘信號為50MHz,進行時鐘分頻后得到10KHz的時鐘,計數器cnt對10KHz時鐘進行計數,當計數器的計數值為0時,比較器1即圖中ab1輸出高電平,當計數器的計數值達到占空比給定值d時,比較器2即圖中ab2輸出高電平,經過SR鎖存器,輸出PWM波[3]。圖5為PWM模塊仿真結果。
圖4 PWM產生以及換相控制模塊
圖5 PWM模塊仿真波形圖
3.3 換相控制模塊
換相控制模塊是根據電機原理以及換相控制表得出的如圖6,三個霍爾傳感器互差120°對稱放置,輸出脈寬180°的三路霍爾位置信號,電機每旋轉360°會出現六個上升沿和下降沿,正好把三路位置信號在一個周期分成6個區間,每個區間對應一個換相區間,每個上升沿和下降沿都對應一個換相時刻[4]。換相控制模塊輸入的是PWM波以及位置三相霍爾信號(Ha、Hb、Hc),輸出6個電機換相以及速度控制脈沖。其中VT1~6分別控制六路MOSFET的開關,來決定電機的A+B+、A+C+、B+C+導通。圖7為換相控制模塊仿真結果圖[5]。
圖6 電機內部原理圖
圖7 換相控制模塊仿真結果圖
3.4 速度檢測模塊
速度檢測模塊原理是在霍爾信號的一個周期內對一個高頻時鐘進行計數,計數器的計數值為cnt,時鐘周期為Ts,p為電極對數[6,7]。根據公式speed=60/(cnt*Ts*p)得出速度測量值,反饋給PID模塊。圖8、9分別為速度檢測模塊原理以及仿真結果[8]。
圖8 速度測量模塊原理
圖9 速度測量模塊仿真結果圖
本設計首先通過在理論對無刷直流電機調速系統電路進行設計、分析、編寫代碼,并且對軟件和硬件進行調試后,實現了以FPGA為核心控制器的無人機電機的調速系統,這個系統能夠實現檢測電機的電流和轉子位置和自動調節電機轉速,該系統的運行時鐘頻率50MHz,可以在極短時間內電機速度達到設定值。
圖10 無人機電調實物圖
[1]任小青.基于FPGA的PWM控制器設計及應用[D].西安科技大學,2011.
[2]丁衛東.基于FPGA的無刷直流電機驅動控制系統設計與實現[D]. 南京郵電大學, 2011.
[3]敬光紅.基于FPGA的無刷直流電機數字控制方法研究[J].電子器件2016(1):111-117.
[4]李凡.基于FPGA的全數字無刷直流電機控制系統研究[D].重慶大學, 2010.
[5]楊淼.基于FPGA的直流電機控制系統設計[D].華中科技大學, 2014.
[6]Sathyan A, Milivojevic N,Lee Y J,et al.An FPGA-based novel digital PWM control scheme for BLDC motor drives[J]. IEEE transactions on industrial electronics, 2009, 56(8): 3040-3049.
[7]Milivojevic N,Krishnamurthy M,Gurkaynak Y,et al. Stability analysis of FPGA-based control of brushless DC motors and generators using digital PWM technique[J].IEEE transactions on industrial electronics, 2012, 59(1):343-351.
[8]Lai Y S,Shyu F S,Tseng S S.New initial position detection technique for three-phase brushless DC motor without position and current sensors[J]. IEEE Transactions on Industry Applications,2003, 39(2):485-491.
紀永成【通訊作者】(1981-),男,吉林人,吉林大學碩士研究生,工程師。
李欣序(1991-),女,黑龍江人,吉林大學碩士研究生。
劉 豫(1991-),男,遼寧人,吉林大學碩士研究生。
袁 培(1991-),女,河南人,吉林大學碩士研究生。