正文共: 1558字 8图 预计阅读时间: 4分钟 我们知道,气流流过上凸下平的物体时,由于上面的流速大,压强小,下面的流速小,压强大,从而形成了升力,使飞行器上升。通常,我们在做飞行器的升力系数、阻力系数数值计算时,采用的是风洞试验原理,即飞行器不动,通过给定风速来模拟飞行器运动。今天,我们来做一个飞行器起飞上升的过程模拟,当然这个模拟没有什么实际的工程意义,因为动网格的代价确实是太大了,且精度基本上还没有前者高,读者权且作娱乐罢。 建立如下的简单飞行器外流场二维模型,对飞行器轮廓划分边界层网格。由于我们要采用动网格,且飞行器飞行范围广,网格变形及更新的范围很大,因此我们采用三角形网格,不然后面非常容易出现负体积。 为了简化计算,我们将计算域四周都设置为无滑移壁面边界。 本案例的关键在于给飞行器创建动网格边界,采用光顺+网格重构可以说是动网格技术的看家法宝了,可以应对所有动网格场合。光顺法我们选择第一个,弹簧/拉普拉斯/边界层,弹簧刚度采用默认即可,如果想让影响范围广一点,可以取较小的值。网格重构参数设定如下,这些参数可以由软件默认推荐,但是本案例将偏斜度设置成下限(0.4),也就是当网格偏斜度大于0.4时就进行重构,尽可能保持较高的网格质量。 创建飞行器轮廓动网格边界,类型为刚体运动,由6DOF定义,UDF代码如下,代码的含义是限制除了水平平移和垂直平移以外的其他所有自由度,飞行器的质量0.01kg,飞行器持续受到一个水平方向(x方向)的外力,大小为10N,这一力表征飞行器的动力系统提供的推力。#include"udf.h"
DEFINE_SDOF_PROPERTIES(airplane, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 0.01;
prop[SDOF_LOAD_F_X]=10;
prop[SDOF_ZERO_TRANS_Z]=TRUE;
prop[SDOF_ZERO_ROT_X]=TRUE;
prop[SDOF_ZERO_ROT_Y]=TRUE;
prop[SDOF_ZERO_ROT_Z]=TRUE;
}
采用瞬态求解,时间步长为0.0001s,时间步长需要多次调试,采取更大的时间步长可能计算报错。本案例,随着时间的推进,飞行器的速度越来越大,后面可能需要更小的时间步长。 本案例我们没有考虑重力,如果考虑重力的话最好对飞行器进行一下前期的设计计算,比如先通过风洞模拟获得其升力,不然随意设定可能导致飞行器飞不起来(重力大于升力)。另外,如果考虑重力,那么计算域的范围就要更大了,因为水平速度是从零开始增加,在升力和重力相等前,飞行器是下降的。 我们看一下计算时间内飞行器水平方向的位移曲线,并进行拟合,由拟合公式可以看出飞行器的加速度约为914.48m/s2,根据其质量可知飞行器所受合力约为9.14N,略小于前面定义的动力10N,这是由于飞行器运动时受到阻力作用。 根据上面的运动曲线,我们进行求导,可以获得计算时间内飞行器的速度约为914.48t,计算终了时刻的速度约为26.06m/s,6DOF结果为25.81m/s,两者相差不到1%。 我们再看一下计算时间内飞行器垂直方向的位移曲线,并进行拟合,由拟合公式可以看出飞行器的上升加速度约为96.17m/s2,根据其质量可知飞行器所受合力约为0.9617N,这是飞行器所受的升力,我们也可以读取fluent的积分结果,为0.9885N,两者相差约2.7%,这里的误差主要还是来自于拟合误差。 根据上面的运动曲线,我们进行求导,可以获得计算时间内飞行器的垂直速度约为96.17t,计算终了时刻的速度约为2.74m/s,6DOF结果为2.2m/s,两者相差约24%。当然,6DOF的结果肯定是更为准确的。