许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  电磁场仿真matlab代码资源分享

电磁场仿真matlab代码资源分享

阅读数 1
点赞 0
article_banner


微波谐振腔:腔壁微扰法

用matlab分析特殊情况的矩形介质腔体谐振器仅作参考,公式有改动

参考文献:《电磁波理论》葛德彪、魏兵著,第四章

======================二维=========================

clc

clear

close all

% 常数

a = 10.8;%长

b = 5.8;%厚度

l = 10.8;%宽

f1 = 4.356e9;

w = 2 * pi * f1;

e = 20.3 * (1e-9 / (36 * pi));%介质的介电常数

u = 4 * pi * 1e-7;%磁导率

q4 = e * w^2 * u^2 * a * b * l / 8;%平均总能量

% 函数定义

Hx = @(x, y, z) -(1 / (w * u * l)) .* sin(pi * x / (2 * a)) .* cos(pi * z / l);

Hz = @(x, y, z) (1 / (w * u * a * l)) .* cos(pi * x / (2 * a)) .* sin(pi * z / l);

Ey = @(x, y, z) w * u .* sin(pi * x / (2 * a)) .* sin(pi * z / l);

% n 和 m 的范围

n_range = 2:0.5:6;

m_range = 2:0.5:6;

% 初始化 f 的矩阵

f_matrix = zeros(length(n_range), length(m_range));

% 遍历 n 和 m 的范围,计算每个组合的 q1, q2, q3 及 f 的值

for i = 1:length(n_range)

 for j = 1:length(m_range)

   n = n_range(i);

   m = m_range(j);

   o = n; % 由于 n = o

   % 积分上下限 q1

   xmin_q1 = a * (1 - 1/n) / 2;

   xmax_q1 = a * (1 + 1/n) / 2;

   ymin_q1 = b * (1 - 1/m) / 2;

   ymax_q1 = b;

   zmin_q1 = 0;

   zmax_q1 = l * (1 + 1/o) / 2;

   % 计算 q1

   q1 = integral3(@(x, y, z) (Hx(x, y, z)).^2, xmin_q1, xmax_q1, ymin_q1, ymax_q1, zmin_q1, zmax_q1) * u;

   % 积分上下限 q2

   xmin_q2 = 0;

   xmax_q2 = a * (1 + 1/n) / 2;

   ymin_q2 = 0;

   ymax_q2 = b * (1 - 1/m) / 2;

   zmin_q2 = l * (1 - 1/o) / 2;

   zmax_q2 = l * (1 + 1/o) / 2;

   % 计算 q2

   q2 = integral3(@(x, y, z) (Hz(x, y, z)).^2, xmin_q2, xmax_q2, ymin_q2, ymax_q2, zmin_q2, zmax_q2) * u;

   % 积分上下限 q3

   xmin_q3 = a * (1 - 1/n) / 2;

   xmax_q3 = a * (1 + 1/n) / 2;

   ymin_q3 = 0;

   ymax_q3 = b * (1 - 1/m) / 2;

   zmin_q3 = l * (1 - 1/o) / 2;

   zmax_q3 = l * (1 + 1/o) / 2;

   % 计算 q3

   q3 = integral3(@(x, y, z) (Ey(x, y, z)).^2, xmin_q3, xmax_q3, ymin_q3, ymax_q3, zmin_q3, zmax_q3) * e;

   % 计算 f 的值

   f_matrix(i, j) = f1 * (1 + (q1 + q2 - q3) / q4);

 end

end

% 显示结果矩阵

disp('f 的值矩阵为:');

disp(f_matrix);

% 绘制 f 随 m 变化的图形,对于每个固定的 n

figure;

hold on;

colors = jet(length(n_range));

for i = 1:length(n_range)

 plot(m_range, f_matrix(i, :), 'DisplayName', ['n = ' num2str(n_range(i))], 'Color', colors(i, :));

end

hold off;

xlabel('m');

ylabel('f');

title('f 随 m 变化的图形');

legend show;


======================三维=========================

clc

clear

close all

% 常数

a = 10.8;

b = 5.8;

l = 10.8;

f1 = 4.356e9;

w = 2 * pi * f1;

e = 20.3 * (1e-9 / (36 * pi));

u = 4 * pi * 1e-7;

q4 = e * w^2 * u^2 * a * b * l / 8;

% 函数定义

Hx = @(x, y, z) -(1 / (w * u * l)) .* sin(pi * x / (2 * a)) .* cos(pi * z / l);

Hz = @(x, y, z) (1 / (w * u * a * l)) .* cos(pi * x / (2 * a)) .* sin(pi * z / l);

Ey = @(x, y, z) w * u .* sin(pi * x / (2 * a)) .* sin(pi * z / l);

% n 和 m 的范围

n_range = 2:0.5:6;

m_range = 2:0.5:6;

% 初始化 f 的矩阵

f_matrix = zeros(length(n_range), length(m_range));

% 遍历 n 和 m 的范围,计算每个组合的 q1, q2, q3 及 f 的值

for i = 1:length(n_range)

 for j = 1:length(m_range)

   n = n_range(i);

   m = m_range(j);

   o = n; % 由于 n = o

   % 积分上下限 q1

   xmin_q1 = a * (1 - 1/n) / 2;

   xmax_q1 = a * (1 + 1/n) / 2;

   ymin_q1 = b * (1 - 1/m) / 2;

   ymax_q1 = b;

   zmin_q1 = 0;

   zmax_q1 = l * (1 + 1/o) / 2;

   % 计算 q1

   q1 = integral3(@(x, y, z) (Hx(x, y, z)).^2, xmin_q1, xmax_q1, ymin_q1, ymax_q1, zmin_q1, zmax_q1) * u;

   % 积分上下限 q2

   xmin_q2 = 0;

   xmax_q2 = a * (1 + 1/n) / 2;

   ymin_q2 = 0;

   ymax_q2 = b * (1 - 1/m) / 2;

   zmin_q2 = l * (1 - 1/o) / 2;

   zmax_q2 = l * (1 + 1/o) / 2;

   % 计算 q2

   q2 = integral3(@(x, y, z) (Hz(x, y, z)).^2, xmin_q2, xmax_q2, ymin_q2, ymax_q2, zmin_q2, zmax_q2) * u;

   % 积分上下限 q3

   xmin_q3 = a * (1 - 1/n) / 2;

   xmax_q3 = a * (1 + 1/n) / 2;

   ymin_q3 = 0;

   ymax_q3 = b * (1 - 1/m) / 2;

   zmin_q3 = l * (1 - 1/o) / 2;

   zmax_q3 = l * (1 + 1/o) / 2;

   % 计算 q3

   q3 = integral3(@(x, y, z) (Ey(x, y, z)).^2, xmin_q3, xmax_q3, ymin_q3, ymax_q3, zmin_q3, zmax_q3) * e;

   % 计算 f 的值

   f_matrix(i, j) = f1 * (1 + (q1 + q2 - q3) / q4);

 end

end

% 显示结果矩阵

disp('f 的值矩阵为:');

disp(f_matrix);

% 绘制 f 的变化图形

[n_grid, m_grid] = meshgrid(n_range, m_range);

surf(n_grid, m_grid, f_matrix);

xlabel('n');

ylabel('m');

zlabel('f');

title('f 随 n 和 m 变化的图形');



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空