请求齿轮振动方程的解法
我在学齿轮动力学的仿真,一个3自由度的扭转振动方程。挺简单的一个方程,可是每次运算都花费好几个小时,采用的是4阶定步长Runge-Kutta积分方法,所以请问是不是ode45算法中的参数设置的问题还是其它原因,特请教各位高人,
下面是两个文件的代码
1.TorsionVibration.m文件
function f=TorsionVibration(t,y);
%齿轮系统参数
Jm=0.1;Jp=1.772;Jg=1.873;Jf=0.15;
Rp=0.1255;Rg=0.256;R1=0.0335;R2=0.0575;
cp=5.55;cm=504.75;cg=7.18;
kp=3.0869e6;km=1.12e8;kg=5.5998e6;
Me=Jp*Jg/(Rp^2*Jg+Rg^2*Jp);
M=diag();
Tm=5000;Tf=5000*47*0.9/23;
a11=-cp*(1/Jm+1/Jp);a12=-kp*(1/Jm+1/Jp);a13=km*R1*Rp/Jp;a14=cm*R1*Rp/Jp;
a21=kp*Rp/(Jp*R1);a22=cp*Rp/(Jp*R1);a23=-km/Me;a24=-cm/Me;a25=kp*Rp/(Jg*R2);a26=cp*Rp/(Jg*R2);
a35=-cg*(1/Jg+1/Jf);a36=-kg*(1/Jg+1/Jf);a33=km*R2*Rg/Jg;a34=cm*R2*Rg/Jg;
U=[0 1 0 0 0 0;
a11 a12 a13 a14 0 0;
0 0 0 1 0 0;
a21 a22 a23 a24 a25 a26;
0 0 0 0 0 1;
0 0 a33 a34 a35 a36];
f=U*y+;
2.TorsionVibrationResult.m文件
=ode45('TorsionVibration',,');
u1=y(:,1);
u2=y(:,3);
u3=y(:,5);
u4=y(:,6);
figure(1);
plot(t,u1);
figure(2);
plot(t,u2);
figure(3);
plot(t,u3);
figure(4);
plot(t,u4); 你最好将方程中的参数量纲一化后,编程求解。
回复 #2 无水1324 的帖子
非常感谢您的回复,我看过很多论文都是作了归一化处理,不过也有些没有归一化处理也能作出仿真的,我解过单自由度的振动方程,没有任何处理,还是可以很好的仿真出来的。所以多自由度振动
方程必须要做归一化处理吗,这个运算时间长和步长有关系吗,是不是得采用变步长的解法 不量纲一化,也没有多大影响,主要是我没有具体做过,看起来就比较复杂,
还有可能会遇到方程求解的时候步长、初值不好确定的情况。
你最好用变步长计算,你上面的ode45就是变步长计算,只是你计算的点是等步长的(等步长显示)。
回复 #4 无水1324 的帖子
很感谢您!我用量纲一化处理试试看。回复 #5 tianlei2005 的帖子
U*y这样定义合理吗?我看到的一般都不是这样的,是不是我的matlab没有掌握好,请指点! 问搂主,你的这个方程式是三个自由度的,但是后面提到了6自由度,不知道踱出来的3个量是什么呀??是二阶微分方程降阶处理了么??
质量矩阵M好像没有用到,列出来了是为什么呢??
在冒昧问一句,lz你参考哪一本书的呢?
回复 地板 无水1324 的帖子
你好,麻烦问一下,有有关齿轮多间隙啮合方面的资料吗?我的邮箱是ldlnihao@126.com谢谢
页:
[1]