qianxq2005
2009-05-17, 17:31
请高手帮忙看一下,下面是我编的正弦波电流环产生的磁场分布的程序,问题是随着电流的正弦变化,如何三维动态的显示出磁场的分布,同时绘制一条动态变化的正弦波电流控制磁场的变化。
Rh=2;
for t=0:2*pi
I=sin(t);
end
t=t+0.1;
mu0=4*pi*1e-7;
C=mu0/(4*pi)*I;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C*dlXr_x./r3);
By(i,j)=sum(C*dlXr_y./r3);
end
end
clf;figure(3),plot(x,Bx);
figure(1),plot(y,By);
Rh=2;
for t=0:2*pi
I=sin(t);
end
t=t+0.1;
mu0=4*pi*1e-7;
C=mu0/(4*pi)*I;
x=linspace(-3,3,20);
y=x;
Nh=20;
theta0=linspace(0,2*pi,Nh+1);
theta1=theta0(1:Nh);
y1=Rh*cos(theta1);
z1=Rh*sin(theta1);
theta2=theta0(2:Nh+1);
y2=Rh*cos(theta2);
z2=Rh*sin(theta2);
dlx=0;
dly=y2-y1;
dlz=z2-z1;
xc=0;
yc=(y2+y1)/2;
zc=(z2+z1)/2;
NGx=20;NGy=20;
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;
ry=y(i)-yc;
rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlXr_x=dly.*rz-dlz.*ry;
dlXr_y=dlz.*rx-dlx.*rz;
Bx(i,j)=sum(C*dlXr_x./r3);
By(i,j)=sum(C*dlXr_y./r3);
end
end
clf;figure(3),plot(x,Bx);
figure(1),plot(y,By);