一种基于快速排序的mmc子模块电容电压平衡控制方法
【专利摘要】本发明公开了一种基于快速排序的MMC子模块电容电压平衡控制方法,先定义数组A[xn?1]、B[ym?1]分别存放处于切除状态与投入状态的子模块电容电压值;然后根据不同情形只对A[xn?1]或者B[ym?1]进行第一轮排序,得到对应的低压、高压两个数组;再根据进一步情形只对A[xn?1]低压数组或者A[xn?1]高压数组或者B[ym?1]高压数组进行第二轮排序,得到某细分数组;经过第二轮排序后,再根据具体指令按排序选取相应细分数组中的ΔN个子模块投入或切除。本方法基于快速排序算法原理,采用分治策略思想对MMC子模块电容电压进行平衡控制,不对桥臂所有子模块进行完全排序,降低传统排序计算时间,能更有效地提升MMC桥臂子模块电容均压算法的计算速度。
【专利说明】
一种基于快速排序的MMC子模块电容电压平衡控制方法
技术领域
[0001] 本发明涉及柔性直流输电,具体涉及一种基于快速排序的模块化多电平换流器子 模块电容电压平衡控制方法,属于输电技术领域。
【背景技术】
[0002] 基于模块化多电平换流器(Modular Multilevel Converter,MMC)的柔性直流输 电技术由于没有换相失败的问题、可独立调节有功和无功功率等优点而广泛应用于风电并 网、电网异步互联和远距离大容量输电等领域。模块化多电平换流器直流侧由许多子模块 直流电容电压串联维持,换流器的直流电压控制目标不仅包括总直流电压的稳定,还包括 保持各个子模块直流电容电压的平衡。
[0003] 传统MMC子模块电容平衡控制算法首先通过监测每个子模块电容电压值,并将其 进行排序处理,然后根据桥臂电流方向决定投入电容电压偏高的子模块或电容电压偏低的 子模块。随着柔直工程输送容量的提升,换流阀单个桥臂子模块数量也随着显著增加。以渝 鄂柔性直流背靠背工程为例,其单个桥臂模块数达540个,随着桥臂子模块数的增加,每个 控制周期对所有子模块电容电压进行排序来确定需要投切的子模块势必会导致较高的开 关频率和计算量的提升。
[0004] 虽然目前已经有一些针对MMC子模块电容均压的平衡控制算法的研究工作,例如: [0005] 1.孔明,汤广福,贺之渊,等.基于子模块电容电压预估的MMC分段电压平衡优化控 制[J] ·高电压技术,2015,41(7) :2458-2463。
[0006] 2.屠卿瑞,徐政,郑翔.一种优化的模块化多电平换流器电压均衡控制方法[J].电 工技术学报,2011,26(5): 15-20。
[0007] 3.喻锋,王西田,林卫星,等.一种快速的模块化多电平换流器电压均衡控制策略 [J] ·中国电机工程学报,2015,35(4) :929-934。
[0008] 4.喻锋,王西田.基于冒泡原理的模块化多电平换流器快速电压均衡控制策略 [J]·电力自动化设备,2015,35(9):81-86。
[0009] 5 .罗永捷,李子欣,李耀华,等.一种模块化多电平换流器分布式均压控制策略 [J] ·电源学报,2015,13(6) :77-83。
[0010] 这些研究针对传统子模块排序开关频率高和计算量大的问题,提出了不同的改进 策略并对子模块均压排序问题做了有益的探索,但目前的子模块电容电压均需对所有子模 块进行完全排序,排序计算时间仍然很大。
【发明内容】
[0011] 为了解决上述问题,本发明提出了一种基于快速排序的子模块电容电压平衡控制 方法。本方法基于快速排序算法原理,采用分治策略思想对MMC子模块电容电压进行平衡控 制,不对桥臂所有子模块进行完全排序,降低传统排序计算时间,能更有效地提升MMC桥臂 子模块电容均压算法的计算速度。
[0012] 本发明的技术方案是这样实现的:
[0013] -种基于快速排序的MMC子模块电容电压平衡控制方法,按如下步骤进行:
[0014] 步骤1:定义两个数组Atxn-Ojtyw]分别存放桥臂中当前处于切除状态的N个子 模块电容电压值与处于投入状态的Μ个子模块电容电压值;
[0015] 步骤2:根据以下方法进行第一轮排序,
[0016] 若换流站控制层指令需要投入△ Ν个子模块,则以子模块电压额定值UN为基准对A [Xn-l]中的子模块电容电压进行第一轮排序,将Α[χ η-1]中的子模块电容电压值分为Α[χη-1] 低压值类、Aku]高压值类两个数组;其中,Aku]低压值类数组中的子模块电容电压值都 比子模块电压额定值Un低,Aku]高压值类数组中的子模块电容电压值都比子模块电压额 定值Un尚;
[0017] 若换流站控制层指令需要切除△ N个子模块,则以子模块电压额定值UN为基准对B [ym-l]中的子模块电容电压进行第一轮排序,将B[ym-1]中的子模块电容电压值分为B[ym-1] 低压值类、高压值类两个数组;其中,B[y^]低压值类数组中的子模块电容电压值都 比子模块电压额定值Un低,高压值类数组中的子模块电容电压值都比子模块电压额 定值Un尚;
[0018] 步骤3:根据以下方法进行第二轮排序,
[0019] 如果需要投入子模块且桥臂电流处于充电状态,则以0.95UN为基准对Akn]低压 值类数组中的子模块电容电压值进行排序,得到A[ Xn-i]低-低压值类、Aku]低-高压值类 两个数组,两个数组对应的子模块个数分别为m和a2;其中,A[ n ]低-低压值类数组中的子 模块电容电压值都比〇.95Un低,Α[χη-0低-高压值类数组中的子模块电容电压值都比0.95U N 高;如果需要投入子模块且桥臂电流处于放电状态,则以l.05UN为基准对六[知-1]高压值类 数组中的子模块电容电压值进行排序,得到六卜^^高-低压值类、高压值类两个 数组,两个数组对应的子模块个数分别为a 3和a4;其中,Atn]高-低压值类数组中的子模块 电容电压值都比l.〇5UN低,Atn]高-高压值类数组中的子模块电容电压值都比1.05Un高;
[0020] 如果需要切除子模块,则不论桥臂电流方向,以1.05UN为基准对Bty^]高压值类 数组中的子模块电容电压值进行排序,得到Btyw]高-低压值类、Btyw]高-高压值类两个 数组,两个数组对应的子模块个数分别为b#Pb 2;其中,高-低压值类数组中的子模块 电容电压值都比l.〇5UN低,Btyn]高-高压值类数组中的子模块电容电压值都比1.05Un高; [0021 ]步骤4:经过第二轮排序后,对于投入子模块命令且桥臂电流处于充电状态,如果 ai< ΔΝ,则对高压值类数组进行快速排序,并选取其中电压最小的AN_ai个电压 所对应子模块和Abu]低-低压值类数组中所对应的全部子模块投入;如果 ai>AN,则对A [xh]低_低压值类数组进行快速排序,并选取其中电压最小的A N个电压所对应子模块投 入;
[0022]对于投入子模块命令且桥臂电流处于放电状态,如果a4<AN,则对Atn]高-低 压值类数组进行快速排序,并选取其中最大的AN_a4个电压所对应的子模块和4[^-1]高_ 高压值类数组中所对应的所有子模块投入;如果a 4>AN,则对高-高压值类数组进 行快速排序,并选取其中最大的AN个电压所对应的子模块投入;
[0023]对于切除子模块命令,如果b2<AN,则对高-低压值类数组进行快速排序, 并选取其中最大的A N_b2个电压所对应的子模块和扯7"-1]高_高压值类数组所对应的全部 子模块切除;如果b2> Δ N,则对Btyn]高-高压值类数组进行快速排序,并选取其中最大的 Δ N个电压所对应的子模块切除;
[0024] 步骤5:等待下一个控制周期,重复步骤1-步骤4。
[0025] 这一用快速排序法对待投入的子模块电容电压进行排序选或者是对已投入的子 模块电容电压进行排序,根据模块充放电状态决定投切的电压低的或是电压高的AN个子 模块的方法,能够在子模块数量较多时,减小子模块均压排序量,相比于传统基于电容电压 排序的均衡控制策略计算量明显减小。
[0026] 本发明提出的基于快速排序法的模块化多电平换流器子模块电容电压平衡控制 方法,分别设置两个数组存放将处于切除状态的N个与处于投入状态的Μ个 子模块电容电压值,根据△ Ν的正负、大小以及桥臂电流的方向,确定进行快速排序法的元 素来源。基于分治思想,自定义电压基准值对待投切子模块电容电压进行多轮快速排序初 步筛选,避免了对所有子模块电容电压进行完全排序,减小子模块电容电压总排序计算次 数,可在一定程度上减少系统开关频率,减少了控制算法的计算时间。
【附图说明】
[0027] 图1-本发明模块化多电平换流器(MMC)的拓扑结构。
[0028] 图2-本发明需投入子模块且桥臂电流处于充电方向时子模块电容电压快速排序 法流程图。
[0029] 图3-本发明需投入子模块且桥臂电流处于放电方向时子模块电容电压快速排序 法流程图。
[0030] 图4-本发明需切除子模块时子模块电容电压快速排序法流程图。
【具体实施方式】
[0031] 下面结合附图,对基于快速排序法的模块化多电平换流器子模块电容电压平衡控 制算法进行详细说明。
[0032] 图1为模块化多电平换流器(MMC)的拓扑结构图,图2-图4为本发明所述基于快速 排序法的模块化多电平换流器子模块电容电压平衡控制算法不同情形下的控制方法流程 图。若采用传统排序法对桥臂子模块电容进行均压,当桥臂子模块数量很多时,排序运算量 将十分庞大,控制系统计算速度将变得非常缓慢。本发明基于分治思想,自定义电压基准值 对待投切子模块电容电压进行多轮快速排序初步筛选,避免了对所有子模块电容电压进行 完全排序,减小子模块电容电压总排序计算次数。具体实现步骤如下:
[0033] 首先,定义两个数组分别存放桥臂中当前处于切除状态的Ν个子模 块电容电压值与处于投入状态的Μ个子模块电容电压值;比较换流站控制层指令给出的需 投入子模块个数k与当前已投入子模块个数Μ的差值,判断下一个控制周期子模块需要投切 操作个数ΛΝ。
[0034]然后,根据换流站控制层投切指令和桥臂电流方向,确定最小的子模块排序范围, 避免针对所有子模块进行排序增加计算量。
[0035]若换流站控制层指令需投入ΛΝ个子模块,采用分治思想,以子模块电压额定值UN 为基准对Aku]中的子模块电压进行一轮快速排序,将所有待投入子模块电容电压分为低 于服的见个元素~ 刈以及高于邮伽2个元素~i[Xw]。由于只进行一轮快 速排序,卜~Ah]内部的子模块电压大小顺序仍然是乱序。
[0036] 经第一轮快速排序,当桥臂电流Iarm为充电方向时,选择/? ^ ~.4卜V1 ],以〇. 95UN 为基准对进行一轮快速排序,得到低于〇.951^的&1个元素 以及高于〇 . 95UN的a2个元素1~当桥臂电流1 arm为放电方向时,选择 <λ·Λ?:ι]~],以1. 〇5UN为基准对进行一轮快速排序,得到低于1. 〇5UN的 已3个兀素-^.崎,-:丨以及尚于1.05Un的a4个兀素 j .Yvttu3
[0037] 经第二轮快速排序,当桥臂电流Ia?为充电方向且ai> Δ N,则对~4fxai__J进 行快速排序,选出需要投入的电容电压最低的ΛΝ个子模块投入;若ai< △ N,则对 进行快速排序,选出其中电容电压最低的AN_ai个子模块与ai个元素 //μ」所代表的子模块一起投入。本发明需投入子模块且桥臂电流处于充电方向 时子模块电容电压快速排序法流程图见图2。
[0038] 当桥臂电流Ia?为放电方向且AN<a4,则对元素个数为a4的~对 应的子模块电压进行快速排序法,选出需要投入的电容电压较高的AN个子模块投入;若a 4 < A N,则对~使用快速排序法,选择电容电压最高的Δ N_a4个元素代表的 子模块和a4个元素所代表的子模块投入。本发明需投入子模块且桥臂电 流处于放电方向时子模块电容电压快速排序法流程图见图3。
[0039] 若换流站控制层指令需切除ΛΝ个子模块,以子模块电容额定值UN为基准对B [ym-l]中的子模块电压进行一轮快速排序,将已投入子模块电容电压分为低于UN的N3个元素 5Lv〇]~B -%3-丨以及高于Un的N4个元素5 3?
[0040] 经第一轮快速排序,选择对)、]~B[凡,-!],以1 · 05?为基准对~ B[ v,"-^进 行一轮快速排序,得到低于1.05Un的bi个元素S >V3 ~B >^+iH以及高于1.05Un的b2个元
[0041 ]若Δ N<b2,则对~ 进行快速排序法,选出需切除的电容电压最高 的Λ Ν个子模块,若b2< Δ Ν,则对<以]~Β[^346Η]进行快速排序法,选出其中电容电压 最高的AN_b2个子模块与b2个元素对应的子模块切除。本发明需切除子 模块时子模块电容电压快速排序法流程图见图4。
[0042]本发明采用分治策略思想以额定子模块电容电压为基准,根据投入或切除指令对 处于切除状态子模块或投入状态子模块数组进行第一轮快速排序,得到的低压值类和高压 值类数组。
[0043] 第二轮排序时,对投入子模块命令,需结合桥臂电流方向来决定不同基准值电压 对第一轮排序得到的A[ ]低压值类或高压值类数组再进行一轮快速排序。对于切除子模 块命令,不考虑桥臂电流方向,只对第一轮得到的高压值类元素进行一轮快速排序。
[0044] 采用本发明中的方法,考虑到不同情况下对投入或者切除的子模块要求不同确定 不同的元素进行快速排序法,更多的依赖于程序对数据的处理而不是对桥臂子模块进行全 部排序,本发明可在一定程度上降低当桥臂子模块增加所带来的排序计算耗时问题。
[0045]最后需要说明的是,本发明的上述实例仅仅是为说明本发明所作的举例,而并非 是对本发明的实施方式的限定。尽管
【申请人】参照较佳实施例对本发明进行了详细说明,对 于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化和 变动。这里无法对所有的实施方式予以穷举。凡是属于本发明的技术方案所引申出的显而 易见的变化或变动仍处于本发明的保护范围之列。
【主权项】
1. 一种基于快速排序的MMC子模块电容电压平衡控制方法,其特征在于:按如下步骤进 行: 步骤1:定义两个数组分别存放桥臂中当前处于切除状态的N个子模块 电容电压值与处于投入状态的Μ个子模块电容电压值; 步骤2:根据以下方法进行第一轮排序, 若换流站控制层指令需要投入AN个子模块,则以子模块电压额定值UN为基准对Aku] 中的子模块电容电压进行第一轮排序,将A[Xn-i]中的子模块电容电压值分为Atn]低压值 类、Aku]高压值类两个数组;其中,Aku]低压值类数组中的子模块电容电压值都比子模 块电压额定值Un低,Akn]高压值类数组中的子模块电容电压值都比子模块电压额定值U N 尚; 若换流站控制层指令需要切除A N个子模块,则以子模块电压额定值UN为基准对B [] 中的子模块电容电压进行第一轮排序,将Β[χ]中的子模块电容电压值分为Β[χ]低压值 类、Btyw]高压值类两个数组;其中,Btyw]低压值类数组中的子模块电容电压值都比子模 块电压额定值Un低,Btyw]高压值类数组中的子模块电容电压值都比子模块电压额定值U N 尚; 步骤3:根据以下方法进行第二轮排序, 如果需要投入子模块且桥臂电流处于充电状态,则以〇.95Un为基准对Atn]低压值类 数组中的子模块电容电压值进行排序,得到AbuHS-低压值类、AkuHS-高压值类两个 数组,两个数组对应的子模块个数分别为m和a 2;其中,Atn]低-低压值类数组中的子模块 电容电压值都比〇.95Un低,AtuHS-高压值类数组中的子模块电容电压值都比0.95Un高; 如果需要投入子模块且桥臂电流处于放电状态,则以l.〇5U N为基准对Atxn]高压值类数组 中的子模块电容电压值进行排序,得到A[Xn-i]高-低压值类、高压值类两个数组, 两个数组对应的子模块个数分别为a 3和a4;其中,Atn]高-低压值类数组中的子模块电容 电压值都比l.〇5UN低,Α[χ η-^高-高压值类数组中的子模块电容电压值都比1.05UN高; 如果需要切除子模块,则不论桥臂电流方向,以l.〇5UN为基准对Btyw]高压值类数组中 的子模块电容电压值进行排序,得到B[ym-i]高-低压值类、Btyn]高-高压值类两个数组,两 个数组对应的子模块个数分别为b#Pb 2;其中,高-低压值类数组中的子模块电容电 压值都比1.05Un低,B[ym-〇高-高压值类数组中的子模块电容电压值都比1.05U N高; 步骤4:经过第二轮排序后,对于投入子模块命令且桥臂电流处于充电状态,如果m < Δ N,则对高压值类数组进行快速排序,并选取其中电压最小的AN-ai个电压所对 应子模块和Athd低-低压值类数组中所对应的全部子模块投入;如果 ai> Λ N,则对A [xh]低_低压值类数组进行快速排序,并选取其中电压最小的A N个电压所对应子模块投 入; 对于投入子模块命令且桥臂电流处于放电状态,如果a4<AN,则对Atx^]高-低压值类 数组进行快速排序,并选取其中最大的A N_a4个电压所对应的子模块和高压值 类数组中所对应的所有子模块投入;如果a4>AN,则对高-高压值类数组进行快速 排序,并选取其中最大的AN个电压所对应的子模块投入; 对于切除子模块命令,如果b2<AN,则对Btyn]高-低压值类数组进行快速排序,并选 取其中最大的A N_b2个电压所对应的子模块和扯7"-1]高-高压值类数组所对应的全部子模
【文档编号】H02J3/36GK106026735SQ201610648993
【公开日】2016年10月12日
【申请日】2016年8月9日
【发明人】余锐, 熊小伏, 蒋航, 肖超, 欧阳金鑫, 陈愚, 叶琼蔚
【申请人】国家电网公司西南分部, 重庆大学