附件下载,需登录可以查看贴内更多信息
您需要 登录 才可以下载或查看,没有账号?立即注册
x
详细解释以下代码
clc,clear,
L=0.2;
a=0.2;
figure(1)
for a=0.15:0.01:0.4
t=linspace(0,2*pi,100);
x0=a.*cos(t);
y0=a.*sin(t);
x1=a.*cos(t);
y1=a.*sin(t);
z00=L.*ones(size(t));
z01=zeros(size(z00));
clf
hold on
plot3(x0,y0,z00,'r','LineWidth',3);
plot3(x1,y1,z01,'r','LineWidth',3);
[X,Y,Z]=meshgrid(-0.5:0.04:0.5);
r2=X.^2+Y.^2+Z.^2;
for k=1:81
phi=pi/40*(k-1); costh=cos(phi); sinth=sin(phi);
R3=(r2+a^2-2*a*(X*costh+Y*sinth)).^3/2;
R4=(r2+a^2-2*a*(X*costh+Y*sinth)-2*L.*Z+L^2).^3/2;
Bx01(:,:,:,k)=a*Z*costh./R3;
By01(:,:,:,k)=a*Z*sinth./R3;
Bz01(:,:,:,k)=a*(a-X*costh-Y*sinth)./R3;
Bx02(:,:,:,k)=a*(Z-L)*costh./R4;
By02(:,:,:,k)=a*(Z-L)*sinth./R4;
Bz02(:,:,:,k)=a*(a-X*costh-Y*sinth)./R4;
end
Bx0=pi/20*trapz(Bx01,4);
By0=pi/20*trapz(By01,4);
Bz0=pi/20*trapz(Bz01,4);
Bx1=pi/20*trapz(Bx02,4);
By1=pi/20*trapz(By02,4);
Bz1=pi/20*trapz(Bz02,4);
Bx=Bx0+Bx1;
By=By0+By1;
Bz=Bz0+Bz1;
v=[-0.2,-0.1,0,0.1,0.2];
[Vx,Vy,Vz]=meshgrid(v,v,v);
plot3(Vx(,Vy(,Vz(,'r*')
streamline(X,Y,Z,Bx,By,Bz,Vx,Vy,Vz,[0.01,2000]);
hold on;
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5]);
view(-23,26);
box on;
title('磁场的三维图','fontsize',15);
str=['线圈半径=',num2str(a)];
t = text(0,0,-1,str);
pause(0.05)
end
figure(2)
for L=0.1:0.01:0.3
t=linspace(0,2*pi,100);
x0=a.*cos(t);
y0=a.*sin(t);
x1=a.*cos(t);
y1=a.*sin(t);
z00=L.*ones(size(t));
z01=zeros(size(z00));
clf
hold on
plot3(x0,y0,z00,'r','LineWidth',3);
plot3(x1,y1,z01,'r','LineWidth',3);
[X,Y,Z]=meshgrid(-0.5:0.04:0.5);
r2=X.^2+Y.^2+Z.^2;
for k=1:81
phi=pi/40*(k-1); costh=cos(phi); sinth=sin(phi);
R3=(r2+a^2-2*a*(X*costh+Y*sinth)).^3/2;
R4=(r2+a^2-2*a*(X*costh+Y*sinth)-2*L.*Z+L^2).^3/2;
Bx01(:,:,:,k)=a*Z*costh./R3;
By01(:,:,:,k)=a*Z*sinth./R3;
Bz01(:,:,:,k)=a*(a-X*costh-Y*sinth)./R3;
Bx02(:,:,:,k)=a*(Z-L)*costh./R4;
By02(:,:,:,k)=a*(Z-L)*sinth./R4;
Bz02(:,:,:,k)=a*(a-X*costh-Y*sinth)./R4;
end
Bx0=pi/20*trapz(Bx01,4);
By0=pi/20*trapz(By01,4);
Bz0=pi/20*trapz(Bz01,4);
Bx1=pi/20*trapz(Bx02,4);
By1=pi/20*trapz(By02,4);
Bz1=pi/20*trapz(Bz02,4);
Bx=Bx0+Bx1;
By=By0+By1;
Bz=Bz0+Bz1;
v=[-0.2,-0.1,0,0.1,0.2];
[Vx,Vy,Vz]=meshgrid(v,v,v);
plot3(Vx(,Vy(,Vz(,'r*')
streamline(X,Y,Z,Bx,By,Bz,Vx,Vy,Vz,[0.01,2000]);
hold on;
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5]);
view(-23,26);
box on;
title('磁场的三维图','fontsize',15);
str=['线圈距离=',num2str(L)];
t = text(0,0,-1,str);
pause(0.05)
end
figure(3)
a=0.2;
L=0.2;
k=1;
for a1=0.15:0.01:0.28
clf
t=linspace(0,2*pi,100);
x0=a.*cos(t);
y0=a.*sin(t);
x1=a1.*cos(t);
y1=a1.*sin(t);
z00=L.*ones(size(t));
z01=zeros(size(z00));
hold on
plot3(x0,y0,z00,'r','LineWidth',3);
plot3(x1,y1,z01,'r','LineWidth',3);
[X,Y,Z]=meshgrid(-0.5:0.04:0.5);
r2=X.^2+Y.^2+Z.^2;
for k=1:81
phi=pi/40*(k-1); costh=cos(phi); sinth=sin(phi);
R3=(r2+a^2-2*a*(X*costh+Y*sinth)).^3/2;
R4=(r2+a1^2-2*a1*(X*costh+Y*sinth)-2*L.*Z+L^2).^3/2;
Bx01(:,:,:,k)=a*Z*costh./R3;
By01(:,:,:,k)=a*Z*sinth./R3;
Bz01(:,:,:,k)=a*(a-X*costh-Y*sinth)./R3;
Bx02(:,:,:,k)=a1*(Z-L)*costh./R4;
By02(:,:,:,k)=a1*(Z-L)*sinth./R4;
Bz02(:,:,:,k)=a1*(a-X*costh-Y*sinth)./R4;
end
Bx0=pi/20*trapz(Bx01,4);
By0=pi/20*trapz(By01,4);
Bz0=pi/20*trapz(Bz01,4);
Bx1=pi/20*trapz(Bx02,4);
By1=pi/20*trapz(By02,4);
Bz1=pi/20*trapz(Bz02,4);
Bx=Bx0+Bx1;
By=By0+By1;
Bz=Bz0+Bz1;
% v=[-0.2,-0.1,0,0.1,0.2];
% [Vx,Vy,Vz]=meshgrid(v,v,v);
% plot3(Vx(,Vy(,Vz(,'r*')
% streamline(X,Y,Z,Bx,By,Bz,Vx,Vy,Vz,[0.01,2000]);
v1=linspace(-1.2*a,1.2*a,4);
h1=linspace(-0.6*L,0.6*L,2);
for vx=v1
for vy=v1
for vz=h1
streamline(X,Y,Z,Bx,By,Bz,vx,vy,vz)
% quiver3(X,Y,Z,Bx,By,Bz)
end
end
end
axis([-0.5,0.5,-0.5,0.5,-0.5,0.5]);
view(-23,26);
box on;
title('磁场的三维图','fontsize',15);
str=['线圈半径=',num2str(a1)];
t = text(0,0,-0.5,str);
pause(0.05)
end
|