1 前言
笔者之前做了一个空调房间的仿真案例,彼时提到了用UDF模拟扫风之事,因此今天我们做一个简单的扫风案例。
2 模型与网格
建立如下200mm×20mm的二维平面模型,前端中心有一个宽10mm的风口,空气从此处进行周期性循环扫入,空气密度为1.225kg/m3。
3 边界描述
本案例的本质在于用UDF描述扫风过程,假设扫风过程为:一个循环历时20s,扫风速度(导流片转速)为9°/s,扫风角α在-45°和45°之间变化;假设扫风速度矢量的模Vm不变(为10m/s),亦即变风量送入管道,因为进入管道的风量为垂直于入口面的速度分量乘以入口面积。由于vx为变化的,而入口面积不变,因此送风量随vx进行周期性变化,因此每一个扫风周期内的扫风角和速度分量如下:
本案例只模拟第一个周期即n=1内的速度分布,因此所需的UDF代码为:
#include "udf.h"
#include "udf.h"
real vm=10.;
real pi=3.1415926;
DEFINE_PROFILE(velocity_x, thread, position)
{
real t;
face_t f;
begin_f_loop(f,thread)
{
t=RP_Get_Real("flow-time");
if(t>=0&&t<=10)
F_PROFILE(f,thread,position)=vm*cos(pi/20*t-pi/4);
else if(t>10&&t<=20)
F_PROFILE(f,thread,position)=vm*cos(pi/4-pi/20*(t-10));
}
end_f_loop(f,thread)
}
DEFINE_PROFILE(velocity_y, thread, position)
{
real t;
face_t f;
begin_f_loop(f,thread)
{
t=RP_Get_Real("flow-time");
if(t>=0&&t<=10)
F_PROFILE(f,thread,position)=vm*sin(pi/20*t-pi/4);
else if(t>10&&t<=20)
F_PROFILE(f,thread,position)=vm*sin(pi/4-pi/20*(t-10));
}
end_f_loop(f,thread)
}
4 求解设置
本案例我们采用标准k-e湍流模型。
设置入口速度边界,采用速度分量来定义。
出口采用自由流边界。
采用入口值来进行初始化,注意:本案例需要从入口进行初始化更为合适,不然收敛性很差。
设置一个动画,记录管道内空气的速度变化情况。
设置一个监视器,监测管道出口的流量变化情况。
5 计算结果
我们先看一下出口的风量(即送风量)随时间的变化关系,并与已知量进行对比,可以看出两者几乎无异,送风量随时间呈现周期性变化,且变化过程与x方向速度保持一致。
我们看一下每个扫风周期初始时刻的速度矢量,可以明显看到扫风风向。
最后,我们再看一下一个周期内的速度分布变化过程。
需要说明的是,本案例相对简单,实际的扫风方向需要根据实际情况而定,其实就是进行一下坐标变换,读者可以自行尝试。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删