fluxareadetector.m

来自「电机调速,用于直接转矩控制中的一个程序源码」· M 代码 · 共 47 行

M
47
字号
function sys=mdlOutputs(t,x,u)      %u(1) u(2)分别表示定子磁链在两相坐标系下的两个分量
if(u(1)>0)
  if(u(2)/u(1)<0.5&&u(2)/u(1)>=-0.5)
      sys=1;                        %定子磁链落在区域1
  end
  if(u(2)/u(1)>=0.5)
      sys=2;                        %定子磁链落在区域2
  end
  if(u(2)/u(1)<-0.5)
      sys=6;                        %定子磁链落在区域6
  end
end

if(u(1)<0)
  if(u(2)/u(1)<-0.5)
      sys=3;                        %定子磁链落在区域3
  end
  if(u(2)/u(1)<0.5&&u(2)/u(1)>=-0.5)
      sys=4;                        %定子磁链落在区域4
  end
  if(u(2)/u(1)>=0.5)
      sys=5;                        %定子磁链落在区域5
  end
end

if(u(1)==0)                       %为防止除0,所以需要单独考虑等于0的情况
  if(u(2)>0)
      sys=3;
  elseif(u(2)<0)
      sys=6;
  else
      sys=1;
  end
end

if(u(2)==0)
  if(u(1)>0)
      sys=1;
  elseif(u(1)<0)
      sys=4;
  else
      sys=4;
  end
end
      
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?