使用NI LabVIEW和NI Multisim实现数字电路和模拟电路的联
合仿真
概览
以下文档介绍了如何在NI LabVIEW和Multisim软件之间实现模拟和数字数据的联合仿真。学习如何使用LabVIEW来改变Multisim软件中的一个串联RLC电路中直流电源的电压输出值,然后将仿真后的电路输出电压回传给LabVIEW,并在LabVIEW显示图形中进行显示。
目录
1. 简介
2. 软件需求
3. 在Multisim中创建一个模拟电路
4. 在LabVIEW中创建一个数字控制器
5. 在LabVIEW 和Multisim之间实现联合仿真
6. 结论
7. 相关链接
简介
在设计和分析一些完整系统(例如电力和机械行业的一些工程应用)的时候,您需要有效地在模拟部分和数字部分之间进行设计。传统的平台不能准确地将模拟和数字部分进行综合仿真,所以设计错误会影响到物理原型,进而造成低效率而且冗长的设计过程。
现在,使用具有全新联合仿真能力的Multisim和LabVIEW,您可以为整个模拟及数字系统设计出精确的,闭环逐点仿真。
软件需求
在开始LabVIEW和Multisim的联合仿真之前,你必须按照顺序安装下面的软件。
1. 安装LabVIEW 2011完整版/专业版或更新的版本
2.安装LabVIEW控制设计与仿真模块2011或更新版本
3. 安装Multisim 12.0或更新版本。在安装Multisim的过程中选择安装NI LabVIEW-Multisim Co-Simulation 插件。
4.现在,你已经成功安装了LabVIEW与Multisim联合仿真所需的开发环境。
在Multisim中创建一个模拟电路
1. 放置一个压控电压源,这样在仿真的过程中就可以使用LabVIEW来调整直流电压输出值。右键单击,从弹出的快捷菜单中选择放置元件。 选择以下参数:
数据库: Master Database
元件组: Sources
类别: Controlled_Voltage_Sources
元件: Voltage_Controlled_Voltage_Source
点击确认来将元件放置到电路原理图上。双击该元件可以改变控制电压与输出电压的比率。如果设置比率为1 V/V,那么当LabVIEW改变1V的时候,Multisim中的压控电压源也会改变1V。
2. 在电路图上放置电阻,电容和电感。使用以下参数的理想元件:
数控库: Master Database
元件组: Basic
类别: CAPACITOR, INDUCTOR, RESISTOR
元件: C=50 µF, I=20 mH, R=10 Ω
随着Multisim 12.0的发布,您可以使用非理想电阻,电容和电感,添加元件的寄生参数。对非理想元件,使用以下参数:
数控库: Master Database
元件组: Basic
类别: NON_IDEAL_RLC
元件: NON_IDEAL_CAPACITOR, NON_IDEAL_INDUCTOR, NON_IDEAL_RESISTOR
放置元件以后,你必须双击每一个元件来改变非理想元件的值。这个时候也同时可以修改可靠的寄生参数。
3. 最后,在电路图中放置电路的地。在选择元件对话框中,选择以下参数:
数据库: Master Database
元件组: Sources
类别: Power Sources
元件: Ground
4. 现在,你已经可以在电路图中添加LabVIEW交互接口,用以与LabVIEW仿真引擎之间的数据收发。这些Multisim中的接口是分级模块(Hierarchical Block)和子电路(Sub-Circuit)接口(HB/SC)。右键点击鼠标并从弹出的快捷菜单中选择 Place on schematic»HB/SC,或者简单地点击键盘 上方,另一个放置在右上方。按住Ctrl 并点击 R 将第二个接口旋转180度。按照下图将电路与接口连接起来。 5. 然后,你必须打开LabVIEW Co-simulation Terminals窗口来将HB/SC接口设置为针对LabVIEW的输入或者输出。浏览到 View»LabVIEW Co-simulation Terminals。 注意前面放置在本窗口中的HB/SC接口,为了将各个接口配置为输入或者输出,在模式设置中选择所需要的选项,然后可以在类型设置中将各个接口设置为电压或者电流输出/输出。最后,如果你想将放置的输入输出接口设置为不同的功能对,你可以选择Negative Connection。将IO1配置为输入,然后将IO2配置为输出。 6. 注意 Multisim design VI preview 会根据你所作的选择的不同不断更新。这个预览是之后你会放入LabVIEW用作与Multisim电路交互的虚拟仪器(VI)。如果你希望改变这个Multisim VI中输入与输出接口的名字,可以修改LabVIEW Terminal 设置中的文本。例如,为输入和输出模块更改Voltage_In和Voltage_Out文本。 7.完整的电路包括一个与电感,电容和电阻串联的压控电压源。压控电压源的输出电压由LabVIEW中的一个控件控制,RLC滤波器的输出传送回给LabVIEW,然后在图形化显示控件中将输入电压和输出电压同时进行显示,以便于比较。下图给出了Multisim的设计片段(Multisim Design Snippet),你可以将该片段直接拖放到Multisim环境中,将自动生成代码。 8. 保存Multisim设计于一个常用的位置,这样你可以在编写LabVIEW的时候再次调用它。现在你可以进行LabVIEW VI的编程,以完成与Multisim的通讯。 在LabVIEW中创建一个数字控制器 1.要在LabVIEW和Multisim之间传送数据,首先需要使用LabVIEW中的控制与仿真循环(Control & Simulation Loop)。浏览到LabVIEW的程序框图(后面板),右键点击,打开函数选板,浏览到Control Design & Simulation»Simulation»Control & Simulation Loop。左键点击,并将其拖放到程序框图上。 2.要修改控制仿真循环的求解算法和时间设置,双击输入节点,打开Configure Simulation Parameters窗口。输入如下图的参数;在这些选项中使用本文后面提供参数,可以有效地在LabVIEW的波型图表中显示数据。你也可以根据自己的需求改变这些参数。 3. 现在,在你的VI中添加仿真挂起(Halt Simulation)函数来停止控制仿真循环。右键点击,打开函数选板,浏览到Control Design & Simulation»Simulation»Utilities»Halt Simulation。左键点击,并将其拖放到程序框图上,然后在布尔输入上右键点击并选择Create»Control。这样就可以在VI的前面板上创建一个布尔控件来控制程序的挂起,来停止仿真VI的运行。 4.接下来,将管理LabVIEW和Multisim仿真引擎之间通讯的Multisim Design VI放置到程序框图中。右键点击,打开函数选板,浏览到Control Design & Simulation»Simulation»External Models»Multisim»Multisim Design,左键点击,并将其拖放到控制与仿真循环之中,注意,这个VI必须放置到控制仿真循环中。 当你将Multisim Design VI放置到程序框图上以后,会弹出选择一个Multisim设计(Select a Multisim Design)对话框。在对话框中你可以直接输出文件的路径,或者浏览到文件所在的位置来进行指定。 现在Multisim Design VI会生成接线端,接线端的形式与Multisim环境中的Multisim Design VI预览一致,具有相对应的输入与输出。如果接线端没有显示出来。左键点击下双箭头,展开接线端。 5. 要向Multisim中的电路传送数据,你必须首先在前面板上创建一个数字控件。可以通过右键点击输入接线端,Voltage_In,然后选择Create»Control来方便地完成创建命令。这样就能够在程序框图中放置一个数字控件的接线端,并且该接线端已经连接到了Multisim VI的输入上。程序框图中的控件在前面板上有一个对应的控件。这就是LabVIEW中的用户界面。可以按 如果你想要改变前面板中数字控件的外观,你可以调整它的大小,并随意移动它。同样,你也可以用一个转盘,旋钮,滑动杆来代替这个控件,还可以右键点击该控件,选择Replace»Silver»Numeric,然后你需要的数字控件。双击控件的最大值和最小值可以调整控件的可调范围。这里,我们将范围设置为-25到25。 6.要将Multisim中的数据显示到LabVIEW中,你需要创建一个显示控件来展示数据。因为你需要同时显示输入电压和Multisim仿真以后的输出电压结果,一个波型图表可以做得很好。在前面板的空白位置点击右键,浏览到Silver»Graph»Waveform Chart (Silver),放置并调整大小。 7. 为了准确地将输入电压和输出电压显示在一起,你需要将两个信号创建到一个数组中,右键点击程序框图,浏览到Programming»Array»Build Array 函数,左键点击并将其拖放到程序框图中。将你的鼠标指针放到Build Array函数下面中间位置,会变成大小调整指针,然后左键点击,拖动函数,将Build Array函数调整会两个输入端口。将电压调控件的输出端连接到上面的输入端口,然后将Multisim Design VI的输出电压Voltage_Out端口连接到下面的输入端口上。这样就可以创建一个两个元素的一维数组。 8. 最后,你需要在循环中放置一个函数来创建仿真时间波型以正确地显示两个波型。右键点击程序框图并浏览到Control Design & Simulation»Simulation»Graph Utilities»Simulation Time Waveform。这个VI会自动地放置一个波型图表。方便地删除点这个新的图表,并将Simulation Time Waveform VI输出端连接重新连接到已经创建好的波型图表上。将Build Array函数的输出端连接到Simulation Time Waveform的输入端上。 9. 如果想要创建更具有可读性的波型图表。浏览到前面板,右键点击波型图表,选择 属性,浏览到显示格式选项卡,在类型中选择自动格式,在位数中选择4。 然后浏览到缩放选项卡,取消时间(X轴)的自动缩放。最后,从时间(X轴)切换到幅值(Y轴),同样取消其自动缩放。这样就可以将图表的范围固定下来。点击确认应用所作的修改。 10. 接下来,双击幅值标尺的最大值和最小值,分别输入40和-40。这样就可以显示超过范围的显示值。双击时间轴的最大值,将该值设置为0.25,或250毫秒。 11.保存这个LabVIEW VI到一个常用的位置,最好是与前面创建的Multisim设计放置在一个路径下面,因为他们是一个仿真应用组。下图给出了该程序的VI片段,你可以拖放到一个空白的LabVIEW VI中,它会自动生成代码。点击more information about LabVIEW VI Snippets了解更多相关信息。现在你已经准备好进行LabVIEW和Multisim 联合仿真了。 注意: 一些浏览器不支持拖放LabVIEW VI片段功能。一个解决的办法是右键点击图片,选择Save image as…来保存图片。现在你就可以将保存后的图片拖放到LabVIEW 的程序框图中。 在LabVIEW 和Multisim之间实现联合仿真 我们已经在Multisim和LabVIEW中创建好了模拟电路和数字控制,而且我们已经建立好了数据通讯。你现在可以在两个仿真环境之间实现联合仿真,并且将结果以图形化的形式显示到LabVIE前面板的波型图表中。 1. 点击LabVIEW工具栏中的运行按钮来开始联合仿真。这个时候并不需要打开Multisim,因为此时,另一个Multisim的实例已经在后台运行。大概需要5到30秒的时间来启动这个实例,然后开始LabVIEW和Multisim仿真引擎之间的联合仿真。 2. 修改LabVIEW中的输入电压,观察从Multisim仿真引擎返回的输出电压的结果。下图显示了一个结果范例。 3. 在Multisim中修改RLC电路和参数来改变电路对输入电压的响应。如果想在仿真的过程中实时改变电阻,电容,电感的值,可以使用Multisim中的压控电阻,压控电感,压控电容,然后将LabVIEW中的控件值传送给Multisim。 结论 正如LabVIEW前面板上波型图表显示的结果所示。LabVIEW和Multisim可以有效并准确地仿真RLC电路在多种不同输入电压变化条件下的输出响应。在这个范例中,LabVIEW作为数字控制器,控制了Multisim中仿真的模拟电压中的直流电源。这是一个简单但是相当基础的联合仿真电路。当然,还有更多更为复杂的LabVIEW与Multisim联合仿真电路。 因篇幅问题不能全部显示,请点此查看更多更全内容