CN110516276B - 基于fpga的高频开关功率变换器实时仿真方法 - Google Patents
基于fpga的高频开关功率变换器实时仿真方法 Download PDFInfo
- Publication number
- CN110516276B CN110516276B CN201910485700.7A CN201910485700A CN110516276B CN 110516276 B CN110516276 B CN 110516276B CN 201910485700 A CN201910485700 A CN 201910485700A CN 110516276 B CN110516276 B CN 110516276B
- Authority
- CN
- China
- Prior art keywords
- module
- diode
- state
- simulation
- voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于FPGA的高频开关功率变换器实时仿真方法,包括以下步骤:步骤一、对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程;步骤二、使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真;步骤三、将高频开关变换器的求解结构模型转换成比特流并配置FPGA,进行高频开关变换器的实时仿真。本发明设计新颖合理,能够避免每次开关状态发生变化后都要重新计算系统的导纳矩阵,从而节约了仿真时间,提高了仿真效率。
Description
技术领域
本发明属于电力电子系统实时仿真技术领域,具体涉及一种基于FPGA的高频开关功率变换器实时仿真方法。
背景技术
随着智能电网的兴起,大规模的电力电子被应用于新能源并网、分布式电源及电能质量优化等领域。由于大规模电力电子器件的引入,电力系统频率也随之不断提高。半导体技术最近的进步倾向于提高现代功率转换器的操作开关频率,从而减小它们的尺寸和重量。高功率密度转换器在汽车和航空航天等工业应用领域至关重要,其中典型的开关频率在10-200kHz范围内。高频开关转换器的另一个动机是减少了总谐波失真,从而减轻了转换器中滤波元件的使用。然而,电力电子领域的这些突破对于实时仿真的传导非常具有挑战性。工业从业者对电源转换器的实时仿真是控制器开发的宝贵工具,可为故障场景和接近极限的操作行为节省时间和全面的测试覆盖范围。实时模拟器由运行实时操作系统的强大计算机构成,并且具有专用硬件以实现I/O目的。仿真器的典型时间步长在5μs~10μs范围内,通过考虑电力电子准确建模的指导方针,仿真时间步长至少应比开关频率低20倍,这样开关频率最好限制在5μs~10kHz 范围内。
因此,随着新一代的电网及输配电系统发展,大量电力电子器件的引入、更高的仿真频率对相应的实时仿真系统提出了新的挑战。实时仿真系统需要具备微妙级甚至纳秒级的仿真步长以及更小的仿真步长。
现场可编程门阵列(FPGA)提供的高并行性及其在纳秒范围内进行实时仿真的潜力,如文献报告所证明的那样,使得这些设备成为功率转换器实时仿真的新兴替代平台。然而,在工业环境中对功率转换器进行实时仿真时,FPGA的广泛采用仍然存在许多挑战。
半实物仿真,又称为硬件在回路仿真(Hardware-in-the Loop Simulation),在条件允许的情况下尽可能在仿真系统中接入实物,以取代相应部分的数学模型,这样更接近实际情况,从而得到更确切的信息。
在电力电子系统的分析设计过程中,借助仿真手段来辅助产品的设计是十分必要的。实时仿真技术作为辅助电为电子产品设计的常用手段,其仿真环境与现实世界接轨,有以下两种形式:纯数字仿真和半实物仿真,纯数字仿真是指将控制器和控制对象通过数学建模的方式,在PC环境中实现控制系统的纯软件仿真。半实物仿真包括硬件在环(采用"实际控制器+虚拟对象"方式)和快速控制原型(采用"虚拟控制器+实际对象"方式)两种形式W。相比纯数字仿真,这两种方式都在仿真系统中加入了实物,对实际系统运行状态的反映更加真实。因此在使用电力电子技术对电力电子系统进行开发的过程中,加入半实物仿真技术进行辅助设计可以缩短项目开发周期、降低开发成本并提高电力电子系统的可靠性。
当前做半实物仿真系统的公司有德国的dSPACE公司和加拿大的Opal-RTTechnologies公司,他们分别研发了基于MATLAB/Simulink的半实物仿真系统 dSPACE和基于MATRIXs/System Build的半实物仿真系统RT-LAB。
dSPACE是由Math Works公司的合作伙伴德国dSPACE公司开发的实时仿真系统,是一套基于MATLAB/Simulink的控制系统开发及半实物仿真的软硬件工作平台,实现了和MATLAB/Simulink/RTW的完全无缝连接。因此dSPACE实时仿真系统可以十分方便地使用simulink环境下的Power System工具箱里的各种电路元器件仿真模型,快速转化为可在半实物仿真系统中进行仿真的虚拟对象。
加拿大的Opal-RT公司的实时仿真系统RT-LAB是一个可扩充的分布式实时平台。采用COTS技术,软硬件都支持多种工业标准。采用Host/Target结构,便于扩充。仿真处理器之间采用FireWire总线连接。仿真运行在QNX实时操作系统,平台除支持离线分布式仿真和物理半实物仿真外,还支持实时嵌入式系统分布式仿真。平台与MATLAB/Simulink、MATRIXs/System Build无缝连接,具有在仿真过程中在线修改参数的功能,便于逆向测试,支持大量第三方工具。
目前,基于PC的电力电子通用仿真软件有美国加州大学伯克利分校研究开发的Pspice和美国Analogy公司开发并于1987年推出的Saber等。它们都是以电路理论为依据,采用合适的数学模型和仿真算法,利用计算机存储和图像处理的高速和高效率,完成具体电路的仿真。dSPACE和Opal-RT都具有较为成熟的适用于电力电子系统仿真的各种功率开关元件的电路仿真模型。
电力电子系统实时仿真的另一个难点是模型中由于开关阻抗的不连续变化而引起的模型更新,从而带来的大计算问题。由于电力电子电路模型中同时含有大量离散性器件和连续性器件;其中离散性器件主要有功率IGBT开关器件等,连续性器件主要包括变压器、电感以及电容等等;故在进行电磁暂态仿真时,必须考虑到各种吸收电路的参数特性和参数频率特性以及一些非线性元件的杂散参数特性,其拓扑结构和系统模型十分复杂。而且对电力电子电路进行建模仿真时,模型中高频开关器件的频繁动作,要求仿真计算过程中模型建立的计算方程组必须实时更新,这会带来严重的计算负担,影响计算的实时性。对于高频开关器件的频繁动作带来的大计算问题。
目前,在电力电子系统实时仿真领域,FPGA作为实时仿真器的应用日益受到重视。FPGA作为仿真器最大的优势是其并行处理能力以及纳秒级范围的仿真步长,FPGA 除了作为电力系统实时仿真器外,还已被用于高密度数字I/O、高精度脉冲时间捕捉以及电力系统控制器用来实现PWM信号的产生以及控制等一些实时仿真系统的辅助功能。从目前FPGA在电力系统实时仿真中的应用现状看,这是一种很有发展前景的仿真问题实现方案。在电力电子实时仿真平台中,FPGA作为仿真器主要实现的功能有很多,比如:电力电子电路的解算、各种接口的设计以及集成等等。
Xilinx公司与Mathworks公司联合推出的Xilinx Blockset是 Matlab/Simulink中集成的模块库之一,该模块库中包含基本单元模块、通信模块、控制逻辑模块、数据类型模块、数字信号处理模块、数学运算模块、存储器模块以及工具模块等,广泛的应用于不同领域,满足不同需求。其中,Xilinx blockset库中的System Generator模块可以实现系统模型到FPGA底层硬件设计的转换,是最重要的模块之一。SystemGenerator具有如下的特点与优势:
(1)丰富的模块资源,适用于各种系统模型的搭建;
(2)含多达90个算法模块,能够自动的处理定点逻辑;
(3)提供资源评估模块,能精确计算出FPGA的资源消耗情况;
(4)支持HDL代码自动生成技术;
(5)支持硬件在回路仿真,可以将硬件仿真速度提高到1000倍以上;
(6)支持多种FPGA板卡的设计开发,也可以通过向导支持用户自定制板卡;
(7)与FPGA系统集成环境EDK无缝连接,采用共享内存模块实现具体细节;
(8)能够自动生成测试向量,支持Modelsim协同仿真;
(9)提供黑盒模块,可以集成用户编写的HDL代码。
传统开发方式使得设计者可以根据自己的想法,不受限制的随意编写控制程序,但这种方式需要设计者具有高超的硬件编程技巧,懂得如何配置各种寄存器,开发门槛特别高,这会使设计者将大量的时间花费在查找寄存器配置文档上而不是程序设计本身,其中如果任何一个寄存器的配置出错都可能导致最后结果错误,很不利于系统的快速开发。而且编写的程序通用性也不高,当电路拓扑发生变化时,需要重新设计代码。这种开发方式耗时耗力,延长了开发周期
因此,电力电子实时仿真设计者,只需在System Generator系统建模环境下通过搭建电力电子电路解算模型、控制模型等直接生成可综合的HDL代码或者IP核。实现从建模仿真到代码的自动生成与加载的全过程,这种方法使工程师不需要掌握高超的硬件编程技巧,不需要自己编写代码,因此可以提高开发效率,加快开发进程,降低开发门槛。
但是,现有技术中还缺乏基于FPGA的高频开关功率变换器实时仿真方法。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于FPGA的高频开关功率变换器实时仿真方法,其设计新颖合理,能够避免每次开关状态发生变化后都要重新计算系统的导纳矩阵,从而节约了仿真时间,提高了仿真效率。
为解决上述技术问题,本发明采用的技术方案是:一种基于FPGA的高频开关功率变换器实时仿真方法,该方法包括以下步骤:
步骤一、对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程;
步骤二、使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真;
步骤三、将高频开关变换器的求解结构模型转换成比特流并配置FPGA,进行高频开关变换器的实时仿真。
上述的基于FPGA的高频开关功率变换器实时仿真方法,其特征在于:步骤一中所述对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程:
步骤101、开关器件建模;
步骤102、采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程;
步骤103、对状态空间方程进行离散化,得到离散化后的状态空间方程。
上述的基于FPGA的高频开关功率变换器实时仿真方法,步骤101中所述开关器件建模采用的建模方法为二值电阻法,用电阻模拟开关器件,并在电阻上并联旁路电容。
上述的基于FPGA的高频开关功率变换器实时仿真方法,步骤102中所述高频开关变换器为Boost变换器,所述Boost变换器包括晶体管T、二极管D、电感Ls、电容 Cload和电阻Rload,所述电感Ls的一端与电源VCC的正极输出端连接,所述电感Ls的另一端与晶体管T的漏极和二极管D的阳极连接,所述晶体管T的源极与电源VCC的负极输出端连接,所述电容Cload和电阻Rload并联后的一端与二极管D的阴极连接,另一端与电源VCC的负极输出端连接;步骤102中所述采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程的具体过程为:
步骤1021、分析高频开关变换器的开关切换过程,具体过程为:
步骤10211、将电感Ls替换为恒流源Is,将电容Cload和电阻Rload替换为恒定电压源Vload,将晶体管T替换为并联的电阻RT和旁路电容CT,将二极管D替换为并联的电阻RD和旁路电容CD;将漏电感Lleak与恒定电压源Vload串联;
步骤10212、分析晶体管T的关断过程:在关断过程开始时,晶体管T处于导通模式,二极管D被阻断,恒流源Is产生的电流Is在晶体管T的模型的电阻RT部分循环;当晶体管T的栅极信号被设置为0时,关断过程开始,晶体管T的模型的电阻RT部分瞬间跳变到高阻抗;不能停止的电流Is通过旁路电容CD和旁路电容CT转向;二极管D 的寄生电容两端的电压初始为Vload;二极管D与晶体管T交点处的电压VA的电压斜率为:
旁路电容CD放电,恒流源Is对旁路电容CT充电,当二极管D两端的电压大于或等于零时,二极管D的模型的电阻RD稳定到低阻抗;电流Is通过二极管D的模型的电阻RD部分从旁路电容CT逐渐转移到恒定电压源Vload,漏电感Lleak中的时变电流在晶体管T上产生电压尖峰,当电压尖峰达到最大值时,由旁路电容CT、电阻RD和漏电感Lleak形成的电路发生谐振,谐振频率ωr为:
其中,t为时间;
步骤10213、分析晶体管T的导通过程:在导通过程开始时,二极管D处于导通状态,晶体管T截止;当晶体管T的栅极信号被设置为1时,导通过程开始,晶体管 T的模型的电阻RT部分瞬间跳变为低阻抗,快速放电旁路电容CT;此时,二极管D 和晶体管T都处于低阻抗状态,Vload变小,通过考虑漏电感Lleak,防止发生短暂的该状态,Lleak的当前斜率为:
在二极管D中循环的电流下降,逐渐将电流源转移到晶体管T,当ILleak达到Is时,二极管D中的电流经过零并逐渐变为负值,该负电流在与二极管D相关的寄生电容两端产生负电压,并使二极管D处于高阻抗状态,此时,二极管D两端的电压仍然很低,漏电感中的电流继续增加,从而对二极管D充电;一旦二极管D两端的电压达到Vload,就会在二极管D的寄生电容和漏电感Lleak之间产生一个频率为ω′r的谐振,在二极管D 的寄生电容和漏电感Lleak之间出现的频率为:
该振荡被电路寄生电阻衰减,在阻尼振荡结束时,导通过程完成;
步骤1022、建立高频开关变换器的状态方程:
步骤10221、电压环原理分析:通过考虑电路中的每个表面存储磁通量来执行电压求和,从而导致漏感,在包含物理电感的环路中忽略漏电感,环路电压总和由下式给出:
其中,L为回路中的电感,t为时间,il为回路中的电流,Vdd为回路中的独立电压源,Vc为回路中的电容电压,r为回路中的损耗电阻;
步骤10222、电流环原理分析:考虑在高频开关变换器的电容器中流动的电流,每个电容器的电流由下式给出:
其中,C为回路中的电容,icc为回路中的独立电流源,G为回路中的电导;
步骤10223、根据电压环原理和电流环原理,建立高频开关变换器的的状态方程为:
将晶体管T、电感Ls和电源VCC形成的回路定义为φ1回路,将二极管D、电容Cload、电阻Rload和晶体管T形成的回路定义为φ2回路,其中,L1为φ1回路的电感,L2为φ2回路的漏感,i1为φ1回路的电流,i2为φ2回路的电流,r1为φ1回路的损耗电阻,r2为φ2回路的损耗电阻,Vc1为晶体管T的模型中旁路电容CT两端的电压,Vc2为二极管D的模型中旁路电容CD两端的电压,Vdd为输入电压,Vc3为负载电阻Rload两端的电压,G1为晶体管T的模型的电导,G2为二极管D的模型的电导,V1为晶体管T的模型中电导两端的电压,V2为二极管D的模型中电导两端的电压;
上述的基于FPGA的高频开关功率变换器实时仿真方法,步骤103中所述对状态空间方程进行离散化,得到离散化后的状态空间方程时,采用二阶隐式后向欧拉法对状态空间方程进行离散化,给定一个常微分方程及其求解方法:
带入状态方程得:
上述的基于FPGA的高频开关功率变换器实时仿真方法,步骤二中所述使用SystemGenerator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真的具体过程为:
步骤201、构建状态方程求解结构:设求解器存储所有预先计算每个开关组合σ对应的逆矩阵Wσ=Mσ -1,然后对于给定的开关组合σ,使用计算新的状态变量,用公式表示为:
状态空间求解结构拓扑包含以下六个主要单元:
D1、开关状态判断子模块,从Xilinx FPGA专用的模块库拖拽1个Constant模块、1个Relational模块、1个Counter模块,Constant模块、Counter模块作为输入,连接到Relational模块,Relational模块输出占空比为50%的pwm信号;从Xilinx FPGA专用的模块库拖拽2个Relational模块、1个Delay模块、1个Logical模块、 1个MCode模块、3个In模块,pwm信号和mosfet端电压vc1作为输入,连接到Logical 模块进行取或运算来判断mosfet状态;一个为零的常数模块和二极管端电压vc2作为输入,连接到Relational模块,用来判断二极管状态,二极管状态和mosfet状态判断结果作为两个输入,连接到MCode模块;然后选中连接的模块,右键点击Create Subsystem from selection生成封装子模块;
D2、预存开关矩阵子模块,MCode模块的输出连接到ROM模块的addr端口,ROM 模块根据地址值选取对应的值输出,当地址值为0时,选取矩阵1的值;当地址值为 1时,选取矩阵2的值,作为DP运算单元的输入,矩阵的值存在MATLAB的workspace 中;ROM模块根据地址值读取相应的值;从Xilinx FPGA专用的模块库拖拽55个ROM 模块、2个In模块,addr端口连接到ROM模块的addr端口,使能输入端口连接到ROM 模块的en端口,右键点击CreateSubsystem from selection生成封装子模块;
D3、状态变量更新重组子模块,根据xk和xk-1时刻的值计算得到xk+1时刻的值,然后xk+1时刻的值赋值给xk,xk时刻的值赋值给xk-1,迭代求解;从Xilinx FPGA专用的模块库拖拽10个Register模块、6个In模块、10个Goto模块,前5个寄存器的输入为xk+1时刻的5个状态值,输出一方面作为xk时刻的5个状态值,另一方面作为后5个寄存器的输入,后5个寄存器的输出为xk-1时刻的5个状态值,状态变量更新重组子模块有6个输入,即xk+1时刻的5个状态值,控制单元的输出端口连接到寄存器的输入使能端口,10个输出,即xk时刻的5个状态值和xk-1时刻的5个状态值,右键点击Create Subsystem from selection生成封装子模块;
D4、并行DP运算子模块,DP操作的数量是A中的行数,即矩阵矢量乘法,其中,乘法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher模块、2 个DSP48E1模块、2个Opmode模块、1个Convert模块,乘法的两个输入a、b,a连接到第一个BitBasher模块,b分别连接到两个BitBasher模块,第一个截取高18位,第二个截取低18位,第二个BitBasher模块的输出和第一个BitBasher模块的输出作为输入,连接到第一个DSP48E1模块,DSP48E1模块有三个输出(p、pout、aout), pout、aout和第三个BitBasher模块的输出作为输入,分别连接到第二个DSP48E1模块的pcin、acin、b端口,两个DSP48E1模块的输出作为输入,连接到第四个BitBasher 模块,进行数据重组,第四个BitBasher模块的输出连接到Convert模块,Convert 模块的输出作为加法器的输入;右键点击Create Subsystem fromselection生成封装子模块;加法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher 模块、1个DSP48E1模块、1个Opmode模块,乘法的三个输入c、d、e、c分别连接到两个BitBasher模块,第一个截取高31位,第二个截取低18位,d、e连接到两个 BitBasher模块,四个BitBasher模块的输出作为输入连接到DSP48E1模块,DSP48E1 模块输出结果为加法结果;右键点击Create Subsystem from selection生成封装子模块;计算5×11的矩阵和11×1的矢量乘法,用了5个DP运算子模块,复制11个乘法子模块、6个加法子模块、1个Constant模块、1个Delay模块、1个Reinterpret 模块、1个Reinterpret模块、1个Convert模块,每个DP运算有23个输入,一个输出,11个是重组的11×1矢量[xk xk-1 uk+1]T,一个是来自控制单元的输入En_1;矩阵每行的11值和重组的矢量[xk xk-1 uk+1]T的值作为输入,连接到乘法模块进行计算,多个乘法模块的输出作为输入连接到加法模块,加法模块的输出连接到 Reinterpret模块截取预期的二进制位数,Reinterpret模块的输出连接到Convert 模块进行数据类型转换,Convert模块的输出一方面作为为状态变量更新重组单元的输入,即xk+1时刻的状态值,另一方面作为Gateway Out模块的输入,Gateway Out 模块的输出连接到Scope模块观察结果,即最终的仿真结果;右键点击Create Subsystem from selection生成封装DP运算子模块;复制5个DP运算子模块,从 Xilinx FPGA专用的模块库拖拽1个Constant3模块、1个In模块,In模块连接到使能端口,右键点击Create Subsystem fromselection生成并行DP运算子模块封装子模块;
D6、控制子模块,控制单元安排矢量更新,存储器数据读取,DP操作,数据反馈和输出的所有操作;从Xilinx FPGA专用的模块库拖拽2个Constant模块、2个 Relational模块、1个Counter模块、2个Out模块,一个为0的Constant模块和一个 Counter模块作为输入,连接到Relational模块,Relational模块输出结果表示为En_0;另一个为6的Constant模块和上面的计数器模块的输出作为输入,连接到另一个 Relational模块,Relational模块输出结果表示为En_1;En_0连接到ROM模块和Register 模块的使能端口,En_1连接到Convert模块的使能端口,生成控制子模块;
步骤202、system generator建模:电路解算模型包含开关状态判断子模块、解算子模块、矢量重组子模块和控制子模块,开关状态判断子模块用于判断所述电力电子系统的电路模型中的开关状态组合,选择对应的开关矩阵进行解算;解算子模块根据电路模型中每个节点的电压电流方程得到电力电子系统的状态方程,开关矩阵的维度不随电力电子系统的电路中开关状态的改变而改变,电力电子系统的实时仿真转变成解算状态方程,也就是矩阵矢量乘法;矢量重组子模块,求解状态方程的矢量需要实时更新;控制子模块控制所有模块的运算。
上述的基于FPGA的高频开关功率变换器实时仿真方法,步骤三中所述将高频开关变换器的求解结构模型转换成比特流并配置FPGA的具体过程为:System generator 模型生成IP核;打开vivado软件,后续操作都在vivado中进行,在vivado中新建工程,添加刚才生成的IP核,完成设计;执行设计综合,期间包括引脚分配,时钟约束设计;设计实现;生成编程文件;硬件调试。
本发明与现有技术相比具有以下优点:本发明提供了一种基于FPGA的高频开关功率变换器实时仿真的状态空间建模方法,设计新颖合理,电路模型中的每种开关状态组合对应一个开关矩阵,能够将所有的开关组合对应的矩阵储存下来,开关矩阵的维度不随电力电子电路中开关状态的改变而改变;当电路模型中的开关状态发生变化时,只需要根据开关判断结果选择相应的开关矩阵,而不需要重新解算电力电子电路的导纳矩阵,这样能够避免每次开关状态发生变化后都要重新计算系统的导纳矩阵,从而节约了仿真时间,提高了仿真效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明基于FPGA的高频开关功率变换器实时仿真方法的方法流程框图。
图2为本发明Boost变换器的电路原理图和建模图。
图3A为本发明晶体管T关断之前的电流分布图。
图3B为本发明电流Is被寄生电容转移的电流分布图。
图3C为本发明晶体管T关断过程中二极管导通后的电流分布图。
图3D为本发明晶体管T导通之前的电流分布图。
图3E为本发明晶体管T和二极管D同时导通时的电流分布图。
图3F为本发明晶体管T导通过程中电流转移到二极管的寄生电容图。
图4为本发明Boost变换器的模型图。
图5为本发明开关状态判断子模块中产生占空比为50%的pwm信号的建模示意图。
图6为本发明开关状态判断子模块中比较模块的建模示意图。
图7为本发明生成的开关状态判断子模块的示意图。
图8为本发明预存开关矩阵子模块中ROM模块的参数配置图。
图9为本发明生成的预存开关矩阵子模块的示意图。
图10为本发明生成的状态变量更新重组子模块的示意图。
图11为本发明并行DP运算子模块中乘法模块的搭建的搭建示意图。
图12为本发明并行DP运算子模块中加法模块的搭建的搭建示意图。
图13为本发明生成的DP运算子模块的示意图。
图14为本发明生成的并行DP运算子模块的示意图。
图15为本发明生成的控制子模块的示意图。
图16为本发明状态方程求解结构的原理图。
图17为本发明仿真实验得到的system generator仿真和Simulink仿真的输出电压对比图。
图18为本发明仿真实验得到的system generator仿真和Simulink仿真的电感电流对比图。
图19为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到5Ω时得到的systemgenerator仿真和Simulink仿真的输出电压对比图。
图20为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到5Ω时得到的systemgenerator仿真和Simulink仿真的电感电流对比图。
图21为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到9Ω时得到的systemgenerator仿真和Simulink仿真的输出电压对比图。
图22为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到9Ω时得到的systemgenerator仿真和Simulink仿真的电感电流对比图。
图23为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到5Ω、在0.04s由7 Ω突变到9Ω时得到的system generator仿真和Simulink仿真的输出电压对比图。
图24为本发明仿真实验负载电阻Rload在0.02s由7Ω突变到5Ω、在0.04s由7 Ω突变到9Ω时得到的system generator仿真和Simulink仿真的电感电流对比图。
图25为本发明仿真实验得到的system generator仿真和Simulink仿真的输出电压相对误差图。
图26本发明仿真实验得到的system generator仿真和Simulink仿真的输出电压相对误差图。
具体实施方式
如图1所示,本发明的基于FPGA的高频开关功率变换器实时仿真方法,包括以下步骤:
步骤一、对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程;
本实施例中,步骤一中所述对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程:
步骤101、开关器件建模;
步骤102、采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程;
步骤103、对状态空间方程进行离散化,得到离散化后的状态空间方程。
本实施例中,步骤101中所述开关器件建模采用的建模方法为二值电阻法,用电阻模拟开关器件,并在电阻上并联旁路电容。如果将功率开关器件的导通与关断状态都用电阻来表示,就是二值电阻法,如果再给这个二值电阻并上一个很小的旁路电容,就可以在模型中近似地模拟功率开关器件从导通到截止,或从截止到导通的转换过程;能够很好的模拟功率开关器件内部特性。
本实施例中,如图2所示,步骤102中所述高频开关变换器为Boost变换器,所述Boost变换器包括晶体管T、二极管D、电感Ls、电容Cload和电阻Rload,所述电感Ls的一端与电源VCC的正极输出端连接,所述电感Ls的另一端与晶体管T的漏极和二极管D 的阳极连接,所述晶体管T的源极与电源VCC的负极输出端连接,所述电容Cload和电阻Rload并联后的一端与二极管D的阴极连接,另一端与电源VCC的负极输出端连接;步骤102中所述采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程的具体过程为:
步骤1021、分析高频开关变换器的开关切换过程,具体过程为:
步骤10211、将电感Ls替换为恒流源Is,将电容Cload和电阻Rload替换为恒定电压源Vload,将晶体管T替换为并联的电阻RT和旁路电容CT,将二极管D替换为并联的电阻RD和旁路电容CD;将漏电感Lleak与恒定电压源Vload串联;
由于开关瞬变非常快,升压电感中的电流被认为是恒定的,因此,将电感Ls替换为恒流源Is;由于在开关瞬变期间,电容Cload两端的电压被认为是恒定的,因此,将电容Cload和电阻Rload替换为恒定电压源Vload;晶体管T和二极管D采用了步骤101中提出的开关器件模型进行替换。
步骤10212、分析晶体管T的关断过程:在关断过程开始时,晶体管T处于导通模式,二极管D被阻断,恒流源Is产生的电流Is在晶体管T的模型的电阻RT部分循环,如图3A所示;当晶体管T的栅极信号被设置为0时,关断过程开始,晶体管T的模型的电阻RT部分瞬间跳变到高阻抗,如图3B所示;不能停止的电流Is通过旁路电容CD和旁路电容CT转向;二极管D的寄生电容两端的电压初始为Vload,极性如图3C所示;二极管D与晶体管T交点处的电压VA的电压斜率为:
旁路电容CD放电,恒流源Is对旁路电容CT充电,当二极管D两端的电压大于或等于零时,二极管D的模型的电阻RD稳定到低阻抗,如图3C所示;电流Is通过二极管D的模型的电阻RD部分从旁路电容CT逐渐转移到恒定电压源Vload,漏电感Lleak中的时变电流在晶体管T上产生电压尖峰,当电压尖峰达到最大值时,由旁路电容CT、电阻RD和漏电感Lleak形成的电路发生谐振,谐振频率ωr为:
其中,t为时间;
步骤10213、分析晶体管T的导通过程:在导通过程开始时,二极管D处于导通状态,晶体管T截止,如图3D所示;当晶体管T的栅极信号被设置为1时,导通过程开始,晶体管T的模型的电阻RT部分瞬间跳变为低阻抗,快速放电旁路电容CT,如图3E所示;此时,二极管D和晶体管T都处于低阻抗状态,Vload变小,通过考虑漏电感Lleak,防止发生短暂的该状态,Lleak的当前斜率为:
在二极管D中循环的电流下降,逐渐将电流源转移到晶体管T,当ILleak达到Is时,二极管D中的电流经过零并逐渐变为负值,该负电流在与二极管D相关的寄生电容两端产生负电压,并使二极管D处于高阻抗状态,此时,二极管D两端的电压仍然很低,漏电感中的电流继续增加,从而对二极管D充电,如图3F所示;一旦二极管D两端的电压达到Vload,就会在二极管D的寄生电容和漏电感Lleak之间产生一个频率为ω′r的谐振,在二极管D的寄生电容和漏电感Lleak之间出现的频率为:
类似于关断过程,该振荡被电路寄生电阻衰减,在阻尼振荡结束时,导通过程完成;电路恢复到图3A所示的结构;
步骤1022、建立高频开关变换器的状态方程:
步骤10221、电压环原理分析:通过考虑电路中的每个表面存储磁通量来执行电压求和,从而导致漏感,在包含物理电感的环路中忽略漏电感,因为通量由它们管理,环路电压总和由下式给出:
其中,L为回路中的电感,t为时间,il为回路中的电流,Vdd为回路中的独立电压源,Vc为回路中的电容电压,r为回路中的损耗电阻;
步骤10222、电流环原理分析:考虑在高频开关变换器的电容器中流动的电流,每个电容器的电流由下式给出:
其中,C为回路中的电容,icc为回路中的独立电流源,G为回路中的电导;
步骤10223、根据电压环原理和电流环原理,建立高频开关变换器的的状态方程为:
如图4所示,将晶体管T、电感Ls和电源VCC形成的回路定义为φ1回路,将二极管 D、电容Cload、电阻Rload和晶体管T形成的回路定义为φ2回路,其中,L1为φ1回路的电感,L2为φ2回路的漏感,i1为φ1回路的电流,i2为φ2回路的电流,r1为φ1回路的损耗电阻,r2为φ2回路的损耗电阻,Vc1为晶体管T的模型中旁路电容CT两端的电压,Vc2为二极管D的模型中旁路电容CD两端的电压,Vdd为输入电压,Vc3为负载电阻Rload两端的电压,G1为晶体管T的模型的电导,G2为二极管D的模型的电导,V1为晶体管T的模型中电导(电阻RT)两端的电压,V2为二极管D的模型中电导(电阻RD)两端的电压;
本实施例中,步骤103中所述对状态空间方程进行离散化,得到离散化后的状态空间方程时,采用二阶隐式后向欧拉法对状态空间方程进行离散化,给定一个常微分方程及其求解方法:
带入状态方程得:
状态空间方法以连续形式提供网络方程,需要进行离散化以进行时域仿真;对于以状态空间法进行建模仿真的电力电子系统而言,采用何种数值积分方法对对状态空间方程进行离散化也是至关重要;电力电子系统实时仿真最常用的数值积分法主要有梯形法和后向欧拉法两种,其中,后向欧拉法是最为简单的求解算法,不需要迭代计算且计算速度非常快,具有较好的计算稳定性,但精度不是很高;而梯形法虽然在稳定性上不如后向欧拉法,但是它具有非常高的精度;因此,本文采用二阶隐式后向欧拉法对状态空间方程进行离散化。
本实施例中,Boost变换器所采用元件参数如表1所示:
表1 boost电路所采用参数
漏电感在几十到几百纳的范围内,开关寄生电容的范围在皮法到纳法;较大的时间步长需要较大的寄生电容来确保M的对角线优势,而较大的寄生电容会减小开关频率。求解得到:
步骤二、使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真;
本实施例中,步骤二中所述使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真的具体过程为:
步骤201、构建状态方程求解结构:电力电子系统的电路模型中的开关状态组合,每种开关状态组合对应一个开关矩阵,可以将所有的开关组合对应的矩阵储存下来;对电力电子系统的电路模型中的开关状态进行判断,根据判断结果来选择对应的开关矩阵进行解算;设求解器存储所有预先计算每个开关组合σ对应的逆矩阵Wσ=Mσ -1,然后对于给定的开关组合σ,使用计算新的状态变量,用公式表示为:
状态空间求解结构拓扑包含以下六个主要单元(以Boost电路为例):
D1、开关状态判断子模块(晶体管T是根据门极信号和器件端电压取或运算来判断,二极管D是根据端电压正负来判断,两个功率开关器件的开关状态组合为10、01),从Xilinx FPGA专用的模块库拖拽1个Constant模块、1个Relational模块、1个 Counter模块,Constant模块、Counter模块作为输入,连接到Relational模块,Relational模块输出占空比为50%的pwm信号(即门极信号),如图5所示;从Xilinx FPGA专用的模块库拖拽2个Relational模块、1个Delay模块、1个Logical模块、 1个MCode模块、3个In模块,pwm信号和mosfet端电压vc1(x3_next)作为输入,连接到Logical模块进行取或运算来判断mosfet状态;一个为零的常数模块和二极管端电压vc2(x4_next)作为输入,连接到Relational模块,用来判断二极管状态,二极管状态和mosfet状态判断结果作为两个输入,连接到MCode模块;然后选中连接的模块,右键点击Create Subsystem from selection生成封装子模块,如图6所示;生成的开关状态判断子模块如图7所示;
具体实施时,MCode模块代码如下:
D2、预存开关矩阵子模块,MCode模块的输出连接到ROM模块的addr端口(图7 中的输出端口),ROM模块根据地址值选取对应的值输出,当地址值为0时,选取矩阵1(PreC0)的值;当地址值为1时,选取矩阵2(PreC1)的值,作为DP运算单元的输入,矩阵的值存在MATLAB的workspace中;ROM模块根据地址值读取相应的值; ROM模块的参数配置图如图8所示;从Xilinx FPGA专用的模块库拖拽55个ROM模块、 2个In模块,addr端口连接到ROM模块的addr端口,使能输入端口连接到ROM模块的en端口,右键点击Create Subsystem fromselection生成封装子模块,如图9 所示;(ROM模块输出的是矩阵的值,每一列代表矩阵的一行,本文选用的矩阵是5 ×11,所以有5列)
具体实施,Workspace中矩阵的值来自于m文件,代码如下:
D3、状态变量更新重组子模块,根据xk和xk-1时刻的值计算得到xk+1时刻的值,然后xk+1时刻的值赋值给xk,xk时刻的值赋值给xk-1,迭代求解;从Xilinx FPGA专用的模块库拖拽10个Register模块、6个In模块、10个Goto模块,前5个寄存器的输入为xk+1时刻的5个状态值,输出一方面作为xk时刻的5个状态值,另一方面作为后 5个寄存器的输入,后5个寄存器的输出为xk-1时刻的5个状态值,状态变量更新重组子模块有6个输入,即xk+1时刻的5个状态值,控制单元的输出端口连接到寄存器的输入使能端口,10个输出(作为DP运算单元的输入),即xk时刻的5个状态值和xk-1时刻的5个状态值,右键点击Create Subsystem fromselection生成封装子模块,如图10所示;
D4、并行DP运算子模块,DP操作的数量是A中的行数,即矩阵矢量乘法,其中,乘法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher模块、2 个DSP48E1模块、2个Opmode模块、1个Convert模块,乘法的两个输入a、b,a连接到第一个BitBasher模块,b分别连接到两个BitBasher模块,第一个截取高18位,第二个截取低18位,第二个BitBasher模块的输出和第一个BitBasher模块的输出作为输入,连接到第一个DSP48E1模块,DSP48E1模块有三个输出(p、pout、aout), pout、aout和第三个BitBasher模块的输出作为输入,分别连接到第二个DSP48E1模块的pcin、acin、b端口,两个DSP48E1模块的输出作为输入,连接到第四个BitBasher 模块,进行数据重组,第四个BitBasher模块的输出连接到Convert模块,Convert 模块的输出作为加法器的输入;右键点击Create Subsystem fromselection生成封装子模块,如图11所示;加法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher模块、1个DSP48E1模块、1个Opmode模块,乘法的三个输入c、d、 e、c分别连接到两个BitBasher模块,第一个截取高31位,第二个截取低18位,d、 e连接到两个BitBasher模块,四个BitBasher模块的输出作为输入连接到DSP48E1 模块,DSP48E1模块输出结果为加法结果;右键点击Create Subsystem from selection 生成封装子模块,如图12所示;计算5×11的矩阵和11×1的矢量乘法,用了5个 DP运算子模块,如图14所示,复制11个乘法子模块、6个加法子模块、1个Constant 模块、1个Delay模块、1个Reinterpret模块、1个Reinterpret模块、1个Convert 模块,每个DP运算有23个输入,一个输出,即其中11个是矩阵每行的值(如图9 每列的输出),11个是重组的11×1矢量[xk xk-1 uk+1]T(如图10的输出),一个是来自控制单元的输入En_1(如图15所示);矩阵每行的11值和重组的矢量[xkxk-1 uk+1]T的值作为输入,连接到乘法模块(如图13所示)进行计算,多个乘法模块的输出作为输入连接到加法模块,加法模块的输出连接到Reinterpret模块截取预期的二进制位数,Reinterpret模块的输出连接到Convert模块进行数据类型转换, Convert模块的输出一方面作为为状态变量更新重组单元的输入(如图10所示),即 xk+1时刻的状态值,另一方面作为Gateway Out模块的输入,Gateway Out模块的输出连接到Scope模块观察结果,即最终的仿真结果;右键点击Create Subsystem from selection生成封装DP运算子模块,如图13所示;复制5个DP运算子模块,从Xilinx FPGA专用的模块库拖拽1个Constant3模块、1个In模块,In模块连接到使能端口,右键点击Create Subsystem from selection生成并行DP运算子模块封装子模块,如图13所示;
D5、计算结果值输出,DP运算输出结果连接到Gateway Out模块,Gateway Out 模块的输出连接到Scope模块观察结果,分别为电感电流、二极管回路电流、mosfet 端电压、二极管端电压和输出电压;
D6、控制子模块,控制单元安排矢量更新,存储器数据读取,DP操作,数据反馈和输出的所有操作;从Xilinx FPGA专用的模块库拖拽2个Constant模块、2个 Relational模块、1个Counter模块、2个Out模块,一个为0的Constant模块和一个 Counter模块作为输入,连接到Relational模块,Relational模块输出结果表示为En_0;另一个为6的Constant模块和上面的计数器模块的输出作为输入,连接到另一个 Relational模块,Relational模块输出结果表示为En_1;En_0连接到ROM模块和Register 模块的使能端口(如图9和10所示),En_1连接到Convert模块的使能端口(如图 14所示),生成控制子模块,如图15所示;
具体实施时,状态方程求解结构原理图如图16所示。
步骤202、system generator建模:电路解算模型(system generator)包含开关状态判断子模块、解算子模块、矢量重组子模块和控制子模块,开关状态判断子模块用于判断所述电力电子系统的电路模型中的开关状态组合,选择对应的开关矩阵进行解算;解算子模块根据电路模型中每个节点的电压电流方程得到电力电子系统的状态方程,开关矩阵的维度不随电力电子系统的电路中开关状态的改变而改变,电力电子系统的实时仿真转变成解算状态方程,也就是矩阵矢量乘法;矢量重组子模块,求解状态方程的矢量需要实时更新;控制子模块控制所有模块的运算。
步骤三、将高频开关变换器的求解结构模型转换成比特流并配置FPGA,进行高频开关变换器的实时仿真。
本实施例中,步骤三中所述将高频开关变换器的求解结构模型转换成比特流并配置FPGA的具体过程为:System generator模型生成IP核(在system generator模块点击generator选项,生成IP文件);打开vivado软件,后续操作都在vivado 中进行,在vivado中新建工程,添加刚才生成的IP核,完成设计;执行设计综合 (Synthesis),期间包括引脚分配,时钟约束设计;设计实现(Implementation);生成编程文件(Generate Bitstream);硬件调试(Open Hardware Manager)。
为了验证本发明能够产生的效果,在FPGA上采用system generator进行了仿真实验,并采用MATLAB的Simulink进行了仿真实验,时间步长为75ns,开关频率为 20kHz;仿真实验得到的system generator仿真和Simulink仿真的输出电压对比图如图17所示,仿真实验得到的system generator仿真和Simulink仿真的电感电流对比图如图18所示,仿真实验得到的负载电阻Rload在0.02s由7Ω突变到5Ω时得到的system generator仿真和Simulink仿真的输出电压对比图如图19所示,仿真实验得到的负载电阻Rload在0.02s由7Ω突变到5Ω时得到的system generator仿真和 Simulink仿真的电感电流对比图如图20所示,仿真实验得到的负载电阻Rload在0.02s 由7Ω突变到9Ω时得到的system generator仿真和Simulink仿真的输出电压对比图如图21所示,仿真实验得到的负载电阻Rload在0.02s由7Ω突变到9Ω时得到的 system generator仿真和Simulink仿真的电感电流对比图如图22所示,仿真实验得到的负载电阻Rload在0.02s由7Ω突变到5Ω、在0.04s由7Ω突变到9Ω时得到的 system generator仿真和Simulink仿真的输出电压对比图如图23所示,仿真实验得到的负载电阻Rload在0.02s由7Ω突变到5Ω、在0.04s由7Ω突变到9Ω时得到的 systemgenerator仿真和Simulink仿真的电感电流对比图如图24所示,仿真实验得到的systemgenerator仿真和Simulink仿真的输出电压绝对误差如图25所示,仿真实验得到的systemgenerator仿真和Simulink仿真的输出电压相对误差如图26 所示;从图17~图24能够看出,两个模型的仿真结果基本吻合,且所提出的开关模型提供了非常令人满意的精确度和精度。通过计算两个模型的绝对误差和相对误差,从图25和图26能够看出,systemgenerator仿真和Simulink仿真输出电压绝对误差最终稳定在1.3;相对误差最终稳定在6.6e-3,在误差允许范围内。本发明的仿真方法能够得到很好的仿真效果,且节约了仿真时间,提高了仿真效率。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
Claims (4)
1.一种基于FPGA的高频开关功率变换器实时仿真方法,其特征在于,该方法包括以下步骤:
步骤一、对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程;
步骤二、使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真;
步骤三、将高频开关变换器的求解结构模型转换成比特流并配置FPGA,进行高频开关变换器的实时仿真;
步骤一中所述对高频开关功率变换器进行理论分析,构建用于建模仿真的状态空间方程:
步骤101、开关器件建模;
步骤101中所述开关器件建模采用的建模方法为二值电阻法,用电阻模拟开关器件,并在电阻上并联旁路电容;
步骤102、采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程;
步骤102中所述高频开关变换器为Boost变换器,所述Boost变换器包括晶体管T、二极管D、电感Ls、电容Cload和电阻Rload,所述电感Ls的一端与电源VCC的正极输出端连接,所述电感Ls的另一端与晶体管T的漏极和二极管D的阳极连接,所述晶体管T的源极与电源VCC的负极输出端连接,所述电容Cload和电阻Rload并联后的一端与二极管D的阴极连接,另一端与电源VCC的负极输出端连接;步骤102中所述采用状态空间法对高频开关变换器进行建模,得到高频开关变换器的状态空间方程的具体过程为:
步骤1021、分析高频开关变换器的开关切换过程,具体过程为:
步骤10211、将电感Ls替换为恒流源Is,将电容Cload和电阻Rload替换为恒定电压源Vload,将晶体管T替换为并联的电阻RT和旁路电容CT,将二极管D替换为并联的电阻RD和旁路电容CD;将漏电感Lleak与恒定电压源Vload串联;
步骤10212、分析晶体管T的关断过程:在关断过程开始时,晶体管T处于导通模式,二极管D被阻断,恒流源Is产生的电流Is在晶体管T的模型的电阻RT部分循环;当晶体管T的栅极信号被设置为0时,关断过程开始,晶体管T的模型的电阻RT部分瞬间跳变到高阻抗;不能停止的电流Is通过旁路电容CD和旁路电容CT转向;二极管D的寄生电容两端的电压初始为Vload;二极管D与晶体管T交点处的电压VA的电压斜率为:
旁路电容CD放电,恒流源Is对旁路电容CT充电,当二极管D两端的电压大于或等于零时,二极管D的模型的电阻RD稳定到低阻抗;电流Is通过二极管D的模型的电阻RD部分从旁路电容CT逐渐转移到恒定电压源Vload,漏电感Lleak中的时变电流在晶体管T上产生电压尖峰,当电压尖峰达到最大值时,由旁路电容CT、电阻RD和漏电感Lleak形成的电路发生谐振,谐振频率ωr为:
其中,t为时间;
步骤10213、分析晶体管T的导通过程:在导通过程开始时,二极管D处于导通状态,晶体管T截止;当晶体管T的栅极信号被设置为1时,导通过程开始,晶体管T的模型的电阻RT部分瞬间跳变为低阻抗,快速放电旁路电容CT;此时,二极管D和晶体管T都处于低阻抗状态,Vload变小,通过考虑漏电感Lleak,防止发生短暂的该状态,Lleak的当前斜率为:
在二极管D中循环的电流下降,逐渐将电流源转移到晶体管T,当ILleak达到Is时,二极管D中的电流经过零并逐渐变为负值,该负电流在与二极管D相关的寄生电容两端产生负电压,并使二极管D处于高阻抗状态,此时,二极管D两端的电压仍然很低,漏电感中的电流继续增加,从而对二极管D充电;一旦二极管D两端的电压达到Vload,就会在二极管D的寄生电容和漏电感Lleak之间产生一个频率为ω′r的谐振,在二极管D的寄生电容和漏电感Lleak之间出现的频率为:
该振荡被电路寄生电阻衰减,在阻尼振荡结束时,导通过程完成;
步骤1022、建立高频开关变换器的状态方程:
步骤10221、电压环原理分析:通过考虑电路中的每个表面存储磁通量来执行电压求和,从而导致漏感,在包含物理电感的环路中忽略漏电感,环路电压总和由下式给出:
其中,L为回路中的电感,t为时间,il为回路中的电流,Vdd为回路中的独立电压源,Vc为回路中的电容电压,r为回路中的损耗电阻;
步骤10222、电流环原理分析:考虑在高频开关变换器的电容器中流动的电流,每个电容器的电流由下式给出:
其中,C为回路中的电容,icc为回路中的独立电流源,G为回路中的电导;
步骤10223、根据电压环原理和电流环原理,建立高频开关变换器的的状态方程为:
将晶体管T、电感Ls和电源VCC形成的回路定义为φ1回路,将二极管D、电容Cload、电阻Rload和晶体管T形成的回路定义为φ2回路,其中,L1为φ1回路的电感,L2为φ2回路的漏感,i1为φ1回路的电流,i2为φ2回路的电流,r1为φ1回路的损耗电阻,r2为φ2回路的损耗电阻,Vc1为晶体管T的模型中旁路电容CT两端的电压,Vc2为二极管D的模型中旁路电容CD两端的电压,Vdd为输入电压,Vc3为负载电阻Rload两端的电压,G1为晶体管T的模型的电导,G2为二极管D的模型的电导,V1为晶体管T的模型中电导两端的电压,V2为二极管D的模型中电导两端的电压;
将公式(F7)写为x=Ax+Bu的形式为:
步骤103、对状态空间方程进行离散化,得到离散化后的状态空间方程。
3.按照权利要求1所述的基于FPGA的高频开关功率变换器实时仿真方法,其特征在于:步骤二中所述使用System Generator里的模块搭建高频开关变换器的求解结构模型,对高频开关变换器进行混合仿真的具体过程为:
步骤201、构建状态方程求解结构:设求解器存储所有预先计算每个开关组合σ对应的逆矩阵Wσ=Mσ -1,然后对于给定的开关组合σ,使用计算新的状态变量,用公式表示为:
状态空间求解结构拓扑包含以下六个主要单元:
D1、开关状态判断子模块,从Xilinx FPGA专用的模块库拖拽1个Constant模块、1个Relational模块、1个Counter模块,Constant模块、Counter模块作为输入,连接到Relational模块,Relational模块输出占空比为50%的pwm信号;从Xilinx FPGA专用的模块库拖拽2个Relational模块、1个Delay模块、1个Logical模块、1个MCode模块、3个In模块,pwm信号和mosfet端电压vc1作为输入,连接到Logical模块进行取或运算来判断mosfet状态;一个为零的常数模块和二极管端电压vc2作为输入,连接到Relational模块,用来判断二极管状态,二极管状态和mosfet状态判断结果作为两个输入,连接到MCode模块;然后选中连接的模块,右键点击Create Subsystem from selection生成封装子模块;
D2、预存开关矩阵子模块,MCode模块的输出连接到ROM模块的addr端口,ROM模块根据地址值选取对应的值输出,当地址值为0时,选取矩阵1的值;当地址值为1时,选取矩阵2的值,作为DP运算单元的输入,矩阵的值存在MATLAB的workspace中;ROM模块根据地址值读取相应的值;从Xilinx FPGA专用的模块库拖拽55个ROM模块、2个In模块,addr端口连接到ROM模块的addr端口,使能输入端口连接到ROM模块的en端口,右键点击Create Subsystemfrom selection生成封装子模块;
D3、状态变量更新重组子模块,根据xk和xk-1时刻的值计算得到xk+1时刻的值,然后xk+1时刻的值赋值给xk,xk时刻的值赋值给xk-1,迭代求解;从Xilinx FPGA专用的模块库拖拽10个Register模块、6个In模块、10个Goto模块,前5个寄存器的输入为xk+1时刻的5个状态值,输出一方面作为xk时刻的5个状态值,另一方面作为后5个寄存器的输入,后5个寄存器的输出为xk-1时刻的5个状态值,状态变量更新重组子模块有6个输入,即xk+1时刻的5个状态值,控制单元的输出端口连接到寄存器的输入使能端口,10个输出,即xk时刻的5个状态值和xk-1时刻的5个状态值,右键点击Create Subsystem from selection生成封装子模块;
D4、并行DP运算子模块,DP操作的数量是A中的行数,即矩阵矢量乘法,其中,乘法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher模块、2个DSP48E1模块、2个Opmode模块、1个Convert模块,乘法的两个输入a、b,a连接到第一个BitBasher模块,b分别连接到两个BitBasher模块,第一个截取高18位,第二个截取低18位,第二个BitBasher模块的输出和第一个BitBasher模块的输出作为输入,连接到第一个DSP48E1模块,DSP48E1模块有三个输出(p、pout、aout),pout、aout和第三个BitBasher模块的输出作为输入,分别连接到第二个DSP48E1模块的pcin、acin、b端口,两个DSP48E1模块的输出作为输入,连接到第四个BitBasher模块,进行数据重组,第四个BitBasher模块的输出连接到Convert模块,Convert模块的输出作为加法器的输入;右键点击Create Subsystem from selection生成封装子模块;加法模块的搭建过程为:从Xilinx FPGA专用的模块库拖拽4个BitBasher模块、1个DSP48E1模块、1个Opmode模块,乘法的三个输入c、d、e、c分别连接到两个BitBasher模块,第一个截取高31位,第二个截取低18位,d、e连接到两个BitBasher模块,四个BitBasher模块的输出作为输入连接到DSP48E1模块,DSP48E1模块输出结果为加法结果;右键点击Create Subsystem from selection生成封装子模块;计算5×11的矩阵和11×1的矢量乘法,用了5个DP运算子模块,复制11个乘法子模块、6个加法子模块、1个Constant模块、1个Delay模块、1个Reinterpret模块、1个Reinterpret模块、1个Convert模块,每个DP运算有23个输入,一个输出,11个是重组的11×1矢量[xk xk-1 uk+1]T,一个是来自控制单元的输入En_1;矩阵每行的11值和重组的矢量[xk xk-1 uk+1]T的值作为输入,连接到乘法模块进行计算,多个乘法模块的输出作为输入连接到加法模块,加法模块的输出连接到Reinterpret模块截取预期的二进制位数,Reinterpret模块的输出连接到Convert模块进行数据类型转换,Convert模块的输出一方面作为为状态变量更新重组单元的输入,即xk+1时刻的状态值,另一方面作为Gateway Out模块的输入,Gateway Out模块的输出连接到Scope模块观察结果,即最终的仿真结果;右键点击Create Subsystem from selection生成封装DP运算子模块;复制5个DP运算子模块,从Xilinx FPGA专用的模块库拖拽1个Constant3模块、1个In模块,In模块连接到使能端口,右键点击Create Subsystem fromselection生成并行DP运算子模块封装子模块;
D6、控制子模块,控制单元安排矢量更新,存储器数据读取,DP操作,数据反馈和输出的所有操作;从Xilinx FPGA专用的模块库拖拽2个Constant模块、2个Relational模块、1个Counter模块、2个Out模块,一个为0的Constant模块和一个Counter模块作为输入,连接到Relational模块,Relational模块输出结果表示为En_0;另一个为6的Constant模块和上面的计数器模块的输出作为输入,连接到另一个Relational模块,Relational模块输出结果表示为En_1;En_0连接到ROM模块和Register模块的使能端口,En_1连接到Convert模块的使能端口,生成控制子模块;
步骤202、system generator建模:电路解算模型包含开关状态判断子模块、解算子模块、矢量重组子模块和控制子模块,开关状态判断子模块用于判断所述电力电子系统的电路模型中的开关状态组合,选择对应的开关矩阵进行解算;解算子模块根据电路模型中每个节点的电压电流方程得到电力电子系统的状态方程,开关矩阵的维度不随电力电子系统的电路中开关状态的改变而改变,电力电子系统的实时仿真转变成解算状态方程,也就是矩阵矢量乘法;矢量重组子模块,求解状态方程的矢量需要实时更新;控制子模块控制所有模块的运算。
4.按照权利要求1所述的基于FPGA的高频开关功率变换器实时仿真方法,其特征在于:步骤三中所述将高频开关变换器的求解结构模型转换成比特流并配置FPGA的具体过程为:System generator模型生成IP核;打开vivado软件,后续操作都在vivado中进行,在vivado中新建工程,添加刚才生成的IP核,完成设计;执行设计综合,期间包括引脚分配,时钟约束设计;设计实现;生成编程文件;硬件调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485700.7A CN110516276B (zh) | 2019-06-05 | 2019-06-05 | 基于fpga的高频开关功率变换器实时仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485700.7A CN110516276B (zh) | 2019-06-05 | 2019-06-05 | 基于fpga的高频开关功率变换器实时仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516276A CN110516276A (zh) | 2019-11-29 |
CN110516276B true CN110516276B (zh) | 2022-11-29 |
Family
ID=68622748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910485700.7A Active CN110516276B (zh) | 2019-06-05 | 2019-06-05 | 基于fpga的高频开关功率变换器实时仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516276B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329235B (zh) * | 2020-11-05 | 2023-03-28 | 上海远宽能源科技有限公司 | 一种基于混合建模的电力电子系统实时仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101061627A (zh) * | 2004-10-01 | 2007-10-24 | 亚历山大·普罗迪奇 | 用于以超高稳定切换频率工作的dc-dc切换变换器的数字控制器 |
CN105301984A (zh) * | 2015-11-20 | 2016-02-03 | 上海科梁信息工程有限公司 | 一种基于fpga的电力电子仿真系统及方法 |
CN106649927A (zh) * | 2016-09-21 | 2017-05-10 | 国网天津市电力公司 | 一种基于fpga 的电力电子元件实时仿真组合建模方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665672B2 (en) * | 2015-04-27 | 2017-05-30 | Christian Dufour | Method and system for reducing power losses and state-overshoots in simulators for switched power electronic circuit |
-
2019
- 2019-06-05 CN CN201910485700.7A patent/CN110516276B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101061627A (zh) * | 2004-10-01 | 2007-10-24 | 亚历山大·普罗迪奇 | 用于以超高稳定切换频率工作的dc-dc切换变换器的数字控制器 |
CN105301984A (zh) * | 2015-11-20 | 2016-02-03 | 上海科梁信息工程有限公司 | 一种基于fpga的电力电子仿真系统及方法 |
CN106649927A (zh) * | 2016-09-21 | 2017-05-10 | 国网天津市电力公司 | 一种基于fpga 的电力电子元件实时仿真组合建模方法 |
Non-Patent Citations (2)
Title |
---|
基于现场可编程门阵列Buck变换器的实时仿真技术;刘喜梅等;《电子测量技术》;20170815(第08期);全文 * |
模块化多电平换流器实时仿真的快速实现方法;何冰松等;《高电压技术》;20180719(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110516276A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lucia et al. | Real-time FPGA-based hardware-in-the-loop simulation test bench applied to multiple-output power converters | |
CN106649927B (zh) | 一种基于fpga的电力电子元件实时仿真组合建模方法 | |
Karimi et al. | An HIL-based reconfigurable platform for design, implementation, and verification of electrical system digital controllers | |
Shen et al. | Design and implementation of real-time Mpsoc-FPGA-based electromagnetic transient emulator of CIGRÉ DC grid for HIL application | |
Zheng et al. | A semi-implicit parallel leapfrog solver with half-step sampling technique for FPGA-based real-time HIL simulation of power converters | |
CN110516276B (zh) | 基于fpga的高频开关功率变换器实时仿真方法 | |
Zheng et al. | MPSoC-based dynamic adjustable time-stepping scheme with switch event oversampling technique for real-time HIL simulation of power converters | |
Vandewalle et al. | Piecewise-linear circuits and piecewise-linear analysis | |
De Cuyper et al. | A digital platform for real-time simulation of power converters with high switching frequency | |
Kang et al. | Power electronics simulation: Current progress and future development | |
Deng et al. | FPGA implementation of PWM pattern generators [for PWM invertors] | |
Gil et al. | SystemC AMS power electronic modeling with ideal instantaneous switches | |
Jiménez et al. | Hardware-in-the-loop simulation of FPGA embedded processor based controls for power electronics | |
CN112883677B (zh) | 电力电子换流器实时仿真的电磁暂态仿真方法 | |
Wu et al. | Efficient simulation of switched networks using reduced unification matrix | |
Pimentel et al. | Hardware emulation for real-time power system simulation | |
Djedidi et al. | Generic real-time simulator for power converters implemented using the model-based-design and FPGA-in-the-loop workflow | |
Sanchez et al. | Digital Controllers Design Using the ESA Control Toolbox in MATLAB Simulink | |
CN111969607A (zh) | 一种基于dSPACE的分布式潮流控制器串联侧闭环仿真试验方法 | |
Deng et al. | FPGA implementation of PWM pattern generators | |
Maffezzoni et al. | Event-driven time-domain simulation of closed-loop switched circuits | |
Wang et al. | Co-Simulation Interfacing Capabilities in Device-Level Power Electronic Circuit Simulation Tools: An Overview | |
Baghdadi et al. | FPGA-Based Hardware-in-the-Loop (HIL) Emulation of Power Electronics Circuit Using Device-Level Behavioral Modeling. Designs 2023, 7, 115 | |
Uhl et al. | Nodal-reduced modeling of three-phase dual-active bridge converters for EMTP-type simulations | |
Zhu et al. | Design and implementation of real-time simulation module for non-isolated bidirectional half-bridge DC–DC converter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |