一种模块化多电平变换器仿真方法与流程

文档序号:18139765发布日期:2019-07-10 10:58阅读:360来源:国知局
一种模块化多电平变换器仿真方法与流程
本发明实施例涉及仿真
技术领域
,特别涉及一种模块化多电平变换器仿真方法。
背景技术
:随着电力电子技术的深入发展,电路中开关器件的开关频率越来越高,电磁暂态实时仿真的步长也需要进一步缩小以满足仿真精度的要求。基于fpga(field-programmablegatearray,现场可编程门阵列,简称fpga)的电磁暂态实时仿真技术能够将顺序进行的诸多计算流程改进为并行计算,大大缩短了仿真步长,因而得到了人们越来越多的关注。模块化多电平变换器(modularmultilevelconverter,简称mmc)因其效率高、可靠性高的优势广泛应用于高压直流输电、高压直流变换器、高压电机驱动等高压大功率的应用场合,其复杂的拓扑结构极大地增加了实时仿真的难度。在高压直流输电领域,mmc作为高压直流与高压交流的换流结构,单个换流阀中可能多达500个子模块,几千个开关器件;而在高压直流换流器领域,模块化多电平双向直流变换器(mmc-dab)作为高压直流与直流的换流结构,开关频率可高达几十khz。以上这些应用场合中,为了实现对这些模块化多电平类变换器的实时仿真,以opal-rt、rtdstechnologies为主的一些国内外公司均研制出了基于fpga的实时仿真技术方案。与传统电磁暂态仿真技术不同,这里为了能够实时仿真数以千计的开关器件,将整个变换器分解为阀体与主电路两部分,如图3所示,在主电路中,整个阀体等效为一个电压源;而在阀体中,主电路电流则等效为一个电流源。通过这种分解,阀体中每一个子模块的输入即为主电路电流,而输出即为各自的母线电压,所有子模块能够通过并行算法来完成计算。图4给出了计算子模块时各功率器件的等效示意图,即将开关器件的开通和关断两种状态等效为电阻,一般情况下导通电阻ron为毫欧级别,而roff则为兆欧级别。发明人发现现有技术中至少存在如下问题:现有的mmc实时仿真技术对损耗的考虑极少,其中的导通电阻仅仅能够一定程度上粗略地反映mmc的部分损耗。由于开关器件的损耗极大地影响开关器件的温度,进而又关系着开关器件的可靠性等,因此,作为高压直流输电的重要部件,在mmc实时仿真时对损耗进行精确建模具有重大的现实意义。技术实现要素:本发明实施方式的目的在于提供一种模块化多电平变换器仿真方法,通过对变换器内的开关器件损耗进行精确建模,从而可以提高变换器仿真的精确性,更有利于评估其可靠性。为解决上述技术问题,本发明的实施方式提供了一种模块化多电平变换器仿真方法,包括以下步骤:获取变换器阀体中各子模块的当前损耗参数;所述子模块的当前损耗参数包括:所述子模块中的开关器件的当前导通压降,或者,所述子模块的当前损耗参数包括:所述子模块的当前导通压降以及所述子模块的当前开关损耗参数;所述当前导通压降以及所述当前开关损耗参数均与所述阀体的当前电流对应;根据所述各子模块的当前损耗参数计算所述变换器阀体的输出电压。本发明实施方式相对于现有技术而言,在对进行仿真时,获取变换器阀体中各子模块的当前损耗参数,并根据各子模块的当前损耗参数计算变换器阀体的输出电压,其中,子模块的当前损耗参数包括:子模块中的开关器件的当前导通压降(即子模块当前的损耗参数仅由开关器件的导通带来),或者,子模块的当前损耗参数包括:子模块的当前导通压降以及子模块的当前开关损耗参数(即子模块的当前损耗参数既包括开关器件的导通,又包括开关器件关断或者打开时的开关动作带来的开关损耗参数),并且由于当前导通压降以及当前开关损耗参数均与阀体的当前电流对应,这样,当前导通压降基本与子模块的开关器件实际工作时的导通压降一致,且开关损耗参数也与子模块的实际工作时的开关状态一致,所以使得当前损耗参数更为精确,更能模拟子模块的实际损耗参数,因此基于精确的损耗参数计算得到的mmc的阀体电压也更精确,从而提高了mmc的仿真精度。另外,预先存储与不同阀体电流对应的多组损耗参数;每组损耗参数包括:第一开关器件的第一导通压降、第二开关器件的第二导通压降以及子模块的开关损耗参数;所述获取变换器阀体中各子模块的当前损耗参数,具体包括:获取所述阀体的当前电流以及各子模块的当前开关状态;根据所述各子模块的当前开关状态以及所述阀体的当前电流的符号确定所述各子模块当前的导通器件;根据确定的所述各子模块当前的导通器件查找得到所述各子模块的当前导通压降;当所述子模块当前的导通器件为第一开关器件时,将与所述阀体的当前电流对应的第一导通压降作为所述子模块的当前导通压降,当所述子模块当前的导通器件为第二开关器件时,将与所述阀体的当前电流对应的所述第二导通压降作为所述子模块的当前导通压降;根据所述各子模块的开关状态的变化判断所述各子模块是否发生开关事件,若判断出子模块发生开关事件,则根据所述阀体的当前电流查找得到所述子模块当前的开关损耗参数。另外,所述获取所述阀体的当前电流以及各子模块的当前开关状态后,还包括:根据所述阀体的当前电流读取对应的一组损耗参数;在所述根据确定的所述各子模块当前的导通器件查找得到所述各子模块的当前导通压降中,在读取的损耗参数中得到所述各子模块当前的导通压降;以及根据所述阀体的当前电流查找得到所述子模块当前的开关损耗参数中,在读取出的损耗参数中得到各子模块当前的开关损耗参数。从而可以极大减少当前损耗参数的读取次数,提高当前损耗参数的查找效率。另外,所述根据所述阀体的当前电流读取对应的一组损耗参数,具体包括:根据所述电流值计算存储地址;在所述存储地址读取得到所述当前损耗参数。另外,所述存储地址等于所述电流值右移两位并取整。计算简单,从而可以更快读取当前损耗参数。另外,所述根据所述各子模块的当前损耗参数计算所述变换器阀体的输出电压,具体包括:计算所述各子模块的输出电压;将所述各子模块的输出电压求和得到所述阀体的输出电压。另外,所述计算所述各子模块的输出电压,具体包括:若所述子模块未发生开关事件,则按照第一预设公式计算所述子模块的母线电容电压vd;若所述子模块发生开关事件,则按照第二预设公式计算所述子模块的母线电容电压vd;根据第三预设公式计算得到所述子模块的输出电压vsm_o;所述第三预设公式为:vsm_o=sign(state)*vd+δv;其中,所述sign为所述阀体的当前电流的符号,所述state为所述子模块的当前的开关状态;所述δv为所述子模块的当前导通压降。另外,所述第一预设公式为:其中,所述vd为子模块的母线电容电压,is为子模块直流侧输入电流,isc为子模块母线电容电流,rd为放电电阻,resr为子模块母线电容的等效电阻,rc=ts/csm,ts为仿真步长,csm为子模块母线电容容值。另外,所述第二预设公式为:其中,所述vd为子模块的母线电容电压,is为子模块直流侧输入电流,isc为子模块母线电容电流,rd为放电电阻,resr为子模块母线电容的等效电阻;isw_eq为开关损耗参数,rc=ts/csm,ts为仿真步长,csm为子模块母线电容容值。另外,采用流水线结构计算得到所述各子模块的输出电压。从而可以极大提高仿真效率。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是模块化多电平变换器的拓扑结构示意图;图2是模块化多电平双向直流变换器的拓扑结构示意图;图3是仿真中模块化多电平变换器的拓扑分解示意图;图4是模块化多电平变换器中的子模块的开关器件的等效示意图;图5是模块化多电平变换器中的子模块的拓扑结构示意图;图6-9是模块化多电平变换器中的子模块不同开关状态示意图;图10是模块化多电平变换器中的子模块开关损耗参数等效示意图;图11是根据本发明第一实施方式的模块化多电平变换器仿真方法的流程图;图12-13是模块化多电平变换器中的子模块的开关器件的导通压降示意图;图14-15是模块化多电平变换器中的子模块的开关器件的开关损耗参数的示意图图16是根据本发明第一实施方式的模块化多电平变换器仿真方法以及现有技术开关器件损耗建模的对照示意图;图17是根据本发明第二实施方式的模块化多电平变换器仿真方法中子模块的输出电压的计算结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本发明考虑到现有技术中在对模块化多电平变换器,例如mmc以及mmc-dab,进行仿真时,无法精确仿真其损耗的问题,提出了对mmc的损耗进行精确建模的建模方法,并基于损耗的精确建模实现mmc的仿真,从而使得仿真得到的输出电压等的数据更精确,进而有利于基于损耗参数评估mmc的可靠性等。本发明相关实施方式所应用的损耗建模方法如下,请参阅图5所示的mmc的子模块的拓扑结构示意图,其包括第一开关器件以及第二开关器件,其中,第一开关器件例如为igbt,第二开关器件例如为二极管,本发明对于子模块的具体结构以及开关器件的类型均不作具体限制。具体地,图5所示的子模块包括2个igbt(s1、s2)、2个二极管(d1、d2)、放电电阻rd以及母线电容csm。为了方便进行计算,如图5所示,将母线电容csm用电流源等效电路等效。请参阅图1以及图2,图5所示的半桥电路作为mmc的子模块,可以用于构成mmc或mmc-dab,即mmc或mmc-dab的子模块功能完全一样。本发明中,将子模块中的开关器件导通时等效为电压源,而在其关断时即视为断路,因此,本发明中将子模块的开关器件的导通损耗通过该开关器件等效的电压源实现,例如将igbt和二极管的导通损耗通过其各自等效的电压源实现。请参阅图6至图9中的子模块的开关状态示意图,在子模块处于不同开关状态时,其导通损耗等效于处于导通状态的开关器件的等效电压源,其中,图6至图9中,不同导通状态的工作回路以及导通的开关器件以黑实线示出,断开的线路以及开关器件以虚线示出。本发明中还可以将开关器件的开关损耗参数采用图10所示的等效电流源isw_eq来实现。本发明中为精确计算开关器件的开关损耗参数,在子模块判断到其内部有开关过程发生时,即将图10所示的sw(开关)闭合,此时子模块直流母线电压接入一个负载电流源(即开关损耗参数所等效的电流源);而在未检测到有开关过程发生时,则断开该sw,从而实现开关损耗参数的模拟。因此,本发明通过开关损耗参数与导通损耗的精确模拟,从而实现对整个阀体损耗的实时仿真。本发明的第一实施方式涉及一种模块化多电平变换器仿真方法,在实际应用中,可以基于fpga实现本实施方式的模块化多电平变换器仿真方法,然不限于此。本实施方式的仿真方法包括:获取变换器阀体中各子模块的当前损耗参数,该子模块的当前损耗参数包括:该子模块中的开关器件的当前导通压降,或者,该子模块的当前损耗参数包括:该子模块的当前导通压降以及该子模块的当前开关损耗参数,该当前导通压降以及该当前开关损耗参数均与该阀体的当前电流对应,根据各子模块的当前损耗参数计算变换器阀体的输出电压。本实施方式相对于现有技术而言,在对进行仿真时,获取变换器阀体中各子模块的当前损耗参数,并根据各子模块的当前损耗参数计算变换器阀体的输出电压,其中,子模块的当前损耗参数包括:子模块中的开关器件的当前导通压降(即子模块当前的损耗参数仅由开关器件的导通带来),或者,子模块的当前损耗参数包括:子模块的当前导通压降以及子模块的当前开关损耗参数(即子模块的当前损耗参数既包括开关器件的导通,又包括开关器件关断或者打开时的开关动作带来的开关损耗参数),并且由于当前导通压降以及当前开关损耗参数均与阀体的当前电流对应,这样,当前导通压降基本与子模块的开关器件实际工作时的导通压降一致,且开关损耗参数也与子模块的实际工作时的开关状态一致,所以使得当前损耗参数更为精确,更能模拟子模块的实际损耗参数,因此基于精确的损耗参数计算得到的mmc的阀体电压也更精确,从而提高了mmc的仿真精度。下面对本实施方式的模块化多电平变换器仿真方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。请参阅图11,本实施方式中的模块化多电平变换器仿真方法,具体包括步骤10以及步骤12。步骤10:获取变换器阀体中各子模块的当前损耗参数。其中,由于不同的子模块可能处于不同的导通状态,且一些子模块存在开关状态,而另一些子模块不存在开关状态,所以,在子模块不存在开关状态时,其当前损耗参数包括:子模块中的开关器件的当前导通压降,具体地,不同的子模块的导通状态不同,当前导通压降可以是当前导通的开关器件的当前导通压降,请参阅图6-9,当导通器件为igbt时,当前导通压降即为vfe,当导通器件为二极管时,当前导通压降即为vfd;在子模块存在开关状态时,子模块的当前损耗参数包括:子模块的当前导通压降以及子模块的当前开关损耗参数。需要说明的是,子模块的当前导通压降以及当前开关损耗参数均与阀体的当前电流对应,且子模块的损耗参数需要预先存储,供实时仿真时使用。具体地,用于计算子模块中的开关器件的损耗的导通压降、开关损耗参数可来自于开关器件厂商所提供的数据手册,例如图12-15所示的开关器件的导通压降以及开关损耗参数,或者可以来自于实测数据。以图12-15中所示损耗参数为例,假设最大电流(即阀体电流(iarm))为2048a,可以每隔4a得到一组损耗参数,即得到512组损耗参数。其中每组损耗参数包括:第一开关器件的第一导通压降、第二开关器件的第二导通压降以及子模块的开关损耗参数。例如,每组损耗参数包括:igbt以及二极管的导通压降,开关损耗参数。其中图10所示的等效电流源电流用于实现子模块的各种开关状态下的开关损耗参数。本实施方式对于损耗参数的获取方式不作具体限制,即可以在更小的电流间隔或者较大的电流间隔内得到损耗参数。在一个例子中,可以预先将得到的损耗参数(导通压降以及开关损耗参数)存储在fpga的ram中,从而供实时仿真使用。请参阅图16所示,本实施方式将igbt的导通压降,参照工程计算中的等效方式,即将其等效为vce=vce0+r0*ice,由此实现的igbt的导通压降的取值参照图16中的标号为2的点状线段。而在已有的仿真案例中,通常仅等效为电阻,如图16中标号为1的线段。通过对比可以发现,现有的导通损耗的计算比较简略,而本实施方式的建模方法使得损耗的精度大大提高。其中,损耗参数可以以表形式存储在fpga中,本实施方式对于损耗参数的存储方式不作具体限制。在一个例子中,由于损耗参数与阀体电流对应,在存储损耗参数时,可以将阀体电流的电流值右移两位并取整,并将得到的整数作为损耗参数的存储地址。例如,假设阀体电流值为523.8a,则右移两位即是除以4,即为130.95,取整可得131,则整数131即为与电流值为523.8a对应的一组损耗参数的存储地址。本实施方式中,步骤10包括子步骤100至子步骤105。子步骤100:获取阀体的当前电流以及各子模块的当前开关状态。本领域技术人员可以采用已知方式获取阀体的当前电流以及各子模块的当前开关状态state,本实施方式对此不再赘述。子步骤101:根据各子模块的当前开关状态以及阀体的当前电流的符号确定各子模块当前的导通器件。其中,state即为整个子模块的输出状态,当state=0时,子模块实际输出电压为0*vd+δv;当state=1时,子模块实际输出电压为1*vd+δv。子步骤102:根据确定的各子模块当前的导通器件查找得到各子模块的当前导通压降。即,当子模块当前的导通器件为第一开关器件时,将与阀体的当前电流对应的第一导通压降作为子模块的当前导通压降,当子模块当前的导通器件为第二开关器件时,将与阀体的当前电流对应的第二导通压降作为子模块的当前导通压降。具体地,子模块的当前导通器件与开关状态state以及阀体电流的对应关系请参阅表一:表一switch1ononoffoffoffoffswitch2offoffononoffoffiarm>0<0>0<0>0<0δvvfd-vfevfe-vfdvfd-vfdstate110010isiarmiarm00iarm0vovd+δvvd+δvδvδvvd+δvδv表一中,switch1以及switch2分别为图5所示的拓扑结构中的igbts1以及s2的控制信号,iarm为阀体的当前电流,δv为子模块当前的导通压降,state为子模块的开关状态,其中,当state从1变为0或者从0变为1,即state发生变化时,表示子模块中发生了开关事件,is为子模块直流侧输入电流,vo为子模块输出电压,在本实施方式中,子模块输出电压也可以采用vsm_o表示。在实际应用中,导通器件的确定或者第一导通压降(即vfe)以及第二导通压降(即vfd)的确定,还可以采用以下关系式实现:上述关系式可以更为方便地确定子模块的导通压降为第一导通压降还是第二导通压降。其中,δv表示导通压降,sign表示求iarm的符号,vfe表示igbt的导通压降,vfd表示二极管的导通压降。子步骤103:根据各子模块的开关状态的变化判断各子模块是否发生开关事件,若判断出子模块发生开关事件,则执行子步骤104,否则,若判断出子模块未发生开关事件,则执行子步骤105。具体地,参考表一,当开关状态state从1变为0或者从0变为1时,即视为子模块发生开关事件。子步骤104:根据阀体的当前电流查找得到子模块当前的开关损耗参数。子步骤105:不获取子模块当前的开关损耗参数。在一个例子中,可以一次性获取,例如在一个仿真周期的子周期内一次读取与阀体的当前电流对应的一组损耗参数,从而无需为每个子模块重复读取损耗参数。步骤12:根据各子模块的当前损耗参数计算变换器阀体的输出电压。具体而言,步骤12包括子步骤120以及子步骤122。子步骤120:计算各子模块的输出电压。其中,子步骤120具体包括下一级子步骤1200至下一级子步骤1203。下一级子步骤1200:判断子模块是否发生开关事件,若发生开关事件,则执行下一级子步骤1201,若未发生开关事件,则执行下一级子步骤1202。开关事件的判断方式如上文所述,此处不再赘述。下一级子步骤1201:按照第二预设公式计算子模块的母线电容电压vd。其中,第二预设公式为:其中,vd为子模块的母线电容电压,is为子模块直流侧输入电流,isc为子模块母线电容电流,rd为放电电阻,resr为子模块母线电容的等效电阻;isw_eq为开关损耗参数,即等效的电流源的电流,rc=ts/csm,ts为仿真步长,csm为子模块母线电容容值,α、β、χ、δ为简化公式的替代量,并无实际意义。下一级子步骤1202:按照第一预设公式计算子模块的母线电容电压vd。其中,所述第一预设公式为:其中,vd为子模块的母线电容电压,is为子模块直流侧输入电流,参考表一,is=sign(state)*iarm。isc为子模块母线电容电流,rd为放电电阻,resr为子模块母线电容的等效电阻,rc=ts/csm,ts为仿真步长,csm为子模块母线电容容值。下一级子步骤1203:根据第三预设公式计算得到子模块的输出电压vsm_o第三预设公式为:vsm_o=sign(state)*vd+δv。其中,sign为阀体的当前电流的符号,state为子模块的当前的开关状态,δv为子模块的当前导通压降,例如,当子模块的导通器件为第一开关器件,例如为igbt时,当前导通压降为igbt的导通压降,当子模块的导通器件为第二开关器件,例如为二极管时,当前导通压降为二极管的导通压降。子步骤122:将各子模块的输出电压求和得到阀体的输出电压。具体地,采用如下公式计算得到阀体的输出电压:其中,n为mmc阀体中子模块的总数量,i表示子模块的序号。本实施方式与现有技术相比,能够在精确体现开关器件的导通损耗与开关损耗参数的前提下完成模块化多电平类变换器阀体的实时仿真,不仅能够应用于mmc,也可用于mmc-dab等其他模块化多电平类变换器的实时仿真。本发明的第二实施方式涉及一种模块化多电平变换器仿真方法。第二实施方式在第一实施方式的基础上做出改进,主要改进之处在于:在第二实施方式中,对实施仿真的计算方式做出了进一步限定,从而可以极大地提高仿真效率。请继续参阅图11以及图16,本实施方式中,各仿真周期包括:预计算以及流水线计算。其中,预计算用于执行步骤10中的相关任务,而子步骤120中的计算过程则采用流水线结构计算。换句话说,预计算主要用于判断阀体电流符号,根据阀体电流值查找当前电流下所有子模块中开关器件的导通压降与开关损耗参数。流水线计算过程中,将累加每个子模块的输出电压,最终得到整个阀体的输出电压varm(阀体电压),从而完成整个阀体的计算。本实施方式与第一实施方式相比,由于阀体中所有子模块的计算过程完全相同,在此基础上,采用流水线结构计算,从而可以极大地提高仿真效率。上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1