离合器预减振超载造成变速箱怠速异响matlab仿真分析



五、附录

1、  单自由度无阻尼振动程序

k1=7.5/(pi/180);

m1=0.22;

c1=0;

t=0:0.001:1;

f0=705/60*3;

%f_dx0=9*(pi/180)*cos(2*pi*f0*t);

%f_x0=9*(pi/180)/(2*pi*f0)*sin(2*pi*f0*t);

%f1=c1*f_dx0+k1*f_x0;

wn=sqrt(k1/m1);

s=2*pi*f0/wn;

B=9*(pi/180)/(2*pi*f0);

x0=0;

dx0=0;

x=x0*cos(wn*t)+dx0/wn*sin(wn*t)+B/(1-s^2)*(sin(2*pi*f0*t)-s*sin(wn*t));

figure

subplot(3,1,1)

%plot(t,f1)

subplot(3,1,2)

plot(t,x*180/pi)

2、  单自由度有阻尼振动程序

k1=7.5/(pi/180);

m1=0.22;

wn=sqrt(k1/m1);

s_=0.5;

wd=sqrt(1-s_^2)*wn;

c1=2*s_*wn*m1;

t=0:0.001:1;

f0=705/60*3;

f_dx0=9*(pi/180)*cos(2*pi*f0*t);%%%%%%%%%%%%%%%%%

f_x0=9*(pi/180)/(2*pi*f0)*sin(2*pi*f0*t);

f1=0*c1*f_dx0+k1*f_x0;%%%%%%没考虑本阻尼造成的地基力的输入!!!!!!!!!!!!!!

s=2*pi*f0/wn;

B0=9*(pi/180)/(2*pi*f0);

B=B0/sqrt((1-s^2)^2+(2*s_*s)^2);

%%%%%%%%%%%%%%%%%%

if s>1

    B=-B;

end 

%%%%%%%%%%%%%%%%%%%%%%

phai=atan(2*s_*s/(1-s^2));

x0=0.0;

dx0=0.0;

x=exp(-s_*wn*t).*(x0*cos(wd*t)+(dx0+s_*wn*x0)/wd*sin(wd*t))...

+B*exp(-s_*wn*t).*(sin(phai)*cos(wd*t)+(s_*wn*sin(phai)-2*pi*f0*cos(phai))/wd*sin(wd*t))...

+B*sin(2*pi*f0*t-phai);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%https://wenku.baidu.com/view/009915e19b89680203d82503.html

%%%6页公式10如果能改下就更好了。从9推导10时,默认了一个条件就是XX0同号,

%%%即为正值。如果阻尼omiga>1(即激励频率大于无阻尼固有频率时),应为负值。

%%%增加一个条件就可以使本公式既可以满足有阻尼振动,也可以满足无阻尼振动。从数学和编程上来说,更合理。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure

subplot(3,1,1)

plot(t,f1)

subplot(3,1,2)

plot(t,x*180/pi)

grid on

3、  FFT程序

%%%%%%傅里叶变换/逆变换/短时傅里叶变换%%%%%%

data=load('testdata.mat');%

t=data.x(:,1);%

y=data.x(:,2);

Fs=1000;

t1=min(t):1/Fs:max(t);

y1=interp1(t,y,t1);

%y1=sin(2*pi*10*t1)

subplot(3,1,1);

plot(t,y,'r*',t1,y1)

xlabel('Time(s)');%在第一个窗口画波形

sigLength=length(y1);

%

Nshow=sigLength/10;%显示的点数(频率段,因频谱对称只需一半内)

%

n=0:sigLength-1;

Y=fft(y1-mean(y1),length(y1)); %在sigLength这个有限区间内做快速傅立叶变换!!!减均值

%!!!!!减均值只考虑波动的频谱情况!!!

%mag=abs(Y);

f=Fs*n/sigLength;

subplot(3,1,2);plot(f(1:Nshow),abs(Y(1:Nshow)));

xlabel('Frequency(Hz)');

%在第一个窗口画率谱,

grid on;

4、  SS模型仿真程序

k1=7.55/(pi/180);

m1=0.3511;

M=[m1];

K=[k1];

n=size(M,1);

wn=sqrt(k1/m1);

s_=0.25;

wd=sqrt(1-s_^2)*wn;

c1=2*s_*wn*m1;

C=[c1];

G=[C,M;M,zeros(n)];

H=[K,zeros(n);zeros(n),-M];

ssA=-G\H;

ssB=G\[eye(n);zeros(n)];%G dX +H X =E u => dX="-G\H" X +"G\E" u

%ssB=[zeros(n),inv(M);inv(M),-inv(M)^2]*[eye(n);zeros(n)];

ssC=[-M\K,-M\C];

ssD=inv(M);%设输出Y= d^2X=[-M\K,-M\C]*[X,dX]+[M]\U

%[t,f_x0,f_dx0]=wav_trapz;

data=load('testdata.mat');%

t=data.x(:,1);%

y=data.x(:,2);

Fs=1000;

t1=min(t):1/Fs:5;%max(t);%到5s?????

y1=interp1(t,y,t1);

y1=(y1-mean(y1))/60;%计算相对转速并换算到RPS

t=t1;U=y1;

%t=t-min(t);%将仿真开始时间调整为0

%f1=C(1)*f_dx0+K(1)*f_x0;

%U=[f1];

sys=ss(ssA,ssB,ssC,ssD);

X0=[0.0,0];%X0=zeros(2*n,1);%X0=[x1_0,...,dx1_0,...]

[Y,t,X]=lsim(sys,U,t,X0);

X(:,3)=Y;

Cs=[K(1)C(1) 0;0 K(1) C(1)];%Y=C*X

Ys=X*Cs';

subplot(3,1,1)

plot(t,U*60)

xlabel('飞轮转速f_dx0(rpm)');

grid on

subplot(3,1,2)

plot(t,Ys(:,1)*60)

xlabel('离合器从动盘转速dx(rpm)');

subplot(3,1,3)

plot(t,Ys(:,2))

xlabel('离合器从动盘加速度a(rps^2)');

5、  单自由度振动理论PPT

https://wenku.baidu.com/view/009915e19b89680203d82503.html

第6页公式10如果能改下就更好了。从9推导10时,默认了一个条件就是X与X0同号,即为正值。如果阻尼omiga>1(即激励频率大于无阻尼固有频率时),应为负值。增加一个条件就可以使本公式既可以满足有阻尼振动,也可以满足无阻尼振动。从数学和编程上来说,更合理。



猜你喜欢

转载自blog.csdn.net/lijil168/article/details/78857893