📄 switchrelmot.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 + -