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

📄 multi_media.m

📁 电磁场圆极化
💻 M
字号:
%multi-meida perpendicular input%电场对理想介质的垂直入射;
%copyright 属于研学论坛bbs.matwav.com和plasma
clear all;
k1=1;
k2=2;
k3=4;

ei10=1;
mu0=4*pi*1.e-7;
epsilon0=1.e-9/(36*pi);
epsilonr1=2;%二区的相对介电常数
epsilonr2=8;%三区的相对介电常数
%epsilonr2大则inta2小,inta2=sqrt(mu0/epsilon2);
%并且导致intad变化,同时改变了3区的分布情形。

d=-10;
%注意!!!!!!!!!!!
%当d=npi/k2并且inta3=inta0的时候反射为零。


inta0=sqrt(mu0/epsilon0);
inta1=inta0;
inta2=inta0/sqrt(epsilonr1);%1-2-3区的波阻抗
inta3=inta0/sqrt(epsilonr2);%三区的相对介电常数

%如果inta3=inta0那么k3=k1;
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
%lambla/2介质演示;d=-10*pi/k2;inta3=inta1;k3=k1;
%这里做调节就可以了。
%如果inta3!=inta0,那么也会有发射发生。
%!!!!!!!!!!!!!!!!!!!!!!!!!!!

gama2=(inta3-inta2)/(inta3+inta2);%1区反射系数
intad=inta2*((exp(i*k2*d)+gama2*exp(-i*k2*d))/(exp(i*k2*d)-gama2*exp(-i*k2*d)));%等效波阻抗

%!!!!!!!!!!!!!!!!!!!!!!!!!!!
%做lambla/4介质的演示。d=-4*pi-pi/(2*k2);inta3=inta0/sqrt(5);inta2=sqrt(inta1*inta3);intad=inta1;
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
framemax=500;
omega=20*pi/framemax;

delz=.2;
z1min=-30;
z1max=d;%the first zone;
z1=[z1min:delz:z1max];

z2min=d;
z2max=0;%the second zone;
z2=[z2min:delz:z2max];

y2area=[-1:2/length(z2):1-2/length(z2)];
y2area=y2area';
area2=y2area*z2;%画出一个介质区(2区);
area2(:,:)=1.;
area2(:,1)=0.;area2(:,length(z2))=0.;
area2(1,:)=0.;area2(length(z2),:)=0.;


z3min=0;
z3max=20;%the third zone;
z3=[z3min:delz:z3max];

jr1=0;ji1=0;ji2=0;jr2=0;ji3=0;

for t=1:framemax;

contourf(z2,y2area,area2);
colormap winter;%画出一个介质区(2区);
hold on;            grid on;

    
    ei1=ei10*exp(i*omega*t-i*k1*(d+z1));
    %1区入射波;
    er1=((intad-inta1)/(intad+inta1))*ei10*exp(i*omega*t+i*k1*(d+z1));
    %1区反射波;
    %公式:er1=((intad-inta1)/(intad+inta1))*ei10*exp项
    
    ei2=(1-abs(gama2))*ei10*exp(i*omega*t-i*k2*(d+z2));
    %2区入射波;
    %公式:ei2=(1-gama2)*ei10*exp项;
    er2=abs(gama2)*(1-abs(gama2))*ei10*exp(i*omega*t+i*k2*(d+z2));
    %2区反射波;
    %公式:gama2*ei20*exp项;
    
    ei3=inta3*((1-abs(gama2))-abs(gama2)*(1-abs(gama2)))*ei10*exp(i*omega*t-i*k3*(d+z3))/inta3;
    %公式:ei3=(ei20+er20)*exp项;
                if t<=length(z1)
                    if ji1<length(z1);
                        ji1=ji1+1;
                        for jij=t:1:length(z1);
                            ei1(jij)=0;
                        end
                    end
                end

           plot(z1,real(ei1),                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','blue',...
                        'LineWidth',2,...
                'MarkerSize',50);  %1区入射波
            hold on;

            if t>length(z1)
                if jr1<length(z1);
                    jr1=jr1+1;
                    for jr1j=1:length(z1)-jr1;
                        er1(jr1j)=0;
                    end
                end
               plot(z1,real(er1),                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','red',...
                        'LineWidth',2,...
                'MarkerSize',50); %1区反射波
          plot(z1,ei1+er1,                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','black',...
                        'LineWidth',2,...
                'MarkerSize',50); %1区反射波和入射波叠加。

            
            end
            hold on;
            if t>=length(z1);
                if ji2<length(z2);
                    ji2=ji2+1;
                    for ji2j=t+1-length(z1):1:length(z2);
                        ei2(ji2j)=0;
                    end
                end

                plot(z2,real(ei2),                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','magenta',...
                        'LineWidth',2,...
                'MarkerSize',50); %2区入射波。

            end
            hold on;
            if t>=length(z1)+length(z2);
                if jr2<length(z2);
                    jr2=jr2+1;
                    for jr2j=1:length(z2)-jr2;
                        er2(jr2j)=0;
                    end
                end
            plot(z2,real(er2),                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','yellow',...
                        'LineWidth',2,...
                'MarkerSize',50); %2区反射波。

         end
            hold on;
            if t>=length(z1)+length(z2);
                if ji3<length(z3);
                    ji3=ji3+1;
                    for ji3j=t+1-length(z1)-length(z2):1:length(z3);
                        ei3(ji3j)=0;
                    end
                end
                

            plot(z3,real(ei3),                'MarkerFaceColor','r',...
                    'MarkerEdgeColor','k',    'Color','green',...
                        'LineWidth',2,...
                'MarkerSize',50); %3区入射波。
             end

    title('蓝色1区正向行波,红色为1区负向行波(反射波),黑色为1区形成的驻波。');
    text(z1min+3,1.8*ei10,'粉红为2区正向行波,黄色为2区反向行波。','FontSize',18,'EdgeColor','red');
    text(z1min+3,1.3*ei10,'绿色为3区正向行波。','FontSize',18,'EdgeColor','red');

            axis([z1min z3max -2 2]);
grid on;            
           hold off
    getframe;
  %  t=t/2.;
end

⌨️ 快捷键说明

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