我是靠谱客的博主 威武大门,最近开发中收集的这篇文章主要介绍c++map的使用_怎么用Matlab画一个优美的电机效率Map?怎么画二维电机效率Map?怎么画三维电机效率Map?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

做电动车经济性仿真时,我们必须用到电机效率Map。手里没有,怎么办?凭经验定义一个Map,再画出来吧。所以今天的内容来了:怎么用Matlab画一个实用而不失优美的电机效率呢?

有人喜欢二维Map,看着直观;有人喜欢三维Map,看着带感。不急,我们一个一个来。

怎么画二维电机效率Map?

首先,要有数据。凭着多年的工程经验,很容易造出一个电机效率数据,运行下图代码。

a3d4a4f14a520fa03f2b8bd6e197ea32.png

然后,我们开始画效率的等高线,这里会用到一个关键函数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的值。

接着运行下图代码:

e5bad1cd46595fdf0ea665543ee06d8a.png

其中clabel用于给等高线插入标签,一般与contour配合使用。运行完代码后可以得到以下结果:

76794b8dd0386884d49972e7f5da02dc.png

电机效率Map的基本样子出来了,但是看起来感觉有些不舒服,小数点后面都到6位了,能不能只保留两位小数?

于是,我们换了一种打标签的方式。

运行以下代码:

7be3cc848ed0548512427254b93064f6.png

得到下面的结果:

54f08be3b48d823efb0ad76b03a79d9c.png

小数点后面的位数变少了,舒服了一些。不过好像还是缺点什么,别人的图都是渐变颜色的,我们怎么能没有呢?

于是,我们又换了一个更牛逼的函数contourf,它自带光环。运行以下代码:

4d405b76e9a4b5cbf59fb7c68af4ca7f.png

得到下面的结果:

1f208b4d1c392c29c93d5c69457e67e4.png

渐变颜色出来了,可以打开edit菜单下的Colormap功能,把填充颜色调整的更好看一些。再把外特性曲线和坐标轴加上,二维的电机效率Map就基本可以了。

3f55a921ebf65d4a4ab3b751889e64dc.png

怎么画三维电机效率Map?

画三维Map的核心函数是surf。

Surf(X,Y,Z),X、Y、Z分别表示X轴数值、Y轴数值、Z轴数值。需要注意的是,X、Y、Z三个矩阵必须维度相同。

运行以下代码:

7b6762c5b40aa37cd5673baa33095941.png

得到下面的三维图:

178a6c6c1e0b3610797d23146ca2aaf8.png

曲线不太光滑,看起来不是太友好。因为我们给的数据点太少,所以这里考虑用差值来解决,使曲线变得更加光滑。

运行以下代码:

9a64f8b8158180710e9898630584d182.png

再手动调整下颜色就可以得到下面的三维图,效果还可以,具体如下图。

49a890ea0f9fc1c2dc8c0bc8f2b29c02.png

以上,介绍了怎么用MATLAB画二维和三维电机效率map,你学会了吗?

欢迎关注新能源汽车控制,正经的工程师,只有原创!

最后

以上就是威武大门为你收集整理的c++map的使用_怎么用Matlab画一个优美的电机效率Map?怎么画二维电机效率Map?怎么画三维电机效率Map?的全部内容,希望文章能够帮你解决c++map的使用_怎么用Matlab画一个优美的电机效率Map?怎么画二维电机效率Map?怎么画三维电机效率Map?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部