在传统的控制逻辑设计中,工程师开发出与模拟电路分享的嵌入式的代码,但是逐渐地他们需要在系统级进行交互,这个通常很难实现同时的仿真。这种仿真能力的缺乏有可能导致开发出来的嵌入式逻辑并不能很好地支持模拟电路(例如,功率电路系统),造成系统效率低于预期/设计指标。这将迫使开发者对算法进行调整并重编译。
Multisim和LabVIEW允许在系统层面上进行联合设计,通过仿真,保证了LabVIEW中开发的现场可编程逻辑门阵列(FPGA)的算法和代码可以提供模拟电路所需的运行结果以后,就可以直接用硬件进行实现,改变达到最小化。这种设计方式是Multisim 12.0新引入的概念,叫做LabVIEW联合仿真(cosimulation)。
联合仿真允许在每个时间步长中两个仿真引擎进行交互,这样就构建了一个对整个系统的闭环仿真。仿真的结果就是对整个模拟电路和数字模块的验证,包括了所有的系统的动态特性。Multisim,作为专为准备的模拟和混合信号电路仿真的环境,内置了大量顶尖半导体厂商(如Analog Devices, NXP, ON Semiconductor, Texas Instruments, 等)提供的SPICE模型。LabVIEW仿真引擎则以图形化,数据流的形式有效地设计和实现控制逻辑。该引擎可以为机械和电力电子系统的嵌入式数字代码提供高级的仿真解决方案。
这样的结果是减小了原型化过程中的迭代次数(至多可以节省三次PCB制造次数),并可以用更少的编译时间来实现更准确的嵌入式代码(每次编译可以节省大约四小时)。
图1. Multisim 12.0 提供了 Multisim 和 LabVIEW 联合仿真.
了解更多关于Multisim和LabVIEW 联合仿真的基础。
逆变器是一种能量转换电路,它可以将接收到的直流电压输出转换为交流输出。决定逆变器质量的最重要的参数是转换效率以及电路设计中电力电子器件的开关速度。通常高压逆变器是应用于光伏(PV)电池和风机发电机的并网集成中。
在Wikipedia上查找更多逆变器的相关信息
逆变器的工作原理是将直流电源连接到MOSFET的偏压侧,MOSFET的门极由高频率的脉宽调制(PWM)信号控制。MOSFET的输出侧连接到一个低通滤波器上,可以滤除输出信号中的高频成分。闭环的反馈由逆变器输出采样通过比例积分微分(PID)控制逻辑输给PWM发生器来实现,可以保证输出满足幅值要求,并且相位符合系统相位(通常是电网的相位)。
其它资料
硬件设计的第一步是在Multisim和LabVIEW中设计桌面仿真,这也是本文的重点。不同的系统框图和系统信号流在下图2中展示。
图 2. 系统框图和信号流
Multisim中的模拟电路由三个部分组成。
电路图如图3所示。方便地将下面的片段拖放到你的Multisim 12.0环境中即可。
图 3. 在Multisim中设计三相逆变器电路
该Multisim设计的输入是6个门极开关信号(s1到s6),其它所有连接到输出端口的信号是作反馈控制和采样用。
下面的表格是从Multisim LabVIEW接口列表中导出的,列出了所有接口的类型
LabVIEW 接口 |
正接口 |
负接口 |
模式 |
类型 |
|
Input |
|
|
|
|
|
s1 |
s1 |
0 |
Input |
Voltage |
|
s2 |
s2 |
0 |
Input |
Voltage |
|
s3 |
s3 |
0 |
Input |
Voltage |
|
s4 |
s4 |
0 |
Input |
Voltage |
|
s5 |
s5 |
0 |
Input |
Voltage |
|
s6 |
s6 |
0 |
Input |
Voltage |
|
Output |
|
|
|
|
|
Va |
Va |
0 |
Output |
Voltage |
|
Vb |
Vb |
0 |
Output |
Voltage |
|
Vc |
Vc |
0 |
Output |
Voltage |
|
Va_l |
Va_l |
0 |
Output |
Voltage |
|
Vb_l |
Vb_l |
0 |
Output |
Voltage |
|
Vc_l |
Vc_l |
0 |
Output |
Voltage |
|
I_Lf1 |
I_Lf1 |
0 |
Output |
Voltage |
|
I_Rload1 |
I_Rload1 |
0 |
Output |
Voltage |
|
Vdc_link |
Vdc_link |
0 |
Output |
Voltage |
|
Vneutral |
Vneutral |
0 |
Output |
Voltage |
|
Unused |
|
|
|
|
LabVIEW控制虚拟仪器(VI)包括了几个子模块,都放置在以500kHz频率运行的控制设计与仿真循环中。每一个模块都可以实现展示在设计流程框图中的一项操作。
RMS IP核控制系统采集负载电压并计算线电压的RMS值(50或60Hz).RMS的计算值在第一个循环的计算中无效。
图 4. RMS VI 和程序框图
PID控制模块的任务是根据用户输入的目标值和PID控制参数Kp, Ki, and Kd来调整三相输出的线电压幅值。
图 5. PID 控制VI 和程序框图
模拟电路设计中的输出滤波器会在输出线电压中造成相位延迟。PLL模块可以获取电网的相位信息并锁定生成的PWM控制信号的相位,这样,输出的线电压就可以与电网配合上,实现并网。电网在这里使用了一个主框图中的虚拟函数模块来表示,本教程之后会展示其框图。
图 6. PLL 快速VI
图7中的FPGA IP核可以生成一个10 kHz的三角波用于脉宽调制。通过基于PID控制器产生的幅值信息和从电网处取得的相位信息可以生成目标正弦波,将该正弦波与角三角波进行比较可以完成PWM操作。生成的PWM信号反馈给Multisim来控制开关器件的工作模式。
图7. 三角波生成 VI 程序框图
系统仿真图形化界面包括了用户定义参数控件,例如PID控制参数,可变的RMS输出设定值,输出滤波器相位偏置和锁相环增益等。输出线电压和电网电压会实时地显示在控件中。
图 8. LabVIEW中的完整的系统框图
图 9. VI展示的系统在0.02秒以后的仿真结果
图10. VI 展示的系统在0.12秒以后的仿真结果
仿真结果展示系统运行0.02秒以后,三相逆变器的输出电压并没有与电网电压吻合,因为反馈系统还没有稳定,仍然处理初始化阶段。仿真结果显示系统大概需要0.1秒的时间来将输出线电压吻合到电网线电压。
这个非平行的系统仿真解决方案包括所有模拟电路和FPGA控制逻辑的动态特性。可以作为设计前期对系统性能的评估,同时可以节省仿真时间和原型化成本。
下一个开发环节是将模拟电路原型化为硬件电路,并且编译FPGA IP,再将编译后的代码装载到目标硬件中,创建一个基于FPGA的实时硬件在环和RCP仿真。
查看该系统的完整的仿真设计参考以及快速原型化指南获取带RLC滤波器和负载的三相单级逆变器的实时仿真演示。实时的硬件在环仿真是执行于FPGA硬件上,使用LabVIEW编译,工作于1MHz。基本的500kHz正弦PWM控制系统也是由FPGA实现,配合NI 9401 C系统数字输入/输出模块完成HIL和RCP循环的通讯。
使用NI Ultiboard你可以实现快速和简便的PCB原型设计。
Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.