没有合适的资源?快使用搜索试试~ 我知道了~
++++≤软件X 13(2021)100660原始软件出版物ORTiS solver codegen:C++代码生成工具,用于电力电子系统的高性能、基于FPGA的实时仿真Matthew Miltona,a,Andrea Benignib,ca美国南卡罗来纳大学电气工程系,301 Main Street,Columbia,SC,29208,USAb能源和气候研究所:能源系统工程(IEK-10),德国于利希研究中心c德国亚琛工业大学能源系统模拟方法主席ar t i cl e i nf o文章历史记录:接收28十月2020收到修订版2020年12月24日接受2021年保留字:实时仿真代码生成高性能计算高级综合电力电子a b st ra ct开放式实时仿真(ORTiS)框架的求解器代码生成工具是一个C++库和CLI工具,旨在为电力电子系统创建实时仿真求解器。这些C++定义的求解器-由工具生成-支持HDL的高级合成,使FPGA求解器能够实时实现纳秒分辨率。ORTiS Solver Codegen工具支持创建多FPGA求解器和使用用户定义的电力电子元件模型;系统级模型由网表描述。这些工具使工程师能够使用小至35纳秒的时间步长版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v0.8指向此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-20-00073Code Ocean compute capsule N/AGNU通用公共许可证(GPL)v3.0使用git的代码版本控制系统软件代码语言、工具和服务使用C编译要求,操作环境依赖性对于Windows和Linux,使用GCC或MinGW-w 64与C 14构建支持;需要Eigen 3(http://eigen.tuxfamily.org)如果可用,链接到开发人员文档/手册N/A问题支持电子邮件mmilton@email.sc.edu1. 动机和意义在电力电子(PE)系统的开发过程中,经常要进行硬件在环(HIL)实时仿真以缩短产品上市时间。 随着现代大型PE系统(具有高开关频率转换器(100-200 kHz)、快速控制和故障保护机制以及大型系统中高谐波的相互作用)的兴起*通讯作者。电子邮件地址:mmilton@email.sc.edu(Matthew Milton),a. fz-juelich.de(Andrea Benigni)。https://doi.org/10.1016/j.softx.2021.100660以高保真度对这些系统进行建模和仿真的能力不断提高。为了实现这样的保真度,需要低于100 ns的时间步长。在最近的工作[11µ s。虽然这些特殊的RT求解器存在,但缺乏可用于快速自定义建模和部署PE系统的工具模拟使用这种求解器与FPGA执行。商业工具提供PE系统RT仿真,但这些工具仅限于以10µ s的时间步长执行CPU,在FPGA硬件上可能有200 ns,以换取有限的建模灵活性。此外,这些商业工具仅在其各自的专有和昂贵的情况硬件,并需要购买许可证。2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006602++++图1.一、 LB-LMC建模和求解器设计;(a)电阻伴随模型;(b)求解流程;(c)求解器FPGA结构。在本文中,我们提出了C求解器代码生成(代码生成)工具,发布为免费的,开源软件下的开放实时仿真(ORTiS)框架,它可以方便,快速地生成RT仿真求解器的PE系统。利用基于延迟的线性多步复合(LB-LMC)求解器方法[4],codegen工具生成PE系统的C定义的求解器,这些求解器可以在各种FPGA设备上作为高级合成(HLS)内核RT执行,在现代FPGA上的时间步长低至35纳秒。求解器代码生成工具支持将PE系统模型定义为纯文本网表,指示模型中的组件及其网络连接。单个组件模型可以是工具中内置的模型,也可以是添加到工具源代码中的用户定义的模型代码.为了允许多FPGA执行,codegen工具支持定义PE系统的子系统,每个子系统使用[5]中提供的分解方法创建一个求解器。本文总结了codegen算法及其用于创建在FPGA上实时执行的PE系统求解器的用法。2. 软件描述2.1. LB-LMC方法在由ORTiS代码生成工具生成的求解器中使用的LB-LMC方法[4]是一种高度可并行的算法,用于马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006603++≤+图二. ORTiS LB-LMC求解器代码生成库结构。图三. LB-LMC求解器代码生成流程。求解非线性电/PE系统,类似于电磁暂态程序(EMTP)和其他电阻补偿(RC)方法。根据该方法,PE系统被定义为一个离散化的状态空间(SS)模型,具体表现为RC电路的集合,如图11所示。1(a).每个RC电路由表示模型的过去项的源h(t)组成,其中电导g(t dt)体现当前模型项。从这些模型中,产生一组方程(1),以在长度为dt的每个模拟时间步长求解方程(1),以获得系统解向量x(t+dt)。矩阵G(t+dt)和向量b(t)分别聚合每个分量模型的g(t+dt)和h(t)项。G(t+dt)x(t+dt)=b(t)(1)与EMTP或其他RC方法不同,系统中的所有非线性分量都用显式积分离散化,其中非线性SS模型仅由时间t的过去项组成;线性分量隐式离散化。因此,(1)的G(t dt)项始终保持恒定,并且非线性系统的方程可解而无需迭代过程(Newton-Raphson此外,LB-LMC方法完全并行地求解所有系统组件的模型,允许计算加速以实时实现小的时间步长,特别是在FPGA执行下。在[6,7]中,该方法被证明可以在Xilinx 7系列FPGA上以50 ns的时间步长对多转换器开关PE系统进行RT仿真。为了在LB-LMC方法下针对时间步长求解PE系统模型,图 1 的流程被 简 化 。1 (b)项。离线时,G、 x和b项被初始化,G被预反转,并且分量模型被设置为初始条件。然后,在在线仿真期间,更新过去的x(t),并行求解分量SS模型的h(t)项,并根据这些项更新b(t)。最后,对x(t dt)求解(1)。如果模拟继续,则该过程重复另一个时间步长。对于FPGA执行,LB-LMC求解器如图所示实现。1(c),其中PE系统的每个组件模型被给予求解器核心以求解h(t),并且它们的解被传递到求解(1)的系统求解器核心。LB-LMC求解器核心可实现为以并行方式执行,以使用定点数学在一个扩展时钟周期RT执行通过将时钟周期设置为dt来实现;详情参见[6,7]马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006604++++++++见图4。 示例模型及其RT仿真结果;(a)舰载PE系统;(b)DC/AC转换器;(c)(d)R负载电压和电流的RT仿真结果;(e)(f)电压变化前后(c)的放大倍数2.2. 软件构架ORTiS求解器代码生成工具是一个C库,由代码生成类组成,这些代码生成类的实例为PE系统LB-LMC求解器定义生成和聚合C代码如图2所示,这些工具包含生成组件模型h(t)求解器代码的类;生成要求解的系统求解器(1);计算PE系统的G这些工具还包括从纯文本网表文件加载PE系统模型的类。生成的LB-LMC求解器被定义为C函数,可以编译为RT CPU执行或高级用于RT FPGA执行的合成(HLS)。为了简化求解器代码生成工具的使用,命令行界面(CLI)可执行文件作为源代码与库一起提供,当构建时可以加载网表文件并输出给定网表的求解器定义。2.3. 组件求解器生成要为PE系统中的组件生成模型h(t)求解器代码,求解器代码生成工具提供了ConcurrentGenerator类。对于工具中包含的每个组件类型,是一个派生的CresentGenerator类,例如用于电容器、开关PE转换器等。CresentGenerator的每个实例都将模型参数和马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006605++++++图五、船 载系统部分网表。PE系统网络中的组件节点连接。基于组件模型和给定的输入,一个concurrentGenerator将生成C代码作为字符串传递给生成实际PE系统求解器定义的SolverEngineGenerator(SEG)实例。该代码将包括模型求解器表达式和外部信号端口定义,它们充当元件求解器的输入和输出,例如PE转换器的控制和反馈信号;这些信号端口作为系统求解器函数的参数实现。此外,电导发生器计算它们的恒定电导g(t dt),并将它们标记到由SEG存储的G矩阵中,同时向SEG提供关于分量h(t)项如何映射到系统的b(t用户定义的组件可以通过继承来扩展CodeGen2.4. 求解器引擎生成为了生成PE系统求解器定义,提供了SolverEngine- Generator(SEG)类. SEG实例为系统求解器生成函数定义,其参数是组件求解器的返回输出x(t dt)和输入/输出信号端口。每次调用此求解器函数时,它都会求解其单个时间步长的系统模型。每个SEG实例通过采用模型代码生成求解器函数信号端口定义和RC模型(h, g)信息每个实例化的组件生成器并将代码聚集在一起成为函数的主体和签名。然后 SEG计算并定义G−1 在函数中,生成代码将每个分量求解器的h(t)项聚合为b(t)向量,并最终生成代码以将(1)求解为(2);使用内部SystemConductanceGenerator、SystemSourceVectorGenerator和SystemSolverGenerator对象。x(t+dt)=G−1b(t)(2)在代码生成期间,SEG将系统的输入、输出和解决方案连接到函数定义的参数。在代码生成之后,SEG将生成的定义存储在其他地方,作为要进一步处理的字符串,或者将其存储到可为PE系统模拟器平台构建的C头文件中。2.5. 网表加载器和组件生成器工厂由于许多用户喜欢将PE系统模型定义为纯文本网表文件,而不是编写C++代码,因此这些工具提供了类来解析网表并从这些文件生成求解器;参见第3节中的网表示例。网表文件由NetlistLoader和Netlist类处理。NetlistLoader实例提供读取网表文件和返回存储PE系统网表的组件列表的网表对象的方法。Netlist中的每个列表元素都声明了一个组件,包括其类型、模型参数和系统中的节点连接。要从网表实例化CableentGenerator对象,求解器代码生成工具中包含一组生产者和工厂类。PinterentGeneratorFactory类的指针从 Netlist 中 获 取 列 表 , 并 通 过 每 个 列 表 的 作 用 域 指 针 返 回PinterentGenerator 对 象 。 PinterentGenerator 对 象 由 注 册 到PinterentGeneratorFactory中特定组件类型的PinterentGeneratorProducer 对 象 实 例 化 。 一 旦 创 建 了ConcentGenerator对象,就可以系统地调用它们来生成代码,并将其传递给SEG来生成系统求解器函数定义。与ORTiS求解器代码生成工具一起提供的CLI工具利用网表和工厂类来执行其操作。2.6. 用于多FPGA执行的分解系统求解器生成对于需要跨多个FPGA求解的大规模PE系统模型,这些模型需要分解为具有相关求解器的子系统。这些子系统解算器由从SEG类派生的SubsystemSolverEngineGenerator这些SSEG对象利用LB-LMC方法的节点分解扩展(在[5]中详细为了创建子系统解算器,PE系统的给定网表被手动分解为跨一个或多个2端网络端口的子系统,其中为每个子系统定义网表。然后,对于每个子系统网表,将为每个元件列表创建一个CableentGenerator对象这些对象将它们的代码和其他信息以及指示分解端口节点及其端口索引的元组传递给关联的SSEG对象。SSEG对象根据给定的数据计算端口模型,并在彼此之间交换它们,以完成它们的子系统模型和生成的求解器。所得到的求解器代码然后可以存储为字符串或文件,以在多FPGA仿真器平台中使用。每个子系统求解器函数类似于SEG创建的整体求解器,但也有参数在子系统求解器之间交换源贡献,以确保子系统在仿真期间耦合以保持整体解决方案;有关详细信息,请参见[5]马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006606++++++++见图6。比较模型和模拟结果;(a)测试系统;(b)35 ns时间步长下LB-LMC和Simulink之间的比较;(c)35 ns和1 µ s时间步长之间的比较。2.7. FPGA执行创建PE系统求解器并使用ORTiS求解器代码生成工具将其部署到FPGA平台上的一般流程如图所示。3 .第三章。首先,PE系统被定义为其组成部分。然后,该网表被传递到codegen工具(CLI工具或利用求解器codegen库的应用程序),该工具基于网表生成自定义求解器函数定义接下来,将生成的求解器定义文件传递到FPGAC HLS工具,如Xilinx Vivado HLx套件,将被转换为硬件描述语言(HDL)定义,可以在FPGA目标上实现为RT仿真核心。可以将指令传递给HLS工具,以便使用指定的定时、延迟、启动间隔和资源使用来实现或者,求解器C定义可以传递给传统的C编译器,以实现为RT软件求解器,在CPU上执行。3. 说明性实例ORTiS求解器代码生成工具的一个示例用途是为图4(a)和[ 6,7 ]中描述的40 MW、12 kV双分裂母线船载PE系统生成RT仿真求解器。该系统利用图4(b)中所示的DC/AC转换器组件和电阻性负载,所有这些都以100 kHz的开关频率工作。系统模型以50 ns的时间步长离散化。系统中的每个组件都在状态空间中建模,为转换器组件应用开关函数,并在ORTiS工具中具有相应的代码生成器。的C求解器 使用codegen工具生成该系统的HLS,使用Xilinx Vivado HLx套件将HLS放入FPGA核心,然后在Xilinx VC 707 Virtex-7 FPGA套件上以50 ns时间步长执行RT,使用Texas Instruments DAC 34 H84EVM用于RT结果的模拟输出。RT仿真解决方案,在闭环控制的负载电压降低的PE转换器在系统中描绘图。4(c)马修·米尔顿和安德里亚·贝尼尼软件X 13(2021)1006607和4(d)。图4(e)和图4(f)中示出了这些负载电压在改变之前和之后的100 kHz开关纹波的放大。图5显示了以DC/AC转换器为中心的舰载PE系统的ORTiS代码生成网表的一部分;完整网表作为代码生成工具的示例提供[8]。在网表中,系统模型的名称用#name命令定义,参数常量用#const命令定义。网表中的每个元件由一行定义,该行以元件的类型开始,后跟其标签,括号中的参数和花括号中的节点连接索引。节点索引为0表示连接到系统公共端(接地)。注释通过一行添加到网表中从%字符开始。为了突出LB-LMC求解器的准确性和对小时间步长的需要,图1的独立式12 kV DC/DC转换器6(a)在由ORTiS代码生成工具生成的LB-LMC求解器下进行模拟在每个模拟器下,转换器以100kHz开关频率运行,负载输出为3500 V,使用35 ns时间步长,并经历负载通过电感/电阻路径短路到公共端的故障场景。图6(b)呈现了故障期间的负载电压,显示LB-LMC求解器几乎与商业模拟器匹配,表明LB-LMC求解器的准确性在这种情况下的LMC求解器在Simulink中,该模型还在1 µ s时间步长下对相同场景进行了仿真,负载电压如图所示。图6(c)中的时间步长,并与LB-LMC求解器的35 ns时间步长结果进行比较。如图所示,故障瞬变的较高频率元素在较大的时间步长处变得失真,同时失去保真度和时移,从而引入不准确性在模拟过程中。这些不准确性来自更大的步骤,即使在1µ s,可能会对具有高频动态特性的PE系统的RT分析和HIL测试产生不利影响。4. 影响ORTiS求解器代码生成工具为开发和部署基于RT FPGA的PE系统仿真提供了一种方便的使用这些工具,工程师和研究人员可以快速创建基于FPGA的开关PE系统仿真求解器,该求解器可以实现35 ns大小的时间步长,从而能够对具有不断增加的高频动态特性的新PE系统进行在[5-自ORTiS求解器代码生成工具开发以来,另一个研究小组已采用这些工具来分析DC PE系统故障保护的开发,其故障瞬变的高时间分辨率在商业RT模拟器上是不可能的[10,11]。由于与该小组的合作,我们还演示了如何在其他FPGA目标(如National Instruments平台)上执行代码生成的求解器[10最自然的观众的工具是研究小组,专注于PE系统设计,谁拥有现有的商业RT模拟器不能满足仿真时间分辨率的需求。这些codegen工具的开源性质也对教育团体很有吸引力,或者那些无法负担商业RT/HIL仿真器成本的公司。5. 结论本文介绍了ORTiS Solver代码生成工具及其功能。这些工具的开发旨在使PE工程师能够对现代出现的快速复杂PE系统执行高保真RT-HIL测试通过将这些工具作为开源发布,希望形成一个社区,既可以扩展工具竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认这项工作得到了美国海军研究办公室(ONR)的部分支持,资助号为N 00014 -16-1-3042。引用[1]Lin N,Dinavahi V.用于直流电网实时硬件在环仿真的主动混合HVDC断路器的 详 细 设 备 级 建 模 。IEEE Trans Power Electron 2018;33:1118[2]Milton M,Benigni A.基于延迟插入法的电力电子系统实时仿真。IEEETrans Power Electron2018;33:7166-77.[3]放大图片作者:Al-Haddad K.基于FPGA的功率变换器实时仿真的网络撕裂技术。IEEE Trans IndElectron2015;62:3409-18.[4]Benigni A,Monti A.电力电子系统实时仿真的并行方法。IEEE Trans PowerElectron2015;30(9):5192-206.[5]Milton M,Benigni A,Monti A.能量转换系统的实时多FPGA仿真。IEEETrans Energy Convers2019;34(4):2198-208.[6]Milton M,Benigni A,Bakos J.基于FPGA的船舶电力系统系统实时仿真。IEEE Trans Energy Convers 2017;32(2):737[7]Difronzo M,Milton M,Davidson M,Benigni A.高开关频率电力电子变换器的硬件在环测试。2017年IEEE电动船技术研讨会。阿灵顿VA:2017.p. 299-04[8]开放式实时仿真(ORTiS)框架。2020年,https://github.com/OpenRealTimeSimulation。[2020年10月27日在线访问[9]Milton M,Benigni A.电力电子系统实时仿真软件及综合开发库。2019年IEEE电动船技术研讨会阿灵顿VA:2019.p. 368比76[10][10]杨文,李文.用于直流保护的硬件在环平台。IEEE J Emerg Sel Top PowerElectron 2020. 抢先体验。[11][10]杨文,李文.直流不接地系统接地故障时暂态过电压和共模电压的实时仿真。在:IECON 2019里斯本,葡萄牙:2019.p. 6451-56[12][10]杨文军,杨文军.基于国产FPGA平台的电力电子系统实时仿真。2019年IEEE电动船技术研讨会阿灵顿VA:2019.第32- 38页。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)