完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 njrzkj 于 2015-12-29 15:08 编辑
之前曾发帖求过这方面的相关内容,发现有很多人也有这方面的需求。现在自己弄好了,跟大家分享一下。我们都知道在labview里可以通过matlab脚本这个节点,将MATLAB的程序直接写在这里进行调用。但是这种方法只有在LabVIEW处于非运行状态时才能对其进行操作。现在问题来了:假如老师让学生用MATLAB写一个HDB3编码的程序,每个学生写的可能都不一样,老师没时间一个个的给她们过,验证结果是否正确。然后想用LabVIEW做一个程序,使程序在运行状态的时候能够动态随机的导入学生们写的程序,以验证其是否正常。现在的关键是怎么使LabVIEW在运行的时候能够导入事先写好的.M文件? 关于这个问题,LabVIEW自带的例程里是有一个相似的。可以说是在MATLAB脚本框里调用MATLAB的.M子函数的程序“MATLAB script node - Lorenz Diff Eq.vi”,打开这个程序可以看到如下所示的调用方式。运行这个程序,名为LorenzEqs的这个M文件将自动导入到程序当中,这时候可以看到前面板上图像的变化过程。 但是,假如这时候我把这里面的语句改一下,例如将"path(path,pa)"注释掉"%path(path,pa)",即不导入这个文件了,这时候再运行程序,前面板上的图像应该为空才对。但是图像还是一样在变化。再者把这里面的几条语句全都注释掉,这样就相当于一个空的MATLAB脚本了,这时候前面板应该是没有任何变化的吧?可是运行程序后发现图像仍然在变化。关掉这个程序,不用保存。再次打开的的时候,先把“%path(path,pa)”注释掉,然后再运行,发现有报错,即在后面要用到LorenzEqs这个子函数的时候没有找到这个.M子函数的文件;去掉注释,把最后一句应用这个子函数的语句注释掉,再运行程序时发现有如下报错。因为把有“t”这个变量的语句注释掉了,程序肯定就会报错了。至此我们可以知道,不是改变语句对程序没有影响,而是一开始就正确运行程序时,被调用的.M函数文件已经加载到LabVIEW的内存当中,这时候再去改变语句,使其不调用这个函数已经没有用,内存中有的,程序会默认从内存里调用来执行。这样就达不到动态性和随机性。更重要的是,每次运行程序之后,调用的文件就被加载到内存中了一直没有释放掉,这样会造成程序在后面的运行中由于内存的泄漏而卡死,使程序的性能下降。 找到问题的关键再去解决问题就容易多了。都是获取文件的路径,用范例里“path(path,pa)”的方式获取到的文件就直接加噪到内存中没有释放掉,这里不是我们所需要的。在MATLAB里获取文件路径的方式还可以通过cd( )函数来获取。cd(str),这里的str是一个char类型的数组,存储了某个文件的路径。我们直接调用这个cd(str)函数就可以实现获取要调用函数的路径。而调用的函数文件保存的名称可能是不一样的,为了能够动态识别文件名,这里用eval( )函数来实现自动识别文件名。y=eval(d)、[y,ys]=eval(d)中的y或[y,ys]表示所调用函数中的返回参数;d为函数文件名字符串。若已知要调用的函数名是什么也可以直接代替这里的eval( ),只要调用形式一致就可以。程序见附件。这里值得注意的是,跟MATLAB的要求一样,要调用的.M文件的保存路径必须要是全英文的,否则调用时识别不了路径就会报错。 第一次发技术贴,语言表达也不太流畅,有什么不对的地方还望谅解。希望能够对大家有帮助就可以了。 |
|
相关推荐
2 条评论
82个回答
|
|
|
谢谢楼主分享!
|
|
|
|
|
|
想问楼主,用matlab编写了大量的代码,怎么用labview调用在matlab中编写的代码,特别注意的是在matlab中编写的代码很多,是一个小型的诊断系统,想用labview实现,这个该如何实现?
|
|
|
|
|
|
请问楼主,用matlab编写了一个小型的故障诊断系统,里面有多个.m文件,怎么用labview调用matlab已经编写好的代码,使代码可以在labview上实现
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:01 , Processed in 0.521258 second(s), Total 51, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
13991