级联H桥储能变流器Simulink仿真:载波移相PWM与SOC均衡控制
发布时间:2026/9/20 22:52:44 锦皓数字建站

1. 级联H桥储能变流器到底是个什么东西1.1 从电池组到电网为什么非要“级联H桥”这个拓扑做储能变流器仿真的人绕不开一个核心矛盾电池单体电压只有几伏电网电压却是几千伏甚至上万伏。这中间的电压鸿沟怎么跨过去直接决定了整个系统的效率、成本和可靠性。传统方案是“工频变压器升压两电平变流器”结构简单但工频变压器体积大、损耗高两电平变流器输出谐波含量也高需要大容量滤波器。后来有人想到用多电平拓扑把多个功率模块串联起来每个模块分担一部分电压输出波形阶梯数多了谐波自然就小了。级联H桥就是多电平家族里最适合储能场景的一种——每个H桥模块直流侧可以独立接一组电池簇交流侧串联起来直接输出高压。这个结构的好处很直接省掉了工频变压器系统效率能提升2到3个百分点每个H桥模块的开关频率可以降到几百赫兹开关损耗大幅下降模块化设计让维护变得简单坏了一个模块直接换掉就行不用整机停机。但代价是控制复杂度上去了尤其是电池SOC均衡问题——每个模块的电池簇充放电速率不一样时间长了SOC会发散容量小的先充满或先放完整个系统可用容量就被拖累了。我刚开始接触这个拓扑的时候觉得不就是几个H桥串起来嘛能有多难。实际搭起来才发现SOC均衡策略才是真正的核心难点拓扑本身反而是最直观的部分。1.2 仿真模型要解决的核心问题清单在Simulink里搭这个模型不是为了好看是要回答几个工程上必须搞清楚的问题。第一载波移相PWM到底能不能有效降低输出谐波THD能降到多少第二SOC均衡控制加进去之后模块间SOC差异能不能收敛到可接受范围第三电池簇参数不一致时系统还能不能稳定运行第四并网电流跟踪指令的动态响应够不够快。这些问题在纯理论推导里很难得到直观答案但仿真可以。你可以随意改变电池容量、初始SOC、开关频率、负载突变幅度观察系统响应。这种自由度是实物实验给不了的。而且仿真跑通了心里有底了再做实物调试会少踩很多坑。注意仿真模型再精确也不能完全替代实物实验。仿真里忽略的寄生参数、死区效应、电磁干扰在实物里都可能成为压垮系统的最后一根稻草。仿真模型的价值在于验证控制策略的逻辑正确性而不是预测实物性能的绝对数值。1.3 适合谁来参考这篇内容如果你正在做储能变流器的控制算法开发或者研究生课题涉及多电平变流器又或者你刚接手一个级联H桥项目需要快速建立仿真验证环境这篇内容应该能帮到你。不需要你是Simulink专家但至少得知道怎么拖模块、怎么连线、怎么设置仿真步长。如果你连Simulink都没打开过建议先花半小时看看基础教程不然直接上手这个模型会有点懵。我下面讲的内容都是基于MATLAB R2021b版本用Simscape Electrical工具箱搭建的。不同版本界面可能略有差异但核心模块和参数设置逻辑是相通的。2. 模型整体架构与关键参数计算2.1 主电路拓扑的搭建思路级联H桥的主电路在Simulink里搭起来其实不复杂但有几个细节容易出错。我采用的是三相星形连接结构每相由4个H桥模块串联总共12个模块。为什么选4个因为电网线电压有效值如果是6kV相电压峰值就是4.9kV左右每个H桥模块直流侧电池电压取1200V4个模块串联正好能输出4.8kV峰值留一点裕量给调制比。每个H桥模块就是一个标准的全桥结构四个IGBT带反并联二极管。Simscape Electrical里有现成的Universal Bridge模块设置桥臂数为2就能直接当H桥用。直流侧接电池模型我用的是Battery模块设置额定电压1200V容量根据你实际电池簇来定我仿真里用的是100Ah。交流侧串联的时候要注意每个H桥的输出是两电平PWM波串联之后叠加成多电平波形。连接顺序是第一个H桥的右桥臂中点接第二个H桥的左桥臂中点依次类推。最后一个H桥的右桥臂中点作为该相输出。这个连接方式在Simulink里用电气连接线直接连就行但要注意相位关系接反了输出波形就乱了。2.2 载波移相PWM的参数计算过程载波移相PWM是级联H桥最常用的调制策略核心思想是让每个H桥模块的三角载波错开一定角度这样串联后的输出波形等效开关频率变成原来的N倍。N是每相模块数我这里是4所以等效开关频率是单模块开关频率的4倍。具体参数怎么定假设单模块开关频率取1000Hz载波周期就是1ms。4个模块的载波依次移相360°/490°。第一个模块载波相位0°第二个90°第三个180°第四个270°。这样叠加之后输出波形的脉动频率变成4000Hz谐波主要集中在4kHz附近低频谐波大幅减少。在Simulink里实现载波移相可以用Triangle Generator模块设置频率1000Hz相位分别设为0、90、180、270度。然后每个载波和同一个调制波比较生成4路PWM信号分别驱动4个H桥。调制波是正弦波频率50Hz幅值根据调制比来定。调制比取0.9的话调制波幅值就是0.9。这里有个坑Triangle Generator的相位参数单位是度不是弧度别搞错了。还有四个载波的幅值和偏置必须完全一致否则输出波形会不对称产生偶次谐波。2.3 电池模型参数与初始SOC设置电池模型我用的是Simscape Battery里的Battery模块选锂离子类型额定电压1200V额定容量100Ah。初始SOC我故意设置得不一样四个模块分别设为90%、85%、80%、75%这样才能看出SOC均衡策略的效果。如果初始SOC都一样均衡算法跑起来没什么可看的。电池内阻对仿真结果影响很大我设的是0.05欧姆这个值偏大一点能让SOC差异表现得更明显。实际电池簇内阻可能在0.01到0.03欧姆之间但仿真里为了观察均衡过程适当放大一些没问题。提示Battery模块的SOC初始值设置在模块参数对话框的“Initial SOC”里改。如果你用的是Simscape Electrical的旧版电池模型可能叫“State of Charge”位置差不多。2.4 并网连接与电网等效模型并网侧我用的是Three-Phase Programmable Voltage Source设置线电压有效值6kV频率50Hz。串联一个滤波电感取2mH用来滤除开关频率附近的谐波。电网侧还并联了一个大电容模拟电网的支撑作用取100微法。这里要注意滤波电感的值不能太大否则基波压降太明显影响功率传输也不能太小否则高频谐波滤不干净。2mH是我试了几次之后觉得比较合适的值输出电流THD能控制在3%以内。电网等效模型还可以加一个短路容量参数模拟弱电网场景。如果你要研究构网型控制这个参数很关键。我后面会专门讲构网型控制的仿真要点。3. SOC均衡控制策略的详细实现3.1 为什么SOC会发散从能量守恒说起SOC发散的根源在于每个H桥模块的电池簇参数不可能完全一致。容量有差异、内阻有差异、初始SOC有差异这些差异导致在相同的充放电功率指令下各模块的实际充放电电流不同。容量小的模块SOC变化快容量大的变化慢时间一长就发散了。更麻烦的是级联H桥的交流侧电流是串联的每个模块流过的电流有效值相同。但每个模块的直流侧电压可能不同导致每个模块吸收或释放的功率不同。功率不同SOC变化速率就不同。这是一个正反馈过程SOC高的模块电压高吸收功率多SOC更高SOC低的模块电压低吸收功率少SOC更低。如果不加控制系统会迅速崩溃。所以SOC均衡控制的核心思路就是根据各模块SOC的偏差微调每个模块的调制波幅值让SOC高的模块少充多放SOC低的模块多充少放。这样通过调制波的差异人为制造各模块功率的不平衡把SOC拉回一致。3.2 分层控制架构从总功率指令到模块级修正我的控制架构分三层。最上层是功率控制层根据电网调度指令或者本地需求生成总的有功电流指令和无功电流指令。这一层可以用PQ控制也可以用V/f控制看你的应用场景。我仿真里用的是PQ控制因为并网场景下PQ控制最直接。中间层是电流控制层把有功和无功电流指令转换到dq坐标系用PI调节器跟踪。PI参数我用的Kp5Ki100这个值是在2mH滤波电感和100微法电容下试出来的响应速度够快超调也不大。dq变换的角度来自PLLPLL的带宽设的是50Hz响应速度适中。最下层是SOC均衡层也是整个控制策略的核心。每个模块的SOC值实时采集和平均值比较得到偏差。偏差经过一个PI调节器输出一个修正量叠加到该模块的调制波幅值上。SOC高于平均值的模块修正量为负调制波幅值减小输出功率降低SOC低于平均值的模块修正量为正调制波幅值增大输出功率升高。这个PI调节器的参数很关键。Kp太大SOC均衡速度快但可能引起系统振荡Kp太小均衡速度慢仿真时间要拉很长。我试下来Kp0.5Ki10比较合适均衡时间大概在2到3秒内完成。3.3 调制波修正量的限幅与优先级处理调制波修正量必须限幅否则SOC偏差大的时候修正量可能超过调制比允许的范围导致过调制。我设的限幅是正负0.1也就是说调制波幅值最大0.90.11.0最小0.9-0.10.8。这样既保证了均衡能力又不会过调制。还有一个优先级问题当总功率指令很大时SOC均衡的修正空间会被压缩。因为调制波幅值已经接近1了再往上加就过调制了。这时候均衡效果会变差。解决办法是适当降低总功率指令给均衡留出裕量。或者采用过调制策略但那样谐波会增大需要权衡。我在仿真里还加了一个使能逻辑当SOC偏差小于2%时均衡PI调节器停止积分防止在平均值附近来回振荡。这个死区设置很实用能避免不必要的功率波动。3.4 仿真验证SOC从发散到收敛的全过程初始SOC设为90%、85%、80%、75%平均值为82.5%。启动仿真后前0.5秒是预充电阶段所有模块的PWM封锁电池通过反并联二极管不控整流充电。0.5秒后PWM使能SOC均衡控制投入。从仿真波形可以看到前1秒内SOC差异还在扩大因为均衡PI调节器需要时间建立修正量。1秒后差异开始缩小2.5秒左右四个模块的SOC收敛到82%附近最大偏差小于1%。3秒后基本稳定SOC差异在0.5%以内。并网电流的THD在均衡过程中略有波动但始终保持在4%以下。均衡完成后THD稳定在2.8%左右。这个结果说明载波移相PWM加SOC均衡控制的组合是有效的。实操心得仿真步长对SOC均衡结果影响很大。我用的是变步长求解器ode23tb最大步长设的1e-5秒。如果步长太大PWM脉冲会丢失SOC计算也会不准。建议最大步长不要超过开关周期的1/20。4. 仿真调试中踩过的坑与排查技巧4.1 代数环报错最常见也最烦人的问题Simulink里搭电力电子模型代数环报错几乎是必修课。我遇到最多的情况是电压测量模块的输出直接反馈到控制回路控制回路的输出又直接影响电压形成闭环。Simulink求解器解不了这个代数环就报错。解决办法有两个。一是在反馈回路里加一个单位延迟模块打破代数环。但这样会引入一个步长的延迟对控制精度有影响。二是用Simscape的电压测量模块它内部已经处理了这个问题不会形成代数环。我后来全部改用Simscape的测量模块代数环报错就再也没出现过。还有一个隐蔽的代数环来源PWM比较器的输入和输出。如果调制波直接来自测量信号而测量信号又受PWM输出影响也会形成代数环。这时候在调制波通道里加一个一阶低通滤波器截止频率设高一点比如10kHz既能打破代数环又不会明显影响控制带宽。4.2 仿真速度慢到崩溃加速技巧汇总级联H桥模型有12个H桥模块每个模块4个IGBT总共48个开关器件。如果开关频率设1000Hz仿真1秒需要计算48000次开关动作。再加上SOC均衡的PI调节器、PLL、dq变换计算量非常大。我一开始跑1秒仿真要等好几分钟后来优化到十几秒。加速技巧有几个。第一用Simscape的局部求解器把电力电子部分和控制系统分开求解电力电子用大步长控制用小步长。第二把不用的测量模块全部删掉每个测量模块都会增加计算量。第三用Accelerator模式而不是Normal模式编译一次之后仿真速度能快3到5倍。第四如果只是验证控制逻辑可以把开关频率降到500Hz仿真速度能快一倍波形虽然粗糙一点但趋势是对的。注意用Accelerator模式之前先把模型里所有的Scope模块换成To Workspace模块因为Accelerator模式下Scope刷新很慢会拖累整体速度。4.3 SOC计算不准采样周期与积分方法的选择SOC计算本质上是电流对时间的积分。Simulink里积分器有Forward Euler、Backward Euler、Trapezoidal等几种方法。Forward Euler最简单但精度最差Backward Euler稳定但有一阶误差Trapezoidal精度高但可能振荡。我试下来SOC计算用Trapezoidal方法配合1e-5秒的固定步长精度最好。还有一个坑SOC计算用的电流必须是电池的实际充放电电流不能用电感电流或者电网电流代替。因为电池侧有电容电流波形和电网侧不一样。我一开始图省事直接用电网电流算SOC结果SOC波形完全不对查了半天才发现是电流取错了。采样周期也很关键。如果SOC采样周期太长比如1ms而开关周期是1ms那每个开关周期只采一个点SOC计算会有很大误差。我建议SOC采样周期至少是开关周期的1/10也就是100微秒。这样每个开关周期采10个点积分精度就够了。4.4 常见问题速查表问题现象可能原因排查方法解决办法仿真报代数环错误反馈回路无延迟检查测量模块到控制器的路径加单位延迟或改用Simscape测量模块并网电流波形畸变严重PWM载波相位设置错误检查四个载波的相位差确保相位依次为0/90/180/270度SOC均衡不收敛均衡PI参数不合适观察SOC偏差变化趋势增大Kp或减小Ki或检查限幅是否太紧仿真速度极慢步长太小或模型太复杂查看仿真时间与实时时间比改用Accelerator模式删减不必要的测量直流侧电压波动大电池容量设置太小观察直流电压波形增大电池容量或减小功率指令输出THD偏高滤波电感太小测量并网电流FFT增大滤波电感或提高开关频率4.5 从仿真到代码生成下一步怎么走仿真跑通之后如果你要做实物控制器下一步就是代码生成。Simulink支持Embedded Coder直接生成C代码但级联H桥的代码生成有几个特殊要求。第一PWM模块要用目标硬件的专用模块比如TI的ePWM模块不能用Simulink的通用PWM。第二SOC均衡算法里的除法运算要改成定点运算因为很多MCU没有浮点单元。第三代码生成之前要做静态检查确保没有死代码和未初始化变量。我试过用Simulink生成STM32的代码过程不算太顺利。主要问题是Simulink的求解器和MCU的中断周期不匹配。Simulink是变步长求解MCU是固定周期中断。解决办法是把Simulink模型改成固定步长步长和MCU中断周期一致比如100微秒。这样生成的代码才能直接跑。如果你只是做算法验证不急着上硬件那仿真模型本身已经够用了。可以在这个基础上加一些扩展功能比如构网型控制、黑启动、并离网切换这些都是储能变流器的热门研究方向。我后面有空再写一篇构网型控制的仿真实现那个比跟网型控制复杂不少尤其是虚拟同步机的惯量模拟和一次调频参数整定需要花不少时间。最后分享一个小技巧Simulink模型建好之后用Model Reference把主电路和控制回路分成两个独立模型主电路编译一次就不用再动了改控制策略的时候只重新编译控制回路能省不少时间。这个技巧在做参数扫描的时候特别有用你可以写个脚本自动改PI参数跑一百次仿真找出最优参数组合。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。