专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

用MATLAB绘制电机效率MAP图

来源:小易整编  作者:小易  发布时间:2023-09-02 04:31
摘要:今天给大家介绍如何用MATLAB绘制电机效率MAP图。所谓效率MAP图,就是电机(和控制器)在给定转速和转矩下的效率分布。电机(和控制器)的效率是电机转速和输出转矩的二元函数,在三维坐标中是一个曲面。当我们用不同值的效率平面(平行于T-n平...

今天给大家介绍如何用MATLAB绘制电机效率MAP图。所谓效率MAP图,就是电机(和控制器)在给定转速和转矩下的效率分布。电机(和控制器)的效率是电机转速和输出转矩的二元函数,在三维坐标中是一个曲面。当我们用不同值的效率平面(平行于T-n平面的平面)去“切”这个曲面,并将切线投影到T-n平面上,即是电机的效率MAP图。这与地理上的等高线图非常相像,所以我们用contour函数来绘制电机效率MAP图。

用MATLAB绘制电机效率MAP图

操作方法 01

数据准备 以一台2kW无刷直流电机为例,效率试验和加载试验获得的数据如下图,为常见的xls格式(即Excel表格),加载试验的数据主要用于绘制电机的机械特性。

02

数据导入 将试验数据导入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('location.xls','sheet2','B2:B1492'); %导入效率试验转矩数据 efficiency_eff=xlsread('location.xls','sheet2','C2:C1492'); %导入效率试验效率数据 解释:“location”为加载试验数据的保存路径;“sheet1”为数据所在的页;“A2:A14”为转速数据所在的单元格;句尾分号可加可不加,若不加,MATLAB将在指令窗口中输出各向量的全部值,方便检查。

03

设置效率曲线数值向量 【参考指令】 value_eff=[70, 75, 80,81, 84,90]; 解释:value_eff向量用于设置效率MAP图中各曲线的标定数值,作为contour函数的调用参数。向量值和长度根据实际电机设置,向量维数越高,MAP曲线越密。

04

拟合机械特性曲线 【参考指令】 t1=polyfit(speed_load, torque_load,1) 解释:polyfit函数用于拟合转速和转矩的关系。直流无刷电机的机械特性是一条直线,所以维数设为“1”,具体用法参见MATLAB的Help文档。输入该指令后按“Enter”键,得到两个参数-0.0782和90.1554,即可得到电机的机械特性函数Tor=-0.0782*spd+90.1554。

05

编写机械特性函数 新建一个M文件,建立机械特性函数 【参考指令】 function Tor=T(spd) Tor=-0.0782*spd+90.1554; end 并保存在MATLAB的文档路径中,一般为“C:\Users\用户名\Documents\MATLAB”。这时,MATLAB的Current Directory中就会出现一个新的M文件“T”,供MATLAB调用。

06

绘制机械特性曲线 【参考指令】 %根据实际测量数据,设置拟合的机械特性曲线的范围 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 得到下图的机械特性曲线

07

绘制效率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图

08

标定效率数值 【参考指令】 clabel(c,h,value_eff);

09

【设定坐标、标题等】 可用指令设置,也可以在figure的insert菜单中直接设置。

10

其他 电机效率MAP图通常只要求机械特性以下的部分,这个可以截图到各种图片处理软件进行处理,最后得出的电机效率MAP图见下图。


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1046770.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • nargin在matlab里面啥意思

    nargin在matlab里面啥意思

    nargin为“numberofinputarguments”的缩写。在matlab中定义一个函数时,在函数体内部,nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入helpnargin或者docnarg...

  • Matlab中length函数怎么用

    Matlab中length函数怎么用

    在matlab中,length函数用于返回向量、数组或字符串中的元素个数。以下是length函数的一些用法示例:1、返回向量中的元素个数:v = [1, 2, 3, 4, 5];  numElements = length(v); % 结果...

  • matlab中zeros函数用法

    matlab中zeros函数用法

    matlab中zeros函数是用于返回一个double类零矩阵,其用法是:1、在命令行窗口中输入“b=zeros(5)”,按回车键可生成一个“5*5”的零矩阵;2、在命令行窗口中输入“b=zeros(3,4)”,并按回车键即可。zeros函...

  • Java Map的几种循环方式总结

    Java Map的几种循环方式总结

    根据jdk的新特性,用for循环map,例如循环map的keyJava代码 for(StringdataKey:paraMap.keySet()){System.out.println(dataKey);...

  • matlab中randn函数用法

    matlab中randn函数用法

    matlab中randn函数用法MATLAB中的randn函数matlab函数randn:产生正态分布的随机数或矩阵的函数randn:产生均值为0,方差σ^2=1,标准差σ=1的正态分布的随机数或矩阵的函数。用法:Y=rand...

  • scilab和matlab的区别

    scilab和matlab的区别

    scilab和matlab的区别:1、注释符号;2、预设变量的表示;3、操作符的用法;4、矩阵的定义与调用;5、程序的编辑与执行;6、数据类型;7、函数库;8、图形界面;9、社区支持与生态系统;10、跨平台兼容性;11、价格。详细介绍:1、...

  • CAD绘图技巧:快速绘制云线

    CAD绘图技巧:快速绘制云线

    最近小编后台收到不少的私信,很多小伙伴都来本站求助小编cad云线怎么画出来,为了帮助到大家,小编上网搜集了相关资料,总算找出了cad制图如何快速绘制云线的方法,具体内容小编给大家整理在下面的文章中了,大家有需要的话,赶紧来本站查看一下吧。c...

  • map遍历的几种方式分别是什么

    map遍历的几种方式分别是什么

    map遍历的方式有4种,分别是:1、使用for循环遍历map;2、使用迭代遍历map;3、使用keyset迭代遍历map;4、使用entryset遍历map。遍历map的几种方式如下:(学习视频分享:java教学视频)java代码:Map...

  • 周排行
  • 月排行
  • 年排行

精彩推荐