📄 elliptica_mult.m
字号:
% Program file "elliptica_mult.m"
% calculates and displays tip of resulting
% electric field vector of multiple elliptically
% polarized plane EM waves traveling along positive
% or negative z axis. Frequencies of waves may
% be chosen individually.
N = 4000; % Number of E field samples
P = 3; % Number of full (2pi) cycles to be drawn
t = [0:P*2*pi/(N-1):P*2*pi];
number = 1;
Extotal = zeros(1,N);
Eytotal = zeros(1,N);
while number == 1
om = input('Enter frequency of time harmonic E field = ');
dir = input('Enter direction of wave travel (-1 = negative z or 1 = positive z) ? ');
if dir == -1
t = dir*t + P*2*pi*ones(1,N);
else
end
Exm = input('Enter amplitude of Ex = ');
phi_x = input('Enter phase angle (in degrees) of Ex, phi_x = ');
Eym = input('Enter amplitude of Ey = ');
phi_y = input('Enter phase angle (in degrees) of Ey, phi_y = ');
dphi = phi_x - phi_y
phi_x = phi_x*pi/180;
phi_y = phi_y*pi/180;
Ex = Exm*cos(om*t + phi_x);
Ey = Eym*cos(om*t + phi_y);
dphi = phi_x - phi_y;
dex = 0.5*atan(2*Exm*Eym*cos(dphi)/(Exm^2 - Eym^2));
dex = dex*180/pi
OA = 0.5*sqrt(2*((Exm^2) + (Eym^2) + sqrt((Exm^4) + (Eym^4) + 2*(Exm^2)*(Eym^2)*cos(2*dphi))))
OB = 0.5*sqrt(2*((Exm^2) + (Eym^2) - sqrt((Exm^4) + (Eym^4) + 2*(Exm^2)*(Eym^2)*cos(2*dphi))))
Extotal = Extotal + Ex;
Eytotal = Eytotal + Ey;
number = input('More waves? Yes = 1, No = 0; Enter 1 or 0 ');
end
%Calculation of magnitude of E vector
M = length(t);
Eabs = zeros(1,M);
for k = 1:M
Eabs(k) = sqrt(Extotal(k)^2 + Eytotal(k)^2);
end
subplot('Position',[0.13,0.55,0.27,0.4])
plot(Extotal, Eytotal);
xlabel('Ex')
ylabel('Ey')
grid
subplot('Position',[0.53,0.55,0.4,0.4])
plot3(t/(2*pi), Extotal, Eytotal)
xlabel('z');
ylabel('Ex');
zlabel('Ey');
grid
subplot('Position',[0.13,0.13,0.8,0.2])
plot(t/(2*pi), Eabs)
xlabel('z');
ylabel('magn(E)');
grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -