提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
整体思想:Simulink生成模型的DLL文件,在LabVIEW中通过MIT工具包调用
本科时做大创项目,除了要在Simulink里搭建仿真模型调试算法,老师还要求我们在LabVIEW设计一个控制界面,能够随时改变2个输入量:光照和温度,并实时观察4个输出量:蓄电池电流、母线电压、光伏电池输出电压、功率,如图所示。
话不多说,直接进入正题!!!
一、软件的版本和安装
为搭建MATLAB和LabVIEW的联合仿真环境,在LabVIEW 2012及以前的版本中,可以用工具包SIT(Simulation Interface Toolkit)完成,该工具只支持32位MATLAB软件,可以实现两者同步运行并通信。
但在LabVIEW 2013及以后的版本中,因硬件更新的需要,NI公司不再提供SIT,而是开发出一种新的接口工具MIT(Model Interface Toolkit) MIT可以集成来自各种模拟环境和编程语言的模型,MIT支持C/C+ + , LabVIEW和其他15种以上的环境。此外,NI在设计时考虑到可用性的要求,提供更易于使用的API和新功能,例如同时执行多个模型的能力。
MIT需集成并打包在NI VeriStand中,所以首先需要搭建MATLAB和NI VeriStand的联合仿真环境。NI VeriStand可同时支持32位和64位的MATLAB软件,但不能像SIT那样实现同步运行并通信,而是需要将MATLAB模型通过VeriStand编译成DLL文件,然后由LabVIEW调用实现联合仿真
1.软件的版本问题
软件的安装和配置是联合仿真实验的关键步骤,且需要遵循一定的顺序。(顺序不对问题也不大)
应首先安装MATLAB R2019b和LabVIEW 2021,然后安装Microsoft Visual Studio 2017(即Visual Studio 2017,内含Microsoft Visual C + +2017)以及用于Windows的Microsoft Windows SDK和.NET Framework 3. 5 SP1,最后安装NI VeriStand 2021 Model Framework(内含模型接口工具MIT)。
这里的版本是我自己的选择,大家可以试试别的版本
至于哪些软件版本适配,可以参考官网
NI官网VeriStand Model Generation Support and MathWorks Simulink® Compatibility
2.MATLAB2019b安装
这个都会,随便找个公众号下个盗版的
别问我为啥选2019b,其他的不知道,反正2019a试了不行
这里建议装在C盘,Veristand也装在C盘
3.LabVIEW2021及MIT安装
这里还是建议大家下个盗版的,因为模型接口工具箱Model Interface Toolkit (MIT)好像是需要激活的,不然只有30天的试用期
LabVIEW应该只能装在C盘
下载好后打开 NI Package Manager ,搜LabVIEW Model Interface工具包2021 ,然后安装(我这是已经安装好了的,所以显示移除)
安装选项中有个Veristand Model Framework ,一定要选上(已经远远看到Similink的字眼了,窃喜)
安装好后在已安装界面中,要看到LabVIEW Model Interface工具包和Veristand Model Framework
接着再检查一下自己的C盘,有没有Veristand的文件夹,就算安装好了
3.Visual Studio 2017安装
这个简单又免费,应该都会
安装的时候注意一下Microsoft Windows SDK和.NET Framework 3. 5 SP1这两个要选上
二、软件的关联
1.将VC++和MATLAB进行关联
在MATLAB命令行输入mex -setup, 然后选择mex -setup C++,即选择Microsoft Visual C+ +2017以进行C语言编译
2.将VeriStand和MATLAB关联
通常安装完VeriStand后,VeriStand和MATLAB会进行自动关联,这时打开使用的MATLAB环境,会在命令窗口前2行显示如下信息:
如果没有看到NI VeriStand Server启动消息,则需要手动关联,参考大佬
CSDN:matlab和NI VeriStand联合仿真环境搭建(一)
执行如下步骤:前往C:\ProgramFiles\MATLAB<Version\toolhox\ local 目录,滚动到文件底部,添加两行配置信息:
addpath(‘C:\VeriStand’);
NIVeriStandAddPaths;
如果还不可以,参考大佬的方法,将下面这段代码加入最后(记得修改Veristand的文件位置)
CSDN:Matlab联合VeriStand开发环境搭建
if exist(getenv('NIVERISTAND_ROOT'), 'dir') == 7;
try
addpath(getenv('NIVERISTAND_ROOT'));
NIVeriStandAddPaths;
catch
warning(['A problem occurred initializing or executing an NI VeriStand component. Error detected was: ' lasterr]);
end
else
warning('Unable to determine the installed version of the NI VeriStand Model Framework. Confirm the system environment variable, NIVERISTAND_ROOT, specifies a valid path.');
end
addpath('D:\National Instrument\anzhuang\VeriStand 2018');
NIVeriStandAddPaths;
最终显示关联成功
大功告成!!!
三、编译DLL
前期工作终于结束,这里我们先编个简单的Simulimk模型(将输入乘以二输出)试试水
参考大佬CSDN:Labview模型接口工具箱Model Interface Toolkit (MIT) 的使用
1.Simulink搭建模型
关联成功后,打开Simulink的库,找到Veristand Blocks ,可以看到 NIVeristand In1 和 NIVeristand Out1 ,这就是后面在LabVIEW里的输入和输出。
搭建个简单的乘以二的模型
2.设置参数
设置 Fixed-step 和 0.01
选择 NIVeristand.tlc 和 C
3.生成DLL
先选择文件夹,再点击Build生成,最后显示Build成功
四、搭建LabVIEW模型
这里的LabVIEW模型跟大佬的CSDN:Labview模型接口工具箱Model Interface Toolkit (MIT) 的使用不太一样,大佬的我运行不了,于是稍作修改,供大家参考
(LabVIEW实在是不精通,过程可能有些繁琐,也可以在文章结尾直接下载DLL压缩包参考)
1.找元件
在LabVIEW的库中找到 Model Interface,前四个都能用上,都选上
再从 Array 中找到 Build Array ,也选上
在前面板找到 Numeric Control 对应Simulink里的输入,
右击刚选择的 Numeric Control ,选择Change to Indicator
再右击,选择Change to Array,就成为对应Simulink里的输出
2.搭建
将它们组合起来,绿色方框里是Simulink生成的DLL文件地址(温度 功率的名字是我随便取的无所谓)
前面板如图所示,运行后改变输入,输出显示为输入的2倍
五、应用
前面已经验证:LabVIEW调用Simulink模型编译的DLL文件实现控制,是可行的。
下面就应用到自己的模型中去
直接封装 2输入 4输出
同样的步骤,最后调用
但因为涉及到步长,所以LabView模型要更复杂一些
(如果大家问的比较多的话,后面可能会再出一期的 哈哈哈)
最后的前面板操作界面(看着还是很吊的)
总结
这个大创项目是大二搞的,当时为了实现调用走了很多弯路(甚至把WIN11卸了,重新装回WIN10),也花了很多时间。
其实过程倒不是太复杂,可惜网上的参考资料实在是太少,好在最后是成功了。
当时就有写教程的打算,毕竟自己淋过的雨…
最近在学习智能运维,阴差阳错又要用到LabVIEW,把之前的东西又捡起来了,于是本文应运而生。
DLL压缩包百度网盘下载(直接解压到桌面应该就可以运行,内含:范例的Simulink模型Slxc文件,编译生成的DLL文件,LabVIEW模型)
通过百度网盘分享的文件:dll.7z
链接:https://pan.baidu.com/s/1jbU9nC-RIk5VyKB98XHR0A?pwd=dcnj
提取码:dcnj
水平有限 希望能对大家有帮助
欢迎批评指正交流 QQ:1239221451