如何用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()可以直接绘制函数表达式的等值线图,感兴趣的读者可以查阅MA TLAB的相关帮助文档。红字是我自己的数据。。
[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;
如何用matlab将已知点连线[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]) 后面就是细节啦。。下面是没经过处理的结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论