- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合测试实验
题目:超声波测距
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
超声波测距的原理:
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。
测距的公式表示为:L=C×T
式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。
实验内容及步骤:
实验台产生的超声波,按固定频率发射,遇到障碍物,即目标物理后返回。此过程通过传感器及其电路转化成电压信号,我们所采集到的信号为一固定频率、固定占空比的方波信号。而我们要做的工作,就是将信号通过数据采集卡和Matlab的Simulink功能模块采集到数据分析的界面中,变为可以直接用计算机语言编程来处理和分析的信号。然后编辑程序,处理信号,测得方波的波谷的时间Δt,然后通过式子:S=340*Δt/2,来计算所求的距离。
下面是信号采集和数据分析:
1)、信号采集(参照实验指导说明书):
在simulink中新建mytemp1,搭建如图1所示的结构。
图1 mytemp1
将S-function源文件MyOn.cpp中要修改的部分按说明书改好,再将需要统一的地方都改为一致即可。以下是修改部分的截图:
图2 输入端口数目
图3 信号输入通道(0x1-通道5,,5000-频率,1024*4-采样长度)
图4 名称相同
图5 修改该参数可以控制采集的数据的长
按上述操作完成后,将旋钮旋至模块4(环境监测模块),在超声波传感器适当距离放置一障碍物,让后按下运行,在Scope中就可以观察到采集到的方波信号。接下来就可以继续信号分析和GUI界面创建的操作了。
2)、信号分析及计算:
程序代码:
N=1024;
Fs=100000;
for i=1:1000
if y(i)0
n=n+1/Fs;
if y(i+1)0
break;
end;
end;
end;
s=340*n/2;
str1=[距离为:,sprintf(%1.4g\,L), m];
text(0.8,0.35,str1);
将信号离散成间距为1/Fs(Fs=10000)多的点所对于的y值得函数,通过判断在所要测的区间的点数来确定区间的长度n,再由n得出所要测的距离s。因为是将信号离散后计算的点数,信号不连续,则所测的区间长度存在误差,误差范围0~1/Fs,可以通过增大Fs的值来提高精度。又由于超声波在空气中传播多的速度与环境有关,不是准确的为340m/s,也会造成一定误差,可以用公式:C=C0+0.607×T℃来校核。当然,这些因素引起的误差在精度要求不高时可以忽略不计。
3)、GUI界面的构建:
m文件代码:
clf reset
set(gcf,unit,normalized,position,[0.1,0.4,0.85,0.35]);
set(gcf,defaultuicontrolunits,normalized);
set(gcf,defaultuicontrolfontsize,11);
set(gcf,defaultuicontrolfontname,隶书);
set(gcf,defaultuicontrolhorizontal,left);
set(gcf,menubar,none);
str=超声波测距界面;
set(gcf,name,str,numbertitle,off);
h_axes=axes(position,[0.05,0.15,0.65,0.70],visible,on);
hpush1=uicontrol(gcf,style,push,...
position,[0.8,0.25,0.18,0.15],string,采集);
set(hpush1,callback,[...
set_param(mystemp1,SimulationCommand,start),,...
t=timer(TimerFcn,
文档评论(0)