news 2026/10/3 1:20:03

双向全桥隔离DC-DC变换器DAB设计实战:从原理到3kW样机调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
双向全桥隔离DC-DC变换器DAB设计实战:从原理到3kW样机调试

做车载充电机那会儿,甲方一句话把方案全推翻了:“你们这个充电机只能单向充,储能放电怎么办?”那时候我才意识到,双向功率流动不是锦上添花,而是很多系统的硬需求。我花了一个多月把主流双向隔离拓扑挨个理了一遍,最后锁定的方案就是双向全桥隔离DC-DC变换器(DAB)——业内也叫双有源全桥(Dual Active Bridge)。这篇内容是我从原理仿真到3kW样机调试全流程的复盘,适合刚接触这个拓扑的电源工程师,也适合正在做车桩、储能、光伏储能一体机选型的硬件同行。

DAB的优势一句话能说清:两个全桥天然对称,功率可以双向流动,且原副边都具备实现ZVS的潜力。但它的设计陷阱也很多——电感取值、死区设置、轻载回流功率、启动冲击,每一项都会让“看起来能工作”变成“实际没法用”。我尽量把关键坑位都标出来,文章里会带真实的调试波形思路和参数计算。

1. 双向功率流动需求爆发,DAB凭什么成为主流选择

1.1 哪些场景在逼着电源工程师做双向

先说场景,不然很多人不理解为什么要费劲做双向。当下最典型的几个方向:

  • 车载充电机(OBC)与V2G:电动车不光是负载,还能当分布式储能。充电桩要能把电池里的电反向送回家或者送回电网,OBC内部就必须有一级双向DC-DC。
  • 储能PCS:电池簇电压和母线电压之间需要一个隔离双向变换器,既能在充电时把母线能量灌进电池,又能在放电时把电池能量抬到母线上。
  • 直流微网与数据中心UPS:母线侧的储能单元需要在电网正常和掉电两种工况下自由切换能量方向,传统单向变换器加接触器切换的方案响应慢、体积大。
  • 电池化成与老化测试设备:电池放电时能量如果能回收而不是用电阻烧掉,几年省下的电费非常可观。

这些场景的共同特点是:功率等级集中在1kW到几十kW,电压范围宽,需要隔离,而且必须双向。DAB正好长在这个区间里。

1.2 与LLC、移相全桥相比,DAB的优劣势边界

很多人问过我:双向LLC不是也能做吗?确实能,但工程代价不一样。我把几个候选拓扑放在一起对划过,下面的表是我实际选型时的判断依据。

维度DAB双有源全桥双向LLC移相全桥(单向改造)
双向对称性两个全桥结构完全对称,正向反向特性一致谐振参数按双向最优点设计很困难,正反向增益和效率难兼得本质为单向拓扑,反向工作需额外开关管
软开关范围中等及以上负载ZVS范围较宽轻载ZVS困难,双向时更明显滞后桥臂ZVS范围窄,反向基本不兼容
控制自由度移相角、内移相角、占空比等多个自由度频率调制为主,参数耦合强占空比调制为主
功率密度高,变压器+电感体积可控高,谐振元件多但可磁集成中,输出滤波电感体积较大
工程调试难度中高,难点在死区和ZVS边界高,谐振参数双向匹配非常耗时低
典型适用功率1kW~100kW1kW~10kW单向占优1kW~20kW单向占优

从这张表能看出来,DAB不是在所有指标上都碾压别人,但它赢在“双向对称”这个核心诉求上。如果你的项目明确要求正反向都能高效运行,DAB比“两个单向电源背靠背”省一半的器件和体积,也比双向LLC少很多调参的痛苦。LLC单项效率确实可以做得更高,但双向LLC要想兼顾两个方向的满载和轻载性能,谐振参数的折中会让你怀疑人生。

2. 单移相控制下的功率传输逻辑与关键波形

2.1 拓扑结构与两只方波之间的相位差

DAB的基本结构是:原边一个全桥,副边一个全桥,中间用高频变压器连接,变压器漏感外面再串一个辅助电感(很多时候直接利用变压器的漏感,但实际做样机我建议还是加一个独立电感,参数好控)。

两个全桥各输出一个高频方波,分别记作原边桥口电压Vab和副边桥口电压Vcd(折算到原边是nVcd)。两只方波频率相同、幅值基本固定,唯一的变量是它们的相位差φ。这个φ就是控制量的核心,所以最基本的控制方式叫单移相(Single Phase Shift,SPS)。

功率流动方向由相位差的正负决定:原边方波超前副边方波,功率从原边流向副边;反过来,副边超前原边,功率就反向流动。这个特性非常直观——想换方向,只需要把移相角从正值改成负值,不需要切换任何大功率接触器或继电器。

2.2 电感电流的四段式面貌

SPS工作在一个开关周期里有四个主要区间。假设原边方波Vab为+V1,副边方波折算到原边为+nV2,电感两端电压就是两者之差。电感电流在这四个区间里呈线性上升或下降的折线形态。

可以这样理解:电感电流的上升率由电感和两端电压差决定,dV正时电流斜率向上,dV负时斜率向下。每个开关周期里,电流在正峰值和负峰值之间线性往返,形成典型的DAB“电流梯形波”。

很多初学DAB的人喜欢盯着驱动波形看,其实最该看的是电感电流波形——它既是功率传输的载体,也直接决定ZVS能不能实现。调试时用电流探头夹住电感,能同时看到四个开关状态交界处的电流方向,这是判断软开关的第一手证据。

2.3 功率传输公式的物理直觉

在SPS下,忽略损耗、假设两个方波幅值恒定,推导出来的传输功率公式是:

P = (n · V1 · V2 · φ · (π - φ)) / (2 · π² · fs · Ls)

其中φ以弧度为单位,取值范围0到π,n为变压器变比,fs为开关频率,Ls为折算到原边的总电感(变压器漏感加辅助电感)。当φ = π/2时,P取最大值:

Pmax = (n · V1 · V2) / (8 · fs · Ls)

这个公式是整个DAB设计的锚点,几乎所有硬件参数都要围绕它展开。

从物理直觉看,φ在0到π/2之间时,增大移相角意味着两只方波错开得越多,电感两端施加正向电压差的时间越长,电流峰值越大,传输功率自然越高。但过了π/2之后,电感电流还没来得及完成一个完整的充放电周期,部分能量开始回流,传输功率反而下降。所以单移相控制的移相角工作范围一般限制在0到π/2附近。

3. 硬件设计的三个硬骨头:变比、电感与死区

3.1 变压器变比怎么定才不亏

变比是DAB设计里第一个要拍板的参数。理想情况下,变比应使额定工况满足:

n · V2 ≈ V1

这里的V1和V2是原副边的直流母线电压。为什么?看电感电流的表达式就能明白:如果原边方波幅值和折算后的副边方波幅值偏差很大,电感两端过渡电压差就大,电流峰值飙升,同样的功率下有效值电流和开关管应力都会明显增加。

举个例子:原边400V,副边200V,变比n=2时,折算后副边方波幅值也是400V,两只方波“高度”相等,电感电流波形对称,ZVS范围也最宽。如果变比选成n=1.5,折算后是300V,高低压之差100V造成额外的电流脉动,同等功率下损耗可能高出15%以上。

实际项目里电压不会固定在一个点,电池放电时电压会从高点落到低点,这时候变比只能按电压区间中点或者按重点工况(比如额定点)来折中。我的经验是:先把V1和V2的全范围列出来,用n = V1_min / V2_max和n = V1_max / V2_min算出变比的上下界,再在交集里取中心值。宁可让高压端在最高电压时略“欠匹配”,也不要让低压端在最低电压时严重欠匹配,因为低压大电流侧的损耗更敏感。

3.2 辅助电感取值的权衡与经验公式

电感Ls是决定功率传输能力的关键。由Pmax公式反推:

Ls ≤ (n · V1 · V2) / (8 · fs · Pmax)

这个式子的含义是:电感不能太大,大了传不动额定功率。但电感也不能太小,太小了电流有效值很大,而且开关时刻电流变化太快,ZVS条件更难满足。

我做一个3kW、100kHz、400V转200V的样机时,n=2,按1.2倍的额定功率冗余(3.6kW)计算:

Ls ≤ (2 · 400 · 200) / (8 · 100000 · 3600) ≈ 55.6μH

但实际选型我不会贴着55.6μH用,因为还有ZVS约束和死区约束。一般取计算值的70%~85%,也就是约40~47μH,留出功率裕量。如果变比选得和电压不那么匹配,电感还得再往小了取。

辅助电感的位置有讲究:放在原边或副边都可以,但折算后的感值参与计算。变压器漏感本身就是Ls的一部分,但漏感受绕制工艺影响很大,批量一致性问题会让你后期很头疼。建议电感的主要部分用独立磁元件实现,漏感只当剩下来的零头。

3.3 死区和ZVS:从波形看软开关是否兑现

DAB最大的卖点是ZVS,但ZVS不是免费送的,它要求开关管的体二极管先于沟道导通。具体说,在每个开关动作之前,电感电流的方向必须能把开关管输出电容(Coss)充放电完成,让开关管漏源电压在开通前降到零。

工程上判断ZVS最直接的方法是看桥口电压波形:死区时间内,如果桥口电压被电感电流快速拉到目标母线电压,说明体二极管导通了,ZVS成立;如果桥口电压翻转慢、出现明显的台阶甚至停顿,说明电流不够大,ZVS丢失。

定量估算时,开关时刻电感电流I需要满足:

I ≥ (Vdc · 2 · Coss) / t_dead

比如Vdc=400V,开关管Coss=200pF,死区时间取200ns,那么需要的电流约为0.8A。这个数值满载时当然轻松满足,但在轻载时电感电流只有几安培甚至更小,ZVS就不成立了。轻载效率低,最常见的原因就是这里。

死区时间本身也要校准:太短,上下管直通风险大;太长,死区里电流方向翻转,体二极管反向恢复损耗增加。我一般从100ns起步,用示波器观察桥口电压翻转是否完整,逐步加大到刚好覆盖充放电所需时间。

提示:DAB样机调试时,先把死区统一设成300ns左右做功能验证,等系统跑稳了再逐桥臂优化死区。不要一上来就用最优值,否则一旦直通炸管,你连功能验证的机会都没有。

4. 从开环点亮到闭环稳压:控制与采样的实战细节

4.1 开环调试该看哪些波形

DAB调试千万别直接上闭环,一上闭环就分不清问题是出在硬件还是出在控制。我的流程是:先开环固定移相角,用调压器低压供电,一步步确认波形。

开环调试时重点看四路波形:

  • 原边桥口电压Vab:确认是全幅值方波,上下管驱动互不干扰。
  • 副边桥口电压Vcd:确认和原边方波频率一致、幅值正常,能通过调整TBPHS看到相位差变化。
  • 电感电流波形:确认它是标准的梯形波,正负峰值对称。
  • 变压器原边电压波形:确认没有单边伏秒过大导致的饱和迹象。

我习惯先把移相角设成很小的值比如5°,确认两个桥都能正常输出方波,再逐步加大移相角,同时观察电流峰值是否符合P = f(φ)的预期。如果电流比理论值大很多,先查变压器同名端有没有接错——这个错误很常见,接反了DAB就变成了两个方向互相抵消。

4.2 移相角是怎么生成与同步的

DAB的移相角生成,本质上是让两个全桥的PWM计数器保持同步,并给副桥设置一个相位寄存器。我用TMS320F28335做过,核心配置思路如下:

  • 主桥用EPWM1,定时器工作在连续增减计数模式,频率100kHz。
  • 副桥用EPWM2,使能相位装载(PHSEN),由EPWM1的同步信号触发TBPHS加载到计数器。
  • 运行时只改EPWM2的TBPHS值,就能在线调整移相角。
// 主桥EPWM1,作为同步源 EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // 计数器归零时产生同步信号 EPwm1Regs.TBPRD = 500; // 100kHz @ 100MHz时钟 // 副桥EPWM2,跟随主桥并允许移相 EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; // 启用相位装载 EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // 接收外部同步信号 EPwm2Regs.TBPHS.bit.TBPHS = phase_value; // 移相角对应的计数值

移相角φ(弧度)和TBPHS计数器的换算关系是:

phase_value = (φ / (2π)) × 2 × TBPRD

注意使用增减计数模式时,一个完整周期对应的计数变化是2×TBPRD,别在这里少乘一个2,否则移相角度会差一倍。这个错误我在第一版固件里犯过,示波器上两只方波的角度怎么都对不上。

STM32平台思路一样,用TIM1做主桥、TIM8做从模式,通过主从同步和TIM8的CCR寄存器实现移相,网上例程很多,但注意TIM8从模式时计数器的更新事件要和TIM1对齐。

4.3 采样、保护与环路参数整定

闭环控制依赖准确的电压电流采样。DAB的原副边都是高频开关节点,采样容易吃噪声。我的建议是:

  • 电流采样用霍尔传感器,不要用采样电阻加隔离运放。DAB电流双向流动且高频纹波大,采样电阻的功耗、温漂、共模干扰会让你调试到崩溃。
  • 电压采样用差分结构,参考地尽量靠近功率地,走线远离桥臂中点。
  • ADC触发时机选在PWM计数器归零或周期中点,此时桥口电压刚切换完毕,开关噪声最小。用EPWM模块的SOC事件触发ADC,不要用软件连续采样。

环路结构上,我习惯做“外环电压/功率 + 内环电讨”的双闭环。内环带宽做到开关频率的1/10到1/20,也就是100kHz开关频率时内环带宽5~10kHz;外环带宽再做内环的1/3到1/5。整定PI参数时注意:随着φ增大,功率增益P对φ的导数不是常数,在φ=π/2附近增益变化最快,要按最恶劣工况整定参数,否则大移相角时容易振荡。

保护方面,过流保护不要依赖软件中断,要利用控制器的硬件trip区(TZ模块)直接封锁PWM,响应时间在100ns级别。过压保护、过温保护也要全部硬件化,软件只负责记录故障状态和恢复逻辑。

5. 回流功率与轻载效率:单移相的软肋和进阶控制

5.1 回流功率到底怎么产生的

单移相控制有一个绕不开的问题:回流功率。什么是回流功率?在电感电流方向与桥口电压方向相反的时段,瞬时功率是负的,能量从副边流回原边,这部分功率在系统内部来回搬运,不对外做功,但增加了电流有效值和开关管损耗。

回流的根源在于:两只方波错开之后,电感电流的变化不完全由功率方向决定,电感本身要“先储能、再放能”。尤其在移相角较小的时候,回流功率占总功率的比例反而更高。这也是为什么DAB在轻载时的效率曲线不好看——轻载本来就电流小,回流功率和损耗占的比重大了。

我测过一个样机,输出800W时电流有效值比理论最小值高了差不多20%,用电流探头看波形,明显有一段电感和桥口的电压电流方向相反。这就是回流功率的直接证据。

5.2 DPS、EPS、TPS能调整什么

既然问题出在“两只方波之间的纯相位差”太粗糙,那就给两个全桥增加更多自由度。

  • 双重移相(DPS):原边全桥内部两个桥臂之间也引入一个移相角,原边桥口电压从两电平变成三电平的“台阶波”。这个台阶能减小电感两端的电压差脉冲面积,从而降低回流功率。
  • 扩展移相(EPS):让原边或副边其中一个桥引入内部移相,另一个桥仍然输出标准方波。实现比DPS简单,效果接近。
  • 三重移相(TPS):原边内移相、副边内移相、桥间移相三个自由度全开,理论上可以全工况最优,但控制复杂度和计算量显著上升。

以我实测的经验,DPS在轻载时能把回流功率减小约30%~50%,效率提升2~4个百分点。具体效果受电压匹配度影响很大,如果nV2和V1本身就匹配得很好,提升空间相对有限;反之如果电压偏离较大,DPS的收益会非常明显。

5.3 工况切换的工程实现

高级移相策略听起来好,但工程实现要考虑切换的连续性。直接从SPS切到DPS,移相角和内部移相角同时变化,电流波形会突变,可能引起电流尖峰。

我的做法是:把控制量从单一的φ扩展成一张离线优化表,预先在一定电压范围、功率范围下算出最优的DPS控制参数组合,存入MCU的Flash里。运行时按当前V1、V2和功率指令查表,查表结果经过缓慢斜坡(一般5~20ms)叠加到当前控制量上,再进PI调节器做最终校正。

这里有一个容易踩的坑:查表切换时,内环电流调节器输出饱和,可能造成切换过冲。解决办法是在切换瞬间给调节器限幅一个较小值,或者在DSP里做“调节器预加载”——切换前根据查表结果反算稳态调节器输出,再平滑过渡。

6. 调试问诊:变压器饱和、启动冲击与典型故障

6.1 变压器饱和与直流偏磁的排查链路

DAB变压器饱和是我遇到过的“头号杀手”,而且它往往不是一次性炸掉,而是“慢慢变烫→效率降低→最终炸管”的渐进过程。

现象:变压器温度异常高、有啸叫声、原边电流波形正负不对称、噪声明显。

  • 第一步:用电流探头看原边电流,如果发现正负峰值不对称,基本可以判断存在直流偏磁。
  • 第二步:检查两个半桥的占空比和死区是否完全一致。驱动芯片传播延迟的差异、隔离变压器绕组的差异,都会造成上下半周期的伏秒积不相等。
  • 第三步:检查移相角是否稳定。如果闭环在某个工况下振荡,等效到变压器上也是伏秒不平衡。

解决办法里最有效的是在原边回路串联一个阻断电容(隔直电容)。这个电容专门承担直流偏压,让变压器铁芯摆脱直流磁化。阻断电容容抗越小越好,实际设计按容抗不大于电感阻抗的1/5来取。比如电感30μH、100kHz,感抗18.8Ω,阻断电容容抗取3.76Ω以内,对应电容至少0.28μF。考虑电流有效值和耐受电压,我用的是几个CBB电容并联,效果很稳。

注意:串了阻断电容之后,DAB的启动动态可能受影响,因为电容上存在零状态响应。启动时要在软启动逻辑里把阻断电容的预充电过程也考虑进去,不然一上电可能反而出现冲击电流。

6.2 启动工况的电流冲击与软启动策略

DAB启动时最容易出现的故障是电流冲击。原因是输出侧电容初始电压为零,副边桥口方波折算到原边后幅值很低,电感两端等效电压差很大,此时如果直接把移相角给到目标值,电感电流会瞬间冲得很高。

我的软启动流程是分三步走:

  1. 封锁副边桥的大功率开关管驱动,让副边桥只走体二极管做整流,原边桥先以一个很小的固定移相角(比如2°~5°)工作,给输出电容预充电。此时副边桥的体二极管整流相当于普通全桥整流。
  2. 等待输出电压建立到额定值的80%~90%,再解除副边桥封锁,让副边桥开始正常输出方波。这一步保证进入DAB模式时的两侧电压已经基本匹配。
  3. 两个桥都正常工作后,移相角从零开始以斜坡方式增加到指令值,斜坡时间一般20~100ms,视输出电容大小而定。

这套流程我用过多次,基本能把启动冲击电流限制在额定电流的1.5倍以内。如果省掉第一步直接DAB模式启动,电流尖峰经常会超过3倍额定电流,比较危险。

6.3 几张故障速查表

调试时间久了,我整理了一些典型的故障现象和排查顺序,直接写成一个速查表方便现场用。

现象最常见原因排查顺序
上电即炸管或驱动损坏驱动极性接反、死区过小、变压器同名端错误先目检驱动和功率回路,再低电压小电流验证,不要直接上满载
变压器发热严重且有啸叫直流偏磁或饱和看原边电流波形是否对称;串阻断电容;测量铁芯温升
轻载损耗大、效率曲线难看ZVS丢失、回流功率占比过高看桥口电压死区阶段是否快速翻转;测量电感电流有效值;切到DPS/EPS
输出电压调不上去移相角限幅、变比不匹配、母线电压偏低看控制器给出的移相角指令是否到顶;测V1和nV2;检查闭环PI是否饱和
正方向正常、反方向异常副边桥的驱动时序或同步逻辑在反向时配置错误重点检查反向时哪一侧做主桥,同步源切换是否正确

最后再分享一个我个人养成的调试习惯:任何DAB样机,我都会在开环模式下用双通道示波器同时看原副边桥口电压波形,先把两个方波的相位对齐到零,再逐步加移相角。这一步虽然简单,但能省掉大量后面查问题的力气。DAB的难点从来不在功率传输公式本身,而在那些公式没有告诉你的边界条件——漏感温度系数、死区的非线性、采样延迟带来的相位误差。做这个拓扑,耐心比聪明更重要。如果你正在做类似的样机卡在某个环节,按上面这几张表的顺序先走一遍,大概率能找到问题所在。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 1:19:36

Transformer从原理到代码:自注意力机制与编码器-解码器实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:18:37

C++23 Deducing this 详解:显式对象参数如何终结成员函数重载灾难

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:18:08

DRV8818+STM32F373VC工业级步进电机精准控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:17:18

Kiva式货到人系统拆解:从调度算法到落地避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:17:18

GD32F105RBT6 Keil工程模板手搭指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/3 1:17:07

嵌入式物联网工程课:Linux+C+C+++MQTT+边缘AI实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华