怎麼用Matlab畫一個優美的電機效率Map?

做電動車經濟性仿真時,我們必須用到電機效率Map。手裡沒有,怎麼辦?憑經驗定義一個Map,再畫出來吧。所以今天的內容來了:怎麼用Matlab畫一個實用而不失優美的電機效率呢?


有人喜歡二維Map,看著直觀;有人喜歡三維Map,看著帶感。不急,我們一個一個來。

怎麼畫二維電機效率Map?

首先,要有數據。憑著多年的工程經驗,很容易造出一個電機效率數據,運行下圖代碼。

怎麼用Matlab畫一個優美的電機效率Map?

然後,我們開始畫效率的等高線,這裡會用到一個關鍵函數contour。

[c,h]=contour(X,Y,Z,n),X、Y、Z分別表示橫軸數值、縱軸數值、對應高度的數值,n用於定義等高線的數量,C用於保存等高線的數據,h是等高線的句柄。需要注意的是,X、Y、Z三個矩陣必須維度相同。

所以需要對上面的TrqEff、SpdEff做處理,讓他們從向量變為矩陣,便於後面contour調用,這裡會用到函數meshgrid。

[X,Y] = meshgrid(x,y),X的每一行數值都等於x的值,Y的每一列數值都等於y的值。

接著運行下圖代碼:

怎麼用Matlab畫一個優美的電機效率Map?

其中clabel用於給等高線插入標籤,一般與contour配合使用。運行完代碼後可以得到以下結果:

怎麼用Matlab畫一個優美的電機效率Map?

電機效率Map的基本樣子出來了,但是看起來感覺有些不舒服,小數點後面都到6位了,能不能只保留兩位小數?

於是,我們換了一種打標籤的方式。

運行以下代碼:

怎麼用Matlab畫一個優美的電機效率Map?

得到下面的結果:

怎麼用Matlab畫一個優美的電機效率Map?

小數點後面的位數變少了,舒服了一些。不過好像還是缺點什麼,別人的圖都是漸變顏色的,我們怎麼能沒有呢?

於是,我們又換了一個更牛逼的函數contourf,它自帶光環。運行以下代碼:

怎麼用Matlab畫一個優美的電機效率Map?

得到下面的結果:

怎麼用Matlab畫一個優美的電機效率Map?

漸變顏色出來了,可以打開edit菜單下的Colormap功能,把填充顏色調整的更好看一些。再把外特性曲線和座標軸加上,二維的電機效率Map就基本可以了。

怎麼用Matlab畫一個優美的電機效率Map?


怎麼畫三維電機效率Map?

畫三維Map的核心函數是surf。

Surf(X,Y,Z),X、Y、Z分別表示X軸數值、Y軸數值、Z軸數值。需要注意的是,X、Y、Z三個矩陣必須維度相同。

運行以下代碼:

怎麼用Matlab畫一個優美的電機效率Map?

得到下面的三維圖:

怎麼用Matlab畫一個優美的電機效率Map?

曲線不太光滑,看起來不是太友好。因為我們給的數據點太少,所以這裡考慮用差值來解決,使曲線變得更加光滑。

運行以下代碼:

怎麼用Matlab畫一個優美的電機效率Map?

再手動調整下顏色就可以得到下面的三維圖,效果還可以,具體如下圖。

怎麼用Matlab畫一個優美的電機效率Map?

以上,介紹了怎麼用MATLAB畫二維和三維電機效率map,你學會了嗎?


分享到:


相關文章: