warning off;
close all
clear
clc
dbstop if error
%% 参数设置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a = 1;
m = 4;
n = 3;
E0 = 1;
landa = 532*10^-9;
c=3*10^8;
Umn = 14.372;
Kc = Umn/a;
K=2*pi/landa;
Kz = sqrt(K^2-Kc^2);
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Phi = linspace(0,2*pi,100);
R = linspace(0,1,100);
Z = linspace(0,3,100);
[r1,phi] = meshgrid(R,Phi);
X1 = r1.*cos(phi);
Y1 = r1.*sin(phi);
z1=0.5*pi/Kz;
Er1 = (-1i*Kz/Kc)*(m*besselj(m,Kc*r1)./(Kc*r1)-besselj(m+1,Kc*r1)).* ...
cos(m*phi)*exp(-1i*Kz*z1);
Er1=abs(real(Er1));
surf(X1,Y1,X1*0+3,Er1)
shading interp
hold on
[z,phi] = meshgrid(Z,Phi);
r = 1;
X2 = r*cos(phi);
Y2 = r*sin(phi);
z2 = 3*2*pi/Kz*z/3;
Er2 = (-1i*Kz/Kc)*(m*besselj(m,Kc*r)./(Kc*r)-besselj(m+1,Kc*r)).* ...
cos(m*phi).*exp(-1i*(Kz*z2-0.5*pi));
Er2=abs(real(Er2));
surf(X2,Y2,z,Er2)
shading interp
colormap gray
theAxes=axis;
for j=1:20;
Er1 = (-1i*Kz/Kc)*(m*besselj(m,Kc*r1)./(Kc*r1)-besselj(m+1,Kc*r1)).* ...
cos(m*phi)*exp(-1i*(Kz*z1-j*pi/20));
% Er1 = Er1*exp(1i*j*pi/5);
Er1 = abs(real(Er1));
Er2 = (-1i*Kz/Kc)*(m*besselj(m,Kc*r)./(Kc*r)-besselj(m+1,Kc*r)).* ...
cos(m*phi).*exp(-1i*(Kz*z2-0.5*pi-j*pi/20));
Er2 = abs(real(Er2));
surf(X1,Y1,X1*0+3,Er1);
hold on
surf(X2,Y2,z,Er2);
shading interp
colormap gray
axis(theAxes)
fmat(:,j)=getframe;
end
movie(fmat,10)
评论2