文档详情

基于MATLAB的电磁场动画仿真.PPT

m****
实名认证
店铺
PPT
1.63MB
约19页
文档ID:584781507
基于MATLAB的电磁场动画仿真.PPT_第1页
1/19

基于基于MATLABMATLAB的电磁场动画仿真的电磁场动画仿真 目录1 、编程思路2 、基本函数介绍3 实例演示目录目录目录目录结构结构结构结构4 心得与总结 编程思路编程思路3 编程思路编程思路 动画的原理动画的原理通过循环,不断增加时间变量, ,不断作画,保持一定时间,擦除,重新作画 ,并且在一定时间内连续演示,这样就形成了动画 编程思路编程思路 时间、空间变量的定义时间、空间变量的定义确定函数式(比如圆极化)确定函数式(比如圆极化) 设置循环设置循环 作图作图 延时,擦除再作图延时,擦除再作图 基本函数介绍6 基本函数介绍pausequivermovie2aviquiver(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 pause movie2avipause 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视频文件 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); 实例演示实例演示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 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 i<=101; %波还能没有到界面 Ei(1:i)=cos(20*pi*t-0.35*(x1(1:i)-z1(1:i))); %电场 quiver3(x1,l,z1,l,Ei,l); %画图 end; if i>101; %波已经到达界面 Ei=cos(20*pi*t-0.35*(x1-z1)); %电场 if i<=202; Er(1:i-101)=-cos(20*pi*t-0.35*(x2(1:i-101)+z2(1:i-101))); end; 实例演示实例演示 if i>202; 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') 实例演示实例演示 心得与总结心得与总结17 心得与总结心得与总结 1 1、要结合所学知识构建模型,形成自己的编程思、要结合所学知识构建模型,形成自己的编程思、要结合所学知识构建模型,形成自己的编程思、要结合所学知识构建模型,形成自己的编程思路。

路2 2、在编程中,应多留意细节,比如时间的步进应、在编程中,应多留意细节,比如时间的步进应、在编程中,应多留意细节,比如时间的步进应、在编程中,应多留意细节,比如时间的步进应该与所给的频率匹配,即满足该与所给的频率匹配,即满足该与所给的频率匹配,即满足该与所给的频率匹配,即满足Δ Δt

下载提示
相似文档
正为您匹配相似的精品文档
相关文档