首頁 > 軟體

用MATLAB繪製電機效率MAP圖

2019-12-25 17:36:46

        今天給大家介紹如何用MATLAB繪製電機效率MAP圖。所謂效率MAP圖,就是電機(和控制器)在給定轉速和轉矩下的效率分布。電機(和控制器)的效率是電機轉速和輸出轉矩的二元函數,在三維坐標中是一個曲面。當我們用不同值的效率平面(平行於T-n平面的平面)去「切」這個曲面,並將切線投影到T-n平面上,即是電機的效率MAP圖。這與地理上的等高線圖非常相像,所以我們用contour函數來繪製電機效率MAP圖。

1

資料準備

        以一台2kW無刷直流電機為例,效率試驗和載入試驗獲得的資料如下圖,為常見的xls格式(即Excel表格),載入試驗的資料主要用於繪製電機的機械特性。



2

資料匯入? ? ? 將試驗資料匯入MATLAB,並生成轉速向量、轉矩向量和效率向量。注意,三個向量的長度必須一致。這裡我們用到xlsread函數。【參考指令】speed_load=xlsread('location.xls','sheet1','A2:A14');???? %匯入載入試驗轉速資料torque_load=xlsread('location.xls','sheet1','B2:B14');??? %匯入載入試驗轉矩資料speed_eff=xlsread('location.xls','sheet2','A2:A1492');?? %匯入效率試驗轉速資料torque_eff=xlsread('locatio
n.xls','sheet2','B2:B1492');?? %匯入效率試驗轉矩資料efficiency_eff=xlsread('location.xls','sheet2','C2:C1492'); ? ? %匯入效率試驗效率資料? ? ? ?解釋:「location」為載入試驗資料的儲存路徑;「sheet1」為資料所在的頁;「A2:A14」為轉速資料所在的單元格;句尾分號可加可不加,若不加,MATLAB將在指令視窗中輸出各向量的全部值,方便檢查。
? %匯入效率試驗效率資料? ? ? ?解釋:「location」為載入試驗資料的儲存路徑;「sheet1」為資料所在的頁;「A2:A14」為轉速資料所在的單元格;句尾分號可加可不加,若不加,MATLAB將在指令視窗中輸出各向量的全部值,方便檢查。

3

設定效率曲線數值向量【參考指令】value_eff=[70, 75, 80,81, 84,90];? ? ? ?解釋:value_eff向量用於設定效率MAP圖中各曲線的標定數值,作為contour函數的呼叫引數。向量值和長度根據實際電機設定,向量維數越高,MAP曲線越密。

4

擬合機械特性曲線【參考指令】t1=polyfit(speed_load, torque_load,1)? ? ? ?解釋:polyfit函數用於擬合轉速和轉矩的關係。直流無刷電機的機械特性是一條直線,所以維數設為「1」,具體用法參見MATLAB的Help文件。輸入該指令後按「Enter」鍵,得到兩個引數-0.0782和90.1554,即可得到電機的機械特性函數Tor=-0.0782*spd+90.1554。

5

編寫機械特性函數

       新建一個M檔案,建立機械特性函數

【參考指令】

function Tor=T(spd)

Tor=-0.0782*spd+90.1554;

end

       並儲存在MATLAB的文件路徑中,一般為「C:Users使用者名稱DocumentsMATLAB」。這時,MATLAB的Current Directory中就會出現一個新的M檔案「T」,供MATLAB呼叫。


6

繪製機械特性曲線

【參考指令】

%根據實際測量資料,設定擬合的機械特性曲線的範圍

spd_high=1124:5:1153;         %設定高轉速範圍

spd_low=0:5:697;                 %設定低轉速範圍

figure

%繪製低轉速機械特性

Tor=T(spd_low);

plot(spd_low,Tor,'r--','linewidth',3);

hold on

%繪製高轉速機械特性

Tor=T(spd_high);

plot(spd_high,Tor,'r--','linewidth',3);

hold on

%繪製試驗機械特性

plot(speed_load,torque_load,'r--','linewidth',3);

hold on

得到下圖的機械特性曲線


7

繪製效率MAP

    這裡用到contour函數,具體參見Help文件。

【參考指令】

[SPEED,TORQUE]=meshgrid(0:10:1200,0:1:100);                  %標定坐標範圍

EFFICIENCY=griddata(speed_eff,torque_eff,efficiency_eff,SPEED,TORQUE,'v4');   %插值

[c,h]=contour(SPEED,TORQUE,EFFICIENCY,value_eff);              %MAP圖


8

標定效率數值

【參考指令】

clabel(c,h,value_eff);


9

【設定坐標、標題等】

       可用指令設定,也可以在figure的insert選單中直接設定。


10

其他

       電機效率MAP圖通常只要求機械特性以下的部分,這個可以截圖到各種圖片處理軟體進行處理,最後得出的電機效率MAP圖見下圖。



IT145.com E-mail:sddin#qq.com