24小时热门版块排行榜    

查看: 2496  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

jeework

新虫 (初入文坛)

[求助] 根据阀两侧压力定义阀门的运动

求助:根据阀两侧压力的大小定义阀的运动
根据如下的UDF和图片上的条件定义阀门的运动,并利用pand变量保存阀体左右两侧的压差。但是计算过程中出现了压差在某一个时间步左侧大于右侧,下一个时间步右侧大于左侧的情况如图中使用message语句显示的红线部分的内容,在图片上的压力云图也可看出。导致最终阀门只向右走了不到一个网格,然后循环地向左运动又向又运动的情况,从图片上监视阀门左侧坐标位置的surf-mon-1也可看出阀门在第N个时间步长内向左动,N+1个时间步长内又向右运动,如此循环往复,而实际情况应该是左侧的气缸活塞加压,压力逐渐变大,阀门应该一直向右侧运动才是。请大家帮忙看下问题出在哪了,谢谢!
附:UDF如下:
#include "udf.h"
#define valvel_id 112
#define valver_id 19
#define valve_stop_l 0.2958   /*阀门运动的左死点*/
#define valve_stop_r 0.3087   /*阀门运动的右死点*/
real pand,val_left,val_right;
DEFINE_ADJUST(valveposition, domain)
{ cell_t c;
  face_t f;
  real ad[ND_ND];
  real ae[ND_ND];
  double force_l,force_r,z01,z02;
  Thread *t5 = Lookup_Thread(domain, valvel_id);
  Thread *t6 = Lookup_Thread(domain, valver_id);
      pand=0.0;
      z01=0.0;
          z02=0.0;
          force_l=0.0;
            begin_f_loop (f, t5)
         {         F_CENTROID(ad,f,t5);
             val_left=ad[0];
         force_l=force_l+F_P(f,t5)*2*M_PI*0.001*ad[1]; /*0.001为阀侧单个网格高度*/
          }
         end_f_loop (f, t5)
     z01=force_l+0.04909*9.8;
     force_r=0.0;
            begin_f_loop (f, t6)
         {         F_CENTROID(ae,f,t6);
             val_right=ae[0];
         force_r=force_r+F_P(f,t6)*2*M_PI*0.001*ae[1]; /*0.001为阀侧单个网格高度*/
          }
         end_f_loop (f, t6)
                 z02=force_r;
         pand=(z02-z01)/z01;
         Message( "pand is %g", pand);
}

DEFINE_CG_MOTION(banmove,dt,vel,omega,time,dtime)
{  /* reset velocities */
  NV_S(vel, =, 0.0);
  NV_S(omega, =, 0.0);
if(val_left>=valve_stop_l && pand>0.02)
         {vel[0]=-10.0;
      Message( "move left pand is %g", pand);
         }
else if (val_right<=valve_stop_r && pand<-0.02)
         {vel[0]=10.0;
      Message( "move right pand is %g", pand);
         }
else
         {vel[0]=0;
      Message( "stationary pand is %g", pand);
         }
}

根据阀两侧压力定义阀门的运动
起始网格.png


根据阀两侧压力定义阀门的运动-1
运动终止网格.png


根据阀两侧压力定义阀门的运动-2
7.png


根据阀两侧压力定义阀门的运动-3
8.png


根据阀两侧压力定义阀门的运动-4
9.png


根据阀两侧压力定义阀门的运动-5
位置监视.png


根据阀两侧压力定义阀门的运动-6
压力1.png


根据阀两侧压力定义阀门的运动-7
压力2.png@wuming524
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天心.谛听

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by jeework at 2017-11-15 08:25:57
求解答

你好,我也是通过UDF动态模拟阀的运动过程。现在遇到一个问题,向你请教下,活塞刚开始时阀和阀座是有间隙的,这个时候怎么定义阀是闭合的
3楼2018-01-25 09:48:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

jeework

新虫 (初入文坛)

2楼2017-11-15 08:25:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jeework

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by 天心.谛听 at 2018-01-25 09:48:41
你好,我也是通过UDF动态模拟阀的运动过程。现在遇到一个问题,向你请教下,活塞刚开始时阀和阀座是有间隙的,这个时候怎么定义阀是闭合的...

据我所知,如果使用动网格的话至少是要在阀座和运动的阀之间有一层网格的,否则会出现负体积,当然你可以把这层网格划的很小,近似看成闭合的。目前并没有查到UDF可以使interior在计算过程中改成wall的命令。

发自小木虫IOS客户端
4楼2018-03-29 12:48:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

本帖仅楼主可见
5楼2018-04-01 22:24:37
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页
信息提示
请填处理意见