机械振动测量及球杆定位控制系统实验 - 图文 联系客服

发布时间 : 星期三 文章机械振动测量及球杆定位控制系统实验 - 图文更新完毕开始阅读

以下是callradio2.m文件的代码及注释

y1=evalin('base','simout.signals.values'); %读取保存到工作空间的信号simout axes(h_axes1); %设置当前坐标轴为“传感器输出波形” y2=y1(1:1000); %设置信号显示的x轴范围,便于观察

%以下是IIR数字低通滤波器的设计代码

Fs1=5120; %定义采样频率 dt1=1.0/Fs1; %定义采样周期 N1=1024; %定义采样点数 T1=dt1*N1;

t1=linspace(0,T1,N1); %在0-T1之间加入N1个时间点 y=sin(2*3.14*100*t1)+ 1/3*sin(9*2*3.14*100*t1); %定义用来低通滤波的函数 fp=280;fs=450; %设置滤波器参数 wp=2*fp/Fs1;ws=2*fs/Fs1;rp=0.1;rs=60; ?指标(低通滤波器的通、阻带边界频) [N1,Wc]=buttord(wp,ws,rp,rs); %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc

[b,a]=butter(N1,Wc); %设计Butterworth低通滤波器 y1t=filter(b,a,y2); %滤波器软件实现,应用差分方程

axes(h_axes1); %设置当前坐标轴为“传感器输出波形” plot(y1t); %在“传感器输出波形”坐标轴中绘制低通滤波后的波形

%以下是对低通滤波信号进行频谱分析

N=1024; %定义采样数据点数

P=fft(y1,N); %对信号进行快速傅里叶变换 Pyy=2*sqrt(P.*conj(P))/N; %计算信号频谱幅值

axes(h_axes2); %设置当前坐标轴为“频谱分析图谱”

17

Fs=5000; %定义采样频率

f=linspace(0,Fs/2,N/2); %在0-Fs/2之间加入N/2个频率点

plot(f,Pyy(1:N/2)); %在“频谱分析图谱”坐标轴中绘制原始信号频谱波形

%以下是低通滤波信号的振动频率和振动加速度的计算

[ym,km]=max(Pyy); %求频谱波形的幅值最高点

xm=(km-1)*(Fs/N); %求幅值最高点对应的频率,即振动频率 strc=num2str(xm); %将振动频率从数值转换为字符串

set(hedit1,'string',strc); %将动频率从“振动频率”编辑框中输出 strc1=num2str(ym/6080); %将幅值最高点的电压转换为振动加速度,并转换为字符串类型 set(hedit2,'string',strc1); %将振动加速度从“振动加速度”编辑框中输出

set_param('shilei1','SimulationCommand','start'); %mdl文件运行

六、实验结果与分析

将转子转速由小调大,观察界面中采集到的原始振动信号和低通滤波信号的变化,同时还有频谱分析图以及振动频率、振动加速度两个参数的变化。

以下是在三个不同转速下得到的实验结果:

1、低速

滤波前

18

滤波后

2、中速

滤波前

19

滤波后

3、高速

滤波前

20