最新整理动力学第三章.docx
- 文档编号:28167532
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:21
- 大小:33.86KB
最新整理动力学第三章.docx
《最新整理动力学第三章.docx》由会员分享,可在线阅读,更多相关《最新整理动力学第三章.docx(21页珍藏版)》请在冰豆网上搜索。
最新整理动力学第三章
(完整)动力学第三章
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)动力学第三章)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)动力学第三章的全部内容。
第2章
functionVTB2(m,c,k,x0,v0,tf,w,f0)
%单自由度系统的谐迫振动
clc
wn=sqrt(k/m);
z=c/2/m/wn;
lan=w/wn
wd=wn*sqrt(1—z^2);
A=sqrt(((v0+z*wn*x0)^2+(x0*wd)^2)/wd^2);
t=0:
tf/1000:
tf;
phi1=atan2(x0*wd,v0+z*wn*x0);
phi2=atan2(2*z*lan,1—lan^2);
B=wn^2*f0/k/sqrt((wn^2—w^2)^2+(2*z*wn*w)^2);
x=A*exp(-z*wn*t).*sin(sqrt(1-z^2)*wn*t+phi1)+B*sin(w*t-phi2);
plot(t,x),grid
xlabel('时间(s)’)
ylabel('位移')
title(’位移与时间的关系’)
functionVTB1(m,c,k,x0,v0,tf)
%VTB1用来计算单自由度有阻尼自由振动系统的响应
%VTB1绘出单自由度有阻尼自由振动系统的响应图
%m为质量;c为阻尼;k为刚度;x0为初始位移;v0为初始速度;tf为仿真时间
%VTB1(zeta,w,x0,v0,tf)绘出单自由度有阻尼自由振动系统的响应图
%程序中z为阻尼系数ξ;wn为固有频率ωn;A为振动幅度;phi为初相位θ
clc
wn=sqrt(k/m);
z=c/2/m/wn;
wd=wn*sqrt(1—z^2);
fprintf(’固有频率为%。
3g.rad/s。
\n’,wd);
fprintf('阻尼系数为%。
3g。
\n',z);
fprintf('有阻尼的固有频率为%。
3g.rad/s。
\n',wd);
t=0:
tf/1000:
tf;
ifz<1
A=sqrt(((v0+z*wn*x0)^2+(x0*wd)^2)/wd^2);
phi=atan2(x0*wd,v0+z*wn*x0)
x=A*exp(—z*wn*t).*sin(wd*t+phi);
fprintf('A=%。
3g\n',A);
elseifz==1
a1=x0;
a2=v0+wn*x0;
fprintf('a1=%。
3g\n’,a1);
fprintf('a2=%.3g\n’,a2);
x=(a1+a2*t).*exp(—wn*t);
else
a1=(—v0+(-z+sqrt(z^2-1))*wn*x0)/2/wn/sqrt(z^2-1);
a2=(v0+(z+sqrt(z^2-1))*wn*x0)/2/wn/sqrt(z^2—1);
fprintf('a1=%.3g\n’,a1);
fprintf('a2=%。
3g\n',a2);
x=exp(-z*wn*t).*(a1*exp(-wn*sqrt(z^2-1)*t)+a2*exp(wn*sqrt(z^2-1)*t));
end
plot(t,x),grid
xlabel(’时间(s)')
ylabel(’位移’)
title('位移与时间的关系')
functionjzdd
%矩阵迭代法求系统的三阶固有频率和主阵型
clearall
closeall
fid1=fopen('A-1’,’wt');%建立主振型文件
fid2=fopen('B—1',’wt’);%建立固有频率文件
%输入质量矩阵
M(1,1)=2;
M(2,2)=1.5;
M(3,3)=1;
%输入刚度矩阵
K(1,1)=5;K(1,2)=—2;K(2,1)=-2;K(2,2)=3;K(2,3)=-1;K(3,2)=—1;K(3,3)=1
%计算特征值与特征向量
D=inv(K)*M;%原始动力矩阵
A=ones(3,1);%初始振型
fori=1:
3%计算三阶固有频率和主振型
pp0=0;
i
B=D*A;
pp=1.0/B(3);%B(3)为B中的最后一个元素
A=B/B(3);
whileabs((pp—pp0)/pp)>1.e-6
pp0=pp;
B=D*A;
pp=1.0/B(3);
A=B/B(3);
end
f=sqrt(pp)/2/pi%固有频率单位转换为Hz
fprintf(fid1,'%20。
5f',A);%输入主振型数据
fprintf(fid2,’%20.5f',f);%输入固有频率数据
D=D—A*A’*M/(A’*M*A*pp);
end
fid1=fopen(’A—1’,'rt');%打开主振型文件
A=fscanf(fid1,'%f',[3,3])%主振型写成矩阵
fid2=fopen('B—1’,'rt');%打开固有频率文件
f=fscanf(fid2,’%f’,[3,1])%固有频率写成矩阵
t=1:
3;
h1=figure(’numbertitle','off’,’name',’0',’pos',[50200420420]);
bar(t,f(t,1)),xlabel(’频率阶级次'),ylabel('Hz’),
title('固有频率'),holdon,grid
h1=figure('numbertitle','off','name’,'1’,’pos',[50200420420]);
bar(t,A(t,1)),xlabel(’自由度(质量块)’),ylabel(’振型向量'),
title(’1阶主振型'),holdon,grid
pause(0。
1)
h1=figure(’numbertitle',’off’,'name’,'2’,'pos’,[50200420420]);
bar(t,A(t,2)),xlabel('自由度(质量块)’),ylabel('振型向量'),
title('2阶主振型’),holdon,grid
pause(0。
1)
h1=figure(’numbertitle','off',’name’,'3’,'pos',[50200420420]);
bar(t,A(t,3)),xlabel('自由度(质量块)’),ylabel(’振型向量’),
title(’3阶主振型’),holdon,grid
pause(0.1)
end
%chuandijuzhen.m;%传递矩阵方法求固有频率
clearall,clearclose
J1=1;J2=1;J3=2;
k2=1100000;k3=1200000;k4=100000;
fid=fopen('chuandi','wt');%建立(打开)速度文件
M1L=0;
forWN=0:
0。
01:
2000
shita1R=1;M1R=-WN^2*J1;
shita2R=shita1R+1/k2*M1R;M2R=shita1R*(—WN^2*J2)+(1+(-WN^2*J2)/k2)*M1R;
shita3R=shita2R+1/k3*M2R;M3R=shita2R*(-WN^2*J3)+(1+(—WN^2*J3)/k3)*M2R;
shita4R=shita3R+1/k4*M3R;
ifabs(shita4R)〈0.005
WN%搜索到的固有频率(rad/s),并显示
shita=[shita1R;shita2R;shita3R;shita4R];%搜索到振型,并显示
bar(shita),xlabel(’对应的质量块’),ylabel('振型向量’)
pause(1.0)
end
fprintf(fid,'%30.15f',shita4R);
end
fid=fopen('chuandi',’rt’);
x=fscanf(fid,’%f',[1,200001]);
t=1:
200001;
plot(0.01*t,x);grid,xlabel(’频率rad/s’),ylabel(’第四个质量块的转角(rad/s)'),title(’用传递矩阵法求固有频率’)
functioncdjz2
%chuandijuzhen.m;%传递矩阵方法求固有频率
clearall,clearclose
J1=0。
5;J2=1;
k2=100000;k3=100000;
fid=fopen(’chuandi3','wt');%建立(打开)速度文件
M1L=0;
forWN=0:
0。
01:
2000
shita1R=1;M1R=-WN^2*J1;
shita2R=shita1R+1/k2*M1R;M2R=shita1R*(-WN^2*J2)+(1+(—WN^2*J2)/k2)*M1R;
shita3R=shita2R+1/k3*M2R;
ifabs(shita3R)〈0.005
WN%搜索到的固有频率(rad/s),并显示
shita=[shita1R;shita2R;shita3R;]%搜索到振型,并显示
bar(shita),xlabel('对应的质量块’),ylabel(’振型向量’)
pause(1。
0)
end
fprintf(fid,'%30.15f’,shita3R);
end
fid=fopen('chuandi3’,'rt');
x=fscanf(fid,’%f’,[1,200001]);
t=1:
200001;
plot(0.01*t,x);grid,xlabel(’频率rad/s'),ylabel(’第四个质量块的转角(rad/s)'),title(’用传递矩阵法求固有频率')
functionzuoye8
%矩阵迭代法求系统的三阶固有频率和主阵型
clearall
closeall
fid1=fopen('A-2’,’wt');%建立主振型文件
fid2=fopen(’B-2’,'wt');%建立固有频率文件
%输入质量矩阵
M(1,1)=1;
M(2,2)=1;
M(3,3)=1;
%输入刚度矩阵
K(1,1)=2;K(1,2)=—1;K(2,1)=—1;K(2,2)=2;K(2,3)=—1;K(3,2)=-1;K(3,3)=1
%计算特征值与特征向量
D=inv(K)*M;%原始动力矩阵
A=ones(3,1);%初始振型
fori=1:
3%计算三阶固有频率和主振型
pp0=0;
i
B=D*A;
pp=1。
0/B(3);%B(3)为B中的最后一个元素
A=B/B(3);
whileabs((pp—pp0)/pp)〉1。
e-6
pp0=pp;
B=D*A;
pp=1.0/B(3);
A=B/B(3);
end
f=sqrt(pp)
fprintf(fid1,’%20。
5f',A);%输入主振型数据
fprintf(fid2,'%20。
5f',f);%输入固有频率数据
D=D-A*A'*M/(A’*M*A*pp);
end
fid1=fopen(’A—2',’rt');%打开主振型文件
A=fscanf(fid1,'%f',[3,3])%主振型写成矩阵
fid2=fopen('B-2’,'rt');%打开固有频率文件
f=fscanf(fid2,'%f',[3,1])%固有频率写成矩阵
t=1:
3;
h1=figure(’numbertitle','off’,’name’,'0’,’pos',[50200420420]);
bar(t,f(t,1)),xlabel('频率阶级次’),ylabel(’Hz’),
title('固有频率’),holdon,grid
h1=figure('numbertitle’,’off’,'name',’1’,'pos',[50200420420]);
bar(t,A(t,1)),xlabel(’自由度(质量块)’),ylabel('振型向量’),
title('1阶主振型'),holdon,grid
pause(0。
1)
h1=figure('numbertitle’,’off',’name','2',’pos’,[50200420420]);
bar(t,A(t,2)),xlabel('自由度(质量块)'),ylabel('振型向量'),
title(’2阶主振型’),holdon,grid
pause(0.1)
h1=figure('numbertitle’,’off',’name’,'3','pos’,[50200420420]);
bar(t,A(t,3)),xlabel('自由度(质量块)'),ylabel('振型向量’),
title(’3阶主振型'),holdon,grid
pause(0.1)
end
functionzuoye9
%矩阵迭代法求系统的三阶固有频率和主阵型
clearall
closeall
fid1=fopen('A-3','wt’);%建立主振型文件
fid2=fopen('B—3',’wt’);%建立固有频率文件
%输入质量矩阵
M(1,1)=4;
M(2,2)=2;
M(3,3)=1;
%输入刚度矩阵
K(1,1)=4;K(1,2)=—1;K(2,1)=—1;K(2,2)=2;K(2,3)=—1;K(3,2)=—1;K(3,3)=1
%计算特征值与特征向量
D=inv(K)*M;%原始动力矩阵
U=inv(K)
A=ones(3,1);%初始振型
fori=1:
3%计算三阶固有频率和主振型
pp0=0;
i
B=D*A;
pp=1。
0/B
(1);%B
(1)为B中的第一个元素
A=B/B
(1);
whileabs((pp—pp0)/pp)>1。
e—6
pp0=pp;
B=D*A;
pp=1。
0/B
(1);
A=B/B
(1);
end
f=sqrt(pp)
fprintf(fid1,’%20.5f’,A);%输入主振型数据
fprintf(fid2,’%20.5f',f);%输入固有频率数据
D=D-A*A’*M/(A’*M*A*pp);
end
fid1=fopen(’A—3’,'rt’);%打开主振型文件
A=fscanf(fid1,’%f',[3,3])%主振型写成矩阵
fid2=fopen(’B—3','rt’);%打开固有频率文件
f=fscanf(fid2,’%f’,[3,1])%固有频率写成矩阵
t=1:
3;
h1=figure('numbertitle’,'off','name','0',’pos',[50200420420]);
bar(t,f(t,1)),xlabel('频率阶级次'),ylabel('Hz'),
title('固有频率’),holdon,grid
h1=figure(’numbertitle’,’off','name','1’,'pos',[50200420420]);
bar(t,A(t,1)),xlabel('自由度(质量块)’),ylabel('振型向量'),
title('1阶主振型’),holdon,grid
pause(0。
1)
h1=figure(’numbertitle',’off’,'name’,’2’,’pos',[50200420420]);
bar(t,A(t,2)),xlabel('自由度(质量块)’),ylabel(’振型向量’),
title('2阶主振型’),holdon,grid
pause(0.1)
h1=figure('numbertitle',’off’,’name','3’,’pos’,[50200420420]);
bar(t,A(t,3)),xlabel('自由度(质量块)'),ylabel('振型向量'),
title(’3阶主振型’),holdon,grid
pause(0.1)
end
functioncdjz2
%chuandijuzhen。
m;%传递矩阵方法求固有频率
clearall,clearclose
J1=0.5;J2=1;
k2=10000;k3=10000;
fid=fopen('chuandi3','wt');%建立(打开)速度文件
M1L=0;
forWN=0:
0。
01:
2000
shita1R=1;M1R=—WN^2*J1;
shita2R=shita1R+1/k2*M1R;M2R=shita1R*(—WN^2*J2)+(1+(-WN^2*J2)/k2)*M1R;
shita3R=shita2R+1/k3*M2R;
ifabs(shita3R)〈0。
005
WN%搜索到的固有频率(rad/s),并显示
shita=[shita1R;shita2R;shita3R;]%搜索到振型,并显示
bar(shita),xlabel('对应的质量块’),ylabel(’振型向量')
pause(1.0)
end
fprintf(fid,’%30。
15f',shita3R);
end
fid=fopen('chuandi3’,’rt');
x=fscanf(fid,’%f',[1,200001]);
t=1:
200001;
plot(0。
01*t,x);grid,xlabel('频率rad/s'),ylabel('第三个质量块的转角(rad/s)'),title('用传递矩阵法求固有频率’)
第3章
functionvtb3(m,c,k,x0,v0,tf,w,f0,delt)
%用欧拉法计算单自由度系统谐迫振动响应
wn=sqrt(k/m);%计算固有频率
fid1=fopen(’disp’,’wt’);%建立一个位移文件disp。
dat
fort=0:
delt:
tf;%delt为时间步长
xdd=(f0*sin(w*t)—k*x0-c*v0)/m;%计算加速度
xd=v0+xdd*delt;%计算速度
x=x0+xd*delt;%计算位移x
fprintf(fid1,'%10。
4f’,x0);%向文件中写数据
x0=x;v0=xd;
t
end
fid2=fopen('disp','rt’);%打开disp。
dat文件
n=tf/delt;%disp.dat文件中位移的个数
x=fscanf(fid2,'%f',[1,n]);%将disp.dat文件中文艺写成矩阵
t=1:
n;
plot(t,x),grid
xlabel('时间(s)')
ylabel('位移(s)')
title('位移与时间的关系’)
functionvtb4(m,c,k,x0,v0,tf,w,f0,delt)
%用改进的欧拉法计算单自由度系统谐迫振动响应
wn=sqrt(k/m);%计算固有频率
fid1=fopen('disp’,’wt');%建立一个位移文件disp。
dat
fort=0:
delt:
tf;%delt为时间步长
xdd=(f0*sin(w*t)-k*x0-c*v0)/m;%计算加速度
x3d=(f0*w*cos(w*t)-k*v0-c*xdd)/m;
xd=v0+xdd*delt+x3d*delt^2/2;%计算速度
x=x0+xd*delt+xdd*delt^2/2;%计算位移x
fprintf(fid1,’%10.4f',x0);%向文件中写数据
x0=x;v0=xd;
t
end
fid2=fopen('disp','rt');%打开disp。
dat文件
n=tf/delt;%disp.dat文件中位移的个数
x=fscanf(fid2,’%f',[1,n]);%将disp。
dat文件中文艺写成矩阵
t=1:
n;
plot(t,x),grid
xlabel('时间(s)’)
ylabel(’位移(s)’)
title('位移与时间的关系’)
functionvtb5(tf,delt)%用线性加速度法计算三自由度系统谐迫振动响应,tf为仿真时间,delt为仿真时间步长delt
closeall;clc
fid1=fopen(’disp5','wt’);%建立一个位移文件dip5.dat
m=2*[100;010;001];%质量矩阵
c=1.5*[2—10;—12-1;0—12];%阻尼矩阵
k=50*[2-10;—12—1;0—12];%刚度矩阵
x0=[111]’;%初始位移
v0=[111]’;%初始速度
md=inv(m+delt/2*c+1/6*delt^2*k);
m1=inv(m);
[E,F]=eig(m1*k);
diag(sqrt(F));%计算固有频率(rad/s)
fort=0:
delt:
tf;%delt为时间步长
f=[2.00*sin(3。
754*t)—2.00*cos(2。
2*t)1.00*sin(2。
8*t)]’;
ift==0;xdd0=m1*(f-k*x0-c*v0);%计算初始加速度
else
x=md*(m*(x0+delt*v0+delt^2/3*xdd0)+c*(delt/2*x0+delt^2/3*v0+delt^3/12*xdd0)+delt^2/6*f);%计算位移
xdd=6/delt^2*(x-(x0+delt*v0+delt^2/3*xdd0));%计算加速度
xd=v0+delt/2*(xdd0+xdd);%计算速度
xdd0=xdd;v0=xd;x0=x;
fprintf(fid1,’%10。
4f’,x0);%向文件中写数据
t%显示计算时间步长
end
end
fid2=fopen(’disp5',’rt');%打开disp5.dat文件
n=tf/delt;%disp5。
dat文件中位移的个数
x=fscanf(fid2,’%f',[3,n]);%将disp5。
dat文件中的位移写成矩阵
t=1:
n;
figure(’numbertitle’,'off’,'name’,’自由度—1的位移’,'pos’,[450180400420]);
plot(t,x(1,t)),grid,xlabel(’时间*0。
1秒’),title(’自由度—1的位移与时间的关系’)
figure('numbertitle','off',’name','自由度—2的位移’,’pos’,[350160400420]);
plot(t,x(2,t)),g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 整理 动力学 第三