☰
双向DC/DC并联均流如何实现?下垂控制原理与实战补偿策略解析
2026/10/10 10:26:20 网站建设 项目流程

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,设计下垂系数kd=0.2Ω。设两个模块参考电压偏差ΔUref=0.2V(200mV在采样电路里真的司空见惯),线路阻抗分别是5mΩ和15mΩ(线缆长度差个两三米、端子压接质量不一样就可能造成这个差异),忽略其他因素,则稳态电流分配为:

I_1 = (Uref_1 - Ubus) / (kd + R_line1)
I_2 = (Uref_2 - Ubus) / (kd + R_line2)

假设Ubus约397V,Uref_1=400V,Uref_2=399.8V,则:

I_1 = 3V / 0.205Ω ≈ 14.63A
I_2 = 2.8V / 0.215Ω ≈ 13.02A

感觉差异不大?但如果负载电流到了80A,母线电压会进一步被压低。此时I_1和I_2的差值会随负载增大而不断增加。又因为R_line差异(10mΩ)相对于kd(0.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以上,这样能捕捉到低频振荡和瞬态不均流的时间序列。

第三,所有补偿策略,都要在投入现场前做满负荷循环测试。不是只测满载稳态,而是要做充放电循环、负载阶跃、模块热插拔这些动态工况。尤其是热插拔测试——运行中直接并上一台新模块,观察它对现有各模块电流分配有没有扰动。好的下垂设计应该允许新模块平稳并入,电流从零慢慢爬升,而不是瞬间抢掉一大块电流。

储能系统并联均流是一个永远不会过时的话题,因为只要系统规模增长、只要模块参数存在离散性,电流分配问题就会存在。下垂控制解决的是“无通信自主均流”这一基础需求,补偿策略解决的是“精度和动态性能”这一进阶需求。理解清楚这两层逻辑,再结合自己手上的硬件和工况去选择和调试,你就能搭建出一套既稳定又灵活的储能并联系统。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询