何凡鋒,馬瑞娜,吳忠得
(首都航天機械有限公司,北京,100076)
Proteus 軟件是Labcenter Electronics 公司開發的EDA 工具軟件,它具有強大的原理圖設計、電路仿真、PCB設計功能,能實現完整的電子設計,在嵌入式開發領域應用十分廣泛。但是,它與matlab 等高級仿真軟件相比,在無刷直流電機仿真方面存在一定不足,其仿真模型的數量與模型仿真功能較少。軟件自帶的motors 庫里面,只有BLDC-STAR、BLDC-TRIANGLE、MOTOR-BLDCM 三 種 無刷直流電機仿真模型。目前,學者只能利用這些模型進行簡單的仿真試驗研究。王家豪[1]等學者, 以80C51 為控制核心,利用BLDC-STAR 模型進行了仿真,只給出了Hall 傳感器輸出信號波形;孫曉旭[2]等學者,利用AVR 單片機并結合BLDC-STAR 模型,以額定速度200 r/min 進行開環與閉環控制仿真,僅得出196.4 r/min 與199.9 r/min 的兩個結果;王偉[3]等學者,利用Arduino 單片機與BLDC-STAR模型進行了閉環控制仿真,只展了速度與電流簡單波形;高珮文等[4]學者,設計了無刷直流電動機控制系統,并利用MOTOR-BLDCM 模型進行了仿真,只給出了H 橋的輸出波形與霍爾速度檢測脈沖波形。顯然,這些研究表明,系統自帶的仿真模型只能獲得BLDCM 系統變量的簡單數據,無法獲取瞬時扭矩、電流、反電勢、轉子速度等全過程的精確仿真細節信息。
為了在仿真過程中提供更多的BLDCM 仿真細節,本文先利用Proteus 的ASIMMDLS 庫、DSIMMDLS 庫與LAPLACE 庫的庫元件,并結合系統函數,采用自制仿真元件的思路,構建一個新的BLDCM 原理圖仿真模型。然后,用滯環電流控制方法驗證仿真模型的正確性。最后,用Matlab 進行仿真比對分析。
BLDCM 采用星形連接、三相六狀態形式。根據參考文獻[5~7],電壓平衡方程整理如下:
式中,Ua、Ub、Uc是三相電子電壓(V);R為三相定子繞組的相電阻(Ω);ia、ib、ic是三相電、子電流(A);Ls為自感與互感的等效電感(H);p是微分算子(d/dt);Ea、Eb、Ec是三相定子的反電動勢(V)。其中,Ea=pnfluxωrφa(θe)、Eb=pnfluxωrφb(θe)、Ec=pnfluxωrφc(θe),函 數φa、φb、φc函 數各取值范圍都是[-1~+1],pn是電機極對數,flux是單相繞組的磁鏈(Wb),θe為轉子電角度(rad),ωr為轉子機械角速度(rad/s)。
電磁轉矩方程:
其中,Te為電磁轉矩(N.m)。
為了便于計算,令KEa=pnfluxφa(θe)、KEb=pnfluxφb(θe)、KEc=pnfluxφc(θe),根據前面提到關系,約掉速度ωr,得到簡化公式:
另外,從力學角度,轉子的轉矩計算為:
其中,B為阻尼系數(N.m.s/rad);J為電機轉動慣量(kg.m2);TL為負載轉矩(N.m)。
轉子的角度與角速度關系為:
其中θr為轉子的角度(rad),電角度θe關系為θe=pnθr。
電路采用了自制元件模型的方式構建,BLDCM 的仿真模型以及滯環電流控制系統[8]如圖1 所示。主要模塊包括U1(PI 閉環計算模塊)、U2(反PARK 變化模塊)、U3(滯環比較與逆變器模塊)、U4(BLDCM 電機模塊),都是自制元件。圖中下方,K 模塊是速度ωr的單位轉換比值(30/π)乘積模塊,用于將速度的單位轉換,由(rad/s)轉為(r/min)。圖中文本部分,以*DEFINE 開頭的內容是Proteus 的腳本語言,用于定義一些仿真時需引用的常量。

圖1 電機滯環電流控制框圖
電流滯環控制的基本原理:首先,通過檢測各相的瞬態實際輸出電流(ia、ib、ic),然后與給定的電流進行比較(ia*、ib*、ic*),當實際電流大于給定值,則通過改變逆變器的開關狀態,讓電流減少,反之增大。這樣,可以控制實際電流繞給定電流做上下鋸齒狀變化,處于一定的變化范圍,這是是一種Bang-Bang 控制方法。這個滯環電流控制系統包括兩個閉環,轉速控制環與電流滯環控制環。電流滯環控制環采用Bang-Bang 控制,不僅控制簡單,而且不依賴于電機參數,魯棒性好。以B 相為例說明控制過程,當反饋電流ib的瞬時值與給定電流ib*之差達到滯環的上限時(ib*-ib≥HB/2,HB 為滯環寬度),逆變器控制B 相上橋臂關閉,下橋臂導通,導通電壓為-Udc/2,電流ib下降;反之,當反饋電流ib的瞬時值與給定電流ib*之差達到滯環的下限時(ib*-ib≤HB/2),逆變器控制B 相下橋臂關閉,上橋臂導通,導通電壓為+Udc/2,電流ib上升。這樣,通過橋臂開關的器件的交替通斷,控制實際電流與給定電流一直處于滯環范圍之內。
整套仿真系統的控制流程:首先,由PI 閉環計算模塊將給定的目標速度Speed 與反饋速度進行差值計算,并按設定的Kp、Ki 值進行PI 計算得出目標iq*(采用了id*=0 控制策略)。然后,經過反PARK 變化模塊得出目標控制電流ia*、ib*、ic*。接著,由滯環比較與逆變器模塊對給點的電流值以及反饋的電流值進行比較,輸出電機的三相電壓控制信號Ua、Ub、Uc。最后,BLDCM 電機模塊根據給定的電壓信號以及負載Load 情況計算模擬電機運行,并輸出ia、ib、ic、Ea、Eb、Ec、ωr(wr)、θe(the_e)等實時信號。
下面,介紹各個模塊的內部原理圖結構做介紹。
該模塊的內部原理圖如圖2 所示。+號是Speed 的輸入端子,-號是反饋速度ωr的輸入端子。iq*是PI 運算后的輸出端子。這里利用ASIMMDLS 庫的兩種元件搭建PI 控制算法。

圖2 PI 閉環控制模塊圖
ACS1(Arbitrary Voltage Controlled Current source) 與理想電容C1 構成一個積分器。ACS1 的電流大小就是左側兩引腳電壓的差值err=V(A,B)=V(A)-V(B)。它再乘以-Ki 積分比值就表示:差值是正的時候,電流流向C1,表示充電,C1 兩端電壓升高;相反,差值是負的時候,C1 放電,兩端電壓降低。根據電容與電流的微分關系uc=1/C*∫icdt,當C=1F 時,電容的電壓就是電流的積分值。因此,uC1=Ki*∫errdt。SUM1(Ideal 2 Input Adder)是理想的電壓加法器,它的輸出效果就是:Kp*err。SUM2 的輸出結果就是:
反PARK 變換的目的是要將同步旋轉坐標系下的id*、iq*轉換為自由坐標系下的ia*、ib*、ic*,內部原理圖如圖3 所示。

圖3 反PARK 變換模塊圖
MULT1(Ideal 4 Quadrant Multiplier)~MULT6 是 理 想的乘法運算器,也是ASIMMDLS 庫的元件,它可以實現輸入端V(A)與V(B)的乘法運算,也可以按需要做其它運算,如圖中插入三角函數運算。the引腳是電角度θe的輸入引角。圖中描述的關系就是:
MULT2 與MULT1 串聯就表示兩者的乘法結果進行求和計算,屬于電壓疊加,這種串聯方式可以節約SUM 元件的使用。
這個模塊是比較給定電流與實際電流瞬時差值的關鍵模塊,內部原理圖如圖4 所示。實際電流瞬時值ia、ib、ic做了5e-6s 微小延時處理,這是為了保持與參考資料[8]一致,后續Matlab 仿真也設置了這樣的延時。這個模塊混合使用了ASIMMDLS 庫與LAPLACE 庫的元件。

圖4 滯環比較與逆變器模塊圖
NL1(Laplace Non-linear Two-Level Switch With Hysteresis)~NL3 是非線性滯環比較器,它有四個內部參數,閾值下限、閾值上限、輸出下邊界、輸出上邊界,這里分別設置為-
BLDCM 電機模塊是由ASIMMDLS 庫元件組成,內部原理圖如圖5 所示。模塊分成(a)、(b)、(c)、(d)四個功能區塊。區塊(a)展示了電機三相繞組的連接形式,各相分別由一個反電勢(AVS 可控電壓源)、一個理想電感Ls、一個電阻R 串聯而成,各相的末端分別匯集到一點,成星形連接。反電勢AVS 的大小由其+極輸入端電壓控制,分別是Ea、Eb、Ec 端子。并聯在電阻上端的AVS 可控電源用于檢測相電流的瞬時大小,并輸出與電流等值的電壓信號,分別以ia、ib、ic 端子輸出。

圖5 BLDCM 電機模塊圖
區塊(b)用于實現系數KEa、KEb、KEc的計算,用了6個AVS 壓控電壓源,分別調用了cos、limit 函數。反電勢φa、φb、φc函數采用了cos 來模擬[9],寬度為120°,limit函數用于限制幅值處于[-1~+1]之間,分別乘以pnflux后得到KEa、KEb、KEc。區塊(c)通過MULT 電壓源分別計算Ea、Eb、Ec。區塊(d)的功能是實現轉子角速度與角度的計算,主要根據公式(3)~(5)來計算。按照公式(3),利用三個MULT 電壓源串聯,利用電壓疊加得到電磁轉矩Te。上端串入AVS17 模擬負載轉矩TL,前面帶-1.0 系數表示負電壓,起到相減的效果,這里帶了輸入端子,可以從電機模塊外部輸入負載階躍信號傳遞到這里。AVS17 上面,再串接AVS16 模擬阻尼系數B 產生的阻力,前面也帶-1.0 系數表示負電壓。它的輸出端電壓通過ACS2 與C1 的配合,形成積分效果,C1 的上端電壓就是模擬轉子速度ωr,再利用ACS1 與C2 積分,得到轉子的角度θr,利用AVS18 乘以極對數pn得到電角度θe。下面的angle 角度是為了波形顯示,將連續的θe角轉換為0~2π 取值范圍的轉子角度。
仿真試驗采用相同的電機參數,分別做兩種仿真試驗:Proteus 的 圖 表 仿 真(Analogue Analysis)與Matlab Simulink 仿 真。仿真軟件分別為Proteus8.13 與Matlab R2014B。電機參數:表貼式永磁無刷直流電機,電機反電勢為梯形波,相電阻R=2.85Ω,相等效電感Ls=0.0085H,阻 尼 系 數B=0.0008N.m.s/rad,轉 動慣 量J=0.0008kg.m2,相 繞 組 的 磁 鏈flux=0.175Wb,極對數pn=4,滯環寬度HB=0.1,電源電壓Udc=310V。仿真條件:額定速度Speed=1000r/min,初始時刻負載TL=3N.m,0.05s 時負載TL=1N.m。速度環PI 控制參數:Kp=1,Ki=0.06。
基于圖表仿真的方法:是在Proteus 界面的工具箱中選擇ANALOGUE 分析工具,在原理圖上直接繪制仿真圖表,然后添加需要的探針信號標識,便可以運行圖表仿真。這種圖表仿真,位于原理 圖上,有助于快速捕捉原理圖設計意圖,比較直觀、方便。這里采用了四種圖表仿真,仿真結果如圖6 所示。

圖6 Proteus 仿真結果圖
圖 中,(a)、(b)、(c)、(d) 分 別 為反電勢、電流、轉速、力矩的波形圖。從仿真結果可以看出,在0~ 0.1s 仿真期間,各個階段的瞬時仿真細節展示比較清晰,比文獻[3]提到的相應波形更加細致,充分反映了電機的瞬時運行狀態,以及運動規律。從控制效果看,啟動時電機雖然帶著TL=3N.m 的負載轉矩,但是0.01s 后就達到了1000r/min 的額定轉速;0.05s 后,負載轉矩降低到TL=1N.m 時,電機也能維持在額定轉速,說明滯環電流控制滿足了電機控制要求,從而驗證了BLDCM 仿真模型的正確性。
Matlab 的仿真引用了參考資料[8]提供的仿真方法,Simulink 控制框圖如圖7 所示。雖然框圖中電機的模型圖標是PMSM 電機,但實際上,里面的參數都按這里的仿真條件設置成了BLDCM 電機模型。

圖7 控制框圖
該仿真模型的仿真結果如圖8 所示。

圖8 Matlab 仿真結果圖
圖中,(a)、(b)、(c)、(d)分別為反電勢、電流、轉速、力矩的波形圖。整體上看,Simulink 的仿真結構與前面的仿真結果基本一致。下面,對這兩種結果進行比對分析。
從Proteus 的圖表仿真結果與Matlab Simulink 仿真結果對比發現,BLDCM 的反電勢波形、電流波形、速度波形、力矩波形的形狀分別相同。反電勢波形,在0.01s 之內,波動范圍均是-80V~+80V。0.01s 之后,都是相同幅值的標準梯形波。電流的波形,在0.01s 之內波動比較大,都是在-25A~30A 之間,0.01s 之后都是相同幅值的馬鞍波形。轉速波形,在整個仿真周期都是一致的,在0.01s 之前,出現了10%的超調量,但是,迅速進行了調整,之后就穩定在額定轉速1000r/min。力矩波形,在0.01s 之前波動較大,均處于-25N.m~+40N.m之間,0.01s之后,力矩輸出曲線相對平坦,且與負載的階梯變化保持一致。顯然,這兩種仿真方式都成功獲得了相同參數BLDCM 的仿真結果,四種波形詳細的展示了相同的運行狀態。
為了進一步了解兩種軟件的仿真差異,以速度波形為分析對象,兩種波形做個相減操作,讓圖8 數據減去圖6 數據得出差值,結果如圖9 所示。

圖9 速度差值圖
圖中,(a)為全輪廓圖,(b)為放大圖。在0.01s 之前,速度差值較大,波動范圍為-135r/min~+115r/min;0.01s 之后,差值大幅度減少,當負載轉矩為TL=3N.m 時,穩定在-0.4r/min~+0.3r/min 之 間,當 負載 轉 矩 為TL=1N.m 時,穩 定在-0.25r/min~+0.1r/min 之間。顯然,在達到額定轉速之前,兩種仿真結果之間的差值比較大,到達額定轉速之后,差值變得較小,負載轉矩越變小時,差值也變小。出現這樣的情況,其中的原因涉及到軟件的底層代碼、采樣精度、收斂算法等等因素,可能需要相關的軟件開發人員才能解答清楚,有待后續進一步研究。不過,這點差異對于研究電機的控制算法影響不大,仿真結果依然可以充分展示電機的運行規律。
通過Proteus 與Matlab 兩種軟件的仿真試驗研究可以看出,Proteus搭建的仿真模型,其仿真結果充分展示反電勢、相電流、轉速、力矩的變化細節,與Matlab 的仿真結果在變化趨勢、波動幅度方面基本一致,證明了基于Proteus 建立的BLDCM 仿真模型的正確性。該模型展示的電機仿真細節比系統自帶的電機模型更詳盡,在一定程度上可以媲美Matlab 軟件的仿真效果。因此,這個BLDCM 模型完全可以作為Proteus 軟件在BLDCM 仿真方面的有效補充,值得推廣應用。