【毕设指南系列】基于Fluent的飞行器气动参数计算仿真全教程(五)Aero工作流批量求解

5. Aero工作流求解

5.1 Aero功能介绍

Aero是Ansys公司在Fluent 2022 R1版本正式推出的一项功能,其作为一项新的工作流内嵌于Fluent软件的启动界面,适用于飞行器在外气动仿真中计算不同攻角、马赫数、气体环境等不同设计点下的批量流体仿真计算。

在Aero工作流出现之前,飞行器在不同攻角、不同马赫数下的仿真一般需要在每次仿真前重新手动设置具体的攻角和马赫数,操作内容机械重复,且每次仿真之后只能手动开启下次计算。在此基础上,研发出了jou脚本文件和udf用户自定义文件进行半自动化计算的方法,jou文件即录制用户在设置时候的每次操作储存为jou格式的文件,当需要重复该操作时导入对应的jou文件即可,可以通过修改jou文件里的参数从而实现不同攻角、不同马赫数的设置。但jou文件缺点也相当明显,一是文件语言晦涩难懂,学习成本高;二是仍需用户每次开始计算、导出结果,无法实现真正的自动化计算。新版本Fluent引入的Aero即解决了这一重大痛点。Aero的特点是,读入用户在Fluent中设置好的cas文件,设置好所需计算的攻角和马赫数,即可实现自动适配最佳的求解器设置、自动运行计算、自动保存结果数据的功能,有效解决了飞行器外气动仿真中的困扰工程师的一大问题,弥补了Fluent的短板。

接下来以飞行器的气动参数计算为例,具体介绍Aero的使用方法和值得注意的问题。

5.2 Aero启动步骤

在Fluent 2022r1版本中,Aero工作流的启动界面,集成在Fluent启动器,启动时根据计算机最大进程数设置软件使用的进程数量,以达到最大计算效率,节约计算时间。设置工作目录后即可点击“start”启动Aero工作流。

启动后新建并命名一个flprj文件,作为整个项目的储存文件。随后新建一个Aero工作流,读取已在Fluent里设置并初始化好的cas.h5格式的算例文件,点击“加载模拟”选项,打开Fluent求解器。

这里值得注意的是,Aero只能对边界条件为压力远场的算例进行计算,因此在构建模型时不能采用速度入口压力出口类型;

在没有设置好GPU的CUDA框架时不能启用GPGPU加速,建议设置为0,否则可能会导致报错。(会用GPU加速的可以忽略这句话)完成上述步骤后,即可开始Aero工作流的参数设置。

打开了fluent,准备根据之前初始化好的cas.h5求解。可以看到这里的求解器类型、流体性质、边界条件等参数都是我们之前设置好的。

由于这只是其中一个工况,所以我们不需要在这里点击求解,切回Aero工作窗口。(我这里换了模型,仅供参考)

5.3 Aero工作流参数设置

参数设置总共分为三大部分,分别是几何性质、模拟条件以及求解。

几何性质需要设置的是定义力的方向、力矩的中心、参考长度与参考面积;模拟条件可以根据仿真的需要设置来流马赫数、飞行器攻角、大气静压和温度等参数,这些参数都可以设置取值范围和步长,进而在各取值之间交互计算,形成不同的设计点(也称工况)

最后在求解部分设置迭代次数,其余高级设置保持默认,当出现计算迭代不收敛等问题时再修改高级设置。(详见后文)

值得注意的是,当来流马赫数为0.3马赫以下时,通常认为是不可压缩流动,对于不可压缩流动而言密度的极小误差将对应着压力的极大误差,此时若继续采用默认的密度基求解器将导致结果出现较大误差,此时就需要修改为压力基求解器。当设置好系列参数后,即可输入迭代步长并点击开始计算。

计算完成后的结果可以在Aero工作流的窗口中查看,也可以在flprj格式文件保存的目录下找到本次计算对应文件夹,提取其中的csv文件进行数据处理。

5.4 迭代步数选择

迭代步数,是指利用数值方法计算流动方程过程中为了使残差达到期望值已下而预估迭代的次数,是计算停止的判断依据之一。当计算次数达到迭代步数预设值后,就算残差仍未降低至期望值以下,也将停止计算,转入下一个工况的计算,以此节省计算时间和算力,与Fluent中有所不同的是,Aero在残差达到收敛标准后仍不会停止计算,而是继续迭代,而且由于存在多个工况,则每个工况都将耗费相同的算力进行收敛后的持续计算。若是将迭代步数预设得太大,则将极大延长所有计算的收敛时间,浪费大量的计算资源,因此,为了节省仿真计算的时间,笔者测试了同工况下的不同迭代步数,从而确定最优迭代步长。

这里以0度舵偏角模型在攻角为4°,马赫数为0.4的工况为例,测试了设置50到250步范围内不同取值的迭代次数。结果如下图所示。

5.5 结果展示

运行后会有对应个数的工况结果文件,以及图示的汇总结果表。我们可以直接根据结果表的结果进行计算,当数据出现明显错误时,再回头检查对应的工况计算结果(用fluent打开即可),检查是不是计算没有收敛,残差过大。

(检查残差)

这里展示一部分所得结果,其中Cl是升力系数,Cd是阻力系数,Cm-y/p/r分别是偏航、俯仰、滚转力矩系数。


近期学业繁忙,这个系列暂时先完结,就先更新到这里吧。

其实后续还有气动系数拆分以及用于制导控制的弹道编程仿真的内容,如果有感兴趣的读者可以点赞+关注+留言,我看情况更新~

#听说加一段代码有流量,让我试试
import cv2
cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    if not ret:
        break

# 显示视频帧
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值