✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
在电磁场与电磁波的教学中,应用Matlab编程对电磁场的分布和电磁波的传输进行仿真,使得抽象的概念直观化,有助于学生对于电磁场和电磁波教学内容的学习.
⛄ 部分代码
function trace=CalculateWave(time,numT,oumiga,beta,z,len,lambda,numLambda,T,A,Z0,ZL)
%计算波的瞬时图,储存在矩阵M里面返回
trace1=moviein(length(time));%用来记录波的动态图片
for i=1:length(time)
t=time(i);
tempt=exp(j*oumiga*t);%时间因子
tempz1=exp(j*beta*z);%正向传播的波的空间因子
tempz2=exp(-j*beta*z);%负向传播的波的空间因子
V1=A;%正向传播的波的振幅
GamaL=(ZL-Z0)/(ZL+Z0);%负载的反射系数
V2=V1*abs(GamaL);%负向传播的波振幅
wave1=V1*tempt*tempz1;%复数形式的波表达式,还要乘以e指数因取实部才能得到时域表达式
wave2=V2*tempt*tempz2;%复数形式的波表达式,还要乘以e指数因取实部才能得到时域表达式
wave1=real(wave1);
wave2=real(wave2);
wave=wave1+wave2;%合成波
subplot(211)
setaxis=[0,numLambda,-2*V1,2*V1];%绘图窗口设置
plot(z/lambda,wave1,'color','blue');hold on;
plot(z/lambda,wave2,'color','black');
quiver(0,0,1.1*len ,0);%坐标轴
legend('正向波','反向波');
xlabel('z/lambda');
title(['传输线上正负方向传播的波',' ','ZL=',num2str(ZL),' ','time=',num2str(t/T),'T']);
set(gca,'XDir','reverse')% 翻转X轴
hold off%清除上一帧动画
subplot(212);%绘制合成波
% plot(z/lambda,wave,'color','red');hold on;
plot(z/lambda,abs(wave),'color','red');hold on%取了绝对值波形
quiver(0,0,1.1*len ,0);hold on;%画一条坐标轴
title(['传输线上面的合成波',' ','ZL=',num2str(ZL),' ','time=',num2str(t/T),'T']);
xlabel('z/lambda');
axis(setaxis);
set(gca,'XDir','reverse')% 翻转X轴
hold off;
pax=getframe();
trace(i)=pax;%保存图窗
end
end
⛄ 运行结果
⛄ 参考文献
[1] 肖汉光, 赵明富, 钟年丙,等. 基于MATLAB的电磁波极化波仿真教学[J]. 教育教学论坛, 2016(15):2.
[2] 张秋菊, 李丽芬, 李扬. 基于Matlab的均匀平面电磁波的仿真[J]. 2013.