利用MATLAB控制HFSS进行仿真

这篇具有很好参考价值的文章主要介绍了利用MATLAB控制HFSS进行仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用MATLAB控制HFSS联合进行仿真

说明

HFSS是一款三维仿真软件,经常用在天线设计领域,在设计天线时我们经常为了使天线达到需要的性能指标使用各种优化算法来对天线进行优化,但是HFSS自带的optimetrics模块难以满足我们的要求,而MATLAB在优化算法领域强大的计算能力就能够弥补HFSS在这方面的不足之处,可以把HFSS当做我们的数据计算工具,计算出结果后再导出反馈待MATLAB再进行优化。这样利用MATLAB控制HFSS就能够更好的完成优化工作。

录制HFSS的vbs脚本

HFSS可以录制vbs脚本和py脚本,在这里我们使用vbs脚本进行演示利用MATLAB控制HFSS进行仿真

在HFSS的菜单栏中Tools工具栏中打开Record Script to File,然后选中你将要将录制文件存放的文件夹就可以进行操作了,在这过程中,HFSS会将你的所有操作步骤记录在脚本中,这样你就可以知道在HFSS调用某一步操作是如何进行的,然后可能在MATLAB中去控制HFSS完成某一步操作。

利用MATLAB控制HFSS进行仿真

比如我们在HFSS中建立一个长方体模型并将长度信息用变量来替代的操作记录在脚本中,所记录的vbs脚本如下:

' ----------------------------------------------
' Script Recorded by ANSYS Electronics Desktop Version 2021.1.0
' 21:24:33  1123, 2022
' ----------------------------------------------
Dim oAnsoftApp
Dim oDesktop
Dim oProject
Dim oDesign
Dim oEditor
Dim oModule
Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")
Set oDesktop = oAnsoftApp.GetAppDesktop()
oDesktop.RestoreWindow
Set oProject = oDesktop.SetActiveProject("bishe")
Set oDesign = oProject.SetActiveDesign("linear_array")
Set oEditor = oDesign.SetActiveEditor("3D Modeler")
oEditor.CreateBox Array("NAME:BoxParameters", "XPosition:=", "-0.8mm", "YPosition:=",  _
  "-0.8mm", "ZPosition:=", "0mm", "XSize:=", "1.8mm", "YSize:=", "1.6mm", "ZSize:=",  _
  "1.2mm"), Array("NAME:Attributes", "Name:=", "Box1", "Flags:=", "", "Color:=",  _
  "(143 175 143)", "Transparency:=", 0, "PartCoordinateSystem:=", "Global", "UDMId:=",  _
  "", "MaterialValue:=", "" & Chr(34) & "vacuum" & Chr(34) & "", "SurfaceMaterialValue:=",  _
  "" & Chr(34) & "" & Chr(34) & "", "SolveInside:=", true, "ShellElement:=",  _
  false, "ShellElementThickness:=", "0mm", "IsMaterialEditable:=", true, "UseMaterialAppearance:=",  _
  false, "IsLightweight:=", false)
oDesign.ChangeProperty Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers",  _
  "LocalVariables"), Array("NAME:NewProps", Array("NAME:dx", "PropType:=", "VariableProp", "UserDef:=",  _
  true, "Value:=", "10mm"))))
oDesign.ChangeProperty Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers",  _
  "LocalVariables"), Array("NAME:NewProps", Array("NAME:dy", "PropType:=", "VariableProp", "UserDef:=",  _
  true, "Value:=", "10mm"))))
oEditor.ChangeProperty Array("NAME:AllTabs", Array("NAME:Geometry3DCmdTab", Array("NAME:PropServers",  _
  "Box1:CreateBox:1"), Array("NAME:ChangedProps", Array("NAME:Position", "X:=", "-dx/2", "Y:=",  _
  "-dy/2", "Z:=", "0mm"), Array("NAME:XSize", "Value:=", "dx"), Array("NAME:YSize", "Value:=",  _
  "dy"), Array("NAME:ZSize", "Value:=", "10mm"))))
  

所以模型是一个长宽高各位10mm的正方体,其中x,y用变量dx,dy进行了表示,模型如下:
利用MATLAB控制HFSS进行仿真
.
.
.

或者导出天线方向图的操作如下:

' ----------------------------------------------
' Script Recorded by ANSYS Electronics Desktop Version 2020.1.0
' 10:38:43  1021, 2022
' ----------------------------------------------
Dim oAnsoftApp
Dim oDesktop
Dim oProject
Dim oDesign
Dim oEditor
Dim oModule
Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")
Set oDesktop = oAnsoftApp.GetAppDesktop()
oDesktop.RestoreWindow
Set oProject = oDesktop.SetActiveProject("Project")
Set oDesign = oProject.SetActiveDesign("HFSSdesigner")
Set oModule = oDesign.GetModule("ReportSetup")
oModule.ExportToFile "Gain Plot 1", "E:/HFSS/Gain Plot 1.csv"

.
.
.
除了建模之外,其他的所有操作都是可以被记录在脚本文件当中的,然后在HFSS菜单栏Tools中Run Script中选中录制的vbs文件或者py文件运行就可以重复之前录制的所有动作。
利用MATLAB控制HFSS进行仿真

.
.
.

MATLAB控制文件编写

在MATLAB中编写文件可以利用fopen和fclose来控制我们需要控制的vbs文件,例如:

fid=fopen('kongzhi.vbs','w+');%kongzhi.vbs文件就是你需要用来控制HFSS的文件
fclose all;

利用fopen就可以打开脚本文件并向其中写入我们需要写入的内容,fid是传输句柄,可以在MATLAB中查看fopen的用法(help fopen或者doc fopen)

想要控制HFSS我们还需要一个初始化的部分,在每次录制的脚本文件的开头部分就是我们的初始部分,然后将初始部分写入我们的控制vbs文件,比如:

fid=fopen('kongzhi.vbs','w+');
fprintf(fid, 'Dim oAnsoftApp\n');
fprintf(fid, 'Dim oDesktop\n');
fprintf(fid, 'Dim oProject\n');
fprintf(fid, 'Dim oDesign\n');
fprintf(fid, 'Dim oEditor\n');
fprintf(fid, 'Dim oModule\n');
fprintf(fid, 'Set oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")\n');
fprintf(fid, 'Set oDesktop = oAnsoftApp.GetAppDesktop()\n');
fprintf(fid, 'oDesktop.RestoreWindow\n');
fprintf(fid, 'Set oProject = oDesktop.SetActiveProject("Project")\n');%这里Project是HFSS中的工程文件名称,对于不同的工程文件一定要修改中这个地方MATLAB才能找到相关工程
fprintf(fid, 'Set oDesign = oProject.SetActiveDesign("HFSSdesigner")\n');%HFSSdesigner是设计文件名称,不同的设计文件名称也要记得修改

如果还需要其他的功能,就可以利用fprintf函数将先前录制的不同操作的脚本文件中的内容写入我们的kongzhi.vbs脚本中,最后利用dos就可运行我们的脚本文件。

dos 'kongzhi.vbs' ;%%运行脚本

这样运行MATLAB就能够控制HFSS进行我们想要的运算并导出相应的结果来完成优化任务。文章来源地址https://www.toymoban.com/news/detail-450389.html

到了这里,关于利用MATLAB控制HFSS进行仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HFSS - 侧馈矩形微带天线设计与仿真

    中心频率:2.45GHz 介质板厚度:1.6mm 介质板相对介电常数:4.4 辐射贴片宽度 w = c 2 f ( ε r + 1 2 ) − 1 2 w=frac{c}{2 f}left(frac{varepsilon_{r}+1}{2}right)^{-frac{1}{2}} w = 2 f c ​ ( 2 ε r ​ + 1 ​ ) − 2 1 ​ 辐射贴片长度 L = c f ε e − 2 Δ L L=frac{c}{f sqrt{varepsilon_{mathrm{e}}}}-2 Delta L L = f ε

    2024年02月05日
    浏览(27)
  • HFSS - 半波偶极子天线的设计与仿真

    原理及理论计算部分可以看我上一篇文章理论 - 半波偶极子天线原理与计算 1、模型概图如下 2、变量参数 变量意义 变量名 变量值(单位: mm) 工作波长 wavelength 100 天线总长度 length 0.48 x wavelength 端口距离 gap 0.24 单个极子长度 dip_ length length/2 - gap/2 天线半径 dip_ radius wavelength/

    2024年02月02日
    浏览(27)
  • HFSS仿真微带型威尔金森功分器学习笔记

    设计要求: 频带范围 0.9~1.1GHz 输入端口的回波损耗 >20dB 频带内的插入损耗 S21<3.3dB S31<3.3dB 输出端口隔离度 >25dB 求解器选择模式驱动求解 整个微带威尔金森功分器的结构分为微带功分器、隔离电阻、介质板和接地板。 为了后面方便参数分析和优化设计,设置几个变量,

    2024年02月16日
    浏览(25)
  • 手把手教你HFSS仿真PCB天线--WIFI、蓝牙

    目录 一、2.4GHz WIFI天线信息 1) 天线本体,上方蛇形走线部分 2) 50 Ohm微带线/馈线部分 3) GND铺铜部分,参考地平面 4) 净空区域,天线蛇形走线下方区域,不能铺铜 5) 基板,整个模块,采用FR4板材 二、HFSS仿真设计过程 1) 建立天线模型 (1) 新建设计工程 (2) 设置求

    2023年04月17日
    浏览(42)
  • pid算法的MATLAB仿真 - 用MATLAB进行pid算法仿真实验

    PID算法是工业应用中最广泛算法之一,在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。PID算法已经有100多年历史,在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。 PID算法:就是“比例(proportional)、积分(integral)、微分(derivativ

    2024年02月03日
    浏览(28)
  • HFSS仿真3dB微带双分支定向耦合器学习笔记

    设计要求: 设计一个3dB微带双分支定向耦合器,各端口微带线特性阻抗为50Ω,中心频率为5GHz,介质基板的介电常数9.6,基板厚度为0.8mm 这里重点讲解HFSS的操作,关于理论知识后面文章更新。 求解器选择模式驱动求解 整个微带双分支定向耦合器的结构分为3dB耦合器、介质板

    2024年02月03日
    浏览(31)
  • 【预测控制】动态矩阵控制(DMC)及Matlab仿真

    相关文章: 【预测控制1】模型预测控制概论 【预测控制2】预测控制基本原理 【预测控制4】基于状态空间模型的预测控制 动态矩阵控制 (Dynamic Matrix Control, DMC )起源于20世纪70年代,是一种基于数学模型的先进控制算法,在化工、电力、冶金、制药等领域得到了广泛的应用

    2024年02月04日
    浏览(46)
  • 如何用MATLAB进行电路仿真

    本文演示如何用MATLAB进行电路仿真,测量RLC电路的电压。我用的是R2016b,不同版本软件界面稍有差别。 打开MATLAB软件,新建Simulink Model,如下图所示。 弹出untitled窗口之后,在命令行窗口输入如下命令并回车: powerlib 双击Electrical Souces,打开电源模块。 把AC Voltage Source拖入

    2024年02月05日
    浏览(33)
  • Matlab实现PID控制仿真(附上30个完整仿真源码+数据)

    本文介绍了如何使用Matlab实现PID控制器的仿真。首先,我们将简要介绍PID控制器的原理和控制算法。然后,我们将使用Matlab编写一个简单的PID控制器,并使用仿真环境来验证其性能。最后,我们将通过调整PID控制器的参数来优化控制系统的响应。 PID控制器是一种经典的控制算

    2024年02月07日
    浏览(25)
  • 微带T型一分四功分器HFSS仿真与实物制作教程

    提示:觉得本文对您有所帮助的话,请给博主点个赞支持一下吧 获取更多内容,请关注微信公众号“电路板上的一抹微笑” 提示:一些碎碎念,与内容关系不大,可直接跳过   本学期开设有一门微波技术基础课程,课程考核要求完成一个微波器件的仿真与制作。在电磁这

    2023年04月21日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包