【电磁学】计算电磁学(Matlab实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

 计算电磁学是一门结合了电磁理论、数学方法和计算机技术的交叉学科。它主要致力于通过数值计算方法来求解电磁问题。 在计算电磁学中,研究人员利用各种数值算法,如有限元法、矩量法、时域有限差分法等,对复杂的电磁结构和现象进行建模和分析。这些方法可以处理各种类型的电磁问题,包括静态电磁场、时谐电磁场、瞬态电磁场等。 计算电磁学在现代工程和科学领域中具有广泛的应用。在电子工程中,它用于设计和优化微波电路、天线、电磁兼容等。在通信领域,可帮助设计无线通信系统、分析信号传播特性。在航空航天领域,用于飞行器的电磁隐身设计和电磁环境分析。在生物医学领域,可研究人体与电磁场的相互作用等。 通过计算电磁学,工程师和科学家能够在不进行昂贵的物理实验的情况下,快速准确地预测电磁系统的性能,从而节省时间和成本,推动了电磁技术的不断发展和创新。

📚2 运行结果

主函数部分代码:

clc
close all
clear all
fr = 5.7*1e9;       % Operating frequency in Hz
v0 = 3*1e8;         % velocity of light in air
lambda = v0/fr;
% L = 1;  % Length of wire antenna
L = 0.5*lambda;
a = 0.001;       % Radius of wire
N = 500;                % Number of sections
M = N;                  % Number of testing function

Ezi = 1;                % incident Electric field
ep_0 = 8.854*1e-12;     % Permittivity of free space
ep_r = 1;               % relative Permittivity
mu_0 = 4*pi*1e-7;       % Permeability of free space
mu_r = 1;               % relative Permeability
lim1 = -L/2;            % Lower limit of wire antenna placed in coordinate
lim2 = L/2;             % Upper limit of wire antenna placed in coordinate
k = 2*pi*fr*sqrt(ep_0*ep_r*mu_0*mu_r);      % Propagation constant

hz = (lim2-lim1)/(N);   % Step width of each section
fs = 1000;              % Sampling rate
z = lim1:1/fs:lim2;     % x vector along the line
z1 = lim1+hz:hz:lim2;
dz = hz;

Zmn = zeros(M,N);       % Solution matris initialization


for n = 1:N
    for m = 1:N
        zn = lim1+(n-0.5)*dz;
        za = zn-(dz/2);
        zb = zn+(dz/2);
        zm = lim1+(m-0.5)*dz;
        R = sqrt(a^2+(zm-zn)^2);
        R1n = sqrt(a^2+(zm-zn+(dz/2))^2);
        R2n = sqrt(a^2+(zm-zn-(dz/2))^2);
        t1 = (zm-zn+dz/2)*(2+1j*k*R1n)/(4*pi*R1n^2)*exp(-1j*k*R1n);
        t2 = (zm-zn-dz/2)*(2+1j*k*R2n)/(4*pi*R2n^2)*exp(-1j*k*R2n);
        phi_n = t1-t2;
        if m == n
%             if dz >= 1000*a             % If dz >> a
            Zmn(m,n) = ((k^2/(4*pi))*(2*log(dz/a)-1j*k*dz)) + phi_n;
%             else
%                 Zmn(m,n) = (k^2/(4*pi))*(log(((dz/2)+sqrt(a^2+(dz/2)^2))/((dz/2)+sqrt(a^2+(dz/2)^2)))-1j*k*dz) + phi_n;
%             end
        else
            Zmn(m,n) = (((k^2*dz)/(4*pi*R))*exp(-1j*k*R))+phi_n;
        end
           
        
        
        
    end
end

bm = -1j*2*pi*fr*ep_0*ep_r*Ezi*ones(M,1);           % Constant Matrix  (N x 1)
an = Zmn\bm;                        % Solution of unknown constant (N x 1)
Ln = length(an);
an1= abs(an);
f1 = 0;                             % Current Distribution claculation vector
fvar = 0;                           % Variable for Current distribution claulation
for n = 1:N
    zn = lim1+(n-0.5)*dz;           % nth shifted pulse basis function
    fvar = an(n)*rectpuls(z-zn,dz);
    f1 = f1+fvar;
end
Curr = abs(f1);           % ABsolute value of current Distribution

🎉3 参考文献

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

[1]Zhihe X ,Bin S ,Weiqing F , et al.变质岩心杂体与金矿床的空间耦合关系——来自地球物理电磁学的约束[J].开放地球科学,2024,16(1):

[2]Wang J ,Liu S ,Fan W , et al.具有灵活控制拓扑和电磁学的等离子体光子晶体“万花筒”[J].光电子学前沿,2024,17(1):34-34.

🌈4 Matlab代码实现

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值