這段時間剛開始接觸Matlab中的Simulink仿真,我就結合自己的專業,利用Simulink進行了無刷直流電機的仿真,因為Simulink工具箱里面有很多可用的模塊,所以建模過程變得非常簡單。
在Matlab界面中new->model之后,找到Simulink Library Browser,這里面有系統自帶的很多模塊,接下來我們就需要找到自己所需要的模塊了,了解無刷直流電機的工作原理以后,接下來就是找到直流電源、三相逆變橋、無刷直流電機模型。而Simulink中也有這些模型,可以直接通過搜索關鍵字找到它們,分別是DC Voltage Source、Universal Bridge、Permanent Magnetic Synchronous Machine。接下來就是需要將相應的信號連接起來,如下圖
其中,直流端電壓可以設置電壓大小,逆變橋可以選擇開關器件類型,我們這里選擇Mosfet,PMSM中我們將反電勢波形選擇trapezoidal即梯形波,電機參數相電阻、相電感、反電勢常數、極對數按實際值設置。Universal Bridge對應如下橋式拓撲結構。
然后就是添加相應的負載Tm,這里可以模擬突加負載和突減負載以及任意變化的負載,通過給定一個函數就可以。然后就是開關信號g,下面會詳細介紹。模型搭建完成后如下圖。
PMSM輸出端給的信號通過Bus Selector選擇,我們需要使用的是三相霍爾信號得到相應的開關邏輯,這也是該仿真的關鍵所在,其中整個模型中Subsystem1就是實現開關邏輯的算法。我們可以根據霍爾換相真值表,通過相應的邏輯門實現,但是這樣搭建模型顯得不靈活而且很累贅,並且不能模擬超前或者滯后換相。所以我這里才用的是通過Matlab Function來實現的。
如上圖,這是換相邏輯的模型,其中我采用的是下橋臂恆通,上橋臂PWM調制的方式導通Mosfet,目前占空比的給定方式采用的是常數,后續可以根據轉速環進行PI給定。換相便是根據換相真值表而來。
霍爾信號 |
Mosfet導通真值表 |
導通相 |
|||||||
Ha |
Hb |
Hc |
Q1 |
Q2 |
Q3 |
Q4 |
Q5 |
Q6 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
CB |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
BA |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
CA |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
AC |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
AB |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
BC |
接下來就是按照真值表編寫相應開關邏輯代碼,
1 function [y1,y2,y3,y4,y5,y6] = fcn(ha,hb,hc,theta) 2 y1=0;y2=0;y3=0;y4=0;y5=0;y6=0; 3 tmp=hc*4+hb*2+ha; 4 if tmp==4 5 y1=0;y2=0;y3=0;y4=1;y5=1;y6=0; 6 end 7 if tmp==6 8 y1=0;y2=1;y3=0;y4=0;y5=1;y6=0; 9 end 10 if tmp==2 11 y1=0;y2=1;y3=1;y4=0;y5=0;y6=0; 12 end 13 if tmp==3 14 y1=0;y2=0;y3=1;y4=0;y5=0;y6=1; 15 end 16 if tmp==1 17 y1=1;y2=0;y3=0;y4=0;y5=0;y6=1; 18 end 19 if tmp==5 20 y1=1;y2=0;y3=0;y4=1;y5=0;y6=0; 21 end 22 23 end
代碼添加完成以后,就可以配置Mosfet上下橋臂的導通模式了,我這里采用了上橋臂PWM調制,下橋臂導通的模式,即H_PWM-L_ON方式。一切准備就緒,下面來看仿真結果,A相電流,霍爾信號以及轉子機械角度如下圖。