使用Simulink進行無刷直流電機控制仿真


    這段時間剛開始接觸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相電流,霍爾信號以及轉子機械角度如下圖。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM