首页/文章/ 详情

软件应用--HFSS的VBS脚本录制功能

3月前浏览4672




HFSS的脚本录制功能是一个强大的工具,可以显著提高用户的工作效率。通过录制和重用脚本,用户可以快速完成重复性的任务,减少手动操作的时间和错误。然而,在使用脚本录制功能时,也需要注意脚本的适用性、修改和调试等方面的问题。

前言



   

脚本录制功能允许用户将软件中的操作自动记录为脚本,这些脚本可以在后续需要时运行以重现之前的操作,从而提高工作效率。时常还可用matlab等工具调用脚本,实现定制数据的需求。后面解析脚本的代码,可以将代码模块化,方便用matlab设计,能更灵活的做设计和建模操作。




HFSS

As shown below👇


录制脚本功能

在HFSS的菜单栏上,找到“Tools”选项,然后在下拉菜单中选择“Record Script To File”。




此时会弹出一个对话框,要求用户输入脚本文件名和选择脚本类型。通常,HFSS支持VBScript(.vbs)和IronPython(*.py)两种脚本格式。

输入脚本名称,选择脚本类型,并指定保存位置,然后点击“保存”开始录制。




代码解析

1、创建工程











Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject("Ansoft.ElectronicsDesktop")Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindowSet oProject = oDesktop.NewProject
 


2、插入hfss design




oProject.InsertDesign "HFSS", "HFSSDesign1", "HFSS Modal Network", ""Set oDesign = oProject.SetActiveDesign("HFSSDesign1")Set oEditor = oDesign.SetActiveEditor("3D Modeler")
 


3、创建模型、设置材料










Set oEditor = oDesign.SetActiveEditor("3D Modeler")oEditor.CreateBox Array("NAME:BoxParameters", "XPosition:=", "-1mm", "YPosition:=",  _  "0mm", "ZPosition:=", "0mm", "XSize:=", "2.1mm", "YSize:=", "1.9mm", "ZSize:=",  _  "-0.3mm"), 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)
 

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













Set oModule = oDesign.GetModule("BoundarySetup")oModule.AssignPerfectE Array("NAME:PerfE1", "Objects:=", Array("Rectangle1"), "InfGroundPlane:=",  _  false)      oModule.AssignLumpedPort Array("NAME:1", "Objects:=", Array("Port"), "DoDeembed:=",  _  false, "RenormalizeAllTerminals:=", true, Array("NAME:Modes", Array("NAME:Mode1", "ModeNum:=",  _  1, "UseIntLine:=", true, Array("NAME:IntLine", "Coordinate System:=", "Global", "Start:=", Array( _  "-4.67780619902325e-17mm", "0mm", "-1.6mm"), "End:=", Array( _  "7.34788079488412e-17mm", "-1.2mm", "-1.6mm")), "AlignmentGroup:=", 0, "CharImp:=",  _  "Zpi", "RenormImp:=", "50ohm")), "ShowReporterFilter:=", false, "ReporterFilter:=", Array( _  true), "Impedance:=", "50ohm")
 

5、设置扫描
















Set oModule = oDesign.GetModule("AnalysisSetup")oModule.InsertSetup "HfssDriven", Array("NAME:Setup1", "SolveType:=", "Single", "Frequency:=",  _  "2.4GHz", "MaxDeltaS:=", 0.02, "UseMatrixConv:=", false, "MaximumPasses:=", 6, "MinimumPasses:=",  _  1, "MinimumConvergedPasses:=", 1, "PercentRefinement:=", 30, "IsEnabled:=",  _  true, Array("NAME:MeshLink", "ImportMesh:=", false), "BasisOrder:=", 1, "DoLambdaRefine:=",  _  true, "DoMaterialLambda:=", true, "SetLambdaTarget:=", false, "Target:=",  _  0.3333, "UseMaxTetIncrease:=", false, "PortAccuracy:=", 2, "UseABCOnPort:=",  _  false, "SetPortMinMaxTri:=", false, "UseDomains:=", false, "UseIterativeSolver:=",  _  false, "EnhancedLowFreqAccuracy:=", false, "SaveRadFieldsOnly:=", false, "SaveAnyFields:=",  _  true, "IESolverType:=", "Auto", "LambdaTargetForIESolver:=", 0.15, "UseDefaultLambdaTgtForIESolver:=",  _  true, "IE Solver Accuracy:=", "Balanced", "InfiniteSphereSetup:=", "")oModule.InsertFrequencySweep "Setup1", Array("NAME:Sweep", "IsEnabled:=", true, "RangeType:=",  _  "LinearStep", "RangeStart:=", "1.5GHz", "RangeEnd:=", "3GHz", "RangeStep:=",  _  "0.01GHz", "Type:=", "Fast", "SaveFields:=", true, "SaveRadFields:=", false, "GenerateFieldsForAllFreqs:=",  _  false)
 

5、获取数据









Set oModule = oDesign.GetModule("ReportSetup")oModule.CreateReport "S Parameter Plot 1", "Modal Solution Data",  _  "Rectangular Plot", "Setup1 : Sweep", Array("Domain:=", "Sweep"), Array("Freq:=", Array( _  "All"), "Sub_W:=", Array("Nominal"), "Sub_L:=", Array("Nominal"), "Sub_h:=", Array( _  "Nominal"), "Patch_w:=", Array("Nominal"), "Patch_l:=", Array("Nominal"), "Feedx:=", Array( _  "Nominal"), "Feedy:=", Array("Nominal"), "Feedr:=", Array("Nominal"), "PortR:=", Array( _  "Nominal"), "c:=", Array("Nominal"), "f:=", Array("Nominal")), Array("X Component:=",  _  "Freq", "Y Component:=", Array("dB(S(1,1))"))
 




End



   



来源:灵境地平线

附件

免费附件.txt
ACTHFSSSystemMATLABCONVERGE材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-04
最近编辑:3月前
周末--电磁仿真
博士 微波电磁波
获赞 22粉丝 18文章 163课程 0
点赞
收藏
作者推荐

微分方程建模

将我们设置为星标账号,获取对您有用的知识!常微分方程(ODE)建模是数学建模的一个重要分支,它广泛应用于物理、工程、生物、经济等多个领域。通过常微分方程,我们可以描述和预测系统随时间的变化规律。微分方程Asshownbelow👇微分方程建模微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题。把实际问题化成微分方程的定解问题,大体上可以按以下步骤进行:(1)根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。(2)找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等)。(3)运用这些规律列出方程和定解条件。列方程常见的方法有以下几种:(1)按规律直接列方程。在数学、力学、物理、化学等学科中,许多自然现象所满足的规律已为人们所熟悉,并直接由微分方程所描述,如牛顿第二定律、放射性物质的放射性规律等。我们常利用这些规律对某些实际问题列出微分方程。(2)微元分析法与任意区域上取积分的方法。自然界中也有许多现象所满足的规律是通过变量的微元之间的关系式来表达的,对于这类问题,我们不能直接列出自变量和未知函数及其变化率之间的关系式,而是通过微元分析法,利用已知的规律建立一些变量(自变量与未知函数)的微元之间的关系式,然后再通过取极限的方法得到微分方程,或等价地通过任意区域上取积分的方法来建立微分方程。(3)模拟近似法。在生物,经济等学科中,许多现象所满足的规律并不很清楚而且相当复杂,因而需要根据实际资料或大量的实验数据,提出各种假设。在一定的假设下,给出实际现象所满足的规律,然后利用适当的数学方法列出微分方程。在实际的微分方程建模过程中,也往往是上述方法的综合应用。不论应用哪种方法,通常要根据实际情况,做出一定的假设与简化,并把模型的理论或计算结果与实际情况进行对照验证,以修改模型使之更准确地描述实际问题并进而达到预测预报的目的。微分方程建模的实例1、以微波放大器为例,其增益稳定性是微波工程中的一个重要问题。为了分析微波放大器的增益稳定性,可以建立如下的常微分方程模型:假设微波放大器的增益G(t)是时间t的函数,且受到多种因素的影响(如温度、电源电压等)。这些因素可以通过引入相应的参数来表示,并建立关于G(t)的常微分方程。例如:其中,T(t)表示温度,V(t)表示电源电压,f是描述增益变化规律的函数。2、在罐装车辆运输食用油的过程中,微分方程建模可以应用于多个方面,以描述和预测运输过程中的各种物理现象。流体动力学与车辆运动耦合建模虽然车辆运输主要涉及的是固体的运动(车辆本身),但食用油在油箱或容器内的流动行为也需要考虑。特别是当车辆加速、减速或转弯时,食用油可能会受到惯性力的作用而产生流动。这种流动可以通过简化的流体动力学方程来描述,但通常与车辆的运动方程相耦合。车辆运动方程(简化为二维情况):其中,m是车辆质量,x和y是车辆的位置坐标,Fx和Fy是外部力(如发动机推力、摩擦力等),Fdrag是空气阻力,g是重力加速度。在实际应用中,车辆运输食用油的过程可能涉及多个物理场的相互作用(如流体动力学、热传导、振动等)。为了更全面地描述这一过程,可以建立综合考虑的多物理场微分方程模型。这类模型通常涉及多个相互耦合的方程组,需要采用适当的数值方法和计算工具进行求解。EndPS:在微波工程中,常微分方程(ODE)建模是分析微波器件、电路和系统动态行为的重要工具。由于微波工程涉及高频电磁波的传输、反射、辐射等复杂过程,这些过程往往可以通过建立常微分方程模型来进行描述和预测。来源:灵境地平线

有附件
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈