- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Labwindows的输送带速度随机信号相关分析系统.doc
实验项目名称:基于Labwindows的输送带速度随机信号相关分析系统
实验项目性质:综合性
所属课程名称:虚拟仪器技术
实验计划学时:2
一、实验目的
通过非接触式激光测量,运用相关分析计算固体表面速度。通过实验了解相关分析的方法,在实验过程中提高学生的分析和动手能力。
二、实验内容和要求
1、激光相关测速基本原理
图1
如图1 所示,由半导体激光源发射激光束,经过分光器分成两束平行光,聚焦后照射在运动物体(固体)表面,两束入射光光强一致,间距一定(l) ,经过运动物体表面的反射,产生光强随机变化的反射光,经过接收透镜会聚并被两个光电探测器所接收,再经过前置放大,获得两路反映固体速度特征信息的随机相关信号,只要经过互相关分析找到两路随机相关信号之间的延迟时间τ0 ( 渡越时间) , 固体表面速度即可由式v=l/τ0唯一确定。
2、相关分析的数学表达两个随机过程x(t)与y(t)的互相关函数可以用随机变量的平均值来定义,即
参见图1所示的原理装置,在距离l的两点处安装传感器A,B。传感器由激光器光源与光电接收管组成。激光束射向运动物料,其散射光由光电二极管接收。两光电管接收到的光强随机信号分别为x(t)与y(t)。由于两个采样光点都对准物体上的同一条直线轨迹,x(t)与y(t)两者波形应十分相似,仅在时间轴上相差一个τ0的距离。忽略微小差别后,可有下式成立
此时,(2)式可等价地表示为随机过程x(t)的自相关函数
由不等式a2+b2≥2ab,知有下式成立
由于x(t)为平稳随机过程,所以式中
这样(5)式可写作
(7)式两边同乘1/2,并将(4),(6)式代入即得到
(8)式表明,相关函数R(τ)在τ=τ0时取得最大值R(τ0)。再由(1)式便最终获得流动物体的即时速度v。#include cvirte.h
#include userint.h
#include ansi_c.h
#include utility.h
#include easyio.h //初级的数据采集函数库
#include Speed.h //激光测速软件的头文件
static int panelHandle;
static short device; //设备号
static long numChannels; //通道数
static unsigned long numScans; //扫描数
static char channelString[100];//器件、通道
static double upper; //采集上限
static double lower; //采集下限
static double rate; //每个通道的采集速率
static double * waveforms = 0;//存储采集的波形
static double *Rxy; //相关结果
double actualRate; //实际速率
long error = noError;
static double distance; //两个光斑间的距离
double numGraphX; //显示横坐标范围
int OperateCallback (void) ; //运算 子函数
/* ********************************************************/
// 主函数
/***********************************************************/
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, Speed.uir, PANEL)) 0)
return -1;
GetCtrlVal(panelHandle,PANEL_NUMGRAPHX,numGraphX);
//下面一系列回调函数
LimitCallback (panelHandle, PANEL_UPPER, EVENT_COMMIT,
0, 0, 0);
LimitCallback (panelHandle, PANEL_LOWER, EVENT_COMMIT,
0, 0, 0);
RateCallback (panelHandl
文档评论(0)