⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 switchrelmot.m

📁 关于电机的.m程序
💻 M
字号:
% SWITCHED-RELUCTANCE NOTOR
clc,clear,close all
warning off
aviwave=avifile('relmotmovie.avi','compression','cinepak');
 figure('units','normalized','Position',[.25 .09 .73 .73],'Name','SWITCHED-RELUCTANCE MOTOR',...
        'NumberTitle','off');
    r1=.5;r2=.40;r3=0.27;r4=.26;r5=.08;d1=0;d2=30;e=0;r0=.34;g=0;w=.26;d3=pi/6;v=0;
    z2=asin(r3/r2*sin(pi/16));alfa=pi/3;g=0;
          
      p1=[-pi/8:pi/100:pi/8];p2=[pi/8:-pi/100:z2];p3=[pi/16:-pi/40:-pi/16];
      p4=[-z2:-pi/100:-pi/8];p5=[pi/2-.2:pi/120:pi/2+.2];p6=[0:pi/40:2*pi];
      x0=[r1*cos(p1) r2*cos(p2)  r3*cos(p3) r2*cos(p4)];
      y0=[r1*sin(p1) r2*sin(p2)  r3*sin(p3) r2*sin(p4)];
      x1=[0 .19*cos(pi/3) .2*cos(1.2) r4*cos(p5) .2*cos(pi-1.2) .19*cos(2*pi/3)];
      y1=[0 .19*sin(pi/3) .2*sin(1.2) r4*sin(p5) .2*sin(pi-1.2) .19*sin(2*pi/3)];
       x2=[0 .19*cos(pi/3+alfa) .2*cos(1.2+alfa) r4*cos(p5+alfa) .2*cos(pi-1.2+alfa) .19*cos(2*pi/3+alfa)];
      y2=[0 .19*sin(pi/3+alfa) .2*sin(1.2+alfa) r4*sin(p5+alfa) .2*sin(pi-1.2+alfa) .19*sin(2*pi/3+alfa)];
      x=[x1 x2];y=[y1 y2];
            x9=[r5*cos(p6)];y9=[r5*sin(p6)];
      co=[.6 .6 .6];
      set(gcf,'color','w')  
         for k=1:48
       plot([-2 2],[-2 2],'w'),hold on      
     % patch(2*cos(p6),2*sin(p6),'w'), hold on
          for k1=1:8
       plot(r0*cos(pi/2-w),r0*sin(pi/2-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w'),
        g=g+pi/4;
      end 
      for k2=1:8
       plot(r0*cos(pi/2+w),r0*sin(pi/2+w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')   
        g=g+pi/4;
      end 
     
    %phase A
      if e>0 & e<=30,
          plot(r0*cos(pi/2-w),r0*sin(pi/2-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
      else
          plot(r0*cos(pi/2-w),r0*sin(pi/2-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>0 & e<=30,
          plot(r0*cos(pi/2+w),r0*sin(pi/2+w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else
          plot(r0*cos(pi/2+w),r0*sin(pi/2+w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>0 & e<=30 ,
          plot(r0*cos(pi/2+pi-w),r0*sin(pi/2+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
      else
         plot(r0*cos(pi/2+pi-w),r0*sin(pi/2+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
     end 
      if e>0 & e<=30 ,
          plot(r0*cos(pi/2+w+pi),r0*sin(pi/2+w+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
          else
          plot(r0*cos(pi/2+w+pi),r0*sin(pi/2+w+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end  
       %phase B
      if e>15 & e<=45 ,
          plot(r0*cos(pi/2-pi/4-w),r0*sin(pi/2-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
      else,
          plot(r0*cos(pi/2-pi/4-w),r0*sin(pi/2-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>15 & e<=45 ,
          plot(r0*cos(pi/2+w-pi/4),r0*sin(pi/2+w-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else
          plot(r0*cos(pi/2+w-pi/4),r0*sin(pi/2+w-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
       if e>15 & e<=45 ,
          plot(r0*cos(pi/2-pi/4+pi-w),r0*sin(pi/2-pi/4+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else ,
          plot(r0*cos(pi/2-pi/4+pi-w),r0*sin(pi/2-pi/4+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>15 & e<=45 ,
          plot(r0*cos(pi/2+w-pi/4+pi),r0*sin(pi/2+w-pi/4+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
          else ,
          plot(r0*cos(pi/2+w-pi/4+pi),r0*sin(pi/2+w-pi/4+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
       end 
       %phase C
      if e>30 & e<=60
          plot(r0*cos(pi/2-pi/2-w),r0*sin(pi/2-pi/2-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
          else ,
          plot(r0*cos(pi/2-pi/2-w),r0*sin(pi/2-pi/2-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>30 & e<=60 ,
          plot(r0*cos(pi/2+w-pi/2),r0*sin(pi/2+w-pi/2),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else ,
          plot(r0*cos(pi/2+w-pi/2),r0*sin(pi/2+w-pi/2),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
       if e>30 & e<=60 ,
          plot(r0*cos(pi/2-pi/2+pi-w),r0*sin(pi/2-pi/2+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else ,
          plot(r0*cos(pi/2-pi/2+pi-w),r0*sin(pi/2-pi/2+pi-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e>30 & e<=60 ,
          plot(r0*cos(pi/2+w-pi/2+pi),r0*sin(pi/2+w-pi/2+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
          else,
          plot(r0*cos(pi/2+w-pi/2+pi),r0*sin(pi/2+w-pi/2+pi),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
       %phase D
      if e<15 | e>45 ,
          plot(r0*cos(pi/2-pi/2-pi/4-w),r0*sin(pi/2-pi/2-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
      else
          plot(r0*cos(pi/2-pi/2-pi/4-w),r0*sin(pi/2-pi/2-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e<15 |e>45 ,
          plot(r0*cos(pi/2+w-pi/2-pi/4),r0*sin(pi/2+w-pi/2-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else
          plot(r0*cos(pi/2+w-pi/2-pi/4),r0*sin(pi/2+w-pi/2-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
       if e<15|e>45 ,
          plot(r0*cos(pi/2-pi/2+pi-pi/4-w),r0*sin(pi/2-pi/2+pi-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','g')
          else
          plot(r0*cos(pi/2-pi/2+pi-pi/4-w),r0*sin(pi/2-pi/2+pi-pi/4-w),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
      if e<15 | e>45 ,
          plot(r0*cos(pi/2+w-pi/2+pi-pi/4),r0*sin(pi/2+w-pi/2+pi-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','b')
          else,
          plot(r0*cos(pi/2+w-pi/2+pi-pi/4),r0*sin(pi/2+w-pi/2+pi-pi/4),'o','MarkerSize',14,'MarkerEdgeColor','k','MarkerFacecolor','w')
      end 
       
     %Stator
          for t=1:8
          h0=patch(x0,y0,co,'EdgeColor','none');
          rotate(h0,[0 0 1],d1,[0 0 0])
          d1=d1+45;
          end
          for t1=1:8
           plot([r1*cos(v) r3*cos(v)],[r1*sin(v) r3*sin(v)],'Linewidth',1,'color','r');  
           plot([r2*cos(v+pi/8) r1*cos(v+pi/8)],[r2*sin(v+pi/8) r1*sin(v+pi/8)],'Linewidth',3,'color',co);
           v=v+pi/4;
          end
     %Rotor
     d2=30;
       for q=1:6
        h1=patch(x1,y1,co,'EdgeColor','k');
        rotate(h1,[0 0 1],d2+e,[0 0 0])
        d2=d2+60;
       end
    for q=1:6
      g1=plot([r4*cos(d3) r5*cos(d3)],[r4*sin(d3) r5*sin(d3)],'Linewidth',1,'color','b');
      g2=plot([.19 r5],[0 0],'Linewidth',1,'color','c');
      rotate(g1,[0 0 1],d2+e,[0 0 0])
      rotate(g2,[0 0 1],d2+e,[0 0 0])
      d2=d2+60;
    end
    
    
      h2=patch(x9,y9,[.8 .8 .8]);
    
      set(gcf,'color','w') 
      set(gca,'Xlim',[-.7 .7],'Ylim',[-.7 .7],'visible','off')
      axis square;axis equal
      text(-.55,.66,' SWITCHED-RELUCTANCE MOTOR','FontSize',16,'FontWeight','bold','color','blue')
      hold off 
      M(k)=getframe;
     f=getframe(gca);
     aviwave=addframe(aviwave,f);
     e=e+1.25;
 end
    aviwave=close(aviwave) ;
    uicontrol('Units','normalized', ...
   'Style','PushButton',...
	'BackgroundColor',[.2 .3 .8], ...
	'Callback','movie(M,4)', ...
	'FontSize',10, ...
	'FontWeight','bold', ...
	'ForegroundColor',[1 1 1], ...
	'Position',[0.35 0.10 0.09 .06], ...
	'String','Repeat', ...
    'TooltipString','Repeat');
    uicontrol('Units','normalized', ...
   'Style','PushButton',...
	'BackgroundColor',[.2 .3 .8], ...
	'Callback','close,clear,close all', ...
	'FontSize',10, ...
	'FontWeight','bold', ...
	'ForegroundColor',[1 1 1], ...
	'Position',[0.6 0.10 0.09 .06], ...
	'String','Quit', ...
    'TooltipString','Quit');
      %
    
    

⌨️ 快捷键说明

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