MATLAB与Fluent联合仿真:涡激振动案例实现

    这里以简单的二维圆柱涡激振动流固耦合为例,向大家介绍MATLAB与Fluent联合仿真的基本过程。

    我们都知道,以往利用Fluent模拟二维圆柱涡激振动是利用用户自定义函数(User-defined-functions,UDFs)来实现,在UDFs中,针对每一个计算时间步长,采用Compute_Force_And_Momenthong宏来计算圆柱表面受到的流体力,这个流体力是由于尾涡交替脱落在圆柱表面产生的。知道圆柱受力之后,根据结构运动方程(如下式,二阶常微分方程,右端项表示流体力),采用四阶龙格库塔法离散求解,得到圆柱的振动位移和速度,然后利用DEFINE_CG_MOTION宏实现网格运动。

m \ddot{y}+c \dot{y}+k y=F_{f}

    通过上面对传统UDFs实现涡激振动的流程可以看出,关键步骤有三点:1、获取圆柱所受的流体力;2、龙格库塔法求解结构运动方程;3、将得出的位移和速度更新圆柱体位置,实现网格运动。

    利用MATLAB与Fluent联合仿真,可以将上述的第2点在MATLAB中实现,发挥MATLAB求解方程的能力,而Fluent主要作用则是求解流体方程,得到流体力,实现步骤1和3。因此,在这一过程中,MATLAB就像是客户端(CLient),FLuent就像是服务器(Sever,提供流体力),组成了CS模型。

cut-off

  • 环境配置

     首先我们要准备一下开发环境,需要在MATLAB中安装联合仿真的工具箱文件(“ANSYS_aaS 1.1.9.mltbx”文件,获取请在公众号(“小碗拉面不加香菜”)内回复“MATLAB联合仿真”)。

下载后,在MATLAB中按照上图打开文件的方式找到该文件,选择安装即配置好了环境。

  • 以服务器模式启动Fluent

    接下来就是以服务器的方式启动Fluent。首先选定fluent的工作路径,之后在该文件夹下会生成联合仿真的秘钥文件(aaS_FluentId.txt)。接着,在环境(Environment)选项卡中,输入“FLUENT_AAS=1”,代表以服务器方式启动Fluent。

按照上述方式启动之后,在工作路径中会出现以下三个文件。

至此,Fluent启动过程已经完成。

     此外,还需要按照正常流程进行GUI设置,设置完成之后保存cas文件,之后便于在MATLAB中读取cas文件。

  • MATLAB连接Fluent

在Fluent的准备工作都完成之后,接下来就是编写MATLAB代码,连接Fluent运行程序。

orb=initialize_orb();
load_ansys_aas;
FluetnPath = 'Your own fluent work path';
aaS_Path = char(FluetnPath+"aaS_FluentId.txt");

ICoFluentUnit = actfluentserver(orb,aaS_Path);
iFluentTuiInterpreter = ICoFluentUnit.getSchemeControllerInstance();

ICoFluentUnit.loadCase('cylinder_2D.cas');
iFluentTuiInterpreter.doMenuCommand('/display/mesh');

    在上述代码中,最关键的是第5,6两行。其中ICoFluentUnit 接口提供了一组函数,这些函数在 ANSYS Fluent 中执行典型命令,用于求解 CFD 仿真案例。例如,可以用它来加载或保存案例和数据文件、设置计算迭代次数、启动计算、获取或设置定义的参数值等等。生成的iFluentTuiInterpreter对象可用于将 TUI 或方案命令发送到 Fluent 会话,以此来实现更高级的功能。

  • MATLAB实现联合仿真

    完成连接之后,接下来就是发送计算命令以及获取Fluent生成的流体力数据进行联合仿真计算。主要代码如下:

% 任务1、获取流体力
fileId = fopen(FluetnPath+"force.txt", 'r');
[force, count] = fscanf(fileId, '%f') ;
fclose(fileId);

% 任务2、运动方程求解位移
[vel_n, dis_n] = calculate_y_motion(force(end), vel, dis);
dis_history = [dis_history,dis_n];

% 任务3、将位移传递到fluent中进行迭代求解
set_dis_commnd = strcat("(rpsetvar 'vel_n ", num2str(vel_n), ")");
iFluentTuiInterpreter.execScheme(set_dis_commnd)

cut-off

    通过以上联合仿真步骤,可以实现简单的二维圆柱涡激振动。这种MATLAB和Fluent联合仿真的方式,能够为更为复杂的流固耦合问题提供计算方法和思路。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空