基于python脚本进行Maxwell自动化仿真

06-01 1336阅读

本文为博主进行Maxwell自动化研究过程的学习记录,同时对Maxwell自动化脚本(pythonIron)实现方法进行分享。

文章目录

  • 脚本使用方法
  • 脚本录制与查看
  • 常用脚本代码
      • 通用开头
      • 定义项目
      • 调整设计变量
        • 软件内对应位置
        • 脚本
        • 设置求解器
          • 软件内对应位置
          • 脚本
          • 定义数据模块
          • 使用“计算器”计算并导出数据
            • 软件对应计算器位置
            • 脚本实现
            • 项目保存
            • 关闭脚本

              脚本使用方法

              1. 创建一个pyhon文件,如”script.py“
              2. 点击Maxwell➡Tools➡run script

                基于python脚本进行Maxwell自动化仿真

              3. 选择刚刚创建的脚本打开,即可运行*(注意去除脚本中中文内容)*

                基于python脚本进行Maxwell自动化仿真

              脚本录制与查看

              如图点击录制脚本

              基于python脚本进行Maxwell自动化仿真

              点击选择ironPython

              基于python脚本进行Maxwell自动化仿真

              录制后可以在同样位置选择结束录制

              基于python脚本进行Maxwell自动化仿真

              但是博主的版本有bug,这一块是灰色的。那也没有关系,脚本是实时更新并保存在临时目录的。

              即便版本正常,博主还是建议直接取临时文件夹实时查看脚本录制内容,这样每进行一步操作即可知道对应的脚本代码。临时目录的位置通常是:c盘用户文件夹/AppData/Local/Temp。具体可以在maxwell软件设置内查看:

              基于python脚本进行Maxwell自动化仿真

              点击后出现设置窗口,找到Temp对应位置:

              基于python脚本进行Maxwell自动化仿真

              之后在文件管理器打开这个位置,可以看到最近录制的脚本,使用编辑器或记事本打开,即可看到对应操作的代码

              基于python脚本进行Maxwell自动化仿真

              常用脚本代码

              如果你懒得进行录制,或对录制脚本做出一些简单更改与补充,可以参考下面的一些常见代码

              通用开头

              import ScriptEnv
              ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
              oDesktop.RestoreWindow()
              

              定义项目

              oProject = oDesktop.SetActiveProject("MaxwellProject")
              oDesign = oProject.SetActiveDesign("Maxwell2DDesign1")
              

              此段分别定义了maxwell的项目、设计,此处名称应对应maxwell项目目中的对应名称:

              基于python脚本进行Maxwell自动化仿真

              调整设计变量

              软件内对应位置

              通常批量化、自动化操作需要对项目的设计变量进行设置,Maxwell中对应位置为

              基于python脚本进行Maxwell自动化仿真

              点击后即可看到变量设置窗口

              基于python脚本进行Maxwell自动化仿真

              脚本

              使用python脚本对变量进行设置:

              oDesign.ChangeProperty(
              	[
              		"NAME:AllTabs",
              		[
              			"NAME:LocalVariableTab",
              			[
              				"NAME:PropServers", 
              				"LocalVariables"
              			],
              			[
              				"NAME:ChangedProps",
              				[
              					"NAME:currents1",  #变量名
              					"Value:="		, str(s)+"A"  #变量值(若有单位则加上单位)
              				]
              			]
              		]
              	])
              

              设置求解器

              软件内对应位置

              基于python脚本进行Maxwell自动化仿真

              点击后出现求解器设置窗口,此处为稳态求解类型,若为频域或瞬态可能有差异

              基于python脚本进行Maxwell自动化仿真

              脚本

              设置方法如下,根据需要设置的字段按照如下方式设置

              oModule.EditSetup("Setup1", 
              	[
              		"NAME:Setup1",
              		"Enabled:="		, True,
              		[
              			"NAME:MeshLink",
              			"ImportMesh:="		, False
              		],
              		"MaximumPasses:="	, 10,
              		"MinimumPasses:="	, 2,
              		"MinimumConvergedPasses:=", 1,
              		"PercentRefinement:="	, 30,
              		"SolveFieldOnly:="	, True,
              		"PercentError:="	, 1,
              		"SolveMatrixAtLast:="	, True,
              		"UseNonLinearIterNum:="	, False,
              		"NonLinearResidual:="	, 0.001,
              		"SmoothBHCurve:="	, False,
              		[
              			"NAME:MuOption",
              			"MuNonLinearBH:="	, True
              		]
              	])
              

              定义数据模块

              通常自动化脚本用于数据的导出。故使用模块“FieldsReporter”

              oModule = oDesign.GetModule("FieldsReporter")
              

              使用“计算器”计算并导出数据

              软件对应计算器位置

              基于python脚本进行Maxwell自动化仿真

              点击后打开计算器窗口

              基于python脚本进行Maxwell自动化仿真

              关于计算器的使用方法本文不过多介绍,具体使用可参考其他网络教程。

              脚本实现

              由于计算器的操作类型很多,下面列举几个操作的脚本例子,可根据代码形式类推:

              1. 输入求解值,此处向计算器输入了磁场B的求解结果
              oModule.EnterQty("B")  
              
              1. 对当前计算器内容施加操作,此处操作取出向量第一个分量
              oModule.CalcOp("ScalarX")
              
              1. 施加求解区域,此处选择几何 0_1
              oModule.EnterVol("0_1")
              
              1. 输入常数,此处输入2
              oModule.EnterScalar(2)
              
              1. 施加运算,此处施加除法运算
              oModule.CalcOp("/")
              
              1. 导出结果至文件 ,此处定义setup求解结果项“LastAdaptive”,和设计变量currents1 为100A
              oModule.CalculatorWrite("E:\\maxwellData\\1.fld", 
              			[
              				"Solution:="		, "Setup1 : LastAdaptive"
              			], ["currents1:="		, "100A"])
              
              1. 清除计算器中内容
              oModule.CalcStack("clear")
              

              项目保存

              oProject.Save()
              

              关闭脚本

              ScriptEnv.Shutdown()
              
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码