离合器预减振超载造成变速箱怠速异响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时,默认了一个条件就是X与X0同号,
%%%即为正值。如果阻尼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(即激励频率大于无阻尼固有频率时),应为负值。增加一个条件就可以使本公式既可以满足有阻尼振动,也可以满足无阻尼振动。从数学和编程上来说,更合理。