CST学习笔记(三)MATLAB与CST联合仿真-远场数据批量导出

CST学习笔记(三)MATLAB与CST联合仿真-远场数据批量导出

一、直接数据导出

(1)打开远场,调至笛卡尔坐标系

(2)然后点击post processing → Import/Export → Plot Data (ASCII) ,即可导出数据

二、数据后处理批量导出

  1. 在后处理模板导出
  2. 选择分辨率和要导出的远场数据
  3. 选择PW,意思是导出激励源为平面波(plane wave)下的远场数据,有些仿真中用的是波端口12选择12则分别代表导出激励源为12下的远场数据。
  4. 点击evaluate

三、使用MATLAB代码批量导出远场数据

代码如下:

c 复制代码
% 添加 CST 的 API 路径
addpath(genpath('E:\CST\CST_MATLAB\cstapi')); 

% 启动 CST 和打开文件
cst = actxserver('CSTStudio.application'); % 加载 CST 应用控件
mws = invoke(cst, 'NewMWS'); % 新建一个 CST MWS 项目

% 打开一个已经存在的 CST 工程文件
fullfilename = which('x_polarized_5unit10.cst'); % 确保文件路径正确
invoke(mws, 'OpenFile', fullfilename); % 打开 CST 文件

% 获取 FarfieldPlot 对象并设置参数
farfieldplot = invoke(mws, 'FarfieldPlot');

% 配置方向图的基本参数
invoke(farfieldplot, 'Reset');
invoke(farfieldplot, 'Plottype', '3d'); % 设置为 3D 绘图
invoke(farfieldplot, 'Step', 5); % 设置步长为 5 度
invoke(farfieldplot, 'SetColorByValue', 'True');
invoke(farfieldplot, 'SetTheta360', 'False');
invoke(farfieldplot, 'SetPlotMode', 'Efield'); % 设置绘图模式为 Efield
invoke(farfieldplot, 'SetScaleLinear', 'True'); % 设置线性比例
invoke(farfieldplot, 'DBUnit', '0'); % 设置 dB 单位
invoke(farfieldplot, 'Distance', 1); % 设置远场距离

% 绘制第一个方向图
SelectTreeItem = 'Farfields\farfield (f=3.66) [PW]'; % 选择第一个频点的远场结果
invoke(mws, 'SelectTreeItem', SelectTreeItem); % 选择树中的结果项
invoke(farfieldplot, 'Plot'); % 绘制方向图

% 导出第一个方向图结果
export = invoke(mws, 'ASCIIExport');
export_path = 'D:\CSTproject\20250331article\x_polarized_5unit10_file\farfield_f16.txt'; % 导出路径
invoke(export, 'Reset');
invoke(export, 'FileName', export_path); % 设置导出路径
invoke(export, 'Execute'); % 执行导出
disp(['已成功导出方向图数据至:', export_path]);

% 绘制第二个方向图
SelectTreeItem = 'Farfields\farfield (f=3.72) [PW]'; % 选择第二个频点的远场结果
invoke(mws, 'SelectTreeItem', SelectTreeItem); % 选择树中的结果中的结果项
invoke(farfieldplot, 'Plot'); % 绘制方向图

% 导出第二个方向图结果
export_path = 'D:\CSTproject\20250331article\x_polarized_5unit10_file\farfield_f30.txt'; % 导出路径
invoke(export, 'Reset');
invoke(export, 'FileName', export_path); % 设置导出路径
invoke(export, 'Execute'); % 执行导出
disp(['已成功导出方向图数据至:', export_path]);

% 释放 COM 对象
release(mws); 
release(cst); 
rmpath(genpath('E:\CST\CST_MATLAB\cstapi'));

但是运行代码出现了以下问题:

我猜测是版本问题,我用的是CST2022,我参考的资料都是基于CST2020或2021的仿真,所以此代码仅供参考,有CST2020或2021的同志们可以尝试一下,如果成功了,可以在评论区回复一下。

附录

这是CST帮助文档中有关宏编辑的VBA代码,可以在这个里面参考学习。CST没有HFSS的脚本录制功能,其所有操作都在history tree中,所以想要快速建模可以参考历史树,但如果想要导出结果数据,历史树参考意义不大,还得多看参考文档和其他参考资料。

【1】MWSMtalab如何控制CST导出数据
【2】CST如何导出和查看farfield远场数据 --- ffs,txt,csv
【3】CST仿真指导 | 使用宏Macro实现自动化
【4】【Matlab与CST MWS交互】:自动批量导出S参数

相关推荐
吃好睡好便好19 小时前
MATLAB仿真框图3
开发语言·matlab·仿真·simulink
吃好睡好便好2 天前
MATLAB仿真框图2
开发语言·matlab·仿真·simulink
AAIshangyanxiu3 天前
涡度通量碳观测数据 MATLAB 全流程解析与敏感性定量分析、观测数据质控、插补及 footprint 建模技术
开发语言·matlab·涡度通量·生态碳汇·生态碳汇模拟
吃好睡好便好3 天前
MATLAB仿真框图
开发语言·matlab·仿真·simulink
netccdn4 天前
Hough变换检测直线(Matlab)
开发语言·计算机视觉·matlab
DFT计算杂谈5 天前
ADV. SCI. 反铁磁体MnTe2中的Plaid-like自旋劈裂与手性磁振子
matlab
机器学习之心6 天前
可拓理论+云模型:一套量化高校科研创新能力的MATLAB实现方案
matlab·云模型·可拓理论
bu_shuo6 天前
MATLAB中的meshgrid和ndgrid
开发语言·matlab
青春不败 177-3266-05206 天前
MATLAB在生态环境数据处理与分析
matlab·生态学·遥感·生态系统服务·数据处理·环境科学
WangYan20226 天前
MATLAB/Meta分析/R语言/贝叶斯方法/piecewiseSEM结构方程模型在生态环境数据处理与分析中的应用
matlab·meta分析·生态环境·结构方程模型·贝叶斯方法