ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

双向DC/DC并联均流如何实现?下垂控制原理与实战补偿策略解析

双向DC/DC并联均流如何实现?下垂控制原理与实战补偿策略解析 1. 问题由来说起并联均流为什么这么难搞先说个很实际的场景储能系统里一个电池簇的功率往往顶不住负载峰值需求所以大家习惯把几个双向DC/DC变换器模块并联在一起共同挂在直流母线上给后级负载供电。理论上N个模块并联容量就翻了N倍冗余也有了单个模块故障还能降额运行。可真正动手搭系统的时候你才会意识到并联这件事最让人头疼的不是硬件连接而是怎么让每个模块流过的电流大致均等。为什么均流这么关键两个原因。第一储能电池的SOC荷电状态和允许充放电倍率是有差异的如果某个模块长时间承担过大的电流它的电池温升、老化速度都会明显加快整个系统的可用容量就被这个“短板”模块锁死了。第二从控制稳定性角度看并联模块之间如果出现电流分配不均会产生内部环流。直流系统里环流不直接表现为“嗡嗡响”但会在模块输出端形成额外的功率损耗极端情况下甚至让某个模块反向充电触发保护误动作。那问题来了既然每个模块的硬件参数、控制参数、线缆长度都不可能做到绝对一致怎么才能在不依赖模块间高速通信的前提下让它们自动把电流分好这里就要提到本文的核心——下垂控制。下垂控制的思路特别像几个合伙人商量分账不靠总指挥逐笔指令而是根据每个人的“出力情况”动态调整自己的报价最终自然达到平衡。放到电力电子里就是每个模块根据自身输出电流主动微调输出电压参考值从而实现功率的自动分配。这篇文章适合谁看我觉得主要是三类人一是做储能系统集成、想搞懂并联DC/DC均流原理的工程师二是正在调双向变换器控制环、被环流和均流误差折磨的硬件/嵌入式开发者三是刚接触分布式电源控制、想系统梳理下垂控制来龙去脉的学生。我会把从原理推导、参数设计到补偿策略、现场调试的完整路径都走一遍尽量做到能直接落到你的项目里。2. 下垂控制的核心原理去掉“指挥”靠“协商”2.1 双向DC/DC变换器并联后的等效模型先把问题简化。假设你有两个双向半桥DC/DC变换器一侧接储能电池另一侧接直流母线。从母线侧往内看每个变换器都可以等效成一个“受控电压源输出电阻或等效阻抗”的模型也就是Uo_i是第i个模块的空载输出电压参考也就是控制环给出的母线侧目标电压Req_i是第i个模块的等效输出阻抗包含了变换器闭环等效阻抗、滤波器电感电阻、连接线缆电阻等I_i是第i个模块实际输出的电流Ubus是公共直流母线电压。写出基尔霍夫关系式就是Ubus Uo_i - Req_i * I_i注意这个式子看起来简单但它恰恰是下垂控制的物理本质只要每个模块的等效输出阻抗不是零模块输出的电流越大母线侧真实电压就会被“拉”得越低。如果不加任何控制并联系统的均流完全依赖各模块等效阻抗的巧合一致这在工程上基本不可能。2.2 下垂控制做了什么下垂控制的直觉做法是在原有的电压参考值Uref_i基础上叠加一个与输出电流成正比的负反馈量即Uo_i Uref_i - kd_i * I_i比一比就发现这实际上就是人为把Req_i从“不可控且不一致”的状态改造成“可控且基本一致”的状态——你把每个模块的等效输出阻抗统一近似成一个设计值kd_i。于是各模块的均流关系变为(Uref_1 - Ubus) / (Req_1 kd_1) (Uref_2 - Ubus) / (Req_2 kd_2) ... I_load只要kd_i取值远大于线路和变换器的固有等效阻抗差异分配比例就主要由下垂系数kd_i决定。而你设置kd_i时的初衷很简单让容量大的模块下垂系数小一些、分担多一些让容量小的模块下垂系数大一些、分担少一些。在直流系统中这种控制不需要检测相角、不需要锁相环只需采样本模块输出电压和输出电流即可实现是一种典型的分布式自主控制。2.3 为什么不用主从式或平均电流法很多人第一反应是均流而已用主从控制一个模块定电压其他模块做电流源不是更精确吗确实主从方案在通信延迟小、系统规模固定的场景下性能很好但它有两个储能场景不太能接受的问题通信依赖强。主从模块间需要实时交换电流指令一旦通信链路抖动或延迟变大从模块跟着主模块的参考信号一路振荡的事我见过不少。冗余性差。主机故障哪怕你想让备机顶上切换逻辑也需要时间这段时间里系统要么降额要么直接停机。下垂控制的“去中心化”特征正好适合储能系统这种模块数量不断变化、要求高可靠性的场合。你新并联一个模块进来什么都不用改只要把它的下垂系数和额定容量匹配好就能自动“挤入”电流分配队列。这种即插即用特性是下垂控制在储能领域站稳脚跟的根本原因。2.4 下垂系数怎么定才算合理下垂系数kd_i不是拍脑袋随便给的。它的选择本质上是“电压调节精度”和“电流分配精度”之间的取舍。若kd_i太小均流效果差模块间电流差异大若kd_i太大空载电压与满载电压之间的跌落会很严重后级负载可能超出允许电压范围。工程上常用的做法是按下式确定kd_i ΔU_max / I_rated_i其中ΔU_max是允许的最大电压跌落幅值I_rated_i是该模块的额定电流。举一个我实际用过的参数直流母线额定电压400V负载允许电压范围380V~420V那么最大允许跌落取10V即额定电压的2.5%某模块额定电流50A则kd 10V / 50A 0.2Ω换算成控制环里的数值时要特别注意量纲。数字控制中参考电压是数字量比如经过ADC换算后的电压值电流也是数字量所以下垂系数在程序里通常还需要乘上电压环采样系数和电流环采样系数的比值。这块我后面实操章节会细讲。3. 电流分配误差是怎么冒出来的3.1 理想情况 vs 现实情况如果所有模块的Uref完全一致、kd完全一致、线路阻抗完全一致那么并联系统的电流分配是完美的。但现实里处处都是偏差参考电压偏差每个模块的电压采样基准、DAC精度、分压电阻误差都会造成Uref_i之间存在几十毫伏到一两百毫伏的偏差下垂系数偏差电阻采样精度、运放增益误差、程序量化误差会让kd_i有几%的离散性线路阻抗偏差模块到母线汇流排之间的线缆长度、接线端子接触电阻不可能完全一样尤其在低压大电流场景线缆压降的影响非常显著。3.2 定量感受一下误差有多严重举个具体算例。两个模块额定电流都是50A设计下垂系数kd0.2Ω。设两个模块参考电压偏差ΔUref0.2V200mV在采样电路里真的司空见惯线路阻抗分别是5mΩ和15mΩ线缆长度差个两三米、端子压接质量不一样就可能造成这个差异忽略其他因素则稳态电流分配为I_1 (Uref_1 - Ubus) / (kd R_line1)I_2 (Uref_2 - Ubus) / (kd R_line2)假设Ubus约397VUref_1400VUref_2399.8V则I_1 3V / 0.205Ω ≈ 14.63AI_2 2.8V / 0.215Ω ≈ 13.02A感觉差异不大但如果负载电流到了80A母线电压会进一步被压低。此时I_1和I_2的差值会随负载增大而不断增加。又因为R_line差异10mΩ相对于kd0.2Ω来说占比并不大所以均流误差的主要来源反而是Uref偏差——这就是为什么很多人在实验室里死活调不好均流最后发现是两个模块的电压采样基准差了零点几伏。3.3 环流的代价模块间电流不均衡最直接的后果就是模块A输出多、模块B输出少两模块之间就会出现流过母线的环流。环流路径是从模块A输出端经母线流入模块B输出端再经模块B内部回流。环流不对外做功却实实在在地在线缆电阻和模块输出阻抗上产生热损耗。更要命的是如果某个模块的参考电压显著偏低它甚至可能被“压”成吸收电流的状态——对双向变换器来说这未必是故障但会导致该模块电池被反向充电SOC状态与其它模块拉大加剧下一轮的不均衡。4. 补偿策略从“粗调”到“微调”的完整闭环4.1 二次控制给下垂控制“查漏补缺”下垂控制最大的痛点是它用电压跌落换来了电流分配但负载变化后母线电压会偏离额定值且各模块之间还会残留稳态误差。这两类问题该怎么解决电力电子领域借鉴微电网分层控制的思想在底层下垂控制之上叠加一个慢速的“二次控制”外环。二次控制的基本思路是检测公共母线电压或某个模块的输出电压与额定参考值做差经过一个慢速PI调节器输出一个统一的电压补偿量δU叠加到所有模块的电压参考上。公式上这样写Uo_i Uref_0 δU - kd_i * I_iδU的存在使得系统在负载变化后能够把母线电压重新“拉回”额定值附近。因为你把电压和电流的稳态误差“分离”了电流分配仍然由下垂项kd_i * I_i决定而电压偏差则由δU来修正。要注意的是二次控制的带宽必须远低于底层电压环和下垂环的带宽。否则两个闭环回路之间会出现频域耦合轻则动态相互影响重则系统低频振荡。我一般会把电压外环带宽做到10~20Hz二次控制环做到1Hz以下。4.2 自适应下垂让系数随工况变化固定下垂系数在宽负载范围内很难兼顾均流精度和电压质量。一个实用的改进是自适应下垂让下垂系数随输出电流大小变化或者随电池SOC状态变化。例如kd_i kd0 kd_sat * (I_i / I_rated)^2轻载时下垂系数小母线电压精度高均流压力也小重载时下垂系数自动增大以强制拉开模块间的电流差确保每个模块不过流。这个二次项增加的“柔性限流”特性相当于给系统加了软过流保护。另一个变种是SOC下垂——根据电池SOC动态调整下垂系数让电量高的模块多放电、少充电电量低的模块少放电、多充电。这在储能系统里非常实用等于把“电芯均衡”的粒度从电池包内部提升到了模块级。4.3 虚拟阻抗补偿对付线路阻抗不对称在低压大电流的储能柜场景线路阻抗的影响往往比参考电压偏差更恼人。你模块装了整整一大柜母线汇流排却可能在柜顶各个模块到汇流排的电缆长度天生不齐——长线模块压降大自然少出力。针对这个问题可以引入虚拟阻抗补偿在每个模块的电流采样值上乘以一个补偿系数α_i进一步修正输出参考电压或者更高级的做法是在线路侧采集实际电压远端采样用远端电压代替模块本地的母线电压做下垂比较。如果系统允许模拟量采样线从模块引出到公共母线点我强烈建议优先用远端采样——接线多两根信号线但效果立竿见影。若采样线拉不了就在程序里补偿测量各模块到母线的线缆电阻R_wire_i在设计下垂系数时加上该电阻成为等效下垂系数。不过这要求你事先准确测出每根线缆的实际电阻施工顺序一乱这个标定就失效了。4.4 负载电流前馈提升动态响应下垂控制本质是负反馈响应速度有限。负载突变时模块输出电流需要经过“电压变化→采样→下垂调节→电压环调节”这条链路才能跟上动态压降明显。一个轻量级的增强手段是负载电流前馈既然我们知道总负载电流约等于各模块输出电流之和就可以把本模块电流直接前馈到电压外环输出端。这样做的好处是负载一变化模块几乎立即调整占空比而不是等母线电压被拉低之后才慢慢恢复。需要强调的是前馈不改变稳态特性它只改善动态过程而且前馈增益过大会导致噪声被放大需要在带宽和噪声抑制之间折中。我通常在程序里做一个低通滤波后再前馈截止频率选在几百赫兹。4.5 分散式二次控制无通信也能消除稳态误差前面说的二次控制需要一个中央控制器收集母线电压信息再统一广播如果系统规模不大比如两台或四台模块完全接受。但如果你不希望有任何通信总线依赖可以用“分散式二次控制”每个模块只采样自身输出电压经过一个慢速积分器把自身电压调节到本地参考点。由于并联模块共享同一个母线电压每个模块独立积分的结果其实是收敛到同一个电压值的。这种“无通信二次控制”特别适合光伏离网场景或储能集装箱内部的模块并联。代价是没有中央协调动态响应会比集中式慢一些而且如果某模块的采样基准本身有偏差这个偏差会原样保留在系统里无法被消除。5. 实操过程从参数设计到调试跑通的全流程5.1 系统硬件与参数设计示例下面用一套我实际调过的系统做示范。目标参数项目数值直流母线额定电压400V单模块额定功率20kW单模块额定电流50A模块数量4台负载动态范围10%~100%额定允许母线电压变化±10V开关频率20kHz第一步确定下垂系数。按2.4的公式kd ΔU_max / I_rated 10V / 50A 0.2Ω这里注意0.2Ω是“物理量纲”意义上的系数。实际控制程序中电压环的参考值单位是“数字量”而电流采样值经过ADC后也是数字量所以换算公式要写成kd_dig kd × (V_adc_scale / I_adc_scale)假设电压采样系数是500V对应满量程32768即每伏65.536电流采样系数是50A对应满量程32768即每安655.36那么kd_dig 0.2 × (65.536 / 655.36) 0.02换算完了才把这个数写进下垂环节。这个坑我见过不少人踩——直接拿物理量纲的0.2往代码里塞结果电压跌得一塌糊涂。第二步设计电压环PI参数。电压外环带宽取500Hz左右相位裕度大于45度。调试手法是先只跑一个模块纯电压闭环加载测试用示波器看负载阶跃时的电压恢复时间。按经验电压环的比例系数从0.5开始调积分时间常数从20ms开始。如果出现振荡优先降比例系数如果稳态误差大再加积分。第三步做下垂控制软切换。这个细节很多人忽略从纯电压环切到下垂模式时如果直接修改参考值输出电压会产生一个阶跃跳变。正确的做法是程序里对下垂补偿量做斜坡限幅比如以每毫秒0.5V的速率把下垂量加到参考值上避免切换瞬间的冲击电流。实测中发现不做斜坡切换四台模块同时并机时汇流母线上能出现几十安培的瞬态环流持续几百毫秒才衰减。5.2 双模块并联实验逐步逼近理想均流我把调试过程拆成几个阶段每阶段都有明确目标阶段一单模块满载测试。先单独测每台模块的电压精度、效率、动态响应记录每台模块的空载电压偏移量。用高精度万用表校准程序里的电压采样偏置。这步做好了后面能少走一半弯路。阶段二双模块开环并联。不上下垂控制靠自然阻抗均流测量两台模块的输出电流差。你会看到电流差随负载增大而增大甚至可能出现某台模块电流为负的情况。记录这个数据作为“均流误差基准”。阶段三双模块加固定下垂。把第一步算好的kd系数写进程序重新测均流。正常情况下满载电流差异能从阶段二的20%~30%降到5%以内。如果没降下来先检查kd_dig是否算错再看两台模块的电压采样基准是否一致。阶段四加二次控制补偿。接好母线电压采样线把电压补偿环跑起来观察满载时母线电压是否回到400V附近。我给自己的指标是满载电压不低于398V空载电压不高于402V。阶段五扩展到四模块并联。重点观察中间两台与两端两台模块的电流差异。因为中间模块靠近采样点线路阻抗小往往出力偏多。这套流程走完四模块并联满载运行实测电流不均度能控制在3%以内。多台不同的电池簇、不同批次模块混用时不均度会稍大但也能控制在5%~8%对工程来说完全够用了。5.3 补偿策略的实际接线与参数整定二次控制环的参数整定我习惯在并机状态下直接调。母线电压PI补偿环的输出量δU是叠加在各模块参考电压上的公共量所以它的PI参数灵敏度很高。我的初值经验是比例系数0.05积分时间常数200ms。如果发现母线电压出现低频波动肉眼能看到灯光明暗变化那种频率十有八九是二次控制环带宽与下垂环带宽重叠了先把积分时间加大再减小比例系数。虚拟阻抗补偿的现场标定方法是这样断开某一台模块的功率连接只在母线侧加电流源模拟负载用示波器测量该模块输出端到母线的压降除以流过的电流就得到该路线的等效电阻。注意要分别测正负两极很多柜体设计里负极是接地的负极线路阻抗往往被忽略但在大电流下负极那几毫欧同样会造成明显的均流偏差。6. 常见问题与排查技巧实录6.1 均流误差大首先排查什么模块间电流差异超过10%我一般的排查顺序是第一校验各模块电压参考值是否一致。用万用表笔直接扎在模块输出端子上测空载电压两台模块之间差超过100mV就先去查采样电阻和校准偏置。这个原因大概占了均流问题的一半以上。第二检查下垂系数换算是否一致。打开程序日志分别在空载和50%负载下记录各模块的参考电压和输出电流反推实际kd值是否符合设计值。如果某台模块的kd明显偏大多半是电流采样增益不对。第三核查线路阻抗。用钳形表分别卡各模块的输出电流同时测量模块端子到母线汇流排的压降算出线路阻抗。如果某一条线路的压降和电流比值明显高于其他路优先处理接线端子接触电阻或者更换更粗的线缆。6.2 空载环流怎么消除储能系统经常遇到的一个现象晚上负载很轻甚至接近空载但模块之间还是有环流表现为母线电压虽然正常但各模块内电池电流方向不一致有的在充、有的在放。这种空载环流的根源仍然是各模块参考电压偏置不一致。因为空载时下垂项kd_i * I_i很小一个几十毫伏的参考电压偏差就会引发明显的电流抵消。处理办法有两个方向。一是提高参考电压精度采用更高精度基准源、校准分压电阻、采样结果做多周期平均。二是给下垂控制加一个“死区”当模块输出电流绝对值小于某阈值比如额定电流的2%时强制电流参考为零让模块在轻载下彻底“脱开”均流环路。加死区之后要注意死区会导致电流分配在轻载区间出现一次小台阶——但工程上这个台阶完全可以接受因为此时总负载电流本来就小。6.3 动态响应差负载突变时电压跌得太狠如果你加了二次控制还是觉得动态压降大先别急着加前馈。先把示波器挂在母线上看波形如果负载突加瞬间电压跌落到额定值的80%以下说明电压环带宽不够或者直流侧储能容量配置不足。对双向DC/DC来说母线侧的支撑电容容量直接影响动态压降加大输出电容是最粗暴但最有效的办法。对20kW模块我会建议母线侧电容至少配到1000μF以上具体按允许压降和开关频率纹波算。如果动态响应慢的锅在控制环那就在电压环输出端加电流前馈。前馈通道的增益设置原则是前馈增益等于额定负载电流下的电压环补偿量除以测量电流也就是“单位电流对应的开环补偿电压”。调试时从小往大加每次加完直接做负载阶跃测试直到动态压降改善到可接受范围。6.4 模块数量增加后反而振荡有个现象很迷惑两模块并联稳如老狗四模块并联就出现几赫兹的低频振荡。原因在于模块数量增加后并联系统的输出阻抗降低各模块之间通过母线形成了一条低阻抗的耦合路径。原本各模块独立稳定的电压环在这种低阻抗耦合下变成了一个多变量耦合系统相位裕度被明显削弱。我处理这类问题的方法是先不给四模块都加二次控制只保留一台作为“母线电压主导模块”跑二次控制其余三台只跑下垂。这样既保证了电压恢复能力又避免了多个慢速环相互激励。如果必须全模块参与二次控制就一定要把二次控制环带宽压到0.5Hz以下并且确保各模块的二次控制采样同步比如用同一路母线电压采样广播给所有模块。6.5 双向模式下电流分配的对称性问题储能系统不仅放电要均流充电同样要均流。你可能发现放电时均流好好的一进充电模式不均度反而变大。原因不复杂变换器在充电时电流方向反转电流采样在接近零点的区间存在死区和非线性误差同样的采样偏差在放电模式下被下垂控制“掩盖”了到了充电模式则会以反方向放大。解决方案是在程序里对电流采样做分段标定分别在50A、20A、5A、0A、-5A、-20A、-50A等电流点记录ADC原始值拟合成分段线性校正表插值修正。另外一个技巧是把下垂补偿量改为按电流绝对值计算方向单独判断避免在零点附近因为符号判断抖动而导致参考电压抖振。7. 最后再分享几个实战心得第一做下垂控制最大的敌人不是算法而是采样精度。电流采样和电压采样的基准源、滤波电容、PCB布局都会直接影响你最终均流精度。我在一块板子上试过把电流采样电阻从毫欧级换到微欧级均流误差从6%降到了2.5%。花在设计硬件采样电路上的时间永远比花在调控制参数上值。第二调试并联系统时日志记录一定要做全。每个模块至少要记录参考电压、母线电压、输出电流、下垂补偿量、二次补偿量。遇到问题频率不高、复现困难的时候这些日志就是唯一可以回溯的依据。我习惯把日志刷新频率做到50Hz以上这样能捕捉到低频振荡和瞬态不均流的时间序列。第三所有补偿策略都要在投入现场前做满负荷循环测试。不是只测满载稳态而是要做充放电循环、负载阶跃、模块热插拔这些动态工况。尤其是热插拔测试——运行中直接并上一台新模块观察它对现有各模块电流分配有没有扰动。好的下垂设计应该允许新模块平稳并入电流从零慢慢爬升而不是瞬间抢掉一大块电流。储能系统并联均流是一个永远不会过时的话题因为只要系统规模增长、只要模块参数存在离散性电流分配问题就会存在。下垂控制解决的是“无通信自主均流”这一基础需求补偿策略解决的是“精度和动态性能”这一进阶需求。理解清楚这两层逻辑再结合自己手上的硬件和工况去选择和调试你就能搭建出一套既稳定又灵活的储能并联系统。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进