大数跨境
0
0

软件应用--matlab与hfss协同仿真HFSS-MATLAB-API

软件应用--matlab与hfss协同仿真HFSS-MATLAB-API 微波工程仿真
2024-07-19
0
导读:matlab可以编辑vbs脚本,而HFSS可以用vbs脚本建模,hfss仿真结果导出的数据可以在matlab调



matlab可以编辑vbs脚本,而HFSS可以用vbs脚本建模,hfss仿真结果导出的数据可以在matlab调用,根据数据的分析可以再改进hfss的建模,这样两个软件就可以协同工作提高用户的工作效率。

前言



上一节分析了hfss脚本录制功能,对hfss的vbs代码做了分析。这节对matlab-hfss-api分析。通过参考两者可以方便自己定制符合需求的api。

HFSS-MATLAB-API是一个基于MATLAB的接口,专为ANSYS HFSS设计。该项目旨在简化HFSS与MATLAB之间的交互。

这里分享的是Vijay Ramasami (rvc@ku.edu)的项目。

HFSS-MATLAB-API是一个工具库,该库是MATLAB通过使用HFSS script接口控制HFSS的执行的。这个工具库提供了一系列的MATLAB函数。这些函数可以通过生成需要的HFSS script来创建3D模型。一旦通过这种方式生成一个script,就可以在HFSS中执行它并产生相应的3D模型,按设置计算相应问题和将结果数据输出。




HFSS-Matlab

As shown below👇


matlab函数

HFSS-MATLAB-API工具库提供了一系列的MATLAB函数。

下面以示例中的dipole模型举例,


结合hfss生成的脚本,可以看到每个常用的函数都有对应的m文件独立出来的模块。

需要使用时,可直接调用,根据需求输入参数就可直接使用。



生成的偶极子模型




代码解析

先创建一个vbs的文件

tmpScriptFile = 'dipole_example.vbs';Create a new temporary HFSS script file.fid = fopen(tmpScriptFile, 'wt');


1、创建工程

% Create a new HFSS Project and insert a new design.  hfssNewProject(fid);


2、插入hfss design

  hfssInsertDesign(fid, 'without_balun');


3、创建模型、设置材料

% Create the Dipole.  hfssDipole(fid, 'Dipole', 'X', [0, 0, 0], L, 2*aRad, gapL, 'meter');


4、创建边界条件、激励等

% Assign PE boundary to the antenna elements.  hfssAssignPE(fid, 'Antennas',  {'Dipole1', 'Dipole2'});% Create a Lumped Gap Source (a rectangle normal to the Y-axis)  hfssRectangle(fid, 'GapSource', 'Y', [-gapL/2, 0, -aRad], 2*aRad, gapL, ...                'meter');  hfssAssignLumpedPort(fid, 'LumpedPort', 'GapSource', [-gapL/2, 0, 0], ...                       [gapL/2, 0, 0], 'meter');
% Add an AirBox. hfssBox(fid, 'AirBox', [-AirX, -AirY, -AirZ]/2, [AirX, AirY, AirZ], ... 'meter'); hfssAssignRadiation(fid, 'ABC', 'AirBox');

5、设置扫描

% Add a Solution Setup.  hfssInsertSolution(fid, 'Setup150MHz', fC/1e9);  hfssInterpolatingSweep(fid, 'Sweep100to200MHz', 'Setup150MHz', ...                         fLow/1e9, fHigh/1e9, nPoints);

5、获取数据

% Export the Network data as an m-file.  hfssExportNetworkData(fid, tmpDataFile, 'Setup150MHz''Sweep100to200MHz');

6、数据处理,作图

% Plot the data.  disp('Solution Completed. Plotting Results for this Iteration ...');  figure(1);  hold on;  plot(f/1e6, 20*log10(abs(S)), pltCols(mod(iIters, nCols) + 1));     hold on;  xlabel('Frequency (MHz) ->');  ylabel('S_{11} (dB) ->');  axis([fLow/1e6, fHigh/1e6, -20, 0]);

7、优化

for iIters = 1:maxIters% Find the Resonance Frequency.  [Smin, iMin] = min(S);  fActual = f(iMin);  disp(sprintf('Simulated Resonance Frequency: %.2f MHz', fActual/1e6));
% Check if the required accuracy is met. if (abs((fC - fActual)/fC) < Accuracy) disp('Required Accuracy is met !!'); disp(sprintf('Optimized Antenna Length is %.2f meter.', L)); hasConverged = true; break; end; % Adjust the antenna length in accordance with the discrepancy between % the estimated and desired resonance frequency. L = L*fActual/fC; end;




End



上面代码不能直接粘贴复制。

类似项目完整代码获取地址:

https://github.com/WoodyBuendia/HFSS-MATLAB-APl.git

ps:一些不完整的hfss脚本(持续添加)

链接: https://pan.baidu.com/s/1G3aZHdy3bPevo97erU7zVg?pwd=hfss 

提取码: hfss



【声明】内容源于网络
0
0
微波工程仿真
关注数学、电磁理论、微波射频、电路、工业设计等内容以及相关的仿真、设计工具软件。
内容 457
粉丝 0
微波工程仿真 关注数学、电磁理论、微波射频、电路、工业设计等内容以及相关的仿真、设计工具软件。
总阅读236
粉丝0
内容457