【半空间Sommerfeld积分电场集成器】使用二重格林函数来计算由电偶极子或磁偶极子在顶部介质中产生的精确场研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

半空间Sommerfeld积分电场集成器,本文使用二重格林函数来计算由电偶极子或磁偶极子在顶部介质中产生的精确场。使用主函数来计算z切面的电场。使用NearField.m来计算x-z切面的二维彩色地图。

在本研究中,我们采用了一种高效的计算方法——半空间Sommerfeld积分电场积分器,该方法通过引入二重格林函数,实现了对位于顶部介质中电偶极子或磁偶极子所产生的复杂电磁场进行高精度的计算与分析。这一技术的核心优势在于其能够细致入微地捕捉到这些源在不同介质界面交互作用下所产生的细微场变化,从而为深入理解复杂电磁现象提供了强有力的工具。

为了更加全面地展示计算结果,我们设计并实现了一套主函数,专门用于计算电场沿z轴切面的分布情况。这一过程不仅要求高度的数学严谨性,还兼顾了计算效率,确保了即使在面对大规模计算任务时也能迅速得出准确的结果。

此外,为了直观展现电场在二维平面上的分布特性,特别是针对x-z平面的详细情况,我们开发了名为NearField.m的MATLAB脚本。该脚本通过生成高质量的二维彩色地图,将电场强度以色彩差异的形式生动展现出来,使得研究者能够一目了然地观察到电场的强度变化趋势和分布模式。这种视觉化的展示方式极大地增强了数据的可解释性和研究的直观性,对于进一步的物理分析及工程应用具有重要意义。

综上所述,通过结合半空间Sommerfeld积分电场积分器、二重格林函数方法以及先进的计算可视化工具,本文不仅实现了对特定源产生的电磁场进行高精度模拟,还为相关领域的研究人员提供了一个强大且灵活的分析平台,促进了对复杂电磁现象深入探索的可能性。

📚2 运行结果

部分代码:

%% Initialize Code
close all;clear;clc;path=pwd;addpath(genpath(path));  
global eps1 eps2 mu1 mu2  
lambda0=1;j=sqrt(-1);    
%% Define Media Parameters
eps1          =   1;              % Dielectric Constant Layer 1
mu1         =   1;              % Magnetic Constant Layer 1
eps2          =   4;              % Dielectric Constant Layer 2
mu2         =   1;              % Magnetic Constant Layer 2
%% Define Dipole Position and Orientation
J           =   1;              % Strength of Electric Dipole [Am]
theta0      =   0;              % Elevation Tilt Angle of Dipole
phi0        =   0;              % Azimuth Tilt Angle of Dipole
x_          =   0*lambda0;      % x- Location of Dipole
y_          =   0*lambda0;      % y- Location of Dipole
z_          =   0.5*lambda0;    % z- Location of Dipole
%% Define Observation
Ns          =   100;            % Number of Points in Plot
z_min         =   -2*lambda0;     % Minimum z
z_max         =   +2*lambda0;     % Maximum z
x_min        =   -2*lambda0;     % Minimum x
x_max        =   +2*lambda0;     % Maximum x
y           =   +0*lambda0;     % y- Cut Location 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]李磊.平面分层介质中的电磁场并矢格林函数及其数值运算[D].长春理工大学,2013.

[2]李江,傅君眉.平面分层介质结构的空间域格林函数近似解[J].微波学报, 1999, 15(3):7.DOI:10.1007/BF02946505.

[3]李太全.Euler变换对Sommerfeld积分加速收敛特性分析[J].长江大学学报(自然科学版), 2005.

🌈4 Matlab代码实现

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要定义两层不同折射率的介质。假设第一层的折射率为n1,第二层的折射率为n2,我们可以这样定义: ```matlab n1 = 1.5; % 第一层折射率 n2 = 1.3; % 第二层折射率 ``` 接下来,我们需要定义光线的入射角度和波长。假设入射角度为theta,波长为lambda,我们可以这样定义: ```matlab theta = 30; % 入射角度,单位为度 lambda = 500e-9; % 波长,单位为米 ``` 然后,我们可以使用Snell定律计算出光线在两个介质的传播方向: ```matlab theta1 = asin(sin(theta*pi/180)/n1)*180/pi; % 第一层的入射角度,单位为度 theta2 = asin(sin(theta1*pi/180)*n1/n2)*180/pi; % 第二层的入射角度,单位为度 ``` 接着,我们可以定义一个点扩散函数(PSF),用于模拟光在介质的传播。这里我们选择使用Airy函数作为PSF: ```matlab [x,y] = meshgrid(-10:0.1:10); % 定义坐标系 r = sqrt(x.^2+y.^2); airy_func = (2*besselj(1,pi*r*0.5/lambda)./(pi*r*0.5/lambda)).^2; % Airy函数 ``` 现在,我们可以使用Rayleigh-Sommerfeld衍射积分公式计算出光在介质的传播情况,并存储不同深度位置的PSF强度: ```matlab z = 0:0.5:20; % 不同深度位置 PSF = zeros(size(x,1),size(x,2),numel(z)); % 存储不同深度位置的PSF强度 for i = 1:numel(z) phase1 = exp(1i*2*pi*n1*z(i)*sqrt(1-(sind(theta1))^2)/lambda); % 第一层的相位因 phase2 = exp(1i*2*pi*n2*z(i)*sqrt(1-(sind(theta2))^2)/lambda); % 第二层的相位因 H1 = airy_func.*exp(-1i*2*pi*n1*(x*sin(theta1*pi/180)+y*cos(theta1*pi/180))/lambda).*phase1; % 第一层的传播函数 H2 = airy_func.*exp(-1i*2*pi*n2*(x*sin(theta2*pi/180)+y*cos(theta2*pi/180))/lambda).*phase2; % 第二层的传播函数 H = H1.*H2; % 总的传播函数 PSF(:,:,i) = abs(fftshift(ifft2(ifftshift(H)))).^2; % 计算PSF强度 end ``` 最后,我们可以绘制不同深度位置处的PSF强度轴向分布图: ```matlab figure; hold on; for i = 1:numel(z) plot(abs(squeeze(PSF(size(x,1)/2,size(x,2)/2,i,:))),z(i),'linewidth',2); end xlabel('PSF强度'); ylabel('深度位置'); set(gca,'fontsize',14); ``` 运行以上代码,就可以得到光经过两层折射率不同的介质时不同存储深度位置的PSF强度轴向分布图了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值