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

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

htext1=uicontrol(gcf,'style','text','position',[0.3,0.92,0.4,0.07],'fontname','隶书','fontsize',32,'string','机械振动测量'); %创建“机械振动测量”静态文本框 htext2=uicontrol(gcf,'style','text','position',[0.72,0.17,0.11,0.048],'string','振动频率=','fontweight','bold'); %创建“振动频率=”静态文本框 htext3=uicontrol(gcf,'style','text','position',[0.69,0.1,0.14,0.048],'string','振动加速度=','fontweight','bold'); %创建“振动加速度=”静态文本框 htext4=uicontrol(gcf,'style','text','position',[0.93,0.17,0.035,0.048],'string','Hz','fontweight','bold'); %创建“Hz”静态文本框

htext5=uicontrol(gcf,'style','text','position',[0.93,0.1,0.068,0.048],'string','mm/s2','fontweight','bold'); %创建“mm/s2”静态文本框

%在“开始”按钮中设置回调属性

set(hpush1,'callback',[...

'set_param(''shilei1'',''SimulationCommand'',''start''),',...

%让shilei1.mdl文件运行

't=timer(''TimerFcn'',''getdata'',''Period'',1,''ExecutionMode'',''fixedSpacing'',''TasksToExecute'',inf),',... %设置定时器,运行getdata.m文件 'pause(2);start(t);',... %暂停2秒并启动定时器 ]);

%在“停止”按钮中设置回调属性

set(hpush2,'callback','stop(t);set_param(''shilei1'',''SimulationCommand'',''stop'');'); %mdl文件停止运行

set(hr1,'value',get(hr1,'Max')); %默认条件下“原始信号”被选中 set(hr1,'callback',[... %“原始信号”单选按钮引起的回调 'set(hr1,''value'',get(hr1,''max'')),',... %选中将小圆圈点黑 'set(hr2,''value'',get(hr2,''min'')),',... %将“互斥”选项点白

't=timer(''TimerFcn'',''callradio1'',''Period'',1,''ExecutionMode'',''fixedSpacing'',''TasksToExecute'',inf),',... %设置定时器,运行callradio1.m文件 'pause(2);start(t);',... %暂停2秒并启动定时器 ]);

set(hr2,'callback',[... %“低通滤波”单选按钮引起的回调 'set(hr1,''value'',get(hr1,''min'')),',... %将“互斥”选项点白 'set(hr2,''value'',get(hr2,''max'')),',... %选中将小圆圈点黑

't=timer(''TimerFcn'',''callradio2'',''Period'',1,''ExecutionMode'',''fixedSpacing'',''TasksToExecute'',inf),',... %设置定时器,运行callradio2.m文件 'pause(2);start(t);',... %暂停2秒并启动定时器

]);

(2)getdata.m文件代码及注释

13

该文件是“机械振动测量”界面中的“开始”按钮回调时所运行的文件,即点击“开始”后,定时器开始计时,同时运行getdata.m文件。

该文件代码主要包括三部分,第一部分是实现对工作空间信号simout的读取和图形绘制,第二部分是对该信号进行频谱分析,第三部分是计算机械振动频率和振动加速度,并输出到界面中。

下图为点击“开始”,运行getdata.m文件后的结果。

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

set_param('shilei1','SimulationCommand','stop'); %mdl文件停止运行

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

%以下是对机械振动信号进行频谱分析

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

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

axes(h_axes2); %设置当前坐标轴为“频谱分析图谱” Fs=5000; %定义采样频率

14

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文件运行

(3)callradio1.m文件代码及注释

该文件是“机械振动测量”界面中的“原始信号”单选按钮回调时所运行的文件,即选择“原始信号”后,定时器开始计时,同时运行callradio1.m文件。

该文件代码基本与getdata.m文件相似,主要包括三部分,第一部分是实现对工作空间信号simout,即原始机械振动信号的读取,并把原始信号绘制到“传感器输出波形”的坐标轴中,第二部分是对该原始信号进行频谱分析,第三部分是计算原始信号的机械振动频率和振动加速度,并输出到界面中。

下图为选择“原始信号”单选按钮后,运行callradio1.m文件后的结果。

15

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

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

%以下是对机械振动原始信号进行频谱分析

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

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

axes(h_axes2); %设置当前坐标轴为“频谱分析图谱” 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文件运行

(4)callradio2.m文件代码及注释

该文件是“机械振动测量”界面中的“低通滤波”单选按钮回调时所运行的文件,即选择“原始信号”后,定时器开始计时,同时运行callradio2.m文件。

该文件代码主要包括四部分,其中前三部分与callradio1.m文件相同,分别实现信号读取、频谱分析和振动频率、振动加速度两个参数的计算和输出。

该文件的最重要的一个部分就是IIR低通数字滤波器的设计。由于在该“机械振动测量”系统中,并不要求滤波器具有严格的线性相位,所以选择计算相对比较简单的IIR滤波器。通过该IIR低通数字滤波器的设计,实现对机械振动信号的低通滤波,滤掉高频噪声成分,只留下低频有用的成分。

下图为选择“低通滤波”单选按钮后,运行callradio2.m文件后的结果。

16

联系合同范文客服:xxxxx#qq.com(#替换为@)