emf_1.m
来自「永磁无刷电机MATLAB仿真模型」· M 代码 · 共 33 行
M
33 行
function y=emf_1(u)
W=u(1); %u(1)表示w1+w2,所以变量名取为W以表示是两个转子角速度之和
Theta=u(2); %表示两个转子角位移,它是通过转子角速度之和的积分得来的
Ke=u(3); %表示电动势常数
Theta=Theta*180/pi; %将弧度转化为角度
Theta=mod(Theta,360);%将电角度化为0~360度之间
%% if语句产生三相单位梯形波函数Emf,
%% 也即 e=Ke*(w1+w2)*f(theta1+theta2)中的
%% f单位梯形函数
if (Theta>=0)&(Theta<60)
Emf=[ 1; -1; (30-Theta)/30 ];
elseif (Theta>=60)&(Theta<120)
Emf=[ 1; (Theta-90)/30; -1 ];
elseif (Theta>=120)&(Theta<180)
Emf=[ (150-Theta)/30; 1; -1 ];
elseif (Theta>=180)&(Theta<240)
Emf=[ -1; 1; (Theta-210)/30 ];
elseif (Theta>=240)&(Theta<300)
Emf=[ -1; (270-Theta)/30; 1 ];
else
Emf=[ (Theta-330)/30; -1; 1 ];
end
y=Ke*W*Emf; %y为输出反电动势
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?