资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,基于,MATLAB,的电磁场动画仿真,基于MATLAB的电磁场动画仿真,目录,1,、编程思路,2,、基本函数介绍,3,实例演示,目录,结构,4,心得与总结,目录1 、编程思路3 实例演示目录4 心得与总结,编程思路,.,编程思路.,3,编程思路,动画的原理,通过循环,不断增加时间变量, ,不断作画,保持一定时间,擦除,重新作画 ,并且在一定时间内连续演示,这样就形成了动画。,编程思路 动画的原理通过循环,不断增加时,编程思路,时间、空间变量的定义,确定函数式(比如圆极化),设置循环,作图,延时,擦除再作图,编程思路 时间、空间变量的定义确定函数式(比如圆极化,基本函数介绍,.,基本函数介绍.,6,基本函数介绍,pause,quiver,movie2avi,quiver(x,y,u,v,size) quiver(u,v),quiver3(X,Y,Z,U,V,W),pause(n)n,对应暂停多少秒,movie2avi(mov, myPeaks.avi);,前面必须搭配录制图像的循环,mov(k) = getframe(gcf);,gradient,求梯度 画等高(势)线,contour,基本函数介绍pausequivermovie2avi,pause movie2avi,的简单举例,clear all;close all;clc;%,清除变量,关闭图像,清屏,w=2*pi;,t=0; %,设置时间,x=0:0.01:9;,for i=1:300,y=sin(w*t-x);,plot(x,y);,title(,正弦波传播,);,xlabel(x);ylabel(y);,axis(0 9 -1 1);,grid on;,hold on;,mov(i)=getframe(gcf);%,录制,pause(0.1); %,延时,t=t+0.1;hold off;,end,movie2avi(mov,正弦波传播,);%,生成,avi,视频文件,pause movie2avi的简单举例clear a,quiver,gradient contour,clear all;clc;close all;,q1=-2*10.-9;,k=9*10.9;,x=(-5:0.5:5);,y=(-5:0.5:5);,X,Y=meshgrid(x,y);,r1=sqrt(X-3).2+Y.2);,u=k*q1./r1;,n=(-5:.5:5);,Ex,Ey=gradient(-u);,Ex=Ex./sqrt(Ex.2+Ey.2);,Ey=Ey./sqrt(Ex.2+Ey.2);,xlabel(x,fontsize,15);,ylabel(y,fontsize,15);,title(,负电荷电场,); hold on,grid on;,axis(-5,5,-5,5);,hold on;,plot(3,0,O,MarkerSize,15);,contour(X,Y,u,n,r.);,quiver(X,Y,Ex,Ey);,quiver gradient contour,实例演示,.,实例演示.,10,实例演示,clear;clc;close all;%,清除历史变量和操作,t=0;%,设置初始时间,k=2;,w=10;,y=(0:0.1:30);l=zeros(size(y);,for i=1:300,grid on;,E=cos(w*t-k*y);%,电场表达式,H=0.3.*cos(w*t-k*y);%,磁场表达式式,view(i,i);,quiver3(l,y,l,E,l,l,r);,hold on;,quiver3(l,y,l,l,l,H,b);,title(,电磁波传播动画,);,xlabel(H,(蓝色),x);ylabel(y);zlabel(E,(红色),z);,pause(0.1);%,设置视觉残留时间,mov(i)=getframe(gcf);%,录制,t=t+0.01; %,设置时间仿真步长,end,hold off,;,movie2avi(mov,电磁波传播动画,.avi);%,生成,avi,视频文件,实例演示clear;clc;,实例演示,%,左旋圆极化波,clear all,;,clc;close all;,x=(0:0.3:30); %,初始位置,l=zeros(size(x);,t=0; %,时间变量,for i=1:1500 %,帧数,ey=cos(2*pi*t-0.8*x); %,电场横向分量,ez=cos(2*pi*t-0.8*x+pi/2); %,电场纵向分量,quiver3(x,l,l,l,ey,ez); %,画矢量图,title(,左旋园极化波,); %,标题,xlabel(x); %x,标签,ylabel(y); %y,标签,zlabel(z); %z,标签,axis(0,30,-4,4,-4,4); view(20,40); %,观察范围,pause(0.01); %,延时,mov(i)=getframe(gcf); %,录制,t=t+0.01;,end;,hold off;,movie2avi(mov,左旋园极化波,.avi); %,生成,avi,视频文件,实例演示%左旋圆极化波,实例演示,实例演示,实例演示,%,垂直极化线极化波入射理想导体,clear; %,清除变量,x1=(0:0.3:30); %,初始位置,z1=(30:-0.3:0); %,初始位置,x2=(30:0.3:60); %,初始位置,z2=(0:0.3:30); %,初始位置,Ei=zeros(size(x1); %,初始入射电场,Er=zeros(size(x1); %,初始反射电场,l=zeros(size(x1); %,零向量,t=0;,for i=1:250 %,帧数,if i101; %,波已经到达界面,Ei=cos(20*pi*t-0.35*(x1-z1); %,电场,if i202;,Er=-cos(20*pi*t-0.35*(x2+z2);,end,quiver3(x1,l,z1,l,Ei,l); %,画图,hold on; %,图形保持,quiver3(x2,l,z2,l,Er,l); %,画图,end;,title(,垂直极化波,FontSize,15); %,标题,xlabel(x,FontSize,15); %x,标签,ylabel(y,FontSize,15); %y,标签,zlabel(z,FontSize,15); %z,标签,axis(0,60,-10,10,0,30); %,观察范围,view(20+i,40); %,视角,pause(0.0001) %,延时,t=t+0.00334; mov(i)=getframe(gcf);,%,时间增加,hold off;,end;,movie2avi(mov,垂直极化波,.avi),实例演示 if i202;,实例演示,实例演示,心得与总结,.,心得与总结.,17,心得与总结,1,、要结合所学知识构建模型,形成自己的编程思路。,2,、在编程中,应多留意细节,比如时间的步进应该与所给的频率匹配,即满足,tT,,否则将观察不到相位连续变化的图像,甚至有可能看起来波在向与预期相反的方向传播。,3,、针对不同类型的电磁波,改变,view,的角度以及作图方式可以方便我们观察出我们想要观察的特点。,4,、编程都是由简到繁逐渐丰富自己的程序,逐步调试,逐渐实现自己想要的功能,不能一蹴而就!,心得与总结 1、要结合所学知识构建模型,形成自己的编程思路。,基于MATLAB的电磁场动画仿真课件,
展开阅读全文