基于matlab实现的电磁波反射折射动态仿真

news2024/9/27 21:31:04

完整程序:

 %题目要求电场入射到xo平面
clear;
clc;
u0=4*pi*1e-7;           %自由空间中的磁导率
e0=1e-9/(36*pi);        %自由空间中的电介质常数
f=1e8;                  %电磁波的频率
w=2*pi*f;               
Ei=5*1.41;              %入射波幅度
R=0.052;                %反射系数
T=0.526;                %透射系数
Er=Ei*R;                %反射波幅值
Et=Ei*T;                %透射波幅值
k1=w*(u0*e0)^0.5;       %真空中(介质1)波数      
k2=k1*2;                %介质2波数            
gifname='E_view_40,0,0.gif';      %取图用
figure(1)         
for t=0:1:200            %为了消除波数与频率之间的数量级带来的影响,时间单位为ns   
    %入射波部分
    %===入射电场部分
    xei=-40:0.1:-1.5;              %入射电场采样范围及采样步长
    m1=zeros(size(xei));
    [yei,zei]=meshgrid(-40:0.1:-1.5,-40:0.1:-1.5);          %生成y,z取样数组网络
    Eyi=1.73*(1.73*yei+zei)+Ei*0.5*cos(w*t*1e-9-k1*0.5*(1.73*yei+zei));    %电场y方向上分量,来源教材公式6.8-22
    %时域分解来源于5.7-14,后面反射,折射亦同的相同
    %其中1.73*(1.73*yei+zei)相当于根号3y尖,为方向系数,是为了与画图函数plot3匹配而设置
    Ezi=-1*(1.73*yei+zei)+Ei*0.5*cos(w*t*1e-9-k1*0.5*(1.73*yei+zei));      %电场z方向上分量
    plot3(m1,Eyi,Ezi,'r','LineWidth',1);                    %绘制入射电场
    hold on
    %反射波部分
    %===反射电场部分
    xer=0:0.1:40;
    m2=zeros(size(xer));
    [yer,zer]=meshgrid(0:0.1:40,0:0.1:40);
    Eyr=1.73*(1.73*yer+zer)+Er*0.5*cos(k1*0.5*(1.73*yer+zer)-w*t*1e-9);
    Ezr=1*(1.73*yer+zer)-Er*0.5*cos(k1*0.5*(1.73*yer+zer)-w*t*1e-9);
    plot3(m2,Eyr,Ezr,'r','LineWidth',1);
    hold on
    %透射波部分
    %===透射电场部分
    xei=0.05:0.1:40;
    m3=zeros(size(xei));
    [yei,zei]=meshgrid(0.05:0.1:40,0.05:0.1:40);
    Eyt=1.73*(1.73*yei+3.61*zei)+Et*0.25*cos(k2*(1.73*yei+3.61*zei)-w*t*1e-9);
    Ezt=-3.61*(1.73*yei+3.61*zei)+Et*0.25*cos(k2*(1.73*yei+3.61*zei)-w*t*1e-9);
    plot3(m3,Eyt,Ezt,'r','LineWidth',1);
    hold on
    view([40,0,0]);               %从x轴方向上观察图形
    a=-40:1:40;                   %下列数行是为了生成xoy平面辅助观察
    b=a;
    [a,b]=meshgrid(a,b)
    c=a*t*0;
    surf(a,b,c);
    shading interp
    set(gca,'ZLim',[-40 40])
    alpha(0.6)
    h1=quiver3(0,0,0,40,0,0);           %下列数行生成矢量箭头指出各方向,辅助观察
    h2=quiver3(0,0,0,0,40,0);
    h3=quiver3(0,0,0,0,0,40);
    h4=quiver3(0,0,0,0,30,17.4);
    h5=quiver3(0,-30,17.4,0,33,-18.9);
    h6=quiver3(0,0,0,0,13.86,-28.84);
    text(36,0,0,'\leftarrow X');        %下列数行生成文字标签,便于观察和说明
    text(0,36,0,'\leftarrow Y');
    text(0,0,36,'\leftarrow Z');
    text(0,27,14,'\leftarrow   θr=60°');
    text(0,-2,2,'\rightarrow   θi=60°');
    text(0,13.36,-26.34,'\leftarrow   θt=30°');
    set(h1,'maxheadsize',0.5);            %控制箭头大小
    set(h2,'maxheadsize',0.5);
    set(h3,'maxheadsize',0.5);
    set(h4,'maxheadsize',0.5);
    set(h5,'maxheadsize',0.5);
    set(h6,'maxheadsize',0.5);
    hold on
    axis([-40,40,-40,40,-40,40]);         %划定图像显示范围
    grid on;
    hold off
    xlabel('x轴')
    ylabel('y轴')
    zlabel('z轴')
    title(['均匀平面波斜投射到不同介质分界面示意图','t=',num2str(t),'ns'],'fontsize',14)
    set(gca,'fontsize',12)
    drawnow
    frame=getframe(1);              %获取当前图像,生成gif图
    im=frame2im(frame);
    [imind,cm]=rgb2ind(im,500);
    if t==0
        imwrite(imind,cm,gifname,'gif');
    else
            imwrite(imind,cm,gifname,'gif','WriteMode','append','DelayTime',0.1);
    end
end
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux: Cache 简介

文章目录 1. 前言2. 背景3. Cache 硬件基础3.1 什么是 Cache ?3.2 Cache 工作原理3.3 Cache 层级架构3.4 内存架构中各级访问速度概览3.5 Cache 分类3.6 Cache 的 查找 和 组织方式3.6.1 Cache 组织相关术语3.6.2 Cache 查找3.6.2.1 Cache 查找过程概述3.6.2.2 Cach…

函数式编程汇总

目录 一 . Lambda 表达式 实例 省略规则 二. Stream 流 案例数据准备 入门实例 调试技巧 常用操作 创建流 1. 单例集合 2. 数组 3. 双列集合 中间操作 1. filter 2. map 3. distinct 4. sorted 5. limit 7. flatMap 终结操作 1. forEach 2. count 3. max…

解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误

1.启动MySQL的错误信息如下 (1)“本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。” (2)又在PowerShell中运行"net start MySQL",服务启动失败。“MySQL 服务无法启…

27、git的安装和配置(自用简易版)

1.git的安装 安装没有什么好说的,运行安装包,一直下一步下一步,就好了 2.配置 首先配置用户名和邮箱吧 git config -global user.name "liu_liangyi"git config -global user.email 993261877qq.com配置好后可以查看一下,输入指令…

Java - LambdaQueryWrapper 的常用方法

1、查看项目中是否导入mybatisPlus的jar包 2、servie 层和实现类要集成mybatisPlus service 继承IService<> 实现类中要继承IService的实现类ServiceImpl<mapper,实体类> 3、如果想要mapper中的一些方法&#xff0c;mapper 要继承BaseMapper<实体类> 4、在实…

Nginx替代产品-Tengine健康检测

1、官网地址 官网地址&#xff1a;The Tengine Web Server 文档地址&#xff1a;文档 - The Tengine Web Server 健康检测模块&#xff1a;ngx_http_upstream_check_module - The Tengine Web Server 2、安装 下载 wget https://tengine.taobao.org/download/tengine-3.…

JAVA智慧物业源码 智慧物业系统源码

JAVA智慧物业源码 智慧物业系统源码 基于SpringBoot、Spring Security、Jwt、Vue的前后端分离的后台管理系统 编号&#xff1a;LQ8 1、系统环境 Java EE 8Servlet 3.0Apache Maven 3 2、主框架 Spring Boot 2.2.xSpring Framework 5.2.xSpring Security 5.2.x 3、持久层…

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

基于Xml方法的Bean的配置-实例化Bean的方法-构造方法

SpringBean的配置详解 Bean的实例化配置 Spring的实例化方法主要由以下两种 构造方法实例化&#xff1a;底层通过构造方法对bean进行实例化 构造方法实例化bean又分为无参方法实例化和有参方法实例化&#xff0c;在Spring中配置的<bean>几乎都是无参构造该方式&#xff…

如何把文件从本地上传云服务器

1、从服务器下载文件到本地&#xff08;如win电脑&#xff09; scp&#xff1a;命令&#xff0c; iss_train0110.33.16.2是服务器用户名&#xff0c;10.33.16.2是服务器ip&#xff0c; :是选择 /mnt/linaro/sample/sample/YOLOv8/cpp/yolov8_bmcv/yolov8_bmcv.soc&#xff1a;服…

AJAX 技术学习笔记(基础)

Asynchronous JavaScript And XML 概念&#xff1a;异步的 JavaScript 和 XML 原生 AJAX 介绍 作用&#xff1a; 和服务器进行数据交换&#xff0c;利用HTML一起代替耦合的JSP动态页面完成异步交互 同步交互和异步交互&#xff1a; 同步交互&#xff1a;客户端向服务器端发…

基于Java新枫之谷游戏攻略设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

JVM内存泄漏分析的demo

本文参考&#xff1a; JVM调优参数、方法、工具以及案例总结 JVM监控和调优常用命令工具总结 - Pickle - 博客园 (cnblogs.com) 面试官问我JVM调优&#xff0c;我忍不住了&#xff01; - Java3y - 博客园 (cnblogs.com) 从实际案例聊聊Java应用的GC优化 (qq.com) JVM调优的…

微分方程应用案例

下表1给出了近两个世纪美国人口统计表&#xff08;单位&#xff1a;百万&#xff09;&#xff0c;建立数学模型并检验&#xff0c;最后用它预报2010年美国的人口。 年 1790 1800 1810 1820 1830 1840 1850 1860 人口 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 年…

Chromedriver 在 Python 中查看源代码的方法

Python 中可以属性来查看需要爬取的网站的源代码。 对应具体的是&#xff1a;chrome.page_source 需要注意的是首先需要导入包 from selenium.webdriver import Chrome 然后进行初始化&#xff1a;chrome Chrome(serviceService(r"C:\Users\yhu\Downloads\chromedrive…

华为智慧搜索,下一片流量蓝海的“入海口”

几年前开始&#xff0c;TMT业界就发出了一类质疑的声音&#xff1a;移动互联网的各个APP彼此割裂&#xff0c;是在“孤岛炼油”。 大量的应用程序和服务互不打通&#xff0c;形成了严重的数据孤岛&#xff0c;用户只能进行站内搜索&#xff0c;很难穿透APP壁垒&#xff0c;进行…

平衡二叉树的定义,插入操作以及插入新结点后的调整规则(ALV树)

1.定义 平衡二叉树( Balanced Binary Tree&#xff09;&#xff0c;简称平衡树&#xff08;AVL树&#xff09;。 1.特点 树上任一结点的左子树和右子树的高度之差不超过1。 结点的平衡因子左子树高-右子树高。 2.平衡二叉树的判定 平衡二叉树结点的平衡因子的值只可能是-1…

全国职业技能大赛云计算--高职组赛题卷①(容器云)

全国职业技能大赛云计算--高职组赛题卷①&#xff08;容器云&#xff09; 第二场次题目&#xff1a;容器云平台部署与运维任务1 Docker CE及私有仓库安装任务&#xff08;5分&#xff09;任务2 基于容器的web应用系统部署任务&#xff08;15分&#xff09;任务3 基于容器的持续…

Mysql详解Explain索引优化最佳实践

目录 1 Explain工具介绍2 explain 两个变种3 explain中的列3.1 id列3.2 select_type列3.3 table列3.4. type列3.5 possible_keys列3.6 key列3.7 key_len列3.8 ref列3.9 rows列3.10 Extra列 4 索引最佳实践4.1.全值匹配4.2.最左前缀法则4.3.不在索引列上做任何操作&#xff08;计…

使用 Feature Flags 实现数据库灰度迁移的监控与可观测性

作者&#xff1a;观测云与胡博 场景描述 很多企业会遇到数据库升级、或数据库迁移的情况&#xff0c;尤其是在自建数据库服务向云数据库服务、自建机房向云机房、旧数据库向新数据库迁移等场景。 然而&#xff0c;我们需要在整个移植过程中保证其稳定性、避免数据遗失、服务宕…