如何用matlab绘制电机效率map图或发动机万有特性曲线

如何用matlab绘制电机效率map图或发动机万有特性曲线
如何用matlab绘制电机效率map图或发动机万有特性曲线

如何用matlab绘制电机效率map图或发动机万有特性曲线

前段时间写论文,需要绘制电机效率map图,其实和发动机万有特性曲线一样。。

看了好多资料都不会,问问师兄也没具体画过。。困惑中查到貌似有几个软件可以画map图,由于我比较熟悉matlab,就选用它了,可是matlab也不知道咋画呀,我查看了matlab图形处理这一块,突然发现等高线图绘制,咦???这不就是高中地理学的吗???和map图万有特性图本质一样吗???就是contour函数啦,惊喜万分

5.2.13等值线图

等值线图可用于绘制地理数据中的等高图、气象数据中的等势图等。等值线图在二维图形中把第三维中相同大小的数据连接为等值线,一定程度上可以表示第三维的信息,同时等值线图相比三维图更容易观察数据之间的关系,被广泛的应用于各个领域。

MATLAB中提供了一系列的函数用于绘制不同形式的等高线图,其中包括:1.contour()函数

contour()函数可用于绘制二维等值线图,函数的调用格式为:

?contour(z):输入数据z为二维矩阵,绘制数据z的等值线,绘图时等值线的数量和数值根据矩阵z的数据范围自动确定。

?contour(z,n):绘制等值线图,设置等值线数目为n。

?contour(z,v):绘制等值线图,向量v设置等值线的数值。

?contour(x,y,z):绘制矩阵z的等值线图,输入参数x、y用于指定绘制的等值线图的坐标轴数据,同时输入数据x、y、z必须为大小相等的矩阵。

?contour(x,y,z,n):为指定坐标轴的等值线图设置等值线的数目n。

?contour(x,y,z,v):为指定坐标轴的等值线图设置等值线的数值v。

?contour(...,LineSpec):输入参数LineSpec用于设置等值线的线型。

?[c,h]=contour(...):返回contour()函数绘制的等高线图中的等值线的数值标签c和包含所有图形对象的句柄h;

2.contourf()函数

contourf()函数用于绘制带填充的二维等值线图。即在contour()函数绘制的等值线图上,将相邻的等值线之间用同一种颜色填充,不相邻的等值线之间填充有不同的颜色,填充用的颜色决定于当前的色图颜色。函数contourf()的调用格式同contour()。

3.clabel()函数

?clabel(c,h):在句柄h指定的等值线图上的等值线上添加数据标签c。

?clabel(c,h,v):在指定的等值线值v上显示数据标签c。

?clabel(c,h,'manual'):手动方式设置等值线的数据标签。当运行该命令后,等值线图中将出现十字连线,用户用鼠标左键或空格键在最接近指定位置上放置数据标签,回车键结束该操作。

?clabel(c):在当前的等值线图上添加数据标签c。

?clabel(c,v):在当前的等值线图上添加数据标签c,并指定数据标签所加的等值线值v。

?clabel(c,'manual'):用户手动方式为当前等值线图添加数据标签。

另外,函数ezcontour()和ezcontourf()可以直接绘制函数表达式的等值线图,感兴趣的读者可以查阅MATLAB的相关帮助文档。红字是我自己的数据。。

[c,h]=contour(speed,torque,efficient,28)

clabel(c,h,[92.046,91.115,90.184,89.253,88.322,86.460,84.598,81.806,80.874,74.356,70.632])

x=500:5:2000;

y=172;

hold on

plot(x,y)

x1=2000:5:6000;y1=0.000002708*x1.^2-0.04766*x1+256.488;

Hold on

Plot(x1,y1)

title('电机效率map图(%)')

【例5.32】等值线图的绘制。

z=peaks;%函数peaks用于生成图形绘制的示例数据

[c,h]=contour(z);%生成数据矩阵z的不带填充的二维等值线图

title('一般二维等值线图的绘制')

clabel(c,h);%为二维等值线图添加数据标签

colorbar%添加等值线图的颜色条

title('一般二维等值线图的绘制(添加数据标签)')

figure;

v=[min(z(:)):2:max(z(:))];

[c,h]=contourf(z,v);%绘制带填充的二维等值线图,并设置等值线向量v

clabel(c,h);%为二维等值线图添加数据标签

colorbar%添加等值线图的颜色条

title('带填充的二维等值线图的绘制')

figure;

[c,h]=contourf(z,5);%绘制带填充的二维等值线图,并设置等值线条数为5

title('二维等值线图手动添加等值线标签')

clabel(c,h,'manual');%为二维等值线图手动添加数据标签

运行上述程序,显示如图5.44所示的图形。

图5.44(a)等值线图的绘制图5.44(b)等值线图的绘制

图5.44(c)等值线图的绘制图5.44(d)等值线图的绘制

看到等值线图是不是很惊喜????

我们再画map图时,需要定义等维数3个矩阵,

speed=[];

torque=[];

efficient[];

[c,h]=contour(speed,torque,efficient,28);//因为我发现28比较好看。。

clabel(c,h,[92.046,91.115,90.184,89.253,88.322,86.460,84.598,81.806,80.874,74.356,70.632])后面就是细节啦。。下面是没经过处理的结果

相关主题
相关文档
最新文档