|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
大家好,我想做径向柱塞马达的柱塞的仿真,先做了一个简化的模型,就是一个圆柱绕底面中心做定轴转动,圆柱的顶面以0.001m/s的速度伸出,但是仿真出来的结果总是有问题,就是顶面的伸出运动与整体的旋转运动不一致,如下图:
D:\我的文档\桌面\2.jpg
我的UDF分为两个:
一个是对圆柱整体的转动运动,就是直接在CG_MOTION中设了一个omega[0];
另一个就是对柱塞能伸出的顶面的运动的定义,其程序如下:
#include <stdio.h>
#include "udf.h"
#include "math.h"
DEFINE_CG_MOTION(mada, dt, vel, omega, time, dtime)
{
real theta=omega[0]*time;
real dtheta=omega[0]*dtime;
real v=0.001;
real ds=v*dtime;
real dl,db,da;
real PI=3.14;
real r=10;
r+=v*time;
dl=(dtheta*ds+2*r*dtheta-PI*ds)/(PI-dtheta);
db=(PI*r-r*dtheta)/(ds+2*r-PI*ds/dtheta);
da=(PI/2-theta-dtheta)-db;
vel[0]=0;
vel[1]=sin(da)*dl/dtime;
vel[2]=cos(da)*dl/dtime;
omega[0]=PI;
omega[1]=0;
omega[2]=0;
}
我的想法就是:自行计算在t时间内的L,然后将其在Y、Z两轴进行分解,以带入CG_MOTION中的vel[1]和vel[2],然后omega[0]的值设置的和整体一致;但是结果一直都不对,我的程序也改了很多次,每次都是出现这个问题,我不是很清楚是怎么回事,希望大家指点一下,谢谢大家啊
当然,这个程序中还是有一些错误的,呵呵,同样希望大家的指教
[ 本帖最后由 yjpeng119 于 2012-5-18 15:48 编辑 ] |
|