十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

MMC柔性直流输电系统Simulink仿真全流程:从原理到模型搭建

MMC柔性直流输电系统Simulink仿真全流程:从原理到模型搭建 每年答辩季前后来问MMC仿真的人就开始扎堆。标题里这套超全的配置说白了就是从物理原理到能跑的Simulink模型再到毕业设计报告和文献检索的打包方案。这类项目有个特点它不是一个照着说明书点按钮就能完成的活难点不在于模型本身有多复杂而是你必须在拓扑结构、控制策略、数值仿真三个层面同时想清楚模型才能稳稳跑起来波形才能拿得出手。普通两电平VSC仿真把SPWM一接PI参数调一调基本就能看到像样的波形。但MMC不一样从第一个开关周期开始你就得面对桥臂里几十个子模块的电容电压均衡问题、桥臂电流里天然存在的二倍频环流、启动瞬间的冲击电流还有离散仿真步长和排序算法带来的性能压力。这篇文章就是围绕这些实操中的真问题展开把一个MMC两端柔性直流仿真项目从参数设计到报告成稿的完整链路拆开讲给打算做这个方向毕业设计的同学和刚接触柔性直流的工程师一条能直接走下去的路。1. MMC两端直流系统仿真前先把这几个物理概念吃透1.1 柔性直流输电为什么选中了MMC拓扑模块化多电平换流器Modular Multilevel ConverterMMC之所以在柔性直流输电领域成为事实标准核心原因是它在工程性和控制性之间找到了一个漂亮的平衡点。两电平VSC需要把整个直流电压压在桥臂的功率器件上器件串联均压、高dv/dt对滤波器造成压力都是麻烦事。而MMC把电压等级拆成了N个子模块Sub-Module简称SM串联每个子模块只承受直流电压的N分之一器件的电压应力大幅下降这个特点直接决定了它可以轻松往更高电压等级扩展。要提升电压等级多串几个子模块就行换流器的拓扑结构不用重新设计这是模块化最直接的工程红利。从电能质量角度看两电平换流器要靠PWM产生高频开关脉冲交流侧滤波器体积大MMC输出电平数为N1N取10时已经有11个电平波形已经逼近正弦N再大一些甚至可以用基频调制而不需要复杂PWM交流侧滤波器可以显著缩小甚至取消。这和我后面要讲到的调制策略选择直接相关不是所有情况都必须上高开关频率的PWM有时候慢慢切换反而是最优解。1.2 子模块的三种状态是整个控制策略的物理基础理解MMC控制的第一道门槛就是搞懂子模块在正常运行时的动作逻辑。半桥子模块half-bridge SM是最常见的拓扑由两个IGBT、两个反并联二极管和一个直流电容组成。上管T1导通、下管T2关断时子模块输出电压等于电容电压Uc子模块处于投入状态T1关断、T2导通时子模块输出电压为0处于切除状态。这两种状态的切换就是MMC实现多电平输出的全部秘密。还有第三种状态T1和T2同时关断称作闭锁。闭锁出现在系统启动预充电阶段或故障期间这时电流只能通过二极管流通电容会被不可控整流状态下的电流充电。很多人仿真时在这里翻车因为他们没有做预充电就直接解锁运行结果启动瞬间的冲击电流直接触发保护逻辑或者导致数值发散。闭锁状态是理解预充电过程的关键后面我在第3节会展开讲。每个桥臂在任意时刻需要保持投入的子模块数量几乎恒定这样才能维持直流电压稳定。这个数量分配是动态的取决于调制指令而具体选哪几个子模块投入则由电容电压均衡算法决定。也就是说控制策略分两层第一层通过调制得到桥臂需要的投入子模块数第二层通过排序决定具体哪几个子模块投进去。这两层逻辑配合才能保证每个子模块电容电压在额定值附近波动而不会越拉越大。1.3 两端换流站的功率协调逻辑柔性直流输电系统的两端一般指一个整流站和一个逆变站。整流站负责建立并稳住直流电压逆变站负责按指令传递功率。这种控制架构的经典配合是整流侧采用定直流电压控制外环加电流内环逆变侧采用定有功功率控制外环加电流内环。两侧都配有定无功功率或定交流电压控制用于支撑交流侧电压和无功交换。功率流向可以反转这是柔性直流相比传统电网换相直流LCC-HVDC的巨大优势。逆变站降功率直流电压会稍稍抬升整流站为了稳住电压会减少送入功率系统自动寻找到新的平衡点整个过程不需要两端交换调度通信。这就是为什么两端系统比联网大电网结构更容易在毕设里做出清晰的可视化效果你给一个功率阶跃指令马上就能在波形上看到响应和稳定过程非常直观。理解了这三点物理基础就具备了。接下来面对的问题才是真正让人头大的这些物理过程到底怎么落到Simulink里参数取多少才能让模型不飘。2. 搭建Simulink模型从参数设计到控制环路的完整链路2.1 系统参数设计算例从直流电压倒推每个桥臂的子模块数仿真做久了你会发现模型跑不起来的很大一部分原因不是控制写错而是主电路参数本身不自洽。这里我直接给一套我在毕设和工程仿真中常用的参数设计流程以一套5MW、±10kV双极性直流系统为例。额定容量S要覆盖有功和无功直流侧对地电压取10kV正负极间总直流电压为20kV。第一步确定每个桥臂的子模块数N。子模块额定电压Uc按器件耐压能力折算10kV对地直流电压下每个子模块额定2kV时N需要计入调制时的电压波动冗余工程上取1.15到1.25倍。理论上N Udc / Uc 10kV / 2kV 5是不含波动的值实际取N8到12比较稳妥。为了平衡仿真速度和波形质量我用N10这样一个桥臂10个子模块相单元共20个子模块上桥臂10个加下桥臂10个全桥共60个子模块。第二步设计子模块电容。电容大小直接决定电容电压波动幅值。工程上常用储能常数HC的概念一般取30到40 kJ/MVA。换算公式为C 2 * HC * S / (3 * N * Uc^2)。代入S5MW、HC35kJ/MVA、N10、Uc2kV得到C约2900微法我一般取3000微法。这个值下电容电压波动大约在正负5%到正负8%之间是很合理的范围。第三步桥臂电抗器。桥臂电抗的感抗标幺值一般在0.05到0.15 p.u.之间它同时负责抑制环流和限制故障电流。以交流侧线电压10kV为基准每相基波感抗约等于0.1 * Uac^2 / S 0.1 * (10kV)^2 / 5MW 2欧姆折算到50Hz频率L约6.4mH。你可以按这个量级取再根据环流抑制效果微调。下面给出这套参数的一个汇总表你可以直接换掉容量和电压等级复用参数取值备注交流侧线电压10 kV / 50 Hz换流变压器阀侧直流侧电压±10 kV双极性总直流20kV额定容量5 MVA整流与逆变一致子模块额定电压2 kV半桥SM电容额定值桥臂子模块数N10输出11电平子模块电容3000 μF波动约±6%桥臂电抗6.4 mH感抗约0.1 p.u.载波频率若用CPS-PWM500~1000 HzN10时推荐仿真步长1e-5 s 或 1e-6 s离散求解器这套流程的可复用性很强。以后你换电压等级、换容量只需要把S和Uc代进去电容和电抗值就能很快推算出来不用瞎试。2.2 子模块与桥臂在主电路层怎么搭主电路建模有两种主流做法取决于论文侧重点。如果重点做系统级控制功率协调、潮流反转推荐使用MMC的平均模型Average Model或戴维南等效模型仿真速度能提升几个数量级如果重点研究电容电压均衡、环流、开关谐波就必须用开关模型。毕设一般建议用开关模型因为波形的颗粒感会让你的仿真结果更有说服力答辩时也更好讲评委一看就知道你用的是详细的器件级模型而不是拿平均模型糊弄。Simulink里搭建开关模型时每个子模块用两个带反并联二极管的IGBT和一个电容搭成半桥结构即可。两个IGBT的驱动信号互为反相死区在仿真里可以不设设了反而增加不稳定因素。子模块封装成一个带输入输出端的子系统输入是驱动脉冲和使能信号输出是端口电压和电容电压反馈。六十个子模块封装好主电路立刻清爽很多。三相六桥臂的连接方式是交流相电流从上下桥臂的中间点引出上桥臂首端接直流正极下桥臂末端接直流负极桥臂电感分别串联在上下桥臂上位置注意放在靠近直流母线侧还是交流输出侧这会影响环流路径的建模精度实际上两种接法都能跑通但桥臂电抗靠近直流侧时环流抑制效果更符合理论推导。控制信号与主电路之间的接口用Simulink-PS Converter和PS-Simulink Converter处理电气量和信号量。为了避免代数环问题测量信号建议加一阶惯性或存储单元Unit Delay。很多初学者就是把测量信号直接拿回去做PI运算导致代数环连环套仿真卡死。2.3 控制环路怎么接外环、内环、环流抑制三层逻辑控制部分我用经典的dq坐标系结构。先通过锁相环PLL锁定交流母线电压相位然后对三相电流做Park变换得到id、iq电流内环采用PI控制并加入交叉耦合补偿项。外环整流侧用定直流电压控制输出id_ref逆变侧用定有功功率控制输出id_ref两侧的无功外环输出iq_ref。这样设计的好处是整定思路清晰整流侧管电压、逆变侧管功率两者互不干扰。接下来是MMC特有的部分环流抑制控制CCSC。三相桥臂电流里存在负序性质的二倍频环流分量如果不抑制桥臂电流畸变、子模块电容电压波动加剧。环流抑制的经典做法是在dq旋转坐标系里提取二倍频环流分量用PI控制器输出一个修正电压叠加到桥臂电压参考值上。在Simulink里实现时需要先对三相桥臂环流做二倍频Park变换旋转角度取2倍锁相角然后通过低通滤波器或直接提取直流分量分离出环流的d、q分量分别控制在零附近。控制器输出叠加到三相调制波上就完成了闭环抑制。调制和均衡部分N10时我推荐用载波移相正弦PWMCPS-SPWM每个子模块分配一条相位依次移开2π/N的三角载波与同一个调制波比较生成PWM。载波频率取500Hz时等效开关频率可接近N乘以载波频率波形质量非常可观。如果用最近电平逼近NLM对10个子模块来说电平数太少波形阶梯感太强谐波表现不好。NLM的优势在N大于等于20以后才明显所以做毕设时N取10首选CPS-PWMN取30以上再考虑NLM。子模块电容电压均衡的实现在大N时会成为性能瓶颈这个问题我在下一节专门展开讲。3. 实际调仿真模型时最容易倒下的几个翻车点3.1 模型跑得比预期慢先把连续求解器换成离散的MMC开关模型搭建后如果没有刻意处理Simulink默认会用连续变步长求解器通常是ode45跑。几十个IGBT开关动作加电容充放电再加上PI控制器的微分方程整个系统是强刚性的仿真速度会慢到让人崩溃。一个几百毫秒的仿真过程可能跑几十分钟都出不来结果。解决办法很简单主电路电气部分虽然天然是连续的但仿真中所有开关动作本质上是离散事件把整个模型的求解器改成离散discrete固定步长设为1e-5秒或1e-6秒配合零阶保持器处理采样信号。我实测过同一个5MW、60个子模块的模型连续变步长跑0.5秒仿真需要接近10分钟离散固定步长1e-5秒跑同样时长不到半分钟。代价是波形会带一点微小抖动但对MMC这种大惯量系统完全可接受。这里有个细节改成离散求解器后要确保电源、变压器模块也做好离散化处理Simscape里的电气模块会通过转换器自动处理但变压器饱和模型和解算延迟要特别确认否则模块间会出现计算顺序不一致的告警波形在步进处出现毛刺。3.2 启动那一瞬间的冲击电流靠预充电解决不预充电直接解锁运行是MMC仿真最常见的第一课。系统启动瞬间交流电源通过二极管给所有子模块电容充电如果没有限流措施充电电流大概率超过保护阈值即使没触发保护也会让器件电流应力大到超出仿真承受力数值直接发散。标准的预充电过程分两阶段。第一阶段是不控整流预充电所有IGBT闭锁交流电源通过反并联二极管给电容充电电容电压最终达到交流线电压峰值对应的值大概在额定电压的0.6到0.8倍第二阶段解锁控制策略投入直流电压控制器把直流电压从预充电压提升到额定值。在Simulink里实现非常简单用一个阶跃信号控制PWM使能端预充电阶段PWM输出全部为0也就是闭锁当电容电压稳定后比如0.2秒使能PWM同时外环参考电压从当前值斜坡升至额定值。注意斜坡的斜率不能太陡否则直流电压冲击依然会很大我一般把参考电压斜坡设为每0.1秒升1000V左右。3.3 电容电压均衡排序算法仿真时间的隐形杀手每个控制周期都要对每个桥臂的N个子模块电容电压做一次排序然后根据桥臂电流方向决定投入电压高还是低的子模块。N10时排序一次只有10个数毫无压力但如果N扩张到50甚至100每个控制周期都要对20个桥臂做排序排序开销立刻变成仿真时间的大头尤其NLM调制下控制频率又不高排序反而成为主要计算量。三个优化思路比较常见。第一排序算法换成MATLAB内置的sort函数千万别手写冒泡排序在大N下直接是数量级的差距。第二降低排序频率每隔两三个控制周期排序一次对均压效果影响很小。第三采用保持因子排序后不立刻切换所有子模块让上次投入的子模块保持若干个周期再参与切换开关频率能大幅下降均压效果也基本不受影响。这些优化对N较大模型的仿真速度提升非常显著。3.4 波形发散、数值爆炸多半是这几处设置没做好我见过大量模型死活跑不通的案例最后查出来都是细节问题。第一个坑是功率模块的缓冲电路参数。Simulink里IGBT和二极管模块默认有snubber阻值太小时正常运行时会有明显的泄漏电流太大时又会在开关瞬间造成数值振荡。建议把缓冲电阻设到1e3到1e5欧姆量级缓冲电容设0.01微法左右。第二个坑是变压器饱和模型毕设里如果不需要研究铁芯饱和务必选线性变压器模型关闭饱和特性否则电感矩阵奇异很常见。第三个坑是交流系统等值阻抗。很多人直接用一个理想电压源接变压器变压器模型中漏抗设置太小导致PLL锁相时相位抖动甚至失步。给交流电压源串一个小的等效阻抗比如1欧姆或按短路容量折算的电抗系统会更稳。第四个坑是示波器存储数据量过大。仿真时间一长直接连Scope模块存满内存MATLAB直接就卡死了。用Simulink的Signal Logging配置好数据记录适当降采样能省掉大量内存和硬盘占用。4. 仿真结果怎么看评审老师点名要看的四张图4.1 直流侧波形与功率阶跃响应直流电压波形是评审老师第一眼会看的图。正常稳态下整流侧定直流电压控制能把直流电压稳定在名义值附近纹波大小反映了电容设计和控制的配合效果。做功率阶跃仿真时把逆变侧有功指令从1MW阶跃到3MW直流电压会有短暂的跌落或抬升然后经过约几十毫秒的调节恢复到额定值。这张图一放就能说明你的外环控制器不是摆设。实际写报告时建议把阶跃前后的直流电压波形放大对比标注超调量和调节时间。比如我实测的模型上功率阶跃时直流电压最大跌落在2%以内恢复时间约80毫秒这些量化指标写进报告很有说服力比空说一句控制效果良好强得多。4.2 子模块电容电压一致性均衡算法效果的直接证据把同一个桥臂的10个子模块电容电压画在一张图上理想情况是10条曲线基本重合波动不超过额定值的正负10%并且不出现发散趋势。如果均衡算法失效你会发现有的电容电压逐渐爬升、有的逐渐跌落几条曲线越来越分叉整个模型没多久就崩了。写报告时除了稳态波形最好再做一张带量化统计的图把某个桥臂的子模块电容电压在一个时间段内的最大值、最小值、平均波动幅度算出来列成表格或者画成箱线图。这种把波形转成数据的表达方式在答辩时非常加分也说明你对仿真结果做过深入分析而不是贴几张图了事。4.3 桥臂电流与环流的频域验证桥臂电流波形有一个非常典型的特征在交流基波电流之上叠加一个二倍频分量这个二倍频分量就是环流。开了环流抑制控制器后再用FFT工具分析桥臂电流二倍频分量幅值应该有明显下降下降幅度一般在50%以上。我把这个FFT频谱对比图视为MMC仿真项目里最有技术含量的一张图它同时验证了你的模型正确性、控制器设计能力和对环流机理的理解。注意FFT分析时采样数据要取稳态段避开预充电和阶跃动态窗口长度取整数个工频周期否则频谱泄漏会导致二倍频分量看起来很大反而说不清了。MATLAB的powergui自带FFT分析工具可以设置基频和最大频率直接导出谐波幅值列表用起来很方便。5. 毕业设计报告怎么写这项目才显得有深度5.1 报告结构怎么搭仿真结果放哪一章毕设报告结构一般逃不出这六章绪论、MMC工作原理与拓扑分析、两端直流系统数学模型与控制策略设计、仿真建模与结果分析、结论、参考文献。很多同学把仿真结果堆到一章里作为实验验证这样做没错但要写得有深度关键在第四章。第四章不要只贴波形。我建议按工况组织稳态运行工况包含两个站的电压、功率、电流、电容电压、环流抑制效果功率阶跃动态工况包含有功阶跃响应、无功阶跃响应以及可选的特殊工况比如交流电压小幅波动、直流电压参考值调整。每个工况先用一段文字说明为什么要做这个实验、预期是什么然后给出波形并做定量分析最后与预期对比得出结论整章就是完整的逻辑链条而不是图集。5.2 文献检索用这几个关键词直接命中核心参考资料做文献调研时中文核心库用知网检索词建议组合MMC或模块化多电平换流器再加上HVDC或柔性直流输电、环流抑制、电容电压均衡、最近电平逼近这些词之一基本就能把国内最经典的论文捞出来。英文用IEEE Xplore时搜modular multilevel converter是基础再配合HVDCDC faultcirculating currentcapacitor voltage balancing等条件。经典起步文献是Marquardt团队早期的论文尤其是2003年前后发表的模块化多电平拓扑开创性文章这本必读。参考文献不要只堆英文经典中文期刊里《电力系统自动化》《中国电机工程学报》《电工技术学报》近几年关于MMC-HVDC的文章非常多尤其是有工程案例分析的对写工程背景和研究现状两节非常有用。建议至少找三篇近五年的综述性文献把MMC-HVDC的工程应用进展理清楚这一节就能写得比较扎实。5.3 答辩高频问题提前准备好这五个答辩时评审老师的提问方向其实高度可预测。我整理五个最高频的你可以提前写好回答提纲。第一为什么子模块采用半桥拓扑半桥无法清除直流故障你考虑过哪些替代方案回答思路半桥结构简单、成本低直流故障清除需要交流侧断路器配合或者换用全桥子模块、钳位双子模块可以展开说。第二为什么要加环流抑制机理是什么回答思路相单元间瞬时电压差产生二倍频环流增加损耗、威胁器件安全CCSC通过注入反向电压抵消。第三NLM和CPS-PWM的适用边界是什么回答思路NLM适合大N调制简单、波形质量好计算量小CPS-PWM适合小N等效开关频率高、谐波特性可控。第四电容电压均衡的排序算法复杂度如何优化回答思路快速排序、降低排序频率、保持因子减少开关动作。第五你的直流电压波动为什么是这么大和电容设计、控制带宽的关系是什么回答思路电容加大则波动变小但体积成本增大电压环带宽影响动态波动二者需要折中。6. 这套模型还能往哪些方向继续做深6.1 从稳态仿真走向故障暂态分析如果模型跑通了、毕业答辩也结束了这套模型值得深挖的方向还非常多。最直接的是故障仿真交流侧单相接地短路、直流侧双极短路、单极对地故障。做直流故障仿真时半桥MMC在直流短路后会通过反并联二极管形成不受控的馈流路径故障电流上升极快必须在几个毫秒内由交流侧断路器切除这一块涉及故障电流计算和断路器配合逻辑内容足够写一篇相当有分量的研究论文。6.2 与控制保护、新能源接入结合的延伸思路另一个热门方向是把MMC-HVDC放在新能源并网场景下风力发电或光伏电站送出端接入MMC整流站通过直流线路送到受端逆变站并网。这时候整流侧需要控制交流电压频率给风机或光伏提供稳定的孤岛交流母线控制逻辑和常规并网运行又不一样。还有低电压穿越、惯量支撑、与电网调频互动等问题都是在稳态模型基础上做的扩展工作量可控但是学术价值明显更高。6.3 工具的二次开发把参数设计写成m脚本我个人强烈建议把整套参数计算过程写成一个MATLAB脚本输入电压等级、容量、子模块额定电压、储能常数这几个变量自动算出N、C、L然后直接生成Simulink需要的主要参数变量。这样做的好处是后续想改参数看看不同工况只要改脚本开头几个数重新运行一遍就行不用在模型里手工改几十处。我自己的习惯是建一个params.m、一个run_sim.m、一个plot_results.m分别管参数、仿真执行和出图整套流程非常流畅后期改参数、整理报告都能省下大把时间。仿真工具和物理机理结合到这个程度MMC两端直流这个方向基本上就不存在模型跑不动这种初级障碍了。剩下的就是根据自己的课题目标不断往深挖控制策略也好、故障分析也好、新能源协调也好都是在今天这套框架上叠加问题。原理通了后面的路会越走越顺。
返回列表