• 回答数

    4

  • 浏览数

    143

壹贰叁肆4321
首页 > 学术论文 > 信号与系统论文百度学术

4个回答 默认排序
  • 默认排序
  • 按时间排序

吃货如影随形

已采纳

相关论文:Vc++下如何利用Matlab工具箱进行数字信号处理摘要: 本文详述了在Vc环境下如何利用Matlab工具箱进行数字信号处理,全文以Matlab工具箱中功率谱密度分析函数为例,介绍了通过Matlab自带的引擎、Matlab自身的编译器以及利用MathTools公司的Matcom进行对工具箱函数的调用。 关键词:Matlab M-文件 引擎 编译器 Matcom Vc++Matlab的信号处理工具箱是信号算法文件的集合,它处理的基本对象是信号与系统,信号处理工具箱位于目录、Toolbox\Signal下,利用工具箱中的文件可以实现信号的变换、滤波、谱估计、滤波器设计等。在其它的环境如Vc下如果能调用Matlab工具箱中的文件,会大大地加快一些算法的实现,同时其可靠性也很高。利用Matlab引擎 Matlab引擎采用客户和服务器计算方式,在运用中,Vc的C语言或C++语言的程序作为前端客户机,它向Matlab引擎传递命令和数据信息,并从Matlab引擎接收数据信息,它提供了下列几个函数: engOpen, engGetArray, engPutArray, engEvaString, engOutputBuffer ,engClose与客户机进行交互。下面例程是在Vc下建一个基于对话框的应用程序,在对话框中设置一个Button控件OnMatlabEngine.,在对话框 .cpp文件中加入”” 和“” 头文件,下面给出部分程序清单。Void CtestmatlabDlg::OnMatlabEngine(){Engine *ep;mxArray* T=NULL,*result=NULL,*mFs=NULL,*mnfft= NULL;double datax[1024];char buffer[1024];for(int j=0;j<1024;j++)//注:如通过采集卡采集数据可将采集的数据放在datax[]数组中,此循环就不需要{double samt=(double)(); datax[j]=sin(**samt**);}double *pPxx,*pFxx;if(!(ep=engOpen(" \0"))){//打开Matlab引擎,建立与本地Matlab的连接fprintf(stderr,"\n Can't start MATLAB engine\n");exit(-1);} double Fs[1]={1024};//因为Matlab所有参与运算的参数都是矩阵的形式,因而下列几行将参数转变double nfft[1]={1024};//成Matlab可接受的矩阵形式。T=mxCreateDoubleMatrix(1,1024,mxREAL);mnfft=mxCreateDoubleMatrix(1,1,mxREAL);mFs=mxCreateDoubleMatrix(1,1,mxREAL);mxSetName(T,"T");mxSetName(mnfft,"mnfft");mxSetName(mFs,"mFs");memcpy((char*)mxGetPr(T),(char*)datax, 1024*sizeof(double));memcpy((char*)mxGetPr(mnfft),(char*)nfft, sizeof(double));memcpy((char*)mxGetPr(mFs),(char*)Fs,1*sizeof(double));engPutArray(ep,T); //将转化的参数放入引擎中,此时可在Matlab command窗口下查看此参数engPutArray(ep,mnfft); engPutArray(ep,mFs);engEvalString(ep,"[pxx,fo]=psd(T,mnfft,mFs);"); //利用引擎执行工具箱中文件engOutputBuffer(ep,buffer,512); //如只想看显示图形,可将返回参数去掉,psd无返回参数缺省情况下会自动画图形result=engGetArray(ep,"pxx");//取出引擎中的数据放在所指的区域中供后续处理pPxx=mxGetPr(result); result=engGetArray(ep,"fo");pFxx=mxGetPr(result);engEvalString(ep,"plot(fo,10*log10(pxx));");//利用引擎画图engEvalString(ep,"title('功率谱分析');");engEvalString(ep,"xlabel('Hz');");engEvalString(ep,"ylable('db');");mxDestroyArray(T); //释放内存mxDestroyArray(mFs);mxDestroyArray(mnfft);mxDestroyArray(result);engEvalString(ep,"close;");engClose(ep);}上述程序在Vc下编译需要将 和两个动态库利用以下的命令:lib/def:<自己的Matlab的安装路径,下同>e:\ Matlab\extern\include\*.def /machine:ix86 /out:*.lib来生成程序所需的静态连接库和,将和所在的目录加入Vc++ project/link/object/library modules下即可。利用Matlab自身的编译器调用工具箱中的函数 Matlab的编译器可将Matlab的M文件转换为为C或C++的源代码以产生完全脱离Matlab运行环境的独立的运用程序,但Matlab本身的资料说明编译器如用来建立独立的运用程序,不能调用Matlab工具箱中的函数,这非常不利于搞一些特殊的算法。本人研究了一段时间发现,工具箱中的函数既然是M文件就一定可以用编译器来编译,以提供如Vc的调用函数,但是编译器只能编译一个独立的M文件,即这个 M文件不依赖于其他的M文件。如果M文件中又调用了其他的M文件,可将被调用的M文件拷贝到调用M文件的相应位置,作适当的改动就可以用于编译器编译。编译器不支持图形函数,所以M文件中如有图形函数需注释掉。当Matlab的编译器mcc加入适当的参数-e(mcc –e *.*)或-p(mcc –p *.*)就可生成将输入的M文件转换为适用于特定运用的C或C++源代码。这样如果要在Vc下编译通过,还需连入以下几个库, , , . . 以及Matlab C MATH库,建议采用前述的方法将动态连接改为静态连接。对于C/C++编译环境的设置,在Matlab command窗口下运行mex –setup 然后依提示操作,而对于C/C++连接环境的设置,运行mbuild –setup依提示操作即可。下面给出利用编译器将Matlab工具箱中文件生成可供Vc调用的函数。将文件拷贝一份至Matlab\bin目录下,改写相应调用的M文件如, 等。为生成的代码简洁,对于采集数据处理输入参数很明了的情况下可作大量的删减,最终使成为一个不依赖于其他M文件的独立的M文件,注意千万注释掉作图代码,最终改成如下形式,限于篇幅给出关键的几步: function [Pxx,f]=psd(Fs,nfft,noverlap,x)window=o,5*(1-cos(2*pi*(1:nfft)’/(nffft+1)));//hanning 窗dflag=’none’;window=window(;)………………………………….以上只要稍懂Matlab语言和信号处理知识就可完成这项工作。假设上述代码重新存为,在Matlab command 窗口下设置好环境参数运行mcc –e testwin,则可在Matlab\bin下生成 ,如运行mcc –p testwin 则生成. Vc下建立一个基于对话框的文件,然后在对话框里加一个Button控件OnButtonPsd 将上述生成的.c文件的头文件加入到工程的.cpp中,且将#ifdef_cplusplus extern “c”{#end ifc代码声明加入Vc的包含文件和生成的.C的包含文件之间将#ifdef_cplusplus}#end if加入.cpp文件未尾为了简洁且便于处理将生成的c函数稍改动,给出部分代码如下: void CTestpsdwinDlg::OnButtonPsd(){mxArray* x_rhs_;//指向采集数据存放区Fs=23510;//数据采集的频率 nfft=1024;//1024点的fftdouble datax[1024]//采集的数据x_rhs_mxCreateDoubleMatrix(1,1024,mxReal);memcpy(mxGetPr(x_rhs_),datax,1024*sizeof(double));noverlap=512;……………….……………….mccCopy(&Pxx,&Spec);mccCopy(&f,&frevgg_vector);for(int j=0;j<(int)(nfft/2+1);j++){datap[j]=mccGetRealVectorElement(&Pxx, (j+1));//功率谱密度存于datap[]数组dataf[j]=mccGetRealVectorElement(&f, (j+1));//相应频率存于数组dataf[]中}mccFreeMatrix(&Pxx);……………….SendMessageBox(WM_PAINT,0,0);//利用Vc下的图形函数画图Return;}如上生成的程序可读性不太好,而生成的c++代码则可读性较好,但千万注意只能用 Matlab的MATH库,不可用c++的MATH库,否则编译会出错,限于篇幅在此不述。3)利用Matcom调用工具箱中的函数Matcom编译M文件,先将M文件按照与Matcom的cpp库的对应关系翻译为cpp源代码,然后用对应版本的c编译器将cpp文件编译成相应的exe或dll文件,所以第一次运行要指定c编译器的路径,否则无法编译,指定好的编译信息就写在Matcom\bin\文件中,不过这一步按装matcom时,它自动寻找编译器并将其写入文件中,版中使用 OCX控件,因而它支持图形操作。我们依然用上述的文件,不要将图形函数注释掉,利用Mideva来生成可被Vc调用的信号处理程序。运行Mideva在主界面上直打开M文件,在菜单中选择compile to dll,输入testwin..在Matcom debug目录下可以找到这样的几个文件, ,等。 将上述和加入工程中,project/add to project/files并且在相应的文件中加入”” 加连接库:Tools\option\directory\ , 选include选项,加入e:\matcom45\lib (包含) library选项,加入e:\matcom45\lib4) project\add to project\files 文件类型选项选(.lib)将e:\matcom45\lib\加入工程中编译运行。相应代码如下:void CtestmatcomDlg::OnpsdButton(){double datap[512],dataf[512];initM(MATCOM_VERSION);//初始化matcom库Mm Fs,nfft,noverlap;//创建矩阵Mm x=zeros(1,1024);Fs=1024;nfft=1024;noverlap=128;dMm(Pxx_o);dMm(f_o);//创建并命名矩阵datax[];//数据采集的数据存于此数组中for(int i=1;i<=1024;i++){(1,i)=datax[i+1];//给x阵赋值}testwin(Fs,nfft,noverlap,x,i_o,Pxx,f_o);//matcom生成的函数for(i=0;i<513;i++){//取出功率谱密度分析结果dataf[i]=(i+1,1);datap[i]=(i+1,1);}exitM();return;}可见利用Matcom进行M文件转换非常的容易,生成的代码可读性很好,以上的转换同时生成了可供Vc调用的动态连接库,其使用和一般的动态库一样使用。同时需指明Matcom不仅可转换独立的不依赖于其它M文件的M文件,同时可转换调用其它M文件的M文件嵌套。条件是这此M文件在同一个目录下面,如前所述的可直接用上述方法转换,生成了多个重载形式的psd函数结论: 利用Mtlab引擎调用工具箱中的函数可节省大量的系统资源,应用程序整体性能较好,但不可脱离Matlab 的环境运行。用Matlab编译器进行工具箱函数的调用,须转换相应的M文件使其成为独立的M文件,且不支持图形函数,转换的代码可读性不太好。用Matcom 进行转换非常方便,生成的代码可读性很好,支持图形函数,且代码执行的速度比不转换平均要快倍以上。以上程序在Vc++ 中调试通过,以上方法在工程实践中已得到很好的运用。仅供参考,请自借鉴希望对您有帮助

188 评论

静心观海一

信号自动化毕业论文

论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,下面是关于信号自动化毕业论文的内容,欢迎阅读!

【摘要】 为了保证铁路行车安全,减少人工操作,就需要通过自动控制系统来进行控制铁路电务信号工作,安全型继电器是铁路信号继电器的主要定型产品,是进行铁路电务信号控制的主要自动化控制设备。本文将对铁路电务信号设备的安全型继电器进行探讨,以提高铁路电务信号设备的自动化控制技术的运行效率。

【关键词】 铁路电务信号 安全型继电器 自动化控制技术

前言

铁路是我国国民经济的大动脉,在促进我国经济发展中发挥了重要作用,尤其是近年来,我国经济的高速发展,人民生活水平的不断提高,人们对交通运输的快捷性和安全性提出了更高的要求。为了保证铁路的安全稳定的运输,以铁路电务信号设备故障的有效控制已经成为提高安全系数的主要关键之一,是保证铁路安全有序运行的重要保障。铁路信号设备是铁路的主要设备之一,其功能就是发挥组织指挥列车安全运行,提高列车运输效率,传递各种运输信息,完善行车人员劳动条件的主要设施,其重要性是不言而喻的。为了保证铁路行车安全,减少人工操作,就需要通过自动控制系统来进行控制铁路电务信号工作,安全型继电器是铁路信号继电器的主要定型产品,是进行铁路电务信号控制的主要自动化控制设备。

一、安全型继电器的概述

安全型继电器是我国自行设计和生产的铁路信号专用继电器。是运用24V直流系列的重弹力式直流电磁继电器,工作方式是重、弹力返回的来进行的,其基本结构是无极继电器。结构组成是由电磁系统和接点系统构成,电磁系统包括线圈、固定的铁心、轭铁和可动的衔铁,接点系统包括拉杆、动静接点组。动作原理:当线圈中通入一定数值的电流后,由于电磁作用或感应方法产生电磁吸引力,吸引衔铁,由衔铁带动接点系统,改变其状态、从而反映输入电流的状况。也可以说是:电→磁→力→动作拉杆,F吸引力>F重力为吸起状态。安全型继电器有插入式(型号内带有C字)和非插入式两种。在信号设备中,插入式多单独使用,非插入式常应用在有防尘外壳的组匣式设备中。

二、铁路电务信号中的继电器的应用

铁路电务信号中继电器的选择,继电器的名称表述,以及继电器的定位都非常重要,才能更安全有效的应用在继电器中。

1、继电器的选择原则。首先要知道继电器的原理、技术参数、使用条件、结构工艺特点和规格型号,同时还要知道线圈电阻,被控回路的性质、特点以及对继电器的要求,并满足每种电路的基本要求。其次还要知道继电器的关键技术性能,尤其是触点负荷 ,动作时间参数,机械和电气寿命等。尤其是在铁路电路中使用串联使用继电器时,串联继电器的数量满足电压的要求。继电器接点通过的电流不要小于电路的工作电流,当无法满足要求时需要采用并联技术。继电器接点数量不够,尤其是无法满足电路要求时,设置复示继电器反映主继电器工作状态。电路中串联继电器接点时,接点的接触电阻满足电路要求,以更好满足电路正常工作为原则。

2、继电器的表述。继电器的名称符号一般是根据它的主要用途和功能来命名的,例如:按钮继电器为AJ,信号继电器为XJ等。在同一功能和作用会用到许多继电器,,它们的名称必须加以区别。如:XLAJ,SLAJ等。XLA,代表下行进 站信号机的列车进路按钮继电器,STAJ代表上行通过按钮继电 同一个继电器的线圈和接点必须用该继电器的名称符号来标记,以免互相混淆。而且在同一个继电器的'各接点组还要用其编号来区分,以杜绝重复使用的目的。

3、继电器的定位。继电器有吸起状态与落下状态两种。在电路图里只可以表达这两种状态中的一种。电路图中继电器呈现的状态称为通常状态或者叫做称为定位状态。在铁路信号系统里需要遵循以下原则来规定定位状态。一是继电器的定位状态应和设备的定位状做到相一致,信号布置图中所反映的设备状态约定为设备的定位状态。如:信号机通常以关闭为定位状态;道岔以开通定位为定位状态,轨道电路以空闲为定位状态。二是依照故障、安全的原则,要求继电器的落下状态和设备的安全侧做到相同。如信号继电器的落下应与信号关闭相一致,轨道继电器 落下应与轨道电路占用相一致。这样,才能实现电路发生断线故障 时导向安全侧。在电路中只要是以吸起为定位状态的继电器,其接点和线圈均以“↑”符号表示,只要是以落下为定位状态的继电器,其接点和线圈以“↓”表示。三是继电器的符号。对于线圈必须注明其定位状态箭头和线圈端子号。对于继电器的前接点和后接点,只标出其接 点组号,而不必详细表明动接点、前接点、后接点号。

三、安全型继电器检修和调整

在铁路电务信号设备的应用过程中,难免会出现一些问题状况,所以对于安全型继电器应该还需要做好检修与调整工作。

1、电磁系统的检修。电磁系统的检修包括线圈和磁路的检修,磁路又包括钢丝卡,轭铁,衔铁和磁系统的清理工作,在线圈的检查工作中要对破损并没有影响机械强度,可采取环氧棚旨粘补。假设线圈引线出现断股与假焊的问题,就需要进行重新焊接工作。在磁路检修中,检查衔铁要对有没有变形进行查看,在衔铁工作要看和铁心的表面是不是平行。同时要注意气隙的均匀保证,这样才可以使得其具有良好的导磁性。对衔铁的扭曲时要在钳工平台上修理。假设出现衔铁刃磨损严重应用细锉修理,达到无法修复要对其及时更换。

2、接点系统的检修。接点系统的检修,包括对托片及接点片是不是有伤痕,查看镀层是不是完好无损,接点片与银接点的焊接牢固不牢固。对拉杆、绝缘轴和动接点轴,要平直安装拉杆,不能偏离固定角度。偏离角度要做校正工作。

3、调整磁路与接点系统工作。一是接点架与轭铁间隙调整,假设间隙没有达到4mm这个标准,应该取出的进行修理,调整接点架的角度,以及安装的高度。这一步做好后要用螺丝紧固,并再次打眼装稳钉。二是衔铁角度口,应先取出衔铁,用量角器量出衔铁角度,角度大小应根据间隙值而确定大小。三是衔铁做自由落下,用塞尺做检查工作。衔铁动程和后接点共同行程,后接点压力需用测牛(克)计测量。还有包括对对后接点初压力进行调整;调整后接点和动后离间隙的位置;调整接点接触齐度;下止片和重锤片间的间隙距离~lmm范围,要对其做调整工作。以及电气特性测试等方面的工作。

参考文献

[1] 龙凡.关于铁路信号工程施工的思考[J].中小企业管理与科技,2011(4).

[2] 张清清. 铁路信号设备故障诊断专家系统设计研究[J]. 企业技术开发. 2016(09)

156 评论

社区人员

东北大学通信工程参考书目:《信号与系统》第二版 郑居里 高等教育出版社 2000年5月

230 评论

独孤道兵

围绕自己在那个学校的学习生涯来学- - 我作文不是很好 说说试试 ̄. ̄

348 评论

相关问答

  • 信息技术与信息化期刊百度百科

    不是虚假杂志,《信息技术与信息化》(双月刊)创刊于1976年,由山东电子学会主办。《信息技术与信息化》从信息技术的研究、应用角度展现IT行业与科技发展与进步,是

    爆米花糖糖 2人参与回答 2023-12-08
  • 汽车照明与信号系统毕业论文

    汽车驾驶与维护常见错误分析研究随着电子技术在汽车上的普遍应用,汽车电路图已成为汽车维修人员必备的技术资料。目前,大部分汽车都装备有较多的电子控制装置,其技术含量

    阿波罗三下 3人参与回答 2023-12-05
  • 百度学术的论文统计数

    学位论文参考文献的标注为:作者.文献题名[D].保存地点:保存单位,年份. 学位论文不存在期刊投稿,不存在卷(期),到年份就结束了。期刊文章的的标注为:主

    中基惠通 3人参与回答 2023-12-11
  • 信号系统论文模板

    plc是一种数字运算操作的电子系统,专为在工业环境下应用而设计。下面是我为大家精心推荐的plc论文范文,希望能够对您有所帮助。 PLC概述及维护 摘要:针对在信

    逍遥无涯子 3人参与回答 2023-12-09
  • 优秀信号与系统毕业论文

    摘 要:随着技术革新的不断发展,产业融合正日益成为产业经济发展中的重要现象。产业融合产生的前提是技术融合、业务融合、市场融合以及产业管制环境的变化。按照技术发展

    egyptshizhe 4人参与回答 2023-12-12