本文首次在公众号【零妖阁】上发表,为了方便阅读和分享,我们将在其他平台进行自动同步。由于不同平台的排版格式可能存在差异,为了避免影响阅读体验,建议如有排版问题,可前往公众号查看原文。感谢您的阅读和支持!
为了便于远场数据分析,常需将 HFSS 或 CST 中的数据导出给 Matlab 处理。
1 处理HFSS导出的3D数据
2 处理CST导出的3D数据
处理HFSS导出的3D数据
Matlab 2021 中的函数 patternCustom 可以很方便绘制 3D 方向图,语法如下:
patternCustom(magE, theta, phi)
在 HFSS 中绘制远场,基本设置如下
右键 Export 导出 csv 文件,从 HFSS 导出的 3D 远场数据有三列,依次为 Phi、Theta、Gain
绘制导出数据的 3D 方向图以及方向性热度图
%% 导入数据
file_name = 'data.csv';
Farfield = importdata(file_name);
Dir = Farfield.data; % Phi | Theta | Gain
%% 3D方向图
figure;
subplot(121);
hsp = patternCustom(Dir(:,3), Dir(:,2), Dir(:,1));
caxis([-30, 5]);
set(gca, 'fontsize', 15, 'fontname','Times');
%% 转换为矩阵形式
phi_list = unique(Dir(:,1));
M = length(phi_list);
theta_list = unique(Dir(:,2));
N = length(theta_list);
D_mat = reshape(Dir(:,3), M, N);
%% 绘制热度图
subplot(122);
% imagesc(theta_list, phi_list, D_mat);
imagesc(phi_list, theta_list, D_mat');
colormap('jet'); colorbar;
xlabel('Phi'); ylabel('Theta')
set(gca, 'fontsize', 15, 'fontname','Times');
下面给出了从 HFSS 导出的偶极子远场图在 Matlab 中的运行结果
处理CST导出的3D数据
在 CST 的 Post Processing 中,导出远场的 txt 文件,导出的数据总共有 8 列,依次为Theta、Phi、Gain、Abs(Theta 分量)、Phase(Theta 分量)、Abs(Phi 分量)、Phase(Phi 分量)、轴比
绘制方向图只需要前三列数据,下面用 Matlab 绘制导出数据的 3D 方向图以及方向性热度图
%% 导入数据
file_name = 'data.txt';
Farfield = importdata(file_name);
Dir = Farfield.data; % Theta | Phi | Gain
theta = Dir(:,1);
phi = Dir(:,2);
D = Dir(:,3);
%% 由于从CST导出的数据中phi只能从0取到358,
%%% 导致3D图出现不闭合现象,需人为填补数据
theta = [theta; theta(phi==0)];
phi = [phi; phi(phi==0)+360];
D = [D; D(phi==0)];
figure;
subplot(121);
hsp = patternCustom(D, theta, phi);
set(gca, 'fontsize', 15, 'fontname','Times');
% rotate(hsp, [1 0 0], 90); % 旋转方向图
%% 转换为矩阵形式
theta_list = unique(theta);
M = length(theta_list);
phi_list = unique(phi);
N = length(phi_list);
D_mat = reshape(D, M, N);
%% 绘图
subplot(122);
imagesc(phi_list, theta_list, D_mat);
colormap('jet'); colorbar;
xlabel('Phi'); ylabel('Theta')
set(gca, 'fontsize', 15, 'fontname','Times');
下面给出了从 CST 导出的矩形喇叭天线远场图在 Matlab 中的运行结果