24小时热门版块排行榜    

查看: 2143  |  回复: 5

2265973243

银虫 (小有名气)

[求助] 利用UDF控制旋转机械被动旋转问题请教各位前辈 已有3人参与

给为前辈好,我最近在做一个旋转机械方面的问题,先给定旋转机械一个初始角速度,再通过UDF计算出旋转机械受到的力矩,利用这个力矩通过相应方程计算出在一个时间步内角速度的增量,再把原来的角速度加上这个增量得到一个新的角速度,依次进行下去,我编写的UDF程序如下:
#include "udf.h"
static real omega_z=0.0,J=200;
DEFINE_CG_MOTION(ZL,dt,vel,omega,time,dtime)
{
face_t f;
cell_t c;
real f_glob[ND_ND],m_glob[ND_ND],x_cg[ND_ND],domega_z;
Domain *domain = Get_Domain (1);
Thread *tf1 = Lookup_Thread (domain,1);
int i;
NV_S(omega, =, 0.0);
if (!Data_Valid_P())
return;
for(i=0;i<=ND_ND;i++)
{
f_glob=0;
m_glob=0;
}
for(i=0;i<ND_ND;i++)
x_cg=DT_CG(dt);
if(time<=0.0002)
{
omega[2]=-29.87;
Message ("\ntime=%f ,x=%.10lf ,y=%.10lf , force_x=%.1f ,force_y=%.1f ,moment_x=%f,moment_y=%f,moment_z=%f ,omega_z=%f\n", time,x_cg[0],x_cg[1],f_glob[0],f_glob[1],m_glob[0],m_glob[1],m_glob[2],omega_z);
return;
}
Compute_Force_And_Moment (domain, tf1, x_cg, f_glob, m_glob, TRUE);

domega_z=m_glob[2]*0.0002/J;//计算得到角速度增量
omega_z+=domega_z;//原来的角速度加上增量

Message ("\ntime=%f ,x=%.10lf ,y=%.10lf , force_x=%.1f ,force_y=%.1f ,moment_x=%f,moment_y=%f,moment_z=%f ,omega_z=%f\n", time,x_cg[0],x_cg[1],f_glob[0],f_glob[1],m_glob[0],m_glob[1],m_glob[2],omega_z);
omega[2]=omega_z;
}

程序可以正常运行,但就是计算出的角速度不对,我的初始角速度是--29.87,但是这里最终得到的角速度好像只有角速度增量的之和;
如果我根据上一时间步计算出了角速度的增量,那么我要得到上一时间步角速度和这个增量之和(也即当前时间步的角速度),请问这个要怎么修改呢?非常感谢,祝生活愉快!!
回复此楼

» 猜你喜欢

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

xingfuww

专家顾问 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
omega[2]=omega_z;      这个需要返回   程序算遍的问题 要改写下,参考帮助
2楼2016-08-22 08:47:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingfuww

专家顾问 (正式写手)

引用回帖:
2楼: Originally posted by xingfuww at 2016-08-22 08:47:38
omega=omega_z;      这个需要返回   程序算遍的问题 要改写下,参考帮助

你已经有返回了 哦      看错了   那就是 主节点子节点 算两遍的问题了
3楼2016-08-22 10:09:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

卑良

新虫 (小有名气)

同学你好,我的问题跟你的类似,请问你做出来了吗?
你的这个宏,应该加载到流域上,还是加载到边界上呢?
4楼2016-10-24 17:12:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小七工作室1

新虫 (著名写手)

【答案】应助回帖

引用回帖:
4楼: Originally posted by 卑良 at 2016-10-24 17:12:55
同学你好,我的问题跟你的类似,请问你做出来了吗?
你的这个宏,应该加载到流域上,还是加载到边界上呢?

嗯这个没问题的,处理的比较多
5楼2016-10-24 17:56:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mycc

专家顾问 (正式写手)

【答案】应助回帖

你初始角速度定义为0 ,static real omega_z=0.0  ,得到的角速度当然是增量之和了
项目汇总:http://www.cfluid.com/forum.php?mod=viewthread&amp;tid=114340&amp;extra=
6楼2016-10-25 10:31:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 2265973243 的主题更新
信息提示
请填处理意见