发明内容
本发明解决的问题在于提供一种基于FPGA的仿真系统及方法,可以提高对待模拟器件的仿真速度。
为解决上述技术问题,本发明的实施方式提供了一种基于FPGA的仿真系统,包含:建立模型模块、处理模块与现场可编程门阵列FPGA模块;
所述建立模型模块经所述处理模块与所述FPGA模块连接;
所述建立模型模块,用于利用图形化编程方法搭建待模拟器件的电路拓扑模型;
所述处理模块,用于将所述建立模型模块建立的所述电路拓扑模型映射到所述FPGA模块,并控制所述FPGA模块根据所述电路拓扑模型进行解算,对所述待模拟器件进行仿真模拟;
其中,所述FPGA模块还用于在首次接收到待模拟器件的电路拓扑模型时对所述电路拓扑模型进行编译。
本发明的实施方式还提供了一种基于FPGA的仿真方法,应用于基于FPGA的仿真系统;其中,所述基于FPGA的仿真系统包含现场可编程门阵列FPGA模块;
所述基于FPGA的仿真方法包含以下步骤:
利用图形化编程方法搭建待模拟器件的电路拓扑模型;
将所述电路拓扑模型映射到所述FPGA模块,并控制所述FPGA模块根据所述电路拓扑模型进行解算,对所述待模拟器件进行仿真模拟;
其中,所述FPGA模块还在首次接收到待模拟器件的电路拓扑模型时对所述电路拓扑模型进行编译。
本发明实施方式相对于现有技术而言,由于FPGA(Field Programmable GateArray,现场可编程门阵列)模块的仿真步长可以达到纳秒级别,所以可以利用FPGA模块对待模拟器件进行高速仿真;而且,FPGA模块仅在首次接收到待模拟器件的电路拓扑模型时对电路拓扑模型进行编译,之后无论电路拓扑模型的电路拓扑结构和参数是否调整,不再对待模拟器件的电路拓扑模型进行编译,可以大大缩短待模拟器件的开发周期。
另外,所述FPGA模块还用于对所述电路拓扑模型中的电力电子开关器件、储能元器件进行离散化处理,将所述电力电子开关器件、所述储能元器件均等效为定导纳与电流源并联的电路。对电路拓扑模型中的电力电子开关器件、储能元器件进行离散化处理,可以实现对待模拟器件进行高效实时仿真。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明的第一实施方式涉及一种基于FPGA的仿真系统,具体结构如图1所示,包含:建立模型模块、处理模块与FPGA(现场可编程门阵列)模块,建立模型模块经处理模块与FPGA模块连接。
建立模型模块用于利用图形化编程方法搭建待模拟器件的电路拓扑模型。处理模块用于将建立模型模块建立的电路拓扑模型映射到FPGA模块,并控制FPGA模块根据电路拓扑模型进行解算,对待模拟器件进行仿真模拟。其中,FPGA模块还用于在首次接收到待模拟器件的电路拓扑模型时对电路拓扑模型进行编译。
相对于现有技术而言,由于FPGA模块的仿真步长可以达到纳秒级别,所以可以利用FPGA模块对待模拟器件进行高速仿真;而且,FPGA模块仅在首次接收到待模拟器件的电路拓扑模型时对电路拓扑模型进行编译,之后无论电路拓扑模型的电路拓扑结构和参数是否调整,不再对待模拟器件的电路拓扑模型进行编译,可以大大缩短待模拟器件的开发周期。
下面以在MATLAB/Simulink的SimPowerSystems中搭建建立模型模块、待模拟器件为直流变压器为例进行详细说明。Xilinx System Generator(XSG)是Xilinx公司开发的基于MATLAB/Simulink的工具箱,是业内领先的高级系统级FPGA开发工具,可以和Simulink实现无缝连接,快速建模并自动生成代码。此外System Generator(系统生成器)集成了先进的FPGA设计工具及IP核,支持Xilinx公司全系列的FPGA芯片,提供从初始算法验证到硬件设计的通道。其最大特点就是可利用Simulink建模和仿真环境来实现FPGA设计,而无需了解和使用RTL(寄存器转换级)硬件语言,充分发挥FPGA的性能和灵活性,缩短开发周期。
在本实施方式中,处理模块包含解算映射子模块、调理子模块、数据接收子模块与数据发送子模块;FPGA模块包含控制子模块、解算子模块、数据输入子模块与数据输出子模块。其中,解算子模块与建立模型模块、数据发送子模块分别连接,数据发送子模块还与数据输入子模块、调理子模块连接,调理子模块还与数据接收子模块连接;数据输入子模块分别与解算子模块、控制子模块连接,解算子模块与控制子模块、数据输出子模块分别连接,数据输出子模块还与数据接收子模块连接。
仿真时,在MATLAB/Simulink的SimPowerSystems中利用图形化编程方法搭建直流变压器的电路拓扑模型,其中直流变压器中的元器件包括功率开关管、电感、隔离变压器、受控电压源,还包括电压电流的测量模块;其中,功率开关管为电力电子开关器件,电感为储能元器件。在MATLAB/Simulink的SimPowerSystems中可以调整直流变压器的电路拓扑模型的拓扑结构和参数。
在本实施方式中,直流变压器的电路拓扑结构为双有源桥(DAB)电路,具体如图2所示,也就是双向全桥DC/DC变换器(双向全桥直流变换器)。DAB电路包含电压源型换流器201、电压源型换流器202与变压器T。DAB电路可以实现电压与功率的双向流动,其直流端分别与待互联的两个直流电网相连接,交流端通过交流变压器T互联在一起。两直流电网间传输的功率将先经过一个换流器201,经直流/交流变换逆变为交流电,该交流电经交流隔离变压器T传输至另一个换流器202的交流端,再由另一个换流器202经交流/直流变换整流为直流电。
其中,电压源型换流器201包含IGBT(绝缘栅双极型晶体管)s1、s2、s3、s4与电感L,U1为输入电压、uh1为电压源型换流器201的输出的交流电压,电压源型换流器202包含为电压源型换流器202的输入的交流电压,U2为输出电压,其中n为隔离变压器T的变比。
建立模型模块还在完成搭建电路拓扑模型后,生成网表文件,并将网表文件经解算映射子模块输出至FPGA模块中的解算子模块。
解算映射子模块将建立模型模块建立的电路拓扑模型映射到解算子模块。调理子模块对第一控制信号进行调理,并将调理后的第一控制信号依次经数据发送子模块、数据输入子模块输出至控制子模块。在本实施方式中,DAB电路采用单移相(single-phase-shift,SPS)控制,所以,第一控制信号为载波移相控制信号。
控制子模块根据第一控制信号产生第二控制信号,并将第二控制信号输出至解算子模块。解算子模块从网表文件中读取电路拓扑模型中的受控电源的参数,并根据第二控制信号与受控电源的参数对电路拓扑模型进行解算。
具体地说,在解算时,FPGA模块中的解算子模块对电路拓扑模型中的电力电子开关器件、储能元器件进行离散化处理,将电力电子开关器件、储能元器件均等效为定导纳与电流源并联的电路。比如,若理想开关301如图3所示,则等效开关401如图4所示。其中,is为通过理想开关301的电流,us为理想开关301两端的电压,Gs为开关导纳,js为等效电流源。
在第(n+1)个仿真步长内开关状态sn+1取决于其前一个步长的开关状态sn,其中,sn为1表示导通,为0表示关断;js_n+1表示在第(n+1)个仿真步长内的等效电流源的值,其取决于前一个步长的电压值、电流值,即vs_n和is_n,并与当前的开关状态有关,具体如式(1)所示
对于理想开关模型,工作过程可以等效成储能元件,即导通时为小电感Ls,关断时为小电容Cs。采用反向欧拉法进行离散化处理,可得
其中,T为仿真步长,vc_n为第n个仿真步长内电容Cs两端的电压,vl_n+1为第n+1个仿真步长内电感Ls两端的电压,il_n为第n个仿真步长内通过电感Ls的电流。将传统储能元件(电容、电感)利用图4所示的离散模型进行离散化,根据式(1)可得,
其中,Gc、Gl为储能元件离散等效电路的导纳,为定常数。Gs=Gc=Gl=T/Ls=Cs/T,Gs的数值决定储能元件等效的电感Ls和电容值Cs,所以Gs取值的原则就是确保Ls和Cs的值远小于储能元件本身的值。Gs的典型数值的选择在10~0.001之间。jc_n+1、jl_n+1为储能元件离散等效电路的电流源。
故而,DAB电路的离散化等效电路如图5所示。其中,Gs1、Gs2、Gs3、……、Gs8分别为s1、s2、s3、……、s8对应的导纳,js1、js2、js3、……、js8分别为s1、s2、s3、……、s8对应的等效电流源,Gl、jl分别为电感L对应的导纳、等效电流源。
解算子模块采用改进的节点分析法进行解算,其中电路拓扑模型的系统方程为
xn=A-1zn (4)
其中,A-1为系统逆矩阵,矢量x为节点电压和支路电流,矢量z为电路网络中的源,包括开关和储能元件离散模型的等效电流源和受控的电压源、电流源。当A-1为常数时,则当前仿真步长内电路网络的计算就变的非常简单,即定常数矩阵与当前仿真步长内网络源矢量的乘积。
根据上述分析可知,在离散化等效电路模型中,系统矩阵为常数,当前仿真步长内的等效电流源的值取决于前一个步长的电压、电流值,并与当前的开关状态有关。当求得当前仿真步长内的网络源矢量后,将二者相乘则可实现对当前仿真步长内电路的计算。
在1个仿真步长内,解算子模块内部的处理过程为:1)对网表文件进行初始化配置;2)根据第二控制信号进行开关状态的判断,即当前仿真步长内开关状态取决于其前一个步长的开关状态,对于可控开关器件,其开关状态由第二控制信号决定;3)从网表文件中读取网络源矢量与系统矩阵的值,其中对网络源矢量中受控电源参数进行单独读取;4)将网络源矢量与系统矩阵相乘,并将电压电流信号输出。重复上述过程,除非到达仿真终止时间或者触发复位信号。
在本实施方式中,对于DAB电路采用移相控制的方法,其等效电路如图6所示,包含H桥601、电感L与H桥602,电感L包括隔离变压器的漏感和外加电感,uL为电感L两端的电压,iL为通过电感L的电流。uh1和uh2的相位差为令为相移比,D1为每个H桥内两桥壁之间的相移比,称为内相移比;D2为两个H桥之间的相移比,称为外相移比。通过控制uh1和uh2之间相移大小和方向来控制DAB的传输功率。其中,D1=0即为单移相(single-phase-shift,SPS)控制,D1≠0即为双移相(dual-phase-shift,DPS)控制。
DAB电路传输功率的大小为
其中,fs为开关频率。
可得最大传输功率在D1=0、D2=0.5处取得,且最大值为
故而,可以为了传输最大功率,减少换流,并且更容易在FPGA中实现。在仿真时,可以采用如图7所示的开关管控制信号以及DAB电路的波形图。
本实施方式中,还包含显示模块;显示模块与处理模块连接,用于显示FPGA模块的仿真结果。
另外,在本实施方式中,控制子模块根据载波移相控制信号生成两组共8路PWM控制信号,且控制信号的占空比为0.5。两个全桥的PWM控制信号的相移延时通过时钟及双向RAM(随机存取存储器)实现的,双端口RAM一端口实现实时写,另一端口实现延迟读。当需要移相时读出RAM中上N*Ts步前的数据。通过延迟输出PWM控制信号决定两个H全桥的工作状态,整流或者逆变。将电路中的电压信号返回到处理模块中,以实现闭环控制。
需要说明的是,在实际应用时,上述的建立模型模块、FPGA模块以及处理模块均是基于MATLAB/Simulink搭建的,都可以实现离线仿真。将上述的模型下载到Xilinx的FPGA板卡中,可以实现全数字化直流变压器的实时仿真;将FPGA板卡与外部控制器连接,则可以实现硬件在环(Hardware-In-the-Loop,HIL)半实物实时仿真。
另外,本实施方式中的基于FPGA的仿真系统还可以对其他电力电子器件进行仿真模拟,不限于本实施方式中的直流变压器。
本发明第二实施方式涉及一种基于FPGA的仿真方法,应用于第一实施方式中的基于FPGA的仿真系统;其中,基于FPGA的仿真系统包含:建立模型模块、处理模块与现场可编程门阵列FPGA模块;建立模型模块经处理模块与FPGA模块连接。
在本实施方式中,基于FPGA的仿真方法,具体如图8所示,包含以下步骤:
步骤801,利用图形化编程方法搭建待模拟器件的电路拓扑模型。
在本步骤中,在完成搭建电路拓扑模型后,生成网表文件,并将网表文件输出至FPGA模块。
步骤802,将电路拓扑模型映射到FPGA模块,并控制FPGA模块根据电路拓扑模型进行解算,对待模拟器件进行仿真模拟。其中,FPGA模块还在首次接收到待模拟器件的电路拓扑模型时对电路拓扑模型进行编译。
在本步骤中,FPGA模块对电路拓扑模型中的电力电子开关器件、储能元器件进行离散化处理,将电力电子开关器件、储能元器件均等效为定导纳与电流源并联的电路。
在本步骤中,FPGA模块从网表文件中读取电路拓扑模型中的受控电源的参数,并根据受控电源的参数进行解算。
不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。