一种基于快速排序的MMC子模块电容电压平衡控制方法转让专利

申请号 : CN201610648993.2

文献号 : CN106026735B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 余锐熊小伏蒋航肖超欧阳金鑫陈愚叶琼蔚

申请人 : 国家电网公司西南分部重庆大学

摘要 :

本发明公开了一种基于快速排序的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桥臂子模块电容均压算法的计算速度。

权利要求 :

1.一种基于快速排序的MMC子模块电容电压平衡控制方法,其特征在于:按如下步骤进行:

步骤1:定义两个数组A[xn-1]、B[ym-1]分别存放桥臂中当前处于切除状态的N个子模块电容电压值与处于投入状态的M个子模块电容电压值;n、m的取值与N、M对应相同,当N、M为零时,数组A[xn-1]、B[ym-1]为空;

步骤2:根据以下方法进行第一轮排序,

若换流站控制层指令需要投入ΔN个子模块,则以子模块电压额定值UN为基准对A[xn-1]中的子模块电容电压进行第一轮排序,将A[xn-1]中的子模块电容电压值分为A[xn-1]低压值类、A[xn-1]高压值类两个数组;其中,A[xn-1]低压值类数组中的子模块电容电压值都比子模块电压额定值UN低,A[xn-1]高压值类数组中的子模块电容电压值都比子模块电压额定值UN高;

若换流站控制层指令需要切除ΔN个子模块,则以子模块电压额定值UN为基准对B[ym-1]中的子模块电容电压进行第一轮排序,将B[ym-1]中的子模块电容电压值分为B[ym-1]低压值类、B[ym-1]高压值类两个数组;其中,B[ym-1]低压值类数组中的子模块电容电压值都比子模块电压额定值UN低,B[ym-1]高压值类数组中的子模块电容电压值都比子模块电压额定值UN高;

步骤3:根据以下方法进行第二轮排序,

如果需要投入子模块且桥臂电流处于充电状态,则以0.95UN为基准对A[xn-1]低压值类数组中的子模块电容电压值进行排序,得到A[xn-1]低-低压值类、A[xn-1]低-高压值类两个数组,两个数组对应的子模块个数分别为a1和a2;其中,A[xn-1]低-低压值类数组中的子模块电容电压值都比0.95UN低,A[xn-1]低-高压值类数组中的子模块电容电压值都比0.95UN高;

如果需要投入子模块且桥臂电流处于放电状态,则以1.05UN为基准对A[xn-1]高压值类数组中的子模块电容电压值进行排序,得到A[xn-1]高-低压值类、A[xn-1]高-高压值类两个数组,两个数组对应的子模块个数分别为a3和a4;其中,A[xn-1]高-低压值类数组中的子模块电容电压值都比1.05UN低,A[xn-1]高-高压值类数组中的子模块电容电压值都比1.05UN高;

如果需要切除子模块,则不论桥臂电流方向,以1.05UN为基准对B[ym-1]高压值类数组中的子模块电容电压值进行排序,得到B[ym-1]高-低压值类、B[ym-1]高-高压值类两个数组,两个数组对应的子模块个数分别为b1和b2;其中,B[ym-1]高-低压值类数组中的子模块电容电压值都比1.05UN低,B[ym-1]高-高压值类数组中的子模块电容电压值都比1.05UN高;

步骤4:经过第二轮排序后,对于投入子模块命令且桥臂电流处于充电状态,如果a1<ΔN,则对A[xn-1]低-高压值类数组进行快速排序,并选取其中电压最小的ΔN-a1个电压所对应子模块和A[xn-1]低-低压值类数组中所对应的全部子模块投入;如果a1>ΔN,则对A[xn-1]低-低压值类数组进行快速排序,并选取其中电压最小的ΔN个电压所对应子模块投入;

对于投入子模块命令且桥臂电流处于放电状态,如果a4<ΔN,则对A[xn-1]高-低压值类数组进行快速排序,并选取其中最大的ΔN-a4个电压所对应的子模块和A[xn-1]高-高压值类数组中所对应的所有子模块投入;如果a4>ΔN,则对A[xn-1]高-高压值类数组进行快速排序,并选取其中最大的ΔN个电压所对应的子模块投入;

对于切除子模块命令,如果b2<ΔN,则对B[ym-1]高-低压值类数组进行快速排序,并选取其中最大的ΔN-b2个电压所对应的子模块和B[ym-1]高-高压值类数组所对应的全部子模块切除;如果b2>ΔN,则对B[ym-1]高-高压值类数组进行快速排序,并选取其中最大的ΔN个电压所对应的子模块切除;

步骤5:等待下一个控制周期,重复步骤1-步骤4。

说明书 :

一种基于快速排序的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:定义两个数组A[xn-1]、B[ym-1]分别存放桥臂中当前处于切除状态的N个子模块电容电压值与处于投入状态的M个子模块电容电压值;n、m的取值与N、M对应相同,当N、M为零时,数组A[xn-1]、B[ym-1]为空;
[0015] 步骤2:根据以下方法进行第一轮排序,
[0016] 若换流站控制层指令需要投入ΔN个子模块,则以子模块电压额定值UN为基准对A[xn-1]中的子模块电容电压进行第一轮排序,将A[xn-1]中的子模块电容电压值分为A[xn-1]低压值类、A[xn-1]高压值类两个数组;其中,A[xn-1]低压值类数组中的子模块电容电压值都比子模块电压额定值UN低,A[xn-1]高压值类数组中的子模块电容电压值都比子模块电压额定值UN高;
[0017] 若换流站控制层指令需要切除ΔN个子模块,则以子模块电压额定值UN为基准对B[ym-1]中的子模块电容电压进行第一轮排序,将B[ym-1]中的子模块电容电压值分为B[ym-1]低压值类、B[ym-1]高压值类两个数组;其中,B[ym-1]低压值类数组中的子模块电容电压值都比子模块电压额定值UN低,B[ym-1]高压值类数组中的子模块电容电压值都比子模块电压额定值UN高;
[0018] 步骤3:根据以下方法进行第二轮排序,
[0019] 如果需要投入子模块且桥臂电流处于充电状态,则以0.95UN为基准对A[xn-1]低压值类数组中的子模块电容电压值进行排序,得到A[xn-1]低-低压值类、A[xn-1]低-高压值类两个数组,两个数组对应的子模块个数分别为a1和a2;其中,A[xn-1]低-低压值类数组中的子模块电容电压值都比0.95UN低,A[xn-1]低-高压值类数组中的子模块电容电压值都比0.95UN高;如果需要投入子模块且桥臂电流处于放电状态,则以1.05UN为基准对A[xn-1]高压值类数组中的子模块电容电压值进行排序,得到A[xn-1]高-低压值类、A[xn-1]高-高压值类两个数组,两个数组对应的子模块个数分别为a3和a4;其中,A[xn-1]高-低压值类数组中的子模块电容电压值都比1.05UN低,A[xn-1]高-高压值类数组中的子模块电容电压值都比1.05UN高;
[0020] 如果需要切除子模块,则不论桥臂电流方向,以1.05UN为基准对B[ym-1]高压值类数组中的子模块电容电压值进行排序,得到B[ym-1]高-低压值类、B[ym-1]高-高压值类两个数组,两个数组对应的子模块个数分别为b1和b2;其中,B[ym-1]高-低压值类数组中的子模块电容电压值都比1.05UN低,B[ym-1]高-高压值类数组中的子模块电容电压值都比1.05UN高;
[0021] 步骤4:经过第二轮排序后,对于投入子模块命令且桥臂电流处于充电状态,如果a1<ΔN,则对A[xn-1]低-高压值类数组进行快速排序,并选取其中电压最小的ΔN-a1个电压所对应子模块和A[xn-1]低-低压值类数组中所对应的全部子模块投入;如果a1>ΔN,则对A[xn-1]低-低压值类数组进行快速排序,并选取其中电压最小的ΔN个电压所对应子模块投入;
[0022] 对于投入子模块命令且桥臂电流处于放电状态,如果a4<ΔN,则对A[xn-1]高-低压值类数组进行快速排序,并选取其中最大的ΔN-a4个电压所对应的子模块和A[xn-1]高-高压值类数组中所对应的所有子模块投入;如果a4>ΔN,则对A[xn-1]高-高压值类数组进行快速排序,并选取其中最大的ΔN个电压所对应的子模块投入;
[0023] 对于切除子模块命令,如果b2<ΔN,则对B[ym-1]高-低压值类数组进行快速排序,并选取其中最大的ΔN-b2个电压所对应的子模块和B[ym-1]高-高压值类数组所对应的全部子模块切除;如果b2>ΔN,则对B[ym-1]高-高压值类数组进行快速排序,并选取其中最大的ΔN个电压所对应的子模块切除;
[0024] 步骤5:等待下一个控制周期,重复步骤1-步骤4。
[0025] 这一用快速排序法对待投入的子模块电容电压进行排序选或者是对已投入的子模块电容电压进行排序,根据模块充放电状态决定投切的电压低的或是电压高的ΔN个子模块的方法,能够在子模块数量较多时,减小子模块均压排序量,相比于传统基于电容电压排序的均衡控制策略计算量明显减小。
[0026] 本发明提出的基于快速排序法的模块化多电平换流器子模块电容电压平衡控制方法,分别设置两个数组A[xn-1]、B[ym-1]存放将处于切除状态的N个与处于投入状态的M个子模块电容电压值,根据ΔN的正负、大小以及桥臂电流的方向,确定进行快速排序法的元素来源。基于分治思想,自定义电压基准值对待投切子模块电容电压进行多轮快速排序初步筛选,避免了对所有子模块电容电压进行完全排序,减小子模块电容电压总排序计算次数,可在一定程度上减少系统开关频率,减少了控制算法的计算时间。

附图说明

[0027] 图1-本发明模块化多电平换流器(MMC)的拓扑结构。
[0028] 图2-本发明需投入子模块且桥臂电流处于充电方向时子模块电容电压快速排序法流程图。
[0029] 图3-本发明需投入子模块且桥臂电流处于放电方向时子模块电容电压快速排序法流程图。
[0030] 图4-本发明需切除子模块时子模块电容电压快速排序法流程图。

具体实施方式

[0031] 下面结合附图,对基于快速排序法的模块化多电平换流器子模块电容电压平衡控制算法进行详细说明。
[0032] 图1为模块化多电平换流器(MMC)的拓扑结构图,图2-图4为本发明所述基于快速排序法的模块化多电平换流器子模块电容电压平衡控制算法不同情形下的控制方法流程图。若采用传统排序法对桥臂子模块电容进行均压,当桥臂子模块数量很多时,排序运算量将十分庞大,控制系统计算速度将变得非常缓慢。本发明基于分治思想,自定义电压基准值对待投切子模块电容电压进行多轮快速排序初步筛选,避免了对所有子模块电容电压进行完全排序,减小子模块电容电压总排序计算次数。具体实现步骤如下:
[0033] 首先,定义两个数组A[xn-1]、B[ym-1]分别存放桥臂中当前处于切除状态的N个子模块电容电压值与处于投入状态的M个子模块电容电压值;比较换流站控制层指令给出的需投入子模块个数k与当前已投入子模块个数M的差值,判断下一个控制周期子模块需要投切操作个数△N。
[0034] 然后,根据换流站控制层投切指令和桥臂电流方向,确定最小的子模块排序范围,避免针对所有子模块进行排序增加计算量。
[0035] 若换流站控制层指令需投入△N个子模块,采用分治思想,以子模块电压额定值UN为基准对A[xn-1]中的子模块电压进行一轮快速排序,将所有待投入子模块电容电压分为低于UN的N1个元素 以及高于UN的N2个元素 由于只进行一轮快速排序, 及 内部的子模块电压大小顺序仍然是乱序。
[0036] 经第一轮快速排序,当桥臂电流Iarm为充电方向时,选择 以0.95UN为基准对 进行一轮快速排序,得到低于0.95UN的a1个元素 以及高于0.95UN的a2个元素 当桥臂电流Iarm为放电方向时,选择
以1.05UN为基准对 进行一轮快速排序,得到低于1.05UN的
a3个元素 以及高于1.05UN的a4个元素
[0037] 经第二轮快速排序,当桥臂电流Iarm为充电方向且a1>ΔN,则对 进行快速排序,选出需要投入的电容电压最低的△N个子模块投入;若a1<ΔN,则对进行快速排序,选出其中电容电压最低的ΔN-a1个子模块与a1个元素所代表的子模块一起投入。本发明需投入子模块且桥臂电流处于充电方向时子模块电容电压快速排序法流程图见图2。
[0038] 当桥臂电流Iarm为放电方向且ΔN<a4,则对元素个数为a4的 对应的子模块电压进行快速排序法,选出需要投入的电容电压较高的ΔN个子模块投入;若a4<ΔN,则对 使用快速排序法,选择电容电压最高的ΔN-a4个元素代表的子模块和a4个元素 所代表的子模块投入。本发明需投入子模块且桥臂电流处于放电方向时子模块电容电压快速排序法流程图见图3。
[0039] 若换流站控制层指令需切除△N个子模块,以子模块电容额定值UN为基准对B[ym-1]中的子模块电压进行一轮快速排序,将已投入子模块电容电压分为低于UN的N3个元素以及高于UN的N4个元素 (N3+N4=M)。
[0040] 经第一轮快速排序,选择 以1.05UN为基准对 进行一轮快速排序,得到低于1.05UN的b1个元素 以及高于1.05UN的b2个元素
[0041] 若ΔN<b2,则对 进行快速排序法,选出需切除的电容电压最高的ΔN个子模块,若b2<ΔN,则对 进行快速排序法,选出其中电容电压最高的ΔN-b2个子模块与b2个元素 对应的子模块切除。本发明需切除子模块时子模块电容电压快速排序法流程图见图4。
[0042] 本发明采用分治策略思想以额定子模块电容电压为基准,根据投入或切除指令对处于切除状态子模块或投入状态子模块数组进行第一轮快速排序,得到的低压值类和高压值类数组。
[0043] 第二轮排序时,对投入子模块命令,需结合桥臂电流方向来决定不同基准值电压对第一轮排序得到的A[xn-1]低压值类或高压值类数组再进行一轮快速排序。对于切除子模块命令,不考虑桥臂电流方向,只对第一轮得到的B[ym-1]高压值类元素进行一轮快速排序。
[0044] 采用本发明中的方法,考虑到不同情况下对投入或者切除的子模块要求不同确定不同的元素进行快速排序法,更多的依赖于程序对数据的处理而不是对桥臂子模块进行全部排序,本发明可在一定程度上降低当桥臂子模块增加所带来的排序计算耗时问题。
[0045] 最后需要说明的是,本发明的上述实例仅仅是为说明本发明所作的举例,而并非是对本发明的实施方式的限定。尽管申请人参照较佳实施例对本发明进行了详细说明,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化和变动。这里无法对所有的实施方式予以穷举。凡是属于本发明的技术方案所引申出的显而易见的变化或变动仍处于本发明的保护范围之列。