matlab 振动,Matlab振动程序-代码作业

1、一、课题任务要求随着机械工业不断向自动化、高精度、智能化等方向的发展,在机械设备运行及生产过程中进行参量测试、分析与诊断等处理过程已成为必要环节,许多信号处理方法如时域统计分析、相关分析、相干分析、频谱分析等已经被广泛被应用与机械工程测试领域。本文为机械测试信号的时域和频域分析,其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。在进行上述分析之前先要对振动信号进行拟合。机械振动分为确定性振动和随机振动,确定性振动又分为周期振动和非周期振动,周期振动又进一步分为简谐振动和复杂的周期振动。所以可以根据上述的分类来拟合振动信号。在设计信号的处理程序时。

2、,用MATLAB中的相关函数来对所拟合的振动信号进行时域分析和频域分析,并对绘出的频谱图进行说明。二、技术路线对机械振动信号的时域和频域采集,根据所拟合的振动信号,选取所需要的时域性能指标和频域分析的性能指标对振动信号进行分析。其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。现构造一个振动信号(在该程序中以两个衰减振动分量和一个随机数rand之和来拟合振动信号),再利用MATLAB中的函数mean()、min()、max()、std()对离散序列中的平均值、最大值、最小值、标准差等时域性能进行分析,通过调用函数fft(y);psd(y);rc。

3、ep(y)对该振动信号进行频域内的性能分析。在设计过程中的理论知识有离散傅立叶变换(DFT)、功率谱的概念和意义以及倒谱的概念和意义。DFT的定义和意义:DFT的定义式为:X(k)=DFTx(n)= 0kN-1X(n)=x(n) 0nN-1DFT的意义:DFT的意义在于它表示信号中的各个频率的分量的振动幅值的大小,亦即该分量对于振动信号影响的大小。通过DFT的快速算法FFT可以很方便的将振动信号的各个分量的幅值比重计算出来。即可以把信号的主频分量提取出来。功率谱的概念和意义:功率谱的定义式为:若X()=DFTx(m),x(n)为N点序列。则X() =DFTxN (-m)从而有 DFTR(M)=。

4、 DFTx(m) DFTxN (-m)即 ()= X()X()=|X()|2综上所述,先用FFT求出随机离散序列的DFT,再计算幅频特性的平方,再除以N,即得到该随机信号的功率谱估计。功率谱的意义在于它可以对信号中的周期成分进行分析。倒谱的概念与意义:倒谱可以分析复杂频谱图上的周期成分,分离和提取在密集泛频信号中的成分。倒频谱对于整个谱的形状不敏感。三、实现程序A1=3;A2=4;f1=100;f2=250;fs=1000;t=0:1/fs:2;N=length(t);X1=A1*exp(-0.9*t).*sin(2*pi*f1*t);X2=A2*exp(-1.5*t).*sin(2*pi*f。

5、2*t);R=rand(1,N);Y=X1+X2+R;figure(1);plot(t,Y); title(振动信号的波形);xlabel(时间/秒);ylabel(幅度);grid; hold on;%时域分析m= mean(Y); disp (m);mi = min(Y); disp (mi);mx = max(Y); disp (mx);st = std(Y); disp (st);%频域分析l=length(Y);r=fft(Y)/l;r=fftshift(r);f=linspace(-fs/2,fs/2,l);figure(2);plot(f,abs(r);grid; hold on。

6、;figure(3);psd(Y,2048,1000,kaiser(512,5),0,0.95);figure(4);yc=rceps(Y);plot(yc);四、运行结果(1)时域分析结果:序列的平均值为 0.5038序列的最小值为 -6.7750序列的最大值为 7.5083序列的标准差为 1.6180(2)频域分析结果:这是所拟合得到的振动信号的图像。上图为FFT频谱图,从该频谱中可以看到有三个主要高峰值,即在0Hz,100Hz,250Hz处。在功率谱中可以很明显的看到振动信号中有100Hz和250Hz两个主要的频率。表明信号中含有这两个频率的周期成分。五、总结通过使用MATLAB中的相关函数编写的程序对这一所拟合的振动信号进行了时域分析和频域的分析,得到了关于该振动信号的时域分析结果并绘制出了频域分析图谱。通过这学期课程的学习,我认识到MATLAB是一款非常强大的软件,应用在各个行业,包括航空航天、人工智能、机械、控制、科学运算等各个领域。目前我所学习和应用的只是它强大的功能非常小的一部分,之后还要学习MATLAB更多的知识,还需更加努力。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字滤波处理是一种常用的信号处理方法,可以用来去除信号中的噪声和干扰,提取出有效的信号信息。对于齿轮振动信号的数字滤波处理,我们可以使用MATLAB来实现。 以下是一个简单的MATLAB代码示例,用于对齿轮振动信号进行数字滤波处理: ```matlab % 齿轮振动信号的数字滤波处理 % 导入齿轮振动信号数据 load('gear_vibration_signal.mat'); % 设计滤波器 fs = 1000; % 采样频率(Hz) fc = 50; % 截止频率(Hz) order = 4; % 滤波器阶数 [b, a] = butter(order, fc/(fs/2)); % 设计巴特沃斯滤波器 % 应用滤波器 filtered_signal = filtfilt(b, a, gear_vibration_signal); % 绘制原始信号和滤波后的信号 time = (0:length(gear_vibration_signal)-1) / fs; % 时间轴 figure; subplot(2,1,1); plot(time, gear_vibration_signal); title('原始信号'); xlabel('时间(秒)'); ylabel('振动幅值'); subplot(2,1,2); plot(time, filtered_signal); title('滤波后的信号'); xlabel('时间(秒)'); ylabel('振动幅值'); ``` 在这段代码中,我们首先导入了齿轮振动信号数据(假设已经保存为`gear_vibration_signal.mat`文件)。然后,我们根据信号的采样频率和截止频率,设计了一个巴特沃斯滤波器。接下来,使用`filtfilt()`函数对齿轮振动信号进行滤波处理,得到滤波后的信号`filtered_signal`。最后,我们使用MATLAB的绘图函数`plot()`将原始信号和滤波后的信号在时间轴上进行绘制。 请注意,实际的数字滤波处理可能需要根据具体情况进行调整和优化,这只是一个简单的示例代码,供您参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值