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 + -
显示快捷键?