丁 銘 任雁鵬 梁利平
(中國科學院微電子研究所,北京朝陽 100029)
帶有位置傳感器的無刷直流電機會帶來諸多不利因素,如減短電機壽命,增大電機體積,增加電機成本,無法應用于某些特殊環境等,因此無位置檢測方法倍受關注,同時如何設計可靠,小巧,通用性強的無位置傳感器無刷直流電機控制器也是當前研究的熱點。目前對于無刷直流電機控制器主要采用專用集成電路,FPGA,單片機和DSP控制。由于FPGA可以用VHDL,Verilog或C語言來編程,靈活性強,具有靜態可重復編程和動態在線系統重構特性,使得硬件的功能可以像軟件一樣通過編成來修改,并能按照用戶需求來定義接口功能[1]。與單片機或DSP相比,FPGA具有的優勢主要有:
(1)FPGA運行速度快。FPGA內部有集成鎖相環,可以倍頻外部時鐘。使得運行頻率達到幾百兆甚至更高,這是單片機和DSP所遠達不到的,因此在高速場合單片機或DSP是不能替代FPGA的。而且FPGA的邏輯功能都是硬件電路實現的,其延遲都是納秒級別的,硬件運行速度快于MCU或DSP內部軟件運行速度。
(2)FPGA管腳多,容易實現大規模系統。
(3)FPGA內部程序是并行執行的,有處理更復雜功能的能力。而單片機或DSP程序是串行執行的,突發事件只能調用有限的中斷資源,這就使得FPGA工作效率高。
(4)FPGA有大量的IP核,可以方便進行二次開發。
(5)FPGA較單片機或DSP靈活。對于一個型號的單片機或DSP,其外圍設備種類是固定的,個數也是固定的,如果某型號缺少所需要的外設那么就無法完成該功能,同時有的多余外設則會造成浪費。而FPGA則可以較好解決這個問題,FPGA型號種類都很豐富,我們可以選取一塊合適的FPGA,實現想要的外設,管腳也可任意定義。
因此本文采用了Alteral公司提供的型號為EPIC3T100C8的FPGA芯片,來控制無位置傳感器直流無刷電機,通過一些算法改良,巧妙地避免了乘法,除法運算,大大減少了FPGA的邏輯資源消耗,同時提高了運行速度。
無位置傳感器無刷直流電機的FPGA控制系統方案如圖1所示。
有圖可知系統數據的計算處理、控制算法、速度換相時間計算以及PWM產生都是在FPGA 內部用數字硬件實現,外部只需簡單的硬件電路,從而使整個控制系統實現起來很簡單,具有很高的性價比
由文獻[2]可知,采用PWM下降沿采樣的算法,可以在不對相電壓濾波的情況下,依然采樣出正確的數據。
當啟動模塊接受到啟動信號后,采用預定位啟動方法[3-6],產生信號控制PWM占空比不斷增大,同時控制換相時間不斷減小,這樣使得電機轉速不斷提高。當電機速度上升到一定值后,速度計算模塊會產生信號,使能過零檢測模塊,將PWM下降沿采樣得到的數據進行一系列運算,采用改良的相電壓方法[7],檢測出過零點位置,當連續檢測到三個正確的過零點后,切入閉環控制模式。此后設定的速度與計算得到的速度作差進入速度調節模塊進行PID運算,得到的輸出值和采樣得到的電流值繼續作差進入電流調節器進行PID運算,輸出的值作為PWM占空比控制。隨著PID的作用,電機運行速度會達到設定的速度,穩定運行。
具體實現模式是:首先在一些控制信號:如占空比信號,PWM選擇信號,時鐘信號等產生一相應占空比的PWM信號,接著此信號和六路PWM選擇信號相與,其中選擇信號將相應需要PWM輸出的兩路置位1,其它四路置位零即可。其硬件框圖如圖2所示:

圖2 :六路PWM輸出硬件框圖
此模塊經過綜合后所需邏輯資源很少,并且最大數據延遲很小,最大為18ns,響應速度很快,而采樣控制信號的響應速度快決定著采樣精度高,采樣得到的數據與理想點采樣值偏差小,這在低速時尤為重要,因為低速時由于相電壓斜率低,采樣得到的數據本來就差距不大,此時如果再引入由于采樣帶來的較大偏差,往往使得電機不能穩定運行甚至停轉。
此模塊主要是為了實現電機的無位置檢測控制。采用改良的相電壓法,有如下公式:假定b相關斷且沒有續流,則有:

其中eb表示b相反電動勢,Ubc表示b、c相端電壓之差,Uab表示a、b相端電壓之差[7]。每次換相后,清零計數器,并開始計數;同時利用PWM下降沿采樣得到的相電壓數據經過公式(1)與零比較,以上升的反動勢而言,當連續檢測到一個小于零和兩個大于或等于零的點后,確定前一個大于零或等于零的點為過零點。當確定出過零點后記下計數器相應值,以便確定下一次換相時刻。利用硬件實現的PWM下降沿采樣,一旦出現PWM下降沿就會迅速采樣對應相電壓的值,延遲很小,使得采樣的數據精確度高,過零檢測正確性也高,這在低速時尤為重要。避免單片機或DSP采樣相應速度慢,帶來的延遲,使得PWM下降沿采樣時的數據有一定偏差,而這種偏差在低速時,由于相電壓斜坡斜率較低,往往會導致由于采樣精度不高而導致過零檢測失敗。

圖3 過零檢測硬件實現框圖
實現硬件框圖如下圖3。
PID控制算法是一種簡單有效的控制算法,可使系統穩定運行,而且魯棒性好,可靠性高,因此得到廣泛應用。其公式為:

其中比例項公式:

積分項公式:

式中:ek為誤差輸入,Kp為比例增益,Ki為積分增益。Ki,Kp的范圍由實際電動機的參數決定,其具體數值需經實驗來確定。
而實際應用中,對于乘法運算,需要消耗大量邏輯資源,延遲加大;為了減少消耗,減低延遲,采用左移算法代替乘法:比如Kp取102,那么完全可以用:

代替(3)式。而且在很多系統中,很多時候,假設Kp值已經調至穩定,那么其值稍微變化并不影響系統性能,也就是說Kp=102和Kp=96很有可能達到效果差不多,那么(5)式可以進一步化為:

這樣利用左移代替乘法,大大減少了邏輯消耗資源,同時提高的運行速度。對于某FPGA芯片而言,假如其邏輯資源已經消耗殆盡,那么完全可以做這樣的處理減少消耗,這也體現出了利用FPGA的靈活性。
不管是電流調節器還是速度調節器,如果參考值比較大,那么積分器就有可能建立起一個很大的誤差值,并且由于積分器的慣性作用這個誤差會一直保持較長的時間,從而會導致過大的超調。因此在設計PI調節器時,應當在積分器的輸出超過限定值時立即關閉積分作用(稱之為Anti-windup)[8-10],當PI調節器輸出飽和限制器達到飽和值時,輸出飽和信號模塊檢測到飽和信號后,將停止積分作用而保持上一次的值,直到飽和信號消除后積分器才繼續積分,這樣該模塊就可以減少過度超調的影響,從而使系統快速進入穩態。
速度環PI硬件電路結構如下圖4所示,電流環的結構類似。

圖4 PI硬件結構框圖
假如過零檢測模塊檢測到過零點后,計數器的值是m,定義一變量P=fclk/fpwm,fclk為計數器的計數時鐘頻率,fpwm為PWM采樣頻率,也就是說P表示一個PWM周期所需要計數的值。反動勢過零檢測如下圖5所示。

圖5 :反電動勢的過零點檢測
其中A點是此電動勢關斷起始點,E點是下一個換相點,B,C,D用于確定過零點,且C點被認為是過零點。也就是說計數器從零開始計數,從A點開始計數到D點時計數器的值為m。從A點到C點,和從C點到E點時間近視相等,為1/12反動勢周期T,則T=12*(m-P)/fclk。由于檢測到過零點后已經存在1個PWM采樣所需時間的延遲,也就是說從D點開始從零開始計數到E點,用同樣時鐘計數的話,計數的值為:

也就是說我們可用一個同樣時鐘控制的計數器從D點從零開始計數,當計數到m’點后產生換相信號,并清零計數器,即可完成無刷直流電機的換相。在速度大于基速后,需要提前換相[11-12]才能繼續上升速度,也就是需要進一步減少換相時間,取Advance變量為所需提前換相的量,那么(7)式修改為:

電機速度計算公式如下:

其中f和反動勢頻率一致,即f=1/T=fclk/(12*m),P為電機極對數。由于計算速度需要用到除法,這對FPGA而言,消耗的邏輯元是難以想象的,而且數據延遲增加。那么如何完成速度的PID運算呢。
這時不妨參考計數器的值m,這個值與速度成反比,而且可以直接從計數器里取出來用,非常方便。于是完全可以用相應設定速度對應的計數器值和實際計算得到的計數器值做差來進行PID運算。假如設定速度為3000rpm那么根據(9)式可以求得相應的m,然后這個值與每次計算得到的計數器值之差作PID運算即可。
硬件實現框圖如下圖6所示:

圖6 :換相信號產生硬件模塊
本實驗采用的FPGA芯片為Alteral公司提供的EPIC3T100C8型號的FPGA芯片,圖7給出了無位置傳感器無刷直流電機的FPGA控制板示意圖。實驗中用到的電機極對數為3,PWM采樣頻率為16k(我們所用的逆變器最大承受頻率為20k)。用FPGA控制時電機能下至84rpm(我們采用同樣的算法,用DSPIC30F4012的DSP芯片控制,低速只能達到580rpm),最高能上至12000rpm,其速度運行穩定,波動很小,誤差在正負10轉以內。如圖8給出了在PWM-ON-PWM調制方式下的7000rpm在0.5N*M負載下電流相電壓波形。

圖7 :FPGA控制板示意圖

圖8 :相電壓與相電流波形
本實驗通過一些改良的算法成功實現了利用一塊低端的FPGA芯片控制無位置傳感器直流無刷電機,使得電機運行穩定,響應速度快,并且使采用PWM下降沿采樣,反電動勢過零檢測的算法能有效控制電機降低至很低速,(本實驗為84rpm)同時利用FPGA芯片可以靈活編程增加所需接口,與相應外設相連,能更靈活的適用于其它設備。
[1]夏長亮,無刷直流電機控制系統,北京東黃城根北街16號,科學出版社,2009,(13).
[2]孟德昀,胡海云,謝保昌.無何置傳感器無刷直流電機驅動設汁 [J].微特電機,2003.(1):21-22
[3]劉明基,王 強.電動勢換向無刷直流電機的預定位起動法[J]. 微特電機,1999,(2).
[4]馮培悌,舒振杰.永磁無刷直流電機的無位置傳感器控制技術[J].機電一體化,2001,(5).
[5]吳素平,羅隆福.基于DSP的無刷直流電動機的無位置傳感器控制技術[J].機車電傳動,2004,(1).
[6]王冉冉,劉玉慶.無位置傳感器無刷直流電機起動的比較與研究[J].微電機,2003,(1).
[7]李自成,秦憶,陳善美,無刷直流電機無位置傳感器控制關鍵技術研究,華中科技大學,20100301,(20).
[8]楊明,徐殿國,貴獻國.控制系統Anti- Windup 設計綜述[J]. 電機與控制學報,2006,10(6),(622).
[9]周兆勇,李鐵才,高橋敏.基于矢量控制的高性能交流電機速度伺服控制器的FPGA 實現[J].中國電機工程學報,2004,24(5),(68).
[10]HodelA S,Hall C E.Variable- structure PID control to prevent integrator windup [J].IEEE Trans.on Industrial Electronics,2001,48(2),(442).
[11]C.C.Chan,W.Xia,J.Z.Jiang,K.T.Chau and M.L.Zhu,“Permanent magnet brushless drives”,IEEE Industry Application Magazine,Nov./Dec.1998,(16).
[12]J.S.Lawler,J.M.Bailey,J.W.Mc Keever,Ioao Pinto,“Limitation of the conventional phase advance method for constant power operation of the brushless DC motor”,Proc.IEEE Southeast Conf,Apr.2002,(174).