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

📄 ex832a.m

📁 《MATLAB及其在理工课程中的应用指南》书上的程序集
💻 M
字号:
%《MATLAB及其在理工课程中的应用指南》第八章例8-3-2动画改进程序ex832a
% 三相感应电机旋转磁场的形成(坐标系不更新并画出磁极)
% 西安电子科技大学出版社出版  陈怀琛编著 1999年10月初版,2004年11月第二版
%
%感应电动机定子三相合成磁场矢量图
clear, clf, whitebg('w')
I=10; freq = 50; w = 2*pi*freq;               % 50 Hz角速度 (rad/s)
t = 0:1/5000:12.3/50;
Ia=I*sin(w*t); Ib=I*sin(w*t-2*pi/3); Ic=I*sin(w*t+2*pi/3); % A,B,C相电流
% 建立三个分量磁场的表达式:
kmag = 1/I;                % 选适当的绕组常数,把最大磁场归一化为1 
Baa = kmag * Ia * (cos(0) + j*sin(0)); 	% 括号中的项表示A磁场空间方向为0度
Bbb = kmag * Ib * (cos(2*pi/3) + j*sin(2*pi/3)); 	% B磁场空间方向为120度
Bcc = kmag * Ic * (cos(-2*pi/3) + j*sin(-2*pi/3)); 	% C磁场空间方向为-120度
Bnet = Baa + Bbb + Bcc; 			% 计算合成磁场 
% 分别画出合成磁场Bnet和三相磁场Baa,Bbb,Bcc的矢量幅值和方向,
% Bnet为红色,Baa为黑色,Bbb为蓝色,Bcc为磁灰色。
plot(Bnet,'k');	 % 画出合成磁场向量端点的轨迹作参考,它是一个园
set(gcf,'color','w')                        % 置图形背景色为白色
axis square;   axis([-2 2 -2 2]);hold on;
% 分别画出三相磁极对
theta=linspace(-pi/8,pi/8,15);				% 给出单个磁极的张角数组
th1=theta;th2=theta+pi/3;th3=theta+2*pi/3;	% 给出六个磁极的幅角数组
th4=theta+pi;th5=theta+4*pi/3;th6=theta+5*pi/3;
r=1.1*abs(Bnet(1));						% 给出磁极的半径,使之略大于Bnet的长度
% 依次用三种颜色的宽线条画出三对磁极
plot(r*cos(th1),r*sin(th1),'k',r*cos(th4),r*sin(th4),'k','LineWidth',6);
plot(r*cos(th2),r*sin(th2),'m',r*cos(th5),r*sin(th5),'m','LineWidth',6);
plot(r*cos(th3),r*sin(th3),'b',r*cos(th6),r*sin(th6),'b','LineWidth',6);
% 画出四个磁场相量,前三个方向固定,大小随时间变化,其合成磁场则成为旋转向量
% 用改变图形对象(直线)参数的方法做动画,坐标不必更新,速度快,动画连续
% 先设置几根直线线的初始位置,设置其图柄名,图柄参数'Erasemode'设为'xor'表示
% 当该对象被赋予新值后,原来的对象图形就不再保持
l1=plot([0 real(Baa(1))],[0 imag(Baa(1))]);	
set(l1,'erasemode','xor','LineWidth',2,'color','k')
l2=plot([0 real(Bbb(1))],[0 imag(Bbb(1))]);
set(l2,'erasemode','xor','LineWidth',2,'color','b')
l3=plot([0 real(Bcc(1))],[0 imag(Bcc(1))]);
set(l3,'erasemode','xor','LineWidth',2,'color','m')
l4=plot([0 real(Bnet(1))],[0 imag(Bnet(1))]);
set(l4,'erasemode','xor','LineWidth',2,'color','r')
% 不断给对象的数据参数xdata,ydata赋予新值
for ii = 1:length(t)
   set(l1,'xdata', [0 real(Baa(ii))],'ydata',[0 imag(Baa(ii))])
   set(l2,'xdata', [0 real(Bbb(ii))],'ydata',[0 imag(Bbb(ii))])
   set(l3,'xdata', [0 real(Bcc(ii))],'ydata',[0 imag(Bcc(ii))])
   set(l4,'xdata', [0 real(Bnet(ii))],'ydata',[0 imag(Bnet(ii))])
   fft(randn(2^8));                             % 减慢速度
   drawnow
end
hold off;

⌨️ 快捷键说明

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