机械动力学试验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机械动力学大作业江西机械
院系:机械工程学院
专业:机械设计及理论
班级:4班
学号:20404151
姓名:王昌荣
日期:2005.4.20
机械动力学课程大作业
(一)实验任务:
1、观察激振试验;
2、进行锤击试验,绘制特性曲线图及数据表,并利用所得数据对模态参数进行识别。(二)仪器设备
1、GF-10型功率放大器;
2、XD-18A型超低频信号发生器;
3、MO-1251型示波器;
4、PDM-2000数据采集分析仪;
5、带有传感器的力锤;
6、加速度传感器。
(三)实验框图
锤击实验框图:
1.绘制实频、虚频、幅频、相频及Nyqiust圆源程序清单:
%原始数据读入------------------------------------------------->
clc;
for j=1:4
fid=0;
while fid<1
switch j
case 1
filename='wcry01.txt';
case 2
filename='wcry02.txt';
case 3
filename='wcry03.txt';
case 4
filename='wcry04.txt';
end
[fid,j]=fopen(filename,'r');
if fid==-1
disp(message)
end
end
data_all=fscanf(fid,'%g');
N=length(data_all); %数据长度
fs=2560; %采样频率
f=1000; %分析频率
data_Re=data_all(1:N/2); %前半段数据为实频
data_Im=data_all(N/2+1:N); %后半段数据为虚频
for i=1:N/2
Aw(i)=sqrt(data_Re(i)*data_Re(i)+data_Im(i)*data_Im(i)); %幅频
Qw(i)=atan(data_Im(i)/data_Re(i)); %相频
end
figure
subplot(221);
plot(data_Re(1:400),'b');
title('—实频特性—')
subplot(222);
plot(data_Im(1:400),'g');
title('—虚频特性—')
subplot(223);
plot(Aw(1:400),'c');
title('—幅频特性—')
subplot(224);
plot(Qw(1:400),'r');
title('—相频特性—')
figure
plot(data_Re(1:400),data_Im(1:400),'k');
title('—Nyquist特性—')
end
第一组数据绘图:江西机械
第二组数据绘图:
第三组数据绘图
第四组数据绘图:
2.用五点求拟合圆,并计算各阶固有频率,阻尼比:
采用第一组数据计算:
源程序清单:江西机械
clc;
fprintf(‘----------采用第1组数据计算----------\n')
fid=0;
while fid<1
filename='wcry01.txt'; %原始数据文件名称 [fid,message]=fopen(filename,'r'); %读入数据
if fid==-1
disp(message);
end
end
data_all=fscanf(fid,'%g');
N=length(data_all); %数据长度
%fs=2560; %采样频率
%f=1000; %分析频率
data_Re=data_all(1:N/2); %前半段数据为实频 data_Im=data_all(N/2+1:N); %后半段数据为虚频 for i=1:N/2
Aw(i)=sqrt(data_Re(i)*data_Re(i)+data_Im(i)*data_Im(i)); %幅频
end
peak_value=zeros(1,3);
subpoint=[1 40 91 130 131 170];
[max_data1,peak_value(1)]=max(Aw(subpoint(1):subpoint(2)));
[max_data2,peak_value(2)]=max(Aw(subpoint(3):subpoint(4)));
[max_data3,peak_value(3)]=max(Aw(subpoint(5):subpoint(6)));
peak_value(2)=peak_value(2)+subpoint(3)-1;
peak_value(3)=peak_value(3)+subpoint(5)-1;
fprintf('\n 三阶峰值位置分别是:');
fprintf('%d %d %d\n',peak_value(1),peak_value(2),peak_value(3));