ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

背对背MMC电能质量调节Simulink仿真建模与控制策略全解析

背对背MMC电能质量调节Simulink仿真建模与控制策略全解析 背对背MMC做电能质量调节说实话不是个容易上手的仿真题。很多同学一看到背对背高压直流调制多电平变流器这种长标题就直接懵了更别提还要在Simulink里把整套系统搭出来做电力质量调节研究。我最初拿到这个需求时也花了不少时间梳理拓扑结构、控制策略和模型搭建之间的逻辑关系所以这篇就把整体思路、搭建过程、控制策略设计以及调试中踩过的坑一次性讲清楚希望能帮你把这块硬骨头啃下来。这个仿真项目的核心目标是在Simulink环境中搭建一套背对背MMC系统将其作为电能质量调节装置来研究。所谓背对背是指两个MMC换流器通过直流母线直接相连不需要长长的直流输电线路重点是实现两侧交流系统之间的功率双向流动、无功补偿和谐波治理。这种结构在新能源并网、轨道交通供电、城市电网分区互联等场景中都有很强的应用价值因为电能质量问题本质上是电压、电流波形不干净、功率不均衡而背对背MMC恰好具备四象限运行、动态响应快、输出波形质量高的优点。1. 电力质量调节为什么要选背对背MMC1.1 传统电能质量治理手段的边界在MMC大规模应用之前电能质量治理主要靠无源滤波器和传统的两电平或三电平变流器。无源滤波器结构简单、成本低但只能针对特定次谐波进行滤除一旦系统阻抗特性变化或者谐波频率偏移滤波效果就会大打折扣。而且无源滤波器在轻载情况下可能引起无功倒送导致母线电压升高。传统两电平变流器的开关器件直接串联承受全部直流母线电压在高电压等级下对器件一致性和驱动电路的要求极为苛刻开关频率越高开关损耗越大输出波形质量也受限于开关频率。三电平变流器虽然一定程度上改善了波形质量但电平数越多钳位二极管和飞跨电容数量会成倍增加工程实现复杂度急剧上升。所以在高压大容量场合传统方案始终绕不开波形质量和器件耐压这两个核心约束。1.2 MMC区别于传统变流器结构上的核心优势MMC模块化多电平换流器从结构上就解决了上述问题。它的每个桥臂不是由单个IGBT串联实现耐压而是由几十上百个结构完全相同的子模块SM级联而成每个子模块内部就是一个半桥结构加一个直流电容。桥臂电抗器串联在每个桥臂中用来抑制桥臂间环流以及限制故障电流上升率。这套结构的价值在于电压等级是通过增加子模块数量来提升的而不是靠器件串联均压技术硬扛彻底绕开了动态均压这个老大难问题。电平数一旦达到几十甚至上百输出电压就是一条非常接近正弦波的阶梯波谐波含量极低甚至在某些工况下可以不用交流侧滤波器这是传统两电平和三电平完全做不到的。子模块的冗余设计也是工程上非常看重的一个特性。某个子模块出现故障可以通过旁路开关直接把故障模块短路退出系统继续运行只是电平数少了一级。这种容错能力在电力系统这种对可靠性要求极高的领域是非常大的加分项。1.3 背对背拓扑解决了电能质量调节的什么关键问题单独一台MMC可以补偿谐波和无功但它本质上还是并联型的补偿装置和电网之间的能量交换能力有限。背对背MMC相当于把两个换流站背靠背地放在一起共用一条直流母线两个交流系统之间不再直接相连有功功率可以先整流到直流侧再逆变成交流送到另一侧实现完全可控的功率转送有功和无功可以独立控制互不干扰。从电能质量调节角度看这种拓扑可以实现的功能就不只是补偿了而是隔离与重塑。举个实际例子风电场通过背对背MMC接入主网风机侧哪怕电压波动剧烈、频率不稳定通过整流侧换流器隔离后逆变侧输出到主网的电压和频率可以始终保持恒定主网感受到的就是一个优质的电源。这就是背对背MMC在电力质量调节系统中越来越受欢迎的原因。2. 背对背MMC系统核心原理拆解2.1 子模块SM的工作机制要想在Simulink里正确搭出MMC模型第一件事是把子模块的工作原理弄透彻。我之前见过不少同学的模型波形一跑就发散根本原因就是对子模块的工作原理理解不到位电容充放电逻辑搞错了。MMC中最常用的是半桥子模块HBSM每个子模块的结构包含两个IGBTT1和T2、两个反并联二极管D1和D2以及一个直流电容C。这个结构有两个关键输出端子通过控制T1和T2的开通和关断可以让子模块输出电压在电容电压和0之间切换。理解子模块的关键在于抓住投入和切除这两个状态。当T1导通、T2关断时子模块处于投入状态输出电压等于电容电压此时桥臂电流对电容进行充电或放电当T1关断、T2导通时子模块被旁路输出电压为零电容电压保持不变。这里有个初学者特别容易忽略的问题投入状态下桥臂电流方向决定了电容是充电还是放电电流从电容正极流入则充电反之则放电。这个充放电方向的理解直接决定了后面电容电压均衡控制算法的设计逻辑。还有一种特殊状态是闭锁状态即T1和T2都关断。这种状态只在系统启动预充电和故障保护时出现正常调制过程中不会用到。但在仿真模型里必须把这个状态也搭出来因为启动阶段的预充电逻辑要用到它。每个桥臂上所有的子模块输出电压叠加起来再加上桥臂电抗器的电压就构成了该桥臂的输出电压。桥臂参考电压通过调制算法分解成各个子模块的投切指令这就是整个换流器的基本工作原理。2.2 六桥臂结构与三相输出一台完整的三相MMC换流器有六个桥臂每相由上桥臂和下桥臂组成上桥臂和下桥臂分别串联一个桥臂电抗器然后共同连接到交流侧的该相输出端。六个桥臂两两一组构成三个相单元每个相单元的两端分别连接直流母线的正极和负极。在设计Simulink模型时我强烈建议先把单个相单元搭好并且验证波形正常后再复制成三个相单元组合成完整的三相模型。很多同学一上来就想直接搭三相完整系统结果模型连线错误很难排查。先搭建单相模型可以非常直观地观察桥臂电流、子模块电容电压和输出电压之间的逻辑关系把单相模块调通之后再做三相扩展效率反而高得多。直流母线侧每个相单元在任意时刻投入的子模块数量需要保持恒定这就意味着三相总共投入的子模块数量是固定的输出电压的总和始终等于直流母线电压。任何时刻投入数量的波动都会导致直流母线电压波动进而影响整个系统的稳定。2.3 背对背结构中的功率流动逻辑背对背MMC系统包含两个换流站一个作为整流侧一个作为逆变侧直流侧通过直流母线连接在一起。这就有个非常核心的思维转变传统交流系统谈潮流是从电源流向负载而背对背MMC系统中有功功率的流向是双向可控的。实际仿真模型中两条交流母线分别连接在整流侧和逆变侧的交流输出端。整流侧从交流电网吸收有功功率通过子模块电容储存和释放能量将交流功率转换到直流母线直流母线再把能量传递给逆变侧逆变侧将直流功率转换回交流功率输送到另一侧的交流系统。这个过程的控制核心就是维持直流母线电压恒定因为直流电压一旦波动过大整个系统的能量平衡就会被打破。从仿真实现角度说我的做法是把整流侧和逆变侧的控制器分开设计整流侧控制器负责维持直流母线电压稳定并控制无功功率逆变侧控制器负责控制有功功率传输和输出电压的频率两侧控制器通过共享的直流母线电压信息协调工作。给个具体的参考参数如果设计直流母线电压为20kV子模块数为每桥臂10个那么每个子模块的电容电压参考值就是2kV这个数值在后面的调制和控制环节中都用得上。2.4 有功无功解耦控制怎么理解理解MMC控制策略之前首先要理解dq旋转坐标系下的功率解耦。三相交流系统中的电压和电流都是时变的正弦量直接用PI控制器去跟踪这些正弦分量会有稳态误差且控制器设计困难。而派克变换将三相静止坐标系中的正弦量变换到与电网电压同步旋转的dq坐标系中正弦量就变成了直流量PI控制器就能无静差地跟踪了。在dq坐标系下有功功率主要取决于d轴电流与d轴电压的乘积无功功率主要取决于q轴电流与d轴电压的乘积。这意味着只要控制电流的d轴分量和q轴分量就可以独立控制有功功率和无功功率。这就是背对背MMC能够灵活调节功率的根本原因所在。具体到控制器的设计思路最经典的是双闭环结构外环根据控制目标计算d轴和q轴的电流参考值内环通过PI控制器去跟踪电流参考值。外环可以是直流电压控制、有功功率控制、无功功率控制或者交流电压控制根据实际需求灵活组合。整流侧通常采用定直流电压和定无功功率控制逆变侧通常采用定有功功率和定交流电压控制两侧控制器协调配合才能保证整个系统在各种工况下稳定运行。3. Simulink建模仿真的准备工作与整体架构3.1 仿真环境设置中容易忽略的细节在开始搭建模型之前Simulink的环境设置值得花几分钟认真调整这会直接影响仿真收敛性和速度。首先是求解器类型的选择MMC这种强非线性系统包含大量的开关器件数值刚性比较强我在实际建模中推荐使用离散求解器固定步长保持在5e-5秒到1e-5秒之间。这里有个很重要的权衡步长越小仿真精度越高但仿真时间会急剧增加。如果每桥臂子模块数量是10个六个桥臂就是60个子模块每个子模块里有多个IGBT开关器件这种情况下使用默认的变步长求解器如ode23tb步长会被压缩到很低的数量级仿真速度慢到让人崩溃。我试过用变步长解算一个两秒的工况跑了一整天还没跑完后来改成离散求解器固定步长1e-5秒同样工况半小时就出结果了精度完全够用。还有个容易被忽略的细节Simulink的功率电子器件库中IGBT和二极管模型有三种复杂度可选从最简单的理想开关模型到完整的物理模型。做系统级电能质量研究时子模块数量多、控制逻辑复杂完全没必要用物理细节模型选择理想开关模型就够了如果为了追求仿真速度甚至可以直接用理想开关替代。只有当研究重点是器件级损耗或者故障特性时才需要考虑使用更精细的模型。关于Simulink中一些具体的工具使用技巧比如模型参数化设置、信号线标签的命名规范等这些都是质量较高的实践习惯。我建议从一开始就建立一套清晰的命名规范直流母线电压信号以VDC开头子模块电容电压以VC开头控制器输出参考值以REF结尾等模型复杂之后信号数量可能有几百个没有规范命名会很难管理。3.2 分层建模策略主电路、控制器、测量系统分离MMC系统模型复杂度很高如果所有模块都在同一层模型图上密密麻麻的连线和模块会让人眼花缭乱。我一般采用三层结构来组织Simulink模型。第一层是主电路层放置交流电源、交流线路阻抗、背对背MMC变流器、直流母线等功率级元件。这一层的信号主要是电气连接用Simscape Electrical的物理端口连接示波器也放在这一层方便直接观察波形。第二层是控制层放置所有控制算法的子系统。控制层和主电路层通过信号线交互主电路层把三相电流、三相电压、直流母线电压、电容电压等测量信号上送给控制层控制层经过运算后把PWM调制波或子模块投切信号下发到主电路层。第三层是测量和分析层负责计算和显示各种性能指标如有功功率、无功功率、THD、效率等。测量层不参与系统控制纯粹的监测分析功能。这种分层设计的最大好处是调试时可以单独替换某一层的子系统而不影响其他部分。比如想从最近电平逼近调制改成载波移相PWM调制只需要替换主电路层中的调制模块接口控制层和测量层完全不用动。3.3 仿真性能优化的实用手段大型Simulink模型的仿真速度是个很现实的问题。除了前面提到的求解器设置外还有几个优化手段非常实用。子系统的重用。如果多个子系统结构完全相同应该用Simulink的库模块功能来做成一个自定义库从库中拖出多个实例修改参数直接通过Mask参数传递。这样的好处一是模型更加简洁二是修改子模块内部结构时只需要改库文件模型中的所有实例自动更新不用每个子系统去手动改。信号的合并传输。控制器和主电路之间的信号线很多使用mux或bus对象把多路信号打包传输可以减少模型图中连线的数量提高模型的可读性和运行效率。特别是测量信号送到控制器这一环用Bus方式传输会让模型结构清晰很多。禁用不必要的数据记录。Simulink默认会记录很多中间信号的数据如果仿真时长较长会产生巨大的数据量拖慢运行速度。我将仿真数据记录配置为只记录需要分析的信号其他信号在信号线上通过右键菜单关闭log功能速度提升非常明显。4. 主电路与调制策略在Simulink中的实现路径4.1 子模块模型的搭建与封装技术在Simulink中搭建MMC子模块模型我经历过从离散元件级搭建到集成化搭建的演进。最初版模型里每个子模块包含两个IGBT模块、两个二极管模块和电容通过物理端口相连。这种搭法最直观但模型体积很大运行速度很慢。后来我改用Simscape Electrical库中自带的半桥模块配合外部电容构成子模块电路。优点是IGBT和二极管的内部逻辑已经封装好不再需要单独配置每种器件的参数模型简洁了很多仿真速度也更快。电子设计里封装Mask是个非常值得花时间学习的技巧。我建议读者花点时间研究一下Simulink的子系统封装功能它允许你创建带参数对话框的自定义模块。比如我的MMC子模块封装成了带子模块序号、电容初始电压、电容容值三个参数的Mask模块使用时只需要填参数内部电路完全被保护起来不会因为误操作破坏结构。封装的具体步骤不复杂先搭建好子模块内部电路选中所有元件然后创建子系统右键子系统选择Mask-Create System然后在Mask编辑器中添加参数定义。参数映射是通过Mask编辑器中的参数名称与内部模块的变量名对应实现的比如电容容值参数C_sm映射到电容模块的Capacitance参数即可。Mask模块还有个好处是可以自定义图标和端口标签模型图上看起来非常直观一眼就能看出哪个端口是交流侧、哪个是直流侧。这种建模习惯在多模块组成的复杂系统中会极大提升工作效率。4.2 最近电平逼近调制NLM的Simulink实现细节最近电平逼近调制是目前MMC最主流的调制方式特别适合子模块数量较多的场合。它的原理说起来非常简单根据桥臂参考电压计算出需要投入的子模块数量然后让最合适的那几个子模块投入运行。在Simulink里实现NLM调制器核心就是一个取整函数加排序算法。假设桥臂子模块数为N当前桥臂参考电压为Vref单个子模块电容电压平均值为Vc那么需要的投入数量就是round(Vref/Vc)即取最接近的整数。但这里有个工程上很关键的细节实际系统中每个子模块的电容电压是不相等的有的高有的低不可能简单地用任意投入同样数量的子模块这种方式处理。为了实现电容电压均衡必须根据每个子模块当前的电容电压值以及桥臂电流的方向来决定具体投入哪些子模块。这就是经典的电容电压排序算法。如果桥臂电流方向是充电方向就优先投入当前电压最低的那组子模块让它们充电从而抬高电压如果桥臂电流方向是放电方向就优先投入电压最高的那组子模块让它们放电从而降低电压。这套逻辑用Stateflow状态机实现非常清晰直观。我实际的搭建步骤是这样的每个子模块电容电压通过测量模块采集后接入排序模块桥臂电流方向通过一个符号判断模块得到将两个信息组合后送入Stateflow模块Stateflow内部按照前述规则输出每个子模块的触发脉冲也就是一个长度为N的逻辑数组表示每个子模块应该投入还是切除。特别注意排序算法输出的脉冲信号直接控制IGBT的开关状态不允许出现所有子模块同时切除或同时投入的极端情况否则直流母线电压无法支撑系统会直接发散崩溃。因此在排序逻辑中应加入边界保护逻辑确保投入的子模块数量在有效范围内。4.3 载波移相PWM调制CPS-PWM的另一种实现路线当子模块数量较少时比如每桥臂只有几个到十几个模块最近电平逼近调制的波形质量就不够好了这时候可以采用载波移相PWM调制。CPS-PWM的思路是每个子模块都有一个独立的三角载波各子模块的载波相位均匀错开然后分别与共用同一个正弦调制波进行比较得到各子模块的触发脉冲。在Simulink实现时我通常先用一个三角波发生器模块然后通过一个增益和偏置环节生成N个相位依次错开360/N度的载波信号。然后是每个子模块的比较器将各自的载波和调制波直接送入Relational Operator模块进行比较输出逻辑信号作为触发脉冲。这里比较关键的是载波相位错开的实现方式。如果使用SimEvents里的Uniform Random Number或者Clock生成多个载波信号各载波之间的相位一致性很难保证输出波形会出现不必要的谐波分量。我的推荐做法是给三角波发生器模块加一个初相位参数子模块1设为0度子模块2设为360/N度以此类推相位精度高且实现简单。CPS-PWM的优点在于开关频率固定、频谱特性可控、子模块之间开通损耗均匀缺点是N个载波需要N路独立信号仿真模型里连线会比较多而且当N较大时计算量也会显著增加。所以实际项目中通常的做法是子模块数量少于20个用CPS-PWM多于20个用NLM。4.4 调制方式选取的对比依据在仿真研究阶段两种调制方式我都试过给出一些经验性的对比结论。NLM在子模块数量较大时输出波形质量非常好THD可以轻松做到3%以下CPS-PWM在子模块数量较少时波形质量明显更优因为等效开关频率是单模块开关频率的N倍。从控制响应速度来看NLM的响应速度略慢于CPS-PWM因为排序算法本身需要计算时间而且在参考电压较小变化时投切数量可能保持不变输出有轻微的阶梯效应。CPS-PWM的调制波能连续调制每个子模块的占空比所以动态响应更平滑一些。从Simulink仿真实现的角度来说NLM对仿真步长更敏感。因为NLM输出的是阶跃信号如果步长太大子模块投切瞬间的暂态过程不能被正确反映可能出现数值振荡。CPS-PWM因为每个开关周期内都有连续的脉宽调制过程对步长的容忍度相对更高一些。我的建议是如果做系统级电能质量研究重点关注功率控制和电能质量指标优先选NLM比较接近实际工程主流如果关注点在于调制策略本身或者想研究低电平数MMC的性能选CPS-PWM更合适。5. 控制系统搭建与参数整定经验5.1 外环功率控制的Simulink建模要点外环控制器的输入是功率参考值和实际功率反馈值输出是内环电流参考值。在Simulink中搭建外环比较简单核心就是一个PI控制器加上必要的限幅和保护环节。整流侧外环设计时直流电压外环和定无功功率外环是两个独立的控制通道。直流电压外环将直流母线电压实际值与参考值如20kV比较偏差送入PI控制器输出作为d轴电流参考值。无功功率外环将无功功率实际值与参考值比较偏差送入另一个PI控制器输出作为q轴电流参考值。逆变侧外环设计时有功功率外环和无功功率外环同样各自独立。有功功率参考值可以根据需要设定为正值或负值表示功率流向无功功率参考值根据电能质量调节目标设定比如需要向交流系统提供无功支持时设为正值。外环PI参数整定时有个经验值可以参考起步比例系数取0.1左右、积分系数取10左右的量级然后根据波形调整。不同容量等级的MMC参数差异较大不可以直接照搬但思路是一致的先让比例环节把系统拉起再通过积分环节消除稳态误差最终保证参考值跟踪无超调或超调量可接受。5.2 内环电流控制的dq解耦与实现内环电流控制是整个MMC控制系统中最核心的部分控制性能的好坏直接决定系统能否稳定运行。MMC的数学模型在dq坐标系下可以表示为L * di_d/dt -R * i_d ωL * i_q v_d - e_d L * di_q/dt -R * i_q - ωL * i_d v_q - e_q其中L和R是桥臂电感和等效电阻ω是电网角频率v_d和v_q是换流器输出电压的dq分量e_d和e_q是交流系统电压的dq分量。仔细观察这个方程中i_d和i_q之间存在耦合项即i_q的变化会影响i_d的响应i_d的变化也会影响i_q的响应如果不做解耦处理PI控制器很难同时稳定跟踪两个轴。实际工程中最经典的做法是前馈解耦控制。PI控制器的输出再加上耦合补偿项和电网电压前馈项得到最终的电压参考值v_d PI(i_d_ref - i_d) - ωL * i_q e_d v_q PI(i_q_ref - i_q) ωL * i_d e_q这样处理后d轴和q轴的控制通道可以看作是独立的分别用两个参数完全相同的PI控制器就能获得好的跟踪效果整定难度和对模型精度的敏感度都大大降低了。在Simulink中实现时把PI控制器的参数封装成一个子系统d轴和q轴各调用一个实例加上乘法器和加法器实现耦合补偿和电压前馈输出的v_d和v_q经过反Park变换得到三相调制波再送入调制模块。5.3 电容电压均衡控制的工程化实现方案电容电压均衡控制是目前MMC控制策略中最考验工程经验的部分之一。理论上的排序算法很理想但直接用在仿真模型中会遇到计算量大和投切次数多的问题。标准的做法是每个仿真步长内对桥臂内所有子模块的电容电压进行排序根据桥臂电流方向选择投入的子模块。但这样做的结果是排序算法会频繁切换子模块的投切状态每个仿真步长都可能改变多个子模块的开关状态导致开关频率升高仿真速度下降且高频投切会在电压波形上引入额外的高频纹波。我在仿真中采用的优化方案是降频排序法。设定一个排序周期所谓排序周期就是每隔若干个控制周期才重新计算一次子模块的投切指令。比如控制周期是1e-4秒排序周期可以设置为1e-3秒即在每个排序时刻根据当前电容电压重新排序并更新触发脉冲而控制周期内的其他时刻保持触发脉冲不变。这个方法的本质是在电容电压均衡程度和开关频率之间做权衡排序越频繁均衡效果越好但开关频率越高排序越稀疏开关频率越低但电容电压偏差会增大。工程上一般将电容电压偏差控制在额定值的5%以内你可以在这个约束下选择合适的排序周期。还有一个在仿真中经常被忽略的细节排序算法用一种类似于阈值判断的方法对电容电压进行粗略分档而不是完全精确的数值排序也可以大幅减少计算量。实际效果差异不大但仿真速度能提升不少。5.4 环流抑制控制的重要性和实现MMC还有一个特有的问题相单元内部上、下桥臂之间存在环流。环流是流过同一相的上、下桥臂而不会流入交流侧的电流分量。如果不加抑制环流会在桥臂电感上产生额外的压降增大损耗并导致桥臂电流畸变。环流的主要成分是二倍频负序分量。在Simulink中实现环流抑制时首先要建立环流观测器即从上桥臂电流和下桥臂电流计算得到环流值i_cir (i_up i_low) / 2然后对环流进行坐标变换在二倍频负序旋转坐标系下将环流分量分解为d轴和q轴分量。这两个分量再分别送入PI控制器输出作为环流抑制的修正电压叠加到桥臂电压参考值上。我在第一次搭建时直接把环流抑制模块忽略掉了结果波形出现了明显的二倍频振荡桥臂电流畸变得很厉害后来加上环流抑制环才解决。建议在系统仿真的初始阶段就把环流抑制模块包含进来因为后续的所有分析都建立在正确的桥臂电流波形基础上。如果环流抑制不做好哪怕外环内环控制设计得再完美最终波形也一定不理想。5.5 PI参数整定中积累的实用经验PI参数整定是个经验性很强的工作我总结了一套适合MMC控制系统的整定流程。先整定内环电流环。把外环断开直接给定固定的电流参考值从小到大逐步增大PI控制器的比例系数观察电流响应波形。电流响应应该快速上升但不要有明显的超调一般在1到2个工频周期内达到参考值附近就算合格。然后加入积分系数消除稳态误差。内环整定好后带宽也就确定了。再整定外环。外环的响应速度要比内环慢很多否则内外环之间会发生振荡。外环整定的技巧是积分系数先给一个很小的值比例系数从小到大调整观察被控量比如直流电压的响应曲线。直流电压响应允许有一定的超调但超调量不宜超过5%否则在启动过程中可能导致电容过压。一个非常实用的调试技巧Simulink中可以在控制器输出端接入Saturation模块设置输出限幅限制内环电流参考值的最大变化速率防止大扰动时电流冲击过大。比如电流参考值变化速率限制在每秒0.5pu以内就能有效降低启动和负载突变时的电流冲击损坏仿真模型导致数值发散的情况也会极大地减少。6. 仿真调试中遇到的实际问题与完整排查链路6.1 仿真步长选择不当导致波形振荡的排查第一次给背对背MMC模型设置仿真步长时我用的是Simulink默认的变步长连续求解器。模型启动后电容电压波形很快开始发散振荡控制器的输出也跟着剧烈波动当时差点怀疑是控制策略写错了。后来仔细排查才发现问题出在求解器上。MMC的开关频率很高在NLM调制方式下子模块投切产生的电压阶跃信号在连续求解器中需要极小的步长才能准确跟踪否则会产生虚假的高频振荡。解决方案是更换求解器为离散求解器固定步长设为1e-5秒再配合Tustin变换法进行离散化波形立刻恢复正常。这是个非常典型的问题。做MMC仿真求解器和步长的选择是一切的基础如果这一层出问题上层控制策略做得再正确也没有意义。我给读者的建议是如果你发现波形的振荡不是规则的谐波振荡而是无规律的高频振铃优先考虑是不是求解器设置的问题。6.2 电容电压发散问题的定位与修复一次调试中我发现直流母线电压虽然在控制下维持在20kV左右但各子模块电容电压明显不平衡部分子模块电压超过3kV还在持续上升另一些子模块的电压低到快要为零了。排查的第一步是查看电容电压均衡控制的输出信号。打开示波器观察排序模块输出的触发脉冲序列发现触发脉冲更新频率很低而实际系统启动过程中电压变化速度较快排序周期过长导致电压偏差无法及时纠正。排查的第二步是检查桥臂电流方向检测模块。我用的电流方向检测是直接对桥臂电流信号取符号函数但桥臂电流在过零点附近会有噪声抖动符号函数输出在正负之间快速跳变导致排序模块每次都选择了错误的子模块进行投入。这个问题通过加入一个滞环比较器来解决滞环宽度设为10A桥臂电流只有超过这个正阈值才判定为正方向低于负阈值才判定为负方向过零点附近的抖动被直接滤除。更换后电容电压立即趋于均衡直流母线电压波动也明显减小。从这次排查中得到的教训是MMC系统中很多控制算法都依赖桥臂电流的方向信息对电流方向检测模块做抗抖处理是非常有必要的看似不起眼的小细节一旦出错影响的是整个系统的稳定性。6.3 启动冲击问题的处理思路MMC启动瞬间所有子模块电容电压为零直接开始正常控制会产生巨大的充电电流冲击仿真很容易发散。我最初就是在启动环节吃了亏直流母线电压还没建立起来时就开始控制导致电流冲击到几十千安数值直接爆炸。标准的三阶段启动策略是这样设计的。第一阶段是预充电阶段闭锁所有子模块交流系统通过二极管整流桥向子模块电容充电直到电容电压达到额定值的80%左右。第二阶段是解锁阶段各桥臂子模块开始正常调制直流母线电压逐步建立起来。第三阶段是稳态运行阶段控制器全面启用系统进入正常运行状态。在Simulink中实现这种三阶段启动策略我用了一个Stateflow状态机来管理启动流程。状态机的输入是直流母线电压和电容电压采样值输出是控制器的模式切换信号。预充电阶段的检测条件是电容电压平均值达到额定值的80%达到后自动切换到解锁阶段解锁阶段的检测条件是直流母线电压达到额定值的95%达到后切换到稳态运行阶段。启动限流环节也非常重要。控制器内部的电流参考值需要加入一个斜坡上升逻辑即电流参考值不是直接跳到目标值而是以一定速率比如每秒0.5pu逐渐上升到目标值让系统有一个平缓的过渡过程。这样处理后启动电流冲击从原本的数十千安降低到几百安以内仿真的稳定性明显提升。6.4 三相电压不平衡工况下暴露的设计缺陷做电能质量调节研究时我专门设计了三相电压不平衡的工况来测试系统的调节性能。结果发现逆变侧的电流波形出现了明显的负序分量电压波形也被污染了。这暴露了背对背MMC在面对不平衡工况时的一个关键设计点需要加入负序电流抑制控制。传统的双闭环控制在电网电压平衡的情况下工作良好但在不平衡电压条件下电网电压可以分解为正序分量和负序分量。负序分量会导致电流中出现负序分量进而引起有功功率和无功功率的二倍频脉动。解决办法是在控制系统中加入负序电流抑制环对交流电压、电流进行正负序分离得到负序电流分量后单独送入PI控制器输出作为负序调制电压叠加到正序调制波上。在Simulink里实现时我使用陷波滤波器来做正负序分离陷波频率设置为100Hz可以有效地把负序分量从测量信号中提取出来。加上负序电流抑制后不平衡工况下的输出波形质量提升非常明显电压THD从8%降到了2%以内。这个改进对电能质量调节研究非常关键不平衡工况是实际电网中最常见的电能质量问题之一如果系统在这种工况下失稳那整个研究的工程价值就大打折扣了。7. 仿真结果分析与电能质量调节效果验证7.1 稳态工况下的波形特性仿真模型调通后需要从多个维度来验证系统的电能质量调节效果。首先是稳态工况下的波形分析这是最基础也是最重要的验证手段。在Simulink中我用Scope模块同时观察交流侧三相电压、电流波形以及直流母线电压、桥臂电流、子模块电容电压等关键信号。正常运行时交流侧电压应该是标准正弦波电流波形平滑无畸变直流母线电压稳定在参考值附近桥臂电流除基波外还有明显的二倍频环流分量电容电压在额定值附近有小幅波动。为了量化波形质量对于交流侧电压和电流信号我通过Powergui模块的FFT分析工具进行分析可以设定分析窗口、基波频率和谐波次数直接读出总谐波畸变率THD以及各次谐波的幅值占比。我验证的结果是在NLM调制方式下子模块数量为10时输出相电压的THD大约在7%左右这主要是低次谐波造成的随着子模块数量增加到21THD可以降低到2%以下。所以在条件允许的情况下增加子模块数量是提升电能质量最直接有效的方法。7.2 负载突变时的动态响应能力电能质量调节系统面对的真实工况是负载不断变化因此动态响应能力是验证系统性能的重要维度。我在逆变侧接入一个可以投切的负载仿真运行到1.0s时突然投入第二组负载观察系统的调节过程。从波形上可以看到负载突变瞬间电流会有一个明显的暂态过程几毫秒内出现一个尖峰然后控制系统开始发挥作用电流在2到3个工频周期内恢复到稳态值。直流母线电压在负载突变瞬间有一个小的跌落但很快被整流侧直流电压外环拉回跌落的幅度取决于直流侧电容的大小。如果电容值设计得大一些电压跌落幅度会小一点但电容太大又会拖慢系统的动态响应。关于动态响应指标关注的主要是调节时间和超调量。工程上一般以电流恢复到稳态值的时间来衡量动态调节速度对于电能质量调节器电流的调节时间控制在20ms以内是比较理想的。我在仿真中调整了内环PI参数发现增大比例系数可以加快响应速度但会增大超调量所以实际整定时采用了一个折中的方案比例系数取基准值的2倍积分系数取基准值的5倍调节时间约为18ms超调量约12%满足典型电能质量调节的动态性能要求。7.3 有功和无功功率控制能力验证背对背MMC作为电力质量调节系统一个核心能力是独立调节有功和无功功率。为了验证这个能力我设计了一个阶跃测试在仿真中先将逆变侧有功功率参考值设为5MW运行到1.5s时突然增加到10MW同时保持无功功率参考值不变到2.0s时再单独改变无功功率参考值保持有功不变。从功率波形可以看到一个非常清晰的解耦效果有功功率阶跃变化时无功功率基本不受影响只有微小的暂态扰动然后恢复无功功率阶跃变化时有功功率也没有明显波动。这说明dq坐标系下的解耦控制策略确实是有效的有功无功之间实现了独立控制。这种解耦控制能力在实际电能质量调节中很有价值。比如某工业负荷既需要吸收有功又需要提供无功支撑传统方案会互相影响而背对背MMC可以让两路控制各自独立工作互不干扰。7.4 FFT谐波分析在Matlab中的实现如果您需要批量计算多个信号的THD并对比分析我建议直接用Matlab脚本调用Powergui的FFT分析功能比在GUI界面里一个个信号手动分析效率高得多。常用做法是先把仿真数据从Simulink中导出到工作空间然后写一段Matlab脚本用fft函数计算各次谐波含量自动输出THD和频谱图。具体实现时先将希望分析的信号加一个To Workspace模块保存到工作空间。然后写一段脚本对采样数据进行加窗处理再做FFT分析。这里需要注意采样率FFT分析结果的分辨率取决于信号的长度过短的信号会产生较大的频谱泄漏所以建议至少分析10个工频周期的数据。从频谱图上能明显看出NLM调制产生的谐波集中在哪些频次。以我的经验来说NLM调制的谐波主要集中在低次如5次7次11次等而CPS-PWM的谐波主要集中在开关频率倍频附近频谱分布完全不同。这也是两种调制方式在电能质量研究中一个重要的对比维度。在Simulink中做FFT分析因为涉及信号采样的对齐问题比较麻烦我更推荐将数据导出后在Matlab里统一做FFT分析灵活性和可重复性都更好。7.5 不同控制参数下的性能对比结果参数对比分析是论文和项目报告中很有说服力的一部分内容。我的一组对比实验是分别用P控制、PI控制和带前馈解耦的PI控制三种方式观察系统的稳态和动态性能差异。只加P控制时电流跟踪存在不可避免的稳态误差随着负载增大会越来越明显电流波形有明显的畸变加上I控制后稳态误差被消除但系统阶跃响应出现了明显的超调采用带前馈解耦的PI控制后d轴和q轴通道的耦合影响被抵消动态性能进一步提升电流调节时间和超调量均有显著改善。通过三组对比实验可以清楚地得出这样的结论背对背MMC控制系统中前馈解耦环节不是可有可无的点缀而是关系到系统能否同时获得良好抗扰能力和精确跟踪能力的关键设计。我的仿真数据中加入前馈解耦后电流调节时间缩短了将近30%超调量降低了一半以上这个改进幅度很直观地反映了控制策略设计的重要性。在论文写作时最能说明问题的往往是这种多方案对比的结果用同一组工况测试不同控制策略的表现数据放在同一个图表里读者一眼就能看清楚优劣差异。写在最后的一些建议背对背MMC作为电力质量调节系统的Simulink仿真搭建过程确实复杂控制策略多、模块数量大、调试周期长。根据我的实际经验这个项目最终成败很大程度上取决于开始的建模策略。一次到位地搭建完整三相模型总是会事倍功半而先搭建单相、先实现开环、先忽略环流抑制逐级增加复杂度每个阶段都验证模型后再继续反而能在同样的时间内得到更可靠的结果。模型运行速度方面建议提前在模型设计的早期就考虑仿真加速问题包括选择合适的求解器、简化不必要的器件细节、禁用无用信号记录以及使用离散化建模否则模型一旦做完仿一步要等几分钟甚至更久后续参数整定和性能分析工作量会变得难以忍受。电能质量调节这条研究路线的下一步可以尝试接入更丰富的扰动源比如模拟电弧炉负载、新能源波动等实测数据或者标准模型系统的调节效果会更有说服力。无论如何当你能把背对背MMC模型稳定跑起来并且波形都符合理论预期时你对模块化多电平换流器和电力电子控制的理解就已经超出了大多数同行。祝顺利。
返回列表