matlab ode45求解齿轮动力学,使用ODE45求解齿轮系统动力学方程后结果发散

function [dx,ff1,ff2]=myfun(t,x)

t

beita=26;

mn=0.004;

z1=46;

z2=43;

z3=122;

T_in=200;

T_out=80;

roug1=7.8E3;

roug2=7.8E3;

roug3=7.8E3;

alphan=20;

alphat=atand(tand(alphan)/cosd(beita));

d1=z1*mn/cosd(beita)/1000;

db1=d1*cosd(alphat)/1000;

d2=z2*mn/cosd(beita)/1000;

db2=d2*cosd(alphat)/1000;

d3=z3*mn/cosd(beita)/1000;

db3=d3*cosd(alphat)/1000;

bp1=116/1000;

bp2=116/1000;

bp3=116/1000;

bp=116/1000;

I1=((roug1*pi*(d1/2)^2*bp1)*(d1/2)^2)/2;

I2=((roug2*pi*(d2/2)^2*bp2)*(d2/2)^2)/2;

I3=((roug3*pi*(d3/2)^2*bp3)*(d1/2)^2)/2;

m1=roug1*pi*(d1/2)^2*bp1;

m2=roug2*pi*(d2/2)^2*bp2;

m3=roug3*pi*((d3)-(d1+d2))^2*bp3;

r1=d1*cosd(alphat)/2;

r2=d2*cosd(alphat)/2;

r3=d3*cosd(alphat)/2;

fai_sp1x=90;

fai_sp1y=0;

fai_p1rx=-130;

fai_p1ry=-220;

kesaiz=0.05;

kesain=0.07;

kp1x=1e8;

kp1y=kp1x;

cp1x=2*kesaiz*((kp1x*m2)^0.5);

cp1y=2*kesaiz*((kp1y*m2)^0.5);

ksx=1e8;

ksy=1e8;

csx=2*kesaiz*((ksx*m1)^0.5);

csy=2*kesaiz*((ksy*m1)^0.5);

krx=1e8;

kry=krx;

crx=2*kesaiz*((krx*m3)^0.5);

cry=crx;

Tmesh=2*pi/z1;

kp1r =1e6;

csp1=2*0.07*((ksp1/(1/m1+1/m2))^0.5);

cp1r=2*0.07*((ksp1/(1/m2+1/m3))^0.5);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%以上为参数定义,可忽略不看,谢谢!

esp1=1e-6;

ep1r=1e-6;

delta_sp1=((x(1)-x(7))*cosd(fai_sp1x)+(x(3)-x(9))*cosd(fai_sp1y)+r1*x(5)+r2*x(11))*cosd(beita)+esp1;

delta_sp11=((x(2)-x(8))*cosd(fai_sp1x)+(x(4)-x(10))*cosd(fai_sp1y)+r1*x(6)+r2*x(12))*cosd(beita)+esp1;

delta_p1r=((x(7)-x(13))*cosd(fai_p1rx)+(x(9)-x(15))*cosd(fai_p1ry)+r3*x(17)-r2*x(11))*sind(beita)-ep1r;

delta_p11r=((x(8)-x(14))*cosd(fai_p1rx)+(x(10)-x(16))*cosd(fai_p1ry)+r3*x(18)-r2*x(12))*sind(beita)-ep1r;

%%%%%%%%%%动力学方程

dx=zeros(18,1);

dx(1)=x(2);

dx(2)=(1500*cosd(fai_sp1x)-(csx*x(2))-ksx*x(1)-(csp1*delta_sp11+ksp1*delta_sp1)*cosd(beita)*cosd(fai_sp1x))/m1;

dx(3)=x(4);

dx(4)=(1500*cosd(fai_sp1y)-(csx*x(4))-ksy*x(2)-(csp1*delta_sp11+ksp1*delta_sp1)*cosd(beita)*cosd(fai_sp1y))/m1;

dx(5)=x(6);

dx(6)=(400-(csp1*delta_sp11+ksp1*delta_sp1)*cosd(beita)*r1+T_in)/I1;

dx(7)=x(8);

dx(8)=((-300*cosd(fai_sp1x)+200*cosd(fai_p1rx)-(cp1x*x(8))-kp1x*x(7)+(csp1*delta_sp11+ksp1*delta_sp1)*cosd(beita)*cosd(fai_sp1x)-(cp1r*delta_p11r+kp1r*delta_p1r))*cosd(beita)*cosd(fai_p1rx))/m2;                %第一个行星齿轮x方向

dx(9)=x(10);

dx(10)=((-300*cosd(fai_sp1y)+200*cosd(fai_p1ry)-(cp1y*x(10))-kp1y*x(9)+(csp1*delta_sp11+ksp1*delta_sp1)*cosd(beita)*cosd(fai_sp1y)+(cp1r*delta_p11r+kp1r*delta_p1r))*cosd(beita)*cosd(fai_p1ry))/m2;                 %第一个行星齿轮y方向

dx(11)=x(12);

dx(12)=(120-((csp1*delta_sp11+ksp1*delta_sp1)+(cp1r*delta_p11r+kp1r*delta_p1r))*cosd(beita)*r2)/I2;

dx(13)=x(14);

dx(14)=((-200*cosd(fai_p1rx)-(crx*x(14))-krx*x(13)+(cp1r*delta_p11r+kp1r*delta_p1r))*cosd(beita)*cosd(fai_p1rx))/m3;

dx(15)=x(16);

dx(16)=((-200*cosd(fai_p1ry)-(crx*x(16))-krx*x(15)+(cp1r*delta_p11r+kp1r*delta_p1r))*cosd(beita)*cosd(fai_p1ry))/m3;

dx(17)=x(18);

dx(18)=(80-(cp1r*delta_p11r+kp1r*delta_p1r)*cosd(beita)*r3-T_out)/I3;

### 回答1: ode45是一种常用的求解微分方程的数值方法,可以用于求解齿轮单自由度动力学方程。 在齿轮系统中,通过应用动力学原理和运动关系,可以建立齿轮单自由度动力学方程。这个方程描述了齿轮在运动过程中受到的力和力矩之间的关系。 首先,我们需要确定齿轮系统的运动方程。这可以通过齿轮的几何关系和运动关系来得到。运动方程可以表示为: M - Jα = Iω' 其中,M是齿轮受到的合外力矩,J是齿轮的转动惯量,α是齿轮的角加速度,I是单位时间内齿轮的转动惯量变化率,ω'是齿轮的角速度的一阶导数。 然后,我们可以将齿轮单自由度动力学方程转化为一个常微分方程: dω/dt = (M - Jα) / I 最后,我们可以使用ode45方法对这个常微分方程进行数值求解。我们需要给定初始条件以及齿轮系统的参数,然后调用ode45函数即可得到数值解。 需要注意的是,ode45方法是一种基于龙格-库塔法的数值求解方法,它可以自动调整步长以保证求解的精度和稳定性。因此,在求解齿轮单自由度动力学方程时,ode45可以提供较为准确和稳定的数值结果。 ### 回答2: ode45MATLAB中的一个函数,用于求解常微分方程的数值解。对于齿轮单自由度动力学方程,可以通过ode45来进行求解齿轮单自由度动力学方程描述了齿轮的运动和力学特性。它通常由一个二阶常微分方程表示,其中包含齿轮的质量、惯性、力和阻尼等参数。 为了使用ode45求解方程,首先需要将其转化为一个一阶常微分方程组。这可以通过引入一个新的变量来实现,例如将齿轮的角速度作为新变量。然后,将原方程转化为一个关于新变量和其导数的方程组。 接下来,可以编写一个MATLAB函数,用于计算一阶常微分方程组的右侧。该函数应该输入当前时间和当前状态变量(包括新变量和其导数),并返回导数值。 使用ode45函数时,需要提供初始条件和求解的时间范围。通过调用ode45函数,并将上述函数和初始条件作为参数传递给它,可以得到数值解,即齿轮的运动和力学特性随时间的变化。 最后,可以通过绘制数值解的图形来分析和可视化结果。例如,可以绘制齿轮的位移、速度和加速度随时间的变化曲线,以及其他相关的物理量。 总而言之,使用ode45函数可以方便地求解齿轮单自由度动力学方程,得到齿轮的运动和力学特性随时间的变化。 ### 回答3: ode45是一种常用的数值求解器,可以用于求解齿轮单自由度动力学方程齿轮单自由度动力学方程描述了齿轮的运动和力。通常,齿轮单自由度动力学方程可以写成一个微分方程的形式。ode45可以通过数值方法求解这个微分方程,得到齿轮的运动和力的关系。 首先,我们需要将齿轮单自由度动力学方程转化为标准的微分方程形式。然后,我们将这个微分方程作为输入传递给ode45ode45将根据所给的初始条件和时间步长,采用自适应的RK45方法求解微分方程。这种方法能够提供高精度的数值解,并且具有较好的稳定性和收敛性。 通过ode45求解齿轮单自由度动力学方程,我们可以得到齿轮的运动和力的解析结果。这个结果可以用来研究齿轮的运动学和动力学特性,如转速、加速度、力矩等。并且,我们还可以通过改变初始条件和参数来进一步研究不同情况下齿轮的运动和力的变化规律。 总而言之,ode45是一种有效的数值求解器,可以用于求解齿轮单自由度动力学方程。通过这个求解器,我们可以得到齿轮的运动和力的解析结果,从而研究齿轮的运动学和动力学特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值