matlab他励直流电动机机械特性、效率与损耗分析

本程序基于MATLAB2017b执行操作 主要分析了他励直流电动机的转矩特性,效率曲线以及损耗。实验数据真实可靠。 注内部含有自定义函数,如要借鉴,请务必注意自定义函数。

1、主函数

%他励直流电机转矩工作特性
Ra=6.66;%直流电机工作时的电枢电阻
U=220;%输入电压
%文件导入
I=[8 7 6 5 4 3 2 1];%负载电流
fileIa=fopen(Armature--I.dat,w);
fprintf(fileIa,%d  %d  %d  %d  %d  %d  %d  %d
,I);
fclose(fileIa);
n=[15482 15494 15515 15569 15635 15680 15755 15841;...
   15455 15501 15575 15612 15665 15711 15800 15860;...
   14960 14965 15046 15091 15167 15247 15362 15502;...
   15220 15238 15360 15438 15527 15635 15760 15873;...
   ];%10倍转速
m=n;
filena=fopen(Armature--n.dat,w);
fprintf(filena,%d  %d  %d  %d  %d  %d  %d  %d
,m);
fclose(filena);
%文件输出
fileIa=fopen(Armature--I.dat,r);
Ia0=fscanf(fileIa,%d,[8 1]);
fclose(fileIa);
Ia=Ia0;
a=input(输入所要校验的实验组号(1到4组): );
filena=fopen(Armature--n.dat,r);
nk=fscanf(filena,%d,[8 a]);
n00=nk(:,a);
fclose(filena);
n0=n00;
na=n0/10;%实际转速
%相关物理量计算
E=U-Ia*Ra;%感应电动势
Pem=E.*Ia;%电磁功率
T=30/pi*Pem./na;%电磁转矩
pt=polyfit(Ia,T,2);%电磁转矩函数系数
x=1:0.1:8;
y=polyval(pt,x);%电磁转矩函数取值
%他励直流电机效率
w=2*pi/60*na(8);
P0=T(8)*w;
Pcu1=Ia.*Ia*Ra;
P1=U*Ia;%电机输入功率
ef=(P1-P0-Pcu1)./P1;%电机效率
pef=polyfit(Ia,ef,2);%效率函数系数
z=polyval(pef,x);%电机效率函数取值
%他励直流电机损耗
PL=P0+Pcu1;%电机损耗
pl=polyfit(Ia,PL,2);%电机损耗函数系数
q=polyval(pl,x);%电机损耗函数取值
%绘图部分
figure(1);
subplot(1,3,1);
    plot(x,y ,LineWidth,3);
    xlabel(电枢电流);ylabel(电磁转矩);
    title(转矩特性曲线);
    axis([0.5 8.5 0 9]);
subplot(1,3,2);
    plot(x,z,LineWidth,3);
    xlabel(电枢电流);ylabel(电机效率);
    title(效率特性曲线);
    axis([0.5 8.5 0 0.9]);
subplot(1,3,3);
    plot(x,q,LineWidth,3);
    xlabel(电枢电流);ylabel(电机损耗);
    title(电机损耗曲线);
    axis([0.5 8.5 200 700]);
set(gcf,unit,centimeters,position,[1,2,30,15]);
[efmax,num]=max(ef);
P=P0+Pcu1(num);%实验最大效率时的损耗
TEM=T(num);%此实验数据最大效率时的电磁转矩
%理想拟合曲线的最大效率与电流   
[EF,IA]=foundMAX(pef);%求解达到最大效率的电枢电流,并能控制其精度而且求得最大效率。
fprintf(此实验数据最大效率时的电磁转矩%d
,TEM);
fprintf(最大实验效率为%d
,efmax);
fprintf(最大实验效率时的损耗为%d
,P);
fprintf(理想下最大效率为%d
,EF);
fprintf(理想下最大效率时的电流为%d
,IA);

2、自定义函数(注意文件需命名为“foundMAX”) 本函数通过不断缩小取值区间来趋近最大值。此在主程序中并非十分必要,只是一个寻找最大值的函数,诸君可利MAX函数代替。如果要取舍这部分函数,同时要注意主函数有函数调用部分哦。

function [EF,IA] = foundMAX(pef)
%a=input(请输入您需要的电流精度(小数点后n位有效,无效数字以0代替,请输入n):);
minx=-10;
maxx=10;
K=0;
j=1;
for i=1:4
x=minx:j:maxx;
z=polyval(pef,x);
[K,m]=max(z);
minx=(minx/j+m-1)*j-0.1*j;
maxx=(minx/j+m-1)*j+0.1*j;
j=j/10;
end
%  x=-1:2;
% z=polyval(pef,x);
%  plot(x,z)
L=(minx/j+m-1)*j;
EF=K;
IA=L;
end

最后,祝各位学业有成,前程似锦。

经验分享 程序员 微信小程序 职场和发展