气动弹性 — CAE用语解说
气动弹性
气动弹性是指"气流的力与结构变形相互影响"吧?翼弯曲了升力就会变化,然后又变形……这样恶性循环吗?
气动弹性的理论基础
气动弹性的基本概念
我经常看到"气动弹性"这个词,但具体是指什么现象呢?除了结构和流体相互作用之外,还有其他定义吗?
很好的问题。在航空航天工程领域,气动弹性被严格定义为"由气动力、弹性力和惯性力的相互作用所产生的现象"。代表现象包括颤振(发散振动)和发散(静态发散)。例如,飞机主翼在特定速度下开始振动,振幅不断增大直至破坏的颤振现象,以及1940年塔科马海峡大桥因气动弹性而崩塌的历史事件都是众所周知的。
虽然说力的相互作用,但我还是很难想象。支配方程是怎样的?结构和流体不是分别求解的吗?
"分别求解"正是关键所在,不存在完全耦合的单一方程。结构运动方程和流体Navier-Stokes方程是分别求解的,然后以界面处的变位和压力/剪应力作为条件进行耦合。结构运动例如在二自由度翼截面模型中表示为:
明白了,流体荷载取决于结构运动所以才会耦合。但流体方程中结构的影响是怎么加进去的呢?
那正是核心所在。求解流体支配方程的区域的边界,即翼表面的形状和速度,随着时间而随结构的变位和速度变化。这就产生了"移动边界"问题。要计算非定常气动力,在简单的线性理论中使用已知的函数如Sears函数或Theodorsen函数,但在实际CAE中,常用的方法是在改变网格形状的同时逐次求解Navier-Stokes方程。
"发散"和"颤振"在方程上是怎样表现的?解会趋向无穷大吗?
完全正确。在可用线性系统处理的范围内,系统特征值实部为正的条件就是不稳定性的阈值。例如,发散速度$V_D$可表示为:
气动弹性的数值计算手法
耦合分析的算法
在实际的CAE软件中,结构和流体是怎样耦合求解的?把它们合并成一个来解吗?
在实务中,最常用的是"分割式耦合求解法"。也就是说,结构求解器(如Abaqus/Standard)和流体求解器(如Fluent、Star-CCM+)分别运行,在界面处交换数据(变位 ⇔ 压力)。数据交换的时序有显式和隐式两种。显式方案计算简单但稳定性有问题,需要较小的时间步长。
数据交换具体是什么?网格不同吧,所以不能简单地复制节点值。
完全同意,这里需要"插值"和"投影"技术。结构侧的变位分配到流体网格的边界节点,反过来将流体侧的压力分布转换为结构节点的节点力。此时,守恒性(力和功守恒)非常重要。例如,专用的耦合中间件如MPCCI(网格并行代码耦合接口)可以在不同求解器之间处理这种数据转移。
如果流体网格大幅变形,网格本身不就乱了,没法继续计算了吗?
这种风险总是存在的。主要有两种应对措施。一种是"动态网格"技术。在ANSYS Fluent中,采用具有高扩展性的弹簧近似法或伴随重新网格划分的动态分层法。另一种是"任意拉格朗日-欧拉(ALE)"公式,在改变网格形状以适应结构变位的同时求解流体方程。如果变形太大,就需要"重新网格划分"。
时间步长怎么确定?结构和流体的最优时间步感觉不一样。
很好的观察。结构振动(例如10-100Hz)相比,流体涡脱落等现象包含更高的频率成分。一般来说,流体侧成为瓶颈,需要更小的时间步长。实务中,通常从流体解析的CFL条件(例如CFL数<1)决定的时间步长(如1e-4秒),作为整个耦合分析的步长。结构分析在这个步长下是足够的。
气动弹性的实务应用
分析工作流程和验证
着手进行气动弹性分析时,首先应该从什么开始?直接运行耦合分析感觉很危险。
你的感觉是对的。首先要做的是"非耦合验证"。步骤如下:1) 仅进行结构特征值分析(模态分析),确认目标的振动模态(例如第一扭转模态、第二弯曲模态)及其固有频率。2) 用刚体模型进行非定常CFD分析,确认气动荷载的频率响应。分别验证每个求解器单独能正确工作后,再进行耦合。
开始耦合分析时,初始条件怎么设置?从静止状态开始可以吗?
那样不现实,会产生非物理的过渡响应。实用的手法是"渐进启动"。首先,在结构固定的状态下进行定常CFD分析直至收敛,建立初始流场(压力分布)。接下来,以该流场为初始条件,解放结构自由度开始非定常耦合分析。这样可以避免突然出现大的振动。在ANSYS Workbench中将Fluent和Transient Structural耦合时,这种设置通过"System Coupling"部件进行。
怎样判断结果是"正确的"?没有实验数据的话无法验证吗?
实验最好,但不一定必需。有几个基准可以参考。例如NASA的"标准动力学模型"或AGARD(航空研究与发展咨询委员会)制定的一系列颤振试验案例(AGARD 445.6翼等)。这些案例的几何形状、材料性能、流动条件都是公开的,你可以将分析结果(颤振速度和频率)与已有的文献值或其他求解器的结果进行比较。此外,网格相关性调查(检查网格细化2倍后结果是否变化)是必须的。
分析发散了,首先应该怀疑什么?
耦合分析的发散按以下顺序排查:1) **数据转移**:插值设置是否有问题,力或变位是否出现异常值。2) **时间步长**:如果使用显式方案,时间步是否太大。CFL数是否≤1。3) **网格变形**:动态网格设置是否不当,网格扭曲是否过大。4) **物理模型**:是否遗漏了阻尼(结构减衰)设置。现实结构总是有减衰的,模型中不加的话容易发散。
气动弹性的软件比较
主要求解器的特性和选择
进行气动弹性分析,经常听到哪些软件?是不是只有Ansys?
不是,有多种选择。大致分为**集成型求解器**和**耦合平台型**。集成型以COMSOL Multiphysics为代表,在一个环境内直接耦合结构和流体(以及其他物理场)。另一种是ANSYS(Fluent + Mechanical)、Siemens(Star-CCM+ + Simcenter 3D)、Dassault(XFlow + Abaqus)这样,用专用的耦合环境(ANSYS System Coupling、SIMULIA Co-Simulation Engine)将不同的求解器连接起来。
COMSOL和Ansys在方法上的根本差异是什么?
数值求解的根本不同。COMSOL采用接近"单体求解法",将结构和流体的未知数集中到一个大规模矩阵中,直接作为联立方程求解。优点是强耦合是默认的,稳定性高;缺点是内存消耗大,相比专用流体/结构求解器的个别功能(如乱流模型)较弱。另一方面,ANSYS的分割式耦合可以发挥各求解器的高级功能,但用户需要有经验来设置耦合的稳定性参数(如松弛因子)。
航空工业实际使用什么?
历史上有很多专有内部代码,但商用软件中**MSC Nastran**在结构侧非常强大。其气动弹性求解器(SOL 144、SOL 146)与线性气动理论(如Doublet-Lattice法)结合,是颤振分析的事实标准。当需要高精度非线性分析时,可将Nastran(结构)与CFD求解器(如CFD++、OVERFLOW)耦合。Siemens的Star-CCM+因其多物理功能(匹配网格的FSI)在航空发动机和汽车镜振等领域的应用在增加。
有开源选项吗?
有,但难度较高。典型组合是,结构求解器使用**CalculiX**(Abaqus式)或**Code_Aster**,流体求解器使用**OpenFOAM**。耦合用**preCICE**库引人注目。preCICE负责不同求解器间的数据交换和时间步管理。但与商用软件不同,没有基于GUI的集成环境,所有设置(网格映射、方案选择)都要自己处理,适合研究人员和高级用户。
气动弹性的故障排除
常见错误及其对策
运行分析时,最初几个时间步后结构变位异常地增大,马上就发散了。为什么?
这怀疑是"刚体运动模态的产生"或"初始过渡响应的暴走"。首先检查结构模型是否正确施加了约束。即使荷载很小,如果存在刚体模态也会无限运动。其次,检查是否实现了之前提到的"渐进启动"。如果不是从定常流场开始,翼上会突然加上不对称的大荷载,导致暴走。在ANSYS System Coupling中,"Coupling Initialization"设置可读入定常结果。
流体求解器侧出现"负体积单元"错误而停止。怎样处理?
这是动态网格设置不足。在Fluent中:1) 在"Dynamic Mesh"设置中,为变形的区域分配合适的方法(光滑化、重网格划分、分层)。2) 降低"光滑化"的弹簧常数系数(将默认的1.0改为0.5等)。3) 启用"重网格划分",设置网格扭曲和尺寸的阈值。另外,检查结构变位是否过大,必要时在结构模型中添加物理的限位(接触条件)。
分析在进行,但结果的振动逐渐衰减到静止。现实的颤振应该发散啊,这样是对的吗?
这是"稳定"状态。有两个可能的原因。首先,**分析的流速可能远低于颤振速度**。需要逐步提高速度,找到振动衰减率(对数衰减)变为零的点。其次,**数值阻尼过大**。流体求解器的时间离散化方案(如一阶迎风差分)或结构求解器的数值阻尼(Alpha方法的参数)可能比物理衰减影响更大。首先用已知的基准案例验证求解器设置。
耦合分析非常慢。计算1秒的物理时间需要好几天。有加速的方法吗?
需要查明瓶颈。通常是**流体分析**最慢。对策:1) 将网格数减到必要最少(边界层重要,但远场可粗)。2) 尽可能增大时间步长(但遵守CFL条件)。3) 增加并行计算核心数(Fluent和Star-CCM+的并行效率高)。其次,检查**数据转移频率**。不必每个耦合步都交换数据,流体侧可以先推进数步再对结构侧平均荷载,这种"子循环"在许多情况下有效。但需要权衡精度。