Multisim的交互式仿真功能旨在帮助硬件设计更好地理解电路行为。然而,仿真的质量高度依赖于应用的信号及分析和显示仿真数据的方法。为了缩短传统设计和测试之间的距离,Multisim提供了实现和使用个性化仪器的功能,该功能基于LabVIEW并配合使用SPICE电路,可将传统的电原理图转化为虚拟原型化。现在,用户可以将实际的信号连接到Multisim中,使用输出数据驱动实际电路或者根据需要显示仿真数据。
Multisim的最新版本是NI Multisim 10.0.1。该版本的Multisim支持在LabVIEW 8.2.x和LabVIEW 8.0.x中创建的LabVIEW仪器。
需要考虑的问题
- 用户可以创建输入仪器(Multisim输入数据到基于LabVIEW的仪器)或者输出仪器(基于LabVIEW的仪器输出数据到Multisim)。
- 在仿真运行过程中,输入仪器持续从Multisim接收数据。如果需要构建或使用连接到实际I/O上的仪器(如DAQ、GPIB、串口、文件等),请考虑仿真时间(与SPICE Tmax、电原理图复杂度、CPU速度等有关)与“实时”之间的关系。
- 输出仪器不能在仿真运行时将数据传输到Multisim。这意味着数据采集、生成等需要在开始SPICE仿真前完成(例如,首先使用麦克风记录数据,然后开始仿真)。
- 基于LabVIEW的仪器在LabVIEW的项目中构建,所以需要LabVIEW 8.0或后续版本来创建新型的仪器。
- 只需要使用LabVIEW创建仪器。而不需要在运行Multisim的机器上安装LabVIEW软件。
创建输入或输出仪器几乎是同样的流程。在这篇手册中,我们将创建新型的输入仪器,从SPICE电路中接收信号,并将其与上限和下限值进行比较。我们还会解释其与创建输出仪器的不同之处。
Note: DO NOT delete any of the front panel controls or block diagram code. Everything the template comes with is required for communication between Multisim and an instrument based on LabVIEW.
注意:不要删除前面板上的控件或程序框图程序框图代码。模板中的一切内容都是在Multisim和基于LabVIEW仪器间进行通信所需要的。
步骤1:复制并重新命名模板项目
1. 将 ...samples\LabVIEW Instruments\Templates\Input 文件夹复制到新的目录中。
2. 将..\Input 文件夹重新命名为 ..\In Range。
3. 将..\In Range\StarterInputInstrument.lvproj文件重新命名为 In Range.lvproj。
4. 在LabVIEW中,双击..\In Range\In Range.lvproj项目文件将其打开。
5. 在Starter Input Instrument.vit上点击右键,并选择Save As。在弹出的对话框中,将模板重新命名为In Range Instrument.vit。
6. 重复相同的过程将Starter Input Instrument_multisimInformation.vi 重新命名为 In Range Instrument_multisimInformation.vi (注意:不管为子VI选择什么样的名称,都必须保持“_multisimInformation.vi”的扩展名,使得Multisim能够加载仪器)。
7. 保存项目。
步骤2:指定界面信息
1. 在In Range_multisimInformation.vi 上双击将其打开。
2. 切换到VI的程序框图中 (按 Ctrl-E, 或者点击Window > Show Block Diagram)。
3. 输入下列信息:
1. Instrument ID = "InRange" (用于在Multisim和LabVIEW间进行通信)
2. Display name = "In Range" (显示在Multisim仪器工具列表中的名字)
3. Number of pins = "1" (设定仪器输入管脚的数目)
4. Input pin names = "In" (使用在SPICE netlist 或 netlist report中的管脚名称)
4. 保存 (File > Save) VI文件并关闭程序框图和前面板。
注意:有效的仪器可以拥有输入管脚或输出管脚,但是不能两者兼有。如果将输入管脚和输出管脚的数目都设定为>0,那么该仪器不会被认为是有效的LabVIEW/Multisim仪器。
注意:在创建输出设备时,需要为输出管脚数目和输出管脚名称填写合适的值。
构建仪器的前面板
1. 在In Range Instrument.vit上双击将其打开。
2. 选择前面板,并将其更改为下面的图形。
1. 移动 (不是删除)所有用户不该看到的控件。
2. 在前面板上点击右键,从数值控件中添加一个水平指针条。
3. 将控件重新命名为Upper Limit。
4. 在指针条上点击右键,选择数据范围,并输入如下图所示值。
5. 重复上述步骤,创建名为Lower Limit的指针条,并将其默认值设定为-5。
6. 从Boolean Control选板选板中摆放一个方形LED,并将其重新命名为In Range ?。
注意:前面板中还有一个名为“Sampling Rate [Hz]”的控件,其默认值为10kHz。该控件决定了数据从仿真传输到基于LabVIEW仪器的速率。如果需要更改该参数,可以通过更改默认值或通过在仪器界面上访问该控件来实现。
完成仪器的程序框图
1. 扩大case结构的空间(按住Ctrl键,使用鼠标左键画一个方框)。
2. 从数组选板中摆放一个“Index array”的VI,为管脚1(输入管脚)选择数据。
3. 从波形选板中摆放 "Get waveform components"的VI从连线中提取Y轴数据。
4. 在比较选板中摆放"In Range and Coerce"的VI,并将前面板的控件连接到上限和下限的终端上。
5. 从数组选板中摆放一个“Index array”的VI,并将输入连接到"In Range and Coerce" 函数的"In Range"终端上。将输出标量连接到前面板的方形LED“In Range ?”上。
6. 保存VI,并且关闭前面板和程序框图。
注意:创建输出仪器的过程非常相似,只需要将所有需要发送到Multisim的数据连接到update Initial Output Data的条件结构分支中被命名为Multisim输出管脚的控件上即可。
注意:如果需要保存电路的仪器数据(设置、控件值等),则应当在"Serialize Data" 和 "Deserialize Data"结构中加入适当的代码。
1. 展开Build Specifications,并在Source Distribution上双击将其打开。
1. 选择"Distribution Settings"条目。
2. 将Distribution Directory 改为 ...\In Range\Build\In_Range.llb。
3. 点击Build 按钮。
2. 在构建过程完成后,点击Done。
3. 保存项目 (File > Save Project) ,并关闭LabVIEW。
在Multisim内使用个性化仪器所有的所需都在Multisim安装包中提供。如果需要与同事或其它Multisim用户共享新型仪器,只需要将项目..\Build目录下的*.llb文件发送给他们。
1. 转到项目的build 文件夹 "...\In Range\Build\",并将新型的仪器"In_Range.llb" 复制到Multisim安装目录... \lvinstruments\文件夹中。
2. 启动 Multisim.
3. 从仪器工具栏的LabVIEW类型或者从 Simulate 菜单(Simulate > Instruments > LabVIEW Instruments > In Range),访问新型的“In Range”仪器。
4. 创建简单的电路,测试仪器的功能。
1. 摆放波形发生器。
2. 摆放新的In Range 仪器,并且将其连接到波形发生器的+管脚上。
3. 摆放 Ground,并将其连接到波形发生器的Ground管脚上。
4. 在波形发生器的图标上双击打开它的界面,输入如下值:
1. Waveform: Sine Wave
2. Frequency: 60 Hz
3. Amplitude: 10 Volts
5. 在 In Range 仪器图表上双击并打开它的界面。
5. 开始仿真并确认仪器的行为。