本文摘要(由AI生成):
文章主要介绍了如何使用PyWbUnit模块实现Python与Workbench的联合仿真设置。PyWbUnit模块提供了Python与Workbench的双向数据接口,支持实时数据传递,但仿真流程的实现还需通过Workbench中的脚本开发实现。安装PyWbUnit模块时,需要提前配置好Python的系统环境,并使用相应的命令进行安装。在联合仿真设置过程中,需要导入CoWbUnitProcess类,进行实例化和初始化,然后执行脚本代码,最后保存项目和退出。在数据查询方面,可以通过创建输出参数或写入临时文件的方式获取仿真计算结果。总之,借助PyWbUnit模块,可以实现对Workbench的联合仿真和高度定制化的二次开发。
在前期更新中给大家分享过《MATLAB与ANSYS联合仿真设置》和《Python与Fluent联合仿真设置》,之后就一直有朋友问说:能否使用Python实现与Workbench的联合仿真呢?
当然是可以的,使用小田老师开发的PyWbUnit模块包,就能支持Python与Workbench间的数据通信,实现二者间的实时数据传递,`ANSYS仿真与开发`后台回复关键字“PyWbUnit”即可获得模块下载链接。
那么,本期就给大家详细介绍下PyWbUnit模块的安装、使用和联合仿真设置的方法。
本模块包提供Python与Workbench联合仿真的支持:可通过Python启动Workbench,并打开Workbench的TCP服务器,通过Socket连接实时发送脚本代码执行,同时支持查询代码执行结果和脚本变量值。
说明:本模块只负责提供Python与Workbench的双向数据接口,仿真流程的实现还需要通过Workbench中的脚本开发实现,可以参考以下文章:
提供预编译的二进制库(whl)安装方式,目前只支持windows x64平台的Python3.7、3.8版本,安装前需提前配置好Python的系统环境,然后在模块文件所在目录下打开CMD窗口,根据Python版本不同,使用如下不同命令安装:
pip install PyWbUnit-0.2.0-cp37-none-win_amd64.whl pip install PyWbUnit-0.2.0-cp38-none-win_amd64.whl
可以通过Python内置的help方法,查看模块包中类和方法的使用说明,其中CoWbUnitProcess为主要的接口实现类,类的API说明如下:
首先从PyWbUnit模块中导入CoWbUnitProcess类,接着指定工作目录和版本号,进行实例化和初始化(initialize)后,此时会打开Workbench程序,然后可以通过方法execWbCommand执行脚本代码,最后保存项目(saveProject)和退出(finalize)。
以前期文章:《ANSYS中使用Python实现高效结构仿真》为例,演示如何使用PyWbUnit调用Workbench完成联合仿真的过程,详细操作步骤和对应代码参考如下:
(1)初始化模块设置
(2)创建分析流程
创建Static Structural分析系统,系统中包含结构分析中的所有流程
(3)定义材料属性
创建Steel材料,密度:7500kg/m3,杨氏模量:209.0E3,泊松比:0.3
(4)SCDM脚本建模
按照尺寸参数进行脚本参数化建模,并对相应的压力和约束加载面创建边界命名
(5)Mechanical前处理
指定材料属性、设置网格尺寸,指定固定约束和压力载荷加载的位置
代码执行完成后,Mechanical中的材料、网格及载荷参数成功设置,模型求解完毕。
(6)Mechanical后处理
添加Mises等效应力后处理,然后调整视角,输出后处理云图
(7)项目保存及退出
文章读到这里,相信大家都了解使用PyWBUnit驱动Workbench自动化仿真的方法,但是对如何获取仿真计算结果存在疑问。
这里给大家分享两种有效方法,可以根据不同的场景灵活选用:
(1)创建输出参数,查询变量值
在仿真后处理中,将结果属性创建为输出参数,参考《Mechanical中如何实现自动参数化》,之后会在Workbench中的Parameter Set标签下显示,这样能通过脚本访问到如下所示参数P1的数值。
在CoWbUnitProcess类中,封装了实例方法:queryWbVariable,通过此方法可以查询Workbench脚本环境中的变量值,如下:
(2)写入临时文件,读取变量
在仿真后处理流程中,使用脚本获得结果数值并写入到临时文件中,然后在Python中读取临时文件读取结果,如下所示:
Workbench作为Ansys主打的多物理场仿真平台,借助PyWbUnit模块的双向数据接口,和Python科学计算的优势,能快速去集成科学计算、可视化、人工智能等领域的相关模块,实现对Workbench的联合仿真和高度定制化的二次开发。