labview调用MATLAB模型DLL文件的具体方法

您所在的位置:网站首页 simulink生成dll labview调用MATLAB模型DLL文件的具体方法

labview调用MATLAB模型DLL文件的具体方法

2023-05-12 23:58| 来源: 网络整理| 查看: 265

本文档叙述使用NI的VeriStand架构,生成可在LabVIEW环境下使用MIT模块调用的动态链接库(DLL)

 

第一章 准备阶段

1.1 软件安装

(1)本方法所适配的软件版本为:MATLAB2016a、VS2010 、LabVIEW2018、VeriStand2018 SP1

(2)安装顺序为先安装 :VS2010,MATLAB,再安装LabVIEW,最后安装VeriStand。

注意:Matlab安装路径不能有空格键

 

1.2 软件直接联通显示

(1)安装完毕之后,打开MATLAB,显示NI VeriStand Model Simulation Server started表示软件安装无误,如图1所示,可以进行代码转换。

 

 图1 软件中MATLAB和Veristand连通提示

 

(2)在matlab命令窗口中输入mex -setup ,若得到图2所示,表示已经下载完成合适的编译器

图2 MATLAB中有相应的编译器

 

 

 第二章 MATLAB中生成DLL文件的具体步骤

 

步骤一:将simulink的控制器分离出来,留出所需要的输入输出接口,如图1所示。

图2 控制器原始框图

步骤二:配置NI VeriStand接口:

(1)在simulink中打开Library Browser,向下拖动,找到NI VeriStand Blocks并点击,出现如图3所示,在右边有NI VeriStand的输入输出接口。按照接口的实际数量需求,直接将其拖到控制器的simulink框图中,并输入接口信息,然后将NIVeriStandSignalProbe拖到框图中,如图4所示。

图3 在菜单栏中找到NI Veristand Blocks 控件

图4 将所需的输入输出连接完成

(2)配置完毕后,打开Model Configuration Parameters(也可点击设置按钮),先点击左侧的编译器中的Solver,设置开始时间为0,停止时间为inf(无穷),编译器种类选择Fixed-step;步长类型选择固定步长的ode3(Bogacki-Shampine),步长时间设置为0.01,如图5所示。

 

图5 步长的设置(即计算器的选择)

 

 

(3)完成后点击左侧的Code Generation,将system target file设置为NIVeriStand.tlc,编译语言选择C,如图6所示.以上完成代码转换前的配置工作。

图6 选择代码生成为Veristand形式

 

(4)然后点击右下角的Apply,最后点击上面最上方的build按钮,生成代码,如若生成代码无误,点击最上方VIEW中的Diagnostic Viewer,如图7所示,生成代码的路径在红色椭圆圈内。按路径打开文件夹,DLL如图8所示。

图7 DLL文件生成的路径

 

图8 在该路径下找到所生成的DLL文件

 

第三章 labview调用MATLAB生成的DLL文件的具体步骤

 

以上已经完成dll的生成工作,接下来是在LabVIEW中进行调用。调用dll使用MIT(Model Interface Toolkit)模块,此模块在安装VeriStand软件时已经附带安装完毕。我们可以打开LabVIEW软件的程序界面,右击下拉到控制与仿真,查看model Interface,说明MIT模块安装成功,如图9所示。确认MIT安装无误后,开始在LabVIEW中调用dll。

 

图9 打开labview 控制与仿真中的MIT模块

 

(1)步骤一:在LabVIEW中搭建框架,先建立循环,然后使用刚刚的MIT模块,调用dll主要使用三个子VI,Load Model.vi、Take Model Time Step.vi、Unload Model.vi,程序执行过程为确定dll路径,执行dll,卸载模型。

需要注意以下两点:

1. 在实际转换代码过程中,偶尔会遇到接口顺序错乱,简单来说就是控制器的simulink输入接口顺序在转换DLL后的顺序出现错乱,这种情况偶有发生,但是为了避免出错,在每一次代码转换后,我们都应进行DLL输入输出接口的校验。校验的方法如图10所示,在Load Model.vi后面添加Get Paths.vi,并将下面的多态VI选项更改为Imports以及Outputs,并添加输出显示,通过前面板查看输入输出的参数是否与simulink上一致。

 

图10 调用程序的编写

Simulink与labview输入输出对比如图11所示,可以看到输入参数顺序明显发生了变化。

图11 界面显示

2.将循环的隧道替换为移位寄存器,否则积分不能实现。如图11所示,椭圆圈内代表的移位寄存器,正方形内代表的隧道。使用时需要将上下两个都替换为移位寄存器,图示的只是作为描述使用。

 

 

图12 加入循环的程序

以上即可对MATLAB中的模型在labview中进行调用

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3