首页 > 范文大全 > 正文

MWorks与FLUENT的协同仿真方法和实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇MWorks与FLUENT的协同仿真方法和实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:

Modelica技术难以仿真动态特性在空间上非定常分布的流动、传热和燃烧等复杂问题,因此提出一种基于mworksfluent协同仿真方法,设计协同仿真的耦合方式、数据交换机制和仿真架构,利用Modelica外部函数、MWorks仿真用户接口和FLUENT UDF编写协同仿真程序.以某单向阀为研究对象对此协同仿真方法的有效性进行验证.所提出的方法可实现Modelica技术与CFD技术的优势互补,能够为多领域系统仿真提供新的解决方法.

关键词:

多领域系统仿真; 协同仿真; 动态特性; Modelica; MWorks; FLUENT

中图分类号: TP391.9

文献标志码: B

Abstract:

Modelica can hardly simulate the complex issues such as fluid flow, heat transfer, combustion, etc., in which the system behaviors are distributed in space unsteadily. To solve the problem, a method of cosimulation between MWorks and FLUENT is proposed. The coupling mode, data exchange scheme and simulation architecture are designed for cosimulation. The cosimulation program is implemented using Modelica external function, MWorks simulation user interfaces and FLUENT UDF. The cosimulation method is verified by a simulation example of check valve. The complementary advantages of Modelica and CFD technique are implemented by the method, which is a new method for multidomain system simulation.

Key words:

multidomain system simulation; cosimulation; dynamic characteristics; Modelica; MWorks; FLUENT

0引言

随着科学技术和工程实践的发展,现代产品系统日益复杂,其研发难度不断增加.仿真技术作为产品研发设计的支撑工具和方法,能够有效降低研发成本,提高产品性能,缩短研发周期.系统涉及多个学科领域的耦合交互是产品复杂性的主要表现之一.[1]现有的大部分仿真平台适合特定学科的仿真,对多领域耦合系统仿真的支持不足,逐渐无法胜任复杂产品整体动态性能的快速协同仿真.[2]目前,Modelica已成为全球多领域统一建模语言的标准[3],是未来的发展趋势,可为复杂多领域耦合系统的仿真提供有效的解决方案.MWorks是完全支持Modelica的多领域工程系统建模仿真平台,提供从可视化建模、仿真计算到结果分析、优化的完整功能.[4]

Modelica技术适合系统级动态特性和控制器性能的仿真,其模型为零维集中参数模型和离散数目很少的一维模型[5],难以仿真行为属性在空间上非定常分布的复杂问题.随着CFD技术的发展,FLUENT等商用CFD软件可以很好地模拟流动、传热和燃烧等涉及流场的问题.Modelica技术和CFD各有优势,因此开展Modelica模型与FLUENT的协同仿真,实现两者仿真能力的互补,能够为多领域系统的仿真提供有效的新手段.文献[6]开展Modelica技术与FLUENT软件的协同仿真研究,利用MWorks与MATLAB/SIMULINK的软件接口,导出SFunction模块,然后在SIMULINK中通过编写额外的SFunction模型实现与FLUENT的通信.此方法间接依赖MATLAB/SIMULINK软件,不能充分地发挥Modelica技术的优势,且步骤繁多,效率较低.本文研究MWorks直接与FLUENT协同仿真的理论和实现方法.

1协同仿真的实现基础

1.1Modelica外部函数和对象

Modelica模型除可以调用Modelica语言编写的函数外,还可以调用其他语言编写的函数,目前支持C和FORTRAN 77.这些语言编写的函数称为外部函数[3],其结构见图1.外部函数接口支持许多高级的特征,例如使用C语言实现需要的功能,可极大扩展Modelica的仿真能力.

1.3FLUENT用户自定义函数

FLUENT是目前可用的、功能强大的CFD软件工具,能够让用户更深入、更快速地优化产品性能.FLUENT内置丰富的、经充分验证过的模拟流动、湍流、热传导和工业应用相互作用所需的物理建模模块,能为广泛的CFD和多物理场应用提供快速、精确的结果.FLUENT用户自定义函数(UserDefined Function, UDF)是可以被FLUENT求解器动态加载的C语言函数.UDF大大地增强FLUENT的标准功能,能够自定义边界条件、介质属性、反应率、源项和扩散率等,调整迭代中的计算值,在迭代开始、结束时或异步读写求解器的数据和执行特定的操作,扩展和增强现有的数学模型.UDF让FLUENT通过C语言程序实现与外界的交互.

2协同仿真的方案设计

2.1仿真系统的耦合方式

协同仿真往往包含2个或以上的在不同仿真软件工具中建模的子系统模型,见图3.模型S1在软件工具T1中建模,模型S2在软件工具T2中建模,他们由不同的控制方程表达,但是模型S1和S2具有共同的变量x和y,不能分开求解.

协同仿真的实现通常有2种耦合方式:一种是将所有不同仿真工具的模型集成到同一个仿真环境中,联立求解控制方程,即模型的耦合,称为强耦合;另一种是将每个子系统模型在各自的求解器中求解,求解器之间交换所需的变量值,即求解器的耦合,称为弱耦合.弱耦合的一种交错求解流程见图4.

Modelica模型与FLUENT模型相差甚远,难以将其方程转换到同一个仿真环境中.本文选择弱耦合的方式实现MWorks和FLUENT的协同仿真.2次数据交换时刻的间隔称为通信步长.在单步求解时,由于通信步长和积分步长不一致,或者某些算法在积分步长内的多次计算需要,很可能出现在非数据交换时刻对输入数据进行取值.在数据交换时刻,求解器会直接采用输入值,而在非数据交换时刻,求解器会近似取值,这样给仿真带来偏差.协同仿真首先推荐采用定步长算法,保持通信步长与积分步长一致,或通信步长是积分步长的倍数;若采用变步长算法,应控制积分步长不大于通讯步长,有利于消除偏差.

2.2数据交换方式

数据交换是实现MWorks与FLUENT协同仿真的关键步骤,根据MWorks和FLUENT的扩展编程功能,可以通过3种方式实现数据通信.第一种是利用MWorks的仿真用户接口与FLUENT访问求解器数据的UDF宏,直接进行通信;第二种是让MWorks的外部函数与FLUENT的求解器访问共享的文件或内存实现通信;第三种是将网络通信的服务器端和客户端嵌入到MWorks的外部函数和FLUENT的UDF中,利用网络通信协议的发送和接收实现通信.3种数据交换方式见图5.应该根据仿真需求选择合适的方式.本文考虑简易性和交换速度,第一种交换方式是最佳选择.

2.3协同仿真的架构和流程

根据MWorks和FLUENT仿真的运行机制,确定以FLUENT为主控端、MWorks为从属端的主从模式架构,见图6.模型构建和仿真准备工作完成后,整个仿真过程在FLUENT中执行.

分别在MWorks和FLUENT中构建对应的子系统模型,并确定耦合的子系统和变量.在MWorks中将Modelica模型转换为包含模型和求解器的动态链接库.编写FLUENT的UDF程序,主要内容有压力、流量、作用力的计算函数,并在对应的宏中调用,包括:在DEFINE_PROFILE中定义CFD模型的边界条件;在DEFINE_ON_DEMAND中加载MWorks的dll;实例化、初始化和终止MWorks仿真模型;在DEFINE_EXECUTE_AT_END中实现数据的交换和MWorks求解器的运行控制;控制动网格、调整求解和定义介质属性的相关宏等.最后,将UDF源代码编译,加载到FLUENT中,将所有的宏绑定到对应的执行节点.至此,仿真前期的准备任务已经完成.

仿真阶段MWorks和FLUENT的协同仿真流程见图7.

先初始化FLUENT模型,然后执行DEFINE_ON_DEMAND宏,加载、实例化、初始化MWorks模型.设置FLUENT求解的相关参数,开始迭代求解.每当FLUENT完成一个时间步长的计算,进行一次数据交换,同时MWorks求解器也向前推进相同步长的计算.当计算到达仿真结束时刻时,FLUENT求解完成.最后,执行DEFINE_ON_DEMAND宏,终止和卸载MWorks模型.

3协同仿真案例分析

为验证MWorks与FLUENT协同仿真的有效性,以一个单向阀为例进行仿真分析.单向阀的入口和出口压力变化、阀芯运动和弹簧力在MWorks中建模,而单向阀内介质的流动和液体压力在FLUENT中建模.MWorks模型将端口压力、阀芯位移传给FLUENT模型,FLUENT模型将端口流量和液压力传给MWorks模型.单向阀的几何和网格模型见图8,边界条件和阀芯移动的动网格由UDF设置,同时要计算阀芯受到的液压力和端口的流量,传递给MWorks.

单向阀在MWorks中的Modelica模型见图9.用于协同仿真的模型与普通模型相对,增加接口适配模型和协同仿真数据传递模型.接口适配模型是将Modelica的非因果连接器转换为输入、输出变量,协同仿真数据传递模型包含交互变量、外部函数等,实现Modelica模型与外界交互的功能.

将Modelica模型转换为dll后,在FLUENT中执行协同仿真.单向阀在进出口压力的作用下打开再关闭,阀芯的运动位移见图10.结果表明协同仿真能够很好地模拟单向阀的动态特性.

4结束语

针对Modelica技术难以仿真行为属性在空间上非定常分布的流动、传热和燃烧等复杂问题,提出MWorks与FLUENT协同仿真的基本方法.本文的研究结论主要有以下几点:(1)Modelica外部函数、MWorks仿真用户接口和FLUENT UDF是实现协同仿真的基础;(2)设计协同仿真的耦合方式、数据交换机制和架构及流程,编写协同仿真程序;(3)以单向阀仿真案例验证协同仿真方法的有效性.

本研究为多领域系统的仿真提供有效的新思路和解决方法.

参考文献:

[1]王克明, 熊光楞. 复杂产品的协同设计与仿真[J]. 计算机集成制造系统, 2003, 9(S1): 1519. DOI: 10.3969/j.issn.10065911.2003.z1.004.

WANG K M, XIONG G L. Cooperative design and simulation for complex product[J]. Computer Integrated Manufacturing Systems, 2003, 9(S1): 1519. DOI: 10.3969/j.issn.10065911.2003.z1.004.

[2]周凡利. 工程系统多领域统一模型编译映射与仿真求解研究[D]. 武汉: 华中科技大学, 2011.

[3]FRITZSON P. Principles of object oriented modeling and simulation with Modelica 3.3: A cyberphysical approach[M]. New Jersey: John Wiley & Sons, 2014.

[4]ZHOU F L, CHEN L P, WU Y Z, et al. MWorks: a modern IDE for modeling and simulation of multi domain physical systems based on Modelica[C]// Proceedings of the 5th International Modelica Conference. Vienna, 2006: 725731.

[5]刘炜, 陈立平, 朱明清. 分布参数热流体系统的面向对象建模研究[J]. 计算机仿真, 2015, 32(11): 229233. DOI: 10.3969/j.issn.10069348.2015.11.052.

LIU W, CHEN L P, ZHU M Q. Objectoriented modeling for distribution parameter thermofluid system[J]. Computer Simulation, 2015, 32(11): 229233. DOI: 10.3969/j.issn.10069348.2015.11.052.

[6]赵建军, 骆雪芹. 基于Modelica技术与FLUENT的气浮运动平合仿真[J]. 组合机床与自动化加工技术, 2014(5): 9699. DOI: 10.13462/ki.mmtamt.2014.05.024.

ZHAO J J, LUO X Q. Cosimulation of ultraprecision motion stage based on Modelica and FLUENT[J]. Modular Machine Tool & Automatic Manufacturing Technique, 2014(5): 9699. DOI: 10.13462/ki.mmtamt.2014.05.024.

[7]丁建完. 陈述式仿真模型相容性分析与约简方法研究[D]. 武汉: 华中科技大学, 2006.