用matlab求解扭转振动方程,求的扭转角为什么不对呢?是程序的问题?还是非线性没处理好呢?
方程,参数见图,还有程序,求指导!金币就3个,以后有了可以再补!谢谢
程序如下:
%%%齿轮-转子系统扭转振动分析 单位 Kg m s
function dx = niu_gou_yuan_Rg(t,x)
TR = 30; TL = 6;%输入扭矩TR、输出扭矩TL
I1 = 2.8; I2 = 2.6; I3 = 2.6; I4 = 2.6;%转动惯量
a= pi*20/180;%啮合角a
m=3;%模数m
Z2 = 14;Z3 = 14;% 齿数
Rb2 = (Z2*m*cos(a))*(1/2)/1000 ;%主动齿轮2的基圆半径,基圆db=d*cosa,
Rb3 = (Z3*m*cos(a))*(1/2)/1000 ;%从动齿轮3的基圆半径
K1 = 4e5 ; C1 = 69;%扭转刚度及相应阻尼
K3 = 4e5 ; C3 = 63;
%齿轮啮合误差激励ep
ep=0.000315*sin(0.542*t-2*pi/9)+0.00002*sin(6.742*t-2*pi/9)-8.8003e-04 ;
%齿轮啮合误差激励ep的导数
dep=1.7073e-04*cos(0.542*t-2*pi/9)+1.3484e-04*cos(6.742*t-2*pi/9) ;
%齿轮间沿啮合线方向的弹性变形
xp = Rb2*x(3)-Rb3*x(5)-ep;
dxp = Rb2*x(4)-Rb3*x(6)-dep;
%啮合刚度K2n,啮合平均刚度Kp2,啮合波动刚度系数Kb2
%%齿轮副啮合频率we, 啮合相位角uk
we=18; uk=0;Kb2 =1.2e8;
Kp2 = 1.2e8;
K2n= Kp2+Kb2*cos(we*t+uk);
%啮合阻尼C2n
C2n=137;
b = 0.1e-3;%间隙
%啮合力
if xp > b
Fp = K2n*(xp-b);
elseif -b <= xp <= b;
Fp = 0;
else
Fp = K2n*(xp+b);
end
%阻尼误差激励
Dp = C2n*dxp;
F = Fp+ Dp;
dx =[ x(2);
(TR-K1*(x(1)-x(3))-C1*(x(2)-x(4)))/I1;
x(4);
(-Rb2*F-K1*(x(3)-x(1))-C1*(x(4)-x(2)))/I2;
x(6);
(Rb3*F-K3*(x(5)-x(7))-C3*(x(6)-x(8)))/I3;
x(8);
(-TL-K3*(x(7)-x(5))-C3*(x(8)-x(6)))/I4;
];
求解程序:
clc;
x0=[0,0,0,0,0,0,0,0];
[t,y]=ode45(@niu_gou_yuan_Rg,[0,0.5],x0);
figure
plot(t,y(:,1))
xlabel(\'时间/s\'),ylabel(\'扭转角/rad\'),title(\'电机扭转角\')
figure
plot(t,y(:,3))
xlabel(\'时间/s\'),ylabel(\'扭转角/rad\'),title(\'主动齿轮扭转角\')
![非线性问题,扭转振动方程matlab求解]()
方程.png
![非线性问题,扭转振动方程matlab求解-1]()
模型.png
![非线性问题,扭转振动方程matlab求解-2]()
扭转角.png |