☰
隔离型多端口变换器TAB的Simulink建模与移相控制实战
2026/10/7 4:20:49 网站建设 项目流程

最近在做一个电池充电系统的功率变换方案——输入是一路400V直流母线,电池组96V,还要带一路48V的直流辅助负载。最开始的想法很朴素:电网侧拿一个AC-DC,电池拿一个双向Buck/Boost,负载再拿一个DCDC,几路拼一起。但算下来体积、损耗、控制复杂度都让人头疼,尤其是电池需要双向充放电、各路之间还要电气隔离,方案越来越笨重。后来把目光转到TAB(Triple Active Bridge,三有源桥)变换器上,断断续续搞了一个多月,从拓扑原理、功率传输公式一直到Simulink建模仿真,总算把整条链路走通了。这篇就把我当时踩过的坑和最终能直接复用的建模步骤整理出来,给正在研究隔离型多端口变换器的同行做个参考。

需要说明的是,这篇文章不止是讲Simulink操作,更偏向"怎么把一个TAB电池充电系统从概念变成可运行的仿真模型"。我们不追求把所有控制做得很复杂,而是先把主电路、变压器、移相控制、CC-CV充电逻辑这四块跑通,在这个基础上再做扩展。无论是做毕业设计、课题预研,还是企业里做多端口变换器的可行性和波形验证,这套方法基本都够用。

1. 为什么是TAB而不是一路一路拼

先聊清楚背景,这决定了整套方案后续的所有取舍。标题里写了"隔离型多端口变换器",隔离型这个词很关键。在电池充电系统里,直流母线、电池组、负载之间往往需要电气隔离——母线侧如果有整流前级,可能是高压侧,电池和负载属于低压侧,安全上不允许直接共地。常见的做法是每一路单独做一个隔离DCDC,比如电网接一个LLC,电池接一个双向CLLC,负载再接一个Buck,结果就是三套磁性元件、三套驱动电路、三套控制器,成本和体积直接起飞。

TAB的思路完全不同:用一个高频三绕组变压器取代所有独立变换器的磁性元件,三个端口各接一个全桥电路,能量通过同一个磁芯在高频下交换。三个端口之间的功率流向完全由桥臂的移相角决定,哪个端口需要吸收功率、哪个端口需要输出功率,控制器通过移相就能调配,天然支持双向流动。这一点对电池充电尤其重要,因为电池既可能被充电(端口吸收功率),也可能在回馈制动或削峰填谷时放电(端口输出功率),TAB不需要额外换向电路就能处理。

除了双向性,TAB还有一个经常被忽略的优点:三端口之间的能量交换是"直接"的,不经过中间母线二次变换。举一个实例,如果端口1接母线、端口2接电池、端口3接负载,那么母线到负载的功率可以直接通过变压器耦合过去,不需要先给电池充电再让电池放电。这在传统"母线—电池—负载"两级结构里是做不到的,那种结构里负载功率至少经过两次变换,每次转换都伴随损耗和器件应力。TAB的代价是三绕组变压器设计和多变量控制更复杂,但这个代价在需要两个以上能量端口的场景里通常值得付。

TAB本质上可以看成DAB(双有源桥)的自然扩展——三个全桥共用一个高频磁路。如果你已经熟悉DAB的移相原理,那么TAB的核心机制是相通的;如果不熟悉,也不用慌,下一节把TAB的功率传输机制拆开讲清楚,后面仿真里的很多参数就可以直接对应上。

2. TAB的功率传输与软开关原理,先搞懂再动手

2.1 拓扑结构和三绕组变压器的等效电路

TAB主电路非常规整:三个全桥单元分别接到三绕组变压器的三个绕组上,每个绕组串联一个等效电感(可以是变压器漏感,也可以外加谐振/传输电感),三桥的直流侧分别连接电压源、电池和其他负载。所有桥都工作在50%固定占空比,输出高频方波电压,通过变压器隔离和耦合。

理解功率传输的关键是把变压器和三绕组阻抗化成星形等效电路。把三个绕组折算到同一电压基准后,每个端口的方波电压源通过一个等效电感汇聚到一个虚拟星点。这是做理论分析和Simulink建模时最重要的心法:实际模型里看到的是"三绕组变压器+三套全桥",但算功率和控功率时,脑子里想的是"三个方波电源通过三个电感接在同一个点上"。

如果三个等效电感分别为La、Lb、Lc,有时为了估算两个端口之间的直接耦合,可以用星三角变换把星形电感转成三角形电感,这时端口1和端口2之间的等效电感Lab为(La·Lb+La·Lc+Lb·Lc)/Lc。这个等效值可以直接套用两端口DAB的功率公式,方便做初步参数估算。

2.2 单移相下端口间传输功率的计算

TAB最基本的控制方式是单移相:三个桥的占空比固定为50%,唯一可控的是移相角,即各桥方波之间的相位差。以端口1相对自身为基准,端口2的方波移相δ12,端口3移相δ13。当δ21>0时,端口1向端口2传递功率;反过来δ21<0时,功率反向流动。这个"移相角符号决定功率方向"的特性,和DAB完全一致。

考虑两个端口之间通过等效电感L相连,两个方波电压幅值分别为E1、E2(折算到同一基准后的直流电压值),开关频率fs,相位差δ,那么一个开关周期内平均传输的有功功率可以写成:

P = E1·E2 / (2π·fs·L) · δ · (1 - |δ| / π)

注意单位要核对一遍:频率用Hz,电感用H,电压用V,功率自然得到W。δ的值域在-π到π之间,正值得出的P为正值表示能量从相位超前的端口流向相位滞后的端口。从这个公式能读出几个重要结论:移相角越大功率越大(但不是线性,在δ接近π/2附近增加速度变慢,超过π/2后增加量趋缓甚至下降);开关频率越高,需要的电感越小;电感值直接决定额定功率时的电流应力。

实际TAB是三个端口互相作用,严格来说每个端口的净功率是三对移相角效应的叠加,但由于功率公式本身是非线性的,工程上常用"两两解耦、分支估算"的方法:先给每个端口算额定功率,再分配到各支路等效电感上,最后在仿真里验证。我的建议是,初设时别追求精确,把每个电感按两端口公式反推,留出20%-30%裕量,后续仿真再微调。

2.3 变比匹配和无功环流

TAB的变压器变比不是随便定的。理想情况下,三个端口折算到同一基准电压后应当满足E1:E2:E3接近一致,也就是说,变压器各绕组变比要与各端口的直流电压严格匹配。如果变比不匹配,即使所有移相角都为零,变压器里也会存在循环无功电流,白白增加损耗和器件应力。这种现象在Simulink波形里表现为:三个桥的电流纹波明显,但每个端口的有功功率却接近零。

做电池充电系统时,电池电压是随SOC变化的——锂电池从放电到充满,端电压可能变化20%以上。这意味着任何固定变比都做不到全范围匹配,总会有某个荷电状态区间出现无功环流增大、软开关条件变差的问题。仿真时可以先用匹配变比把主电路和行为验证跑通,之后再人为引入失配情况,观察电流畸变,从而体会为什么实际工程中TAB要搭配更复杂的调制策略(双移相、三移相、不对称占空比等)。我建模型时固定用匹配变比,后续专题再研究失配场景的控制优化。

3. Simulink建模:主电路、变压器和移相控制的落地细节

3.1 主电路整体框架

Simulink里搭TAB仿真,我的习惯是模块化布局:左上角放直流母线等效源,中间放端口1全桥,右侧放变压器和端口2、端口3全桥,下方单独放控制调制部分。模型顶层一定要清晰,因为后面加测量、加保护、加波形监视都在这个框架里。

直流母线源不必做得很复杂——仿真重点是验证TAB本身,不是研究整流器动态,所以用直流电压源串联一个小电阻就能模拟母线。电池侧如果用Simscape Electrical的Battery模块,建议先设置成简单的内阻模型;如果只想验证功率流和移相控制逻辑,甚至可以直接用受控电压源+RC特性曲线来抽象电池模型,重点放在"端口能吸收/发出多少功率"上,等主电路跑通了再替换成复杂电池模型。

全桥用Simscape Electrical里的Universal Bridge模块,桥臂选择IGBT/Diode或MOSFET/Diode均可,反并联二极管是必须保留的,因为移相控制中电流要经常反向流动。三个全桥共用一个直流母线地参考点,但变压器二次侧按隔离处理,仿真时用电压测量模块加在电池侧、负载侧。

3.2 三绕组变压器建模的三种做法

三绕组变压器在TAB仿真里是最容易出问题的环节。我给三种建模方案,按优先级排序:

  • 方案A:用Simscape Electrical自带的Three-Winding Transformer模块。如果版本里能找到,就用它,变比、漏感、励磁电感都能分别设置,最接近真实变压器。需要注意绕组的极性连接和线圈方向,接反了功率方向会整体反转。
  • 方案B:用三个单相双绕组变压器搭出三绕组效果。这种方式更灵活,适合需要精确控制每个端口漏感的场景,但绕组的公共磁路关系要靠理想变压器约束近似,模型复杂度上升。
  • 方案C:完全用理想变压器+串联电感等效。把三绕组变压器用星形等效电路表达,即三个理想变压器(或等效为比例增益的受控电压源)分别接一个串联电感,再汇于星点。这种方式最贴近理论推导,适合做控制算法验证,但波形上忽略励磁电感效应,不能用来评估铁芯损耗和励磁电流。

我这次用的是方案C的变体:理想变压器比例关系用受控电压源和受控电流源实现,三个串联电感按星形连接。这样做的好处是等效电路和第二节的功率公式一一对应,调试移相逻辑的时候心里特别有底。但我也提醒一句:如果目的是研究变压器的具体磁路、损耗,或对比绕组绕法,那还是老老实实选方案A或B,仿真结论才更可信。

3.3 移相驱动脉冲:三种实现方式对比

移相控制需要三个桥臂的PWM脉冲相位可调。实现方式有三种,我全都试过:

  • 方式一:三个Pulse Generator分别设置Period和Phase Delay。Phase Delay的单位是秒,需要根据移相角换算:延时=δ/(2π·fs)。这是最直观的,做单移相调试特别快。
  • 方式二:用一个统一的三角载波加三路正弦(或常数)调制波,通过PWM Generator模块生成。调制波幅值决定占空比,三相调制波的相位差决定移相角。适合后面扩展不对称占空比、双移相策略。
  • 方式三:自己用积分器+比较器搭一个PWM发生器。这种方式最笨但最可控,很适合在实时仿真或需要精确死亡时间插入的场景。

强烈建议先用方式一跑通开环,确认功率方向,再迁移到方式二做闭环控制。一上来就用通用PWM模块加复杂调制,波形一乱根本不知道是变压器问题还是调制波相位问题。我当时就是心急直接上的方式二,排查了整整一天,最后退回去用Pulse Generator才把问题定位清楚。

3.4 测量和控制环路的搭建

仿真验证TAB的功率流,至少需要以下几路测量:三个端口的直流电压和电流、电池端口的功率、变压器绕组电流、各桥驱动脉冲。直流测电压电流用Voltage Measurement和Current Measurement,功率用Product模块求瞬时功率,再加一个均值滤波器(或一阶惯性环节)看平均功率。高频开关纹波很大,观察波形时如果不滤波几乎什么都看不清,我习惯把原始波形和滤波后的波形一起示波显示,便于同时判断稳态和瞬态。

充电控制的闭环逻辑按电池充电规则来:恒流(CC)阶段,电池电流参考值经PI调节器输出移相角δ,控制端口1流向端口2的功率;当电池电压抬升到设定值后切换到恒压(CV)阶段,PI调节器改为约束电池电压,移相角自动收小;两阶段切换用比较器或逻辑判断实现。移相角输出必须做限幅,防止PI超调把移相角推到超出±π的合理范围。此外,为了模拟真实工况,我加了一个简单的"母线功率优先"机制:端口3负载功率直接由端口1供给,电池只在母线功率有富余或不足时吸收/补充——这部分逻辑在仿真里用一个加法节点和几个判断模块就能搭,不需要重型控制框架。

4. 参数设计与仿真调试:从空载到充电工况

4.1 一组可直接换算的仿真参数

没有具体参数,仿真没法跑。我按一个便于理解的例子来定,读者可以等比缩放到自己的功率等级:

  • 端口1(母线侧):直流电压400V,额定输入功率3kW
  • 端口2(电池侧):电池额定电压96V,最大充电功率1.5kW,先做恒流充电
  • 端口3(负载侧):额定电压48V,额定负载功率1.5kW
  • 开关频率:50kHz
  • 变压器变比:400:96:48折算后约N1:N2:N3=8.33:2:1,实际上用理想变压器比例表达为1:0.24:0.12

基于第二节的两端口功率公式,取最大移相角δmax=π/3左右,端口1向端口2传输1500W时,等效电感L12可按下面方式反推。设折算到400V基准的两端口方波幅值都约等于直流电压值400V,则:

L12 = E1·E2 / (2π·fs·P) · δmax · (1 - |δmax|/π) = 400×400 / (2π×50000×1500) × 1.047 × (1 - 0.333) ≈ 224μH

即端口1和端口2之间等效到端口1侧的传输电感约220μH左右。同理可算端口1对端口3、端口2对端口3的等效电感。实际用星形等效建模时,每个支路电感取不同值时,需要做星三角折算,我的做法是先按三角形等效电感算好,再反变换回星形电感值填入每个端口串联电感。这个反变换公式比较繁琐,但在Simulink模型里只需要设置三个电感值,调整一两次就能匹配目标功率。

4.2 从空载启动到额定工况的调试顺序

我建议按"空载—阻性负载—电池充电"三步递进调试,每步验证的内容不同:

  • 空载:负载端口开路,电池端口置空载,三个移相角都设为零,观察三个桥电流是否接近于一个很小的励磁电流。如果电流偏大,大概率是变比匹配或电感设置有问题,先解决这个再继续。
  • 阻性负载:端口3接电阻,只投入端口1和端口3之间的移相角δ13,观察负载电压和输出功率是否与公式估算匹配。这一步验证变压器和功率公式,波形应该很干净。
  • 电池充电:投入端口2,开启CC-CV切换逻辑,观察电池电流是否被PI稳定到参考值、移相角输出是否平滑、各端口功率是否满足功率平衡。正常情况下三个端口的有功功率代数和应接近零(母线输入功率≈电池吸收功率+负载消耗功率+损耗),差的都来自开关损耗和线路电阻,不应悬殊。

4.3 波形检查清单

调试时别东一眼西一眼,按我的清单检查波形,能快速定位问题:

  • 三个桥出口电压波形:应为50%占空比方波,幅值等于对应直流电压,电压跳变沿之间能看到明显相位差。
  • 变压器绕组电流:应近似为梯形波或三角波叠加。如果电流呈尖峰状,检查死区时间和漏感是否过小;如果电流正弦化严重,说明电感过大或励磁电流占主导。
  • 电池电流滤波波形:CC阶段应稳定在参考值附近,无明显振荡;切换CV后电流应自动下降。
  • 功率波形:母线端口瞬时功率应为正(持续吸收电网功率),电池端口瞬时功率在充电时为正、切换为假想放电工况时应为负,负载端口始终为正。

照着清单逐项核对,基本一个下午就能把开环和闭环都调通。

5. 仿真中容易踩的五个坑及排除过程

5.1 变压器极性接反,功率方向整体反转

这个坑我印象太深了。第一次搭完模型,移相角δ12设为正值,预期母线向电池充电,结果电池电流却是负的,功率反向流动。查了半天,发现是变压器的端口2绕组同名端接反了,等效于端口2的方波电压反相180度,移相角的符号含义全部颠倒。排除方法很简单:断开端口3,只保留端口1和端口2,移相角设一个小正值,看端口2直流电流的方向。方向不对就把变压器绕组的端子对调或把移相角符号取反。此后我每次搭变压器模型都先做一次"无功检查",再接控制。

5.2 变比不匹配导致零移相也存在大电流

有一版模型里为了偷懒,把三个端口电压直接设置为400V、100V、50V,变压器变比按整数1:0.25:0.125取,结果零移相时变压器电流居然有十几安培,还不消失。原因就是电压比0.25和0.125与理想的0.24和0.12有细微偏差,换算到同一基准后端口间存在恒定电压差,驱动了循环电流。这其实正好验证了2.3节的理论分析。实际遇到这种问题,不需要怀疑仿真软件,先回去校准变比,把三个端口折算电压调一致,电流立刻降下来。

5.3 仿真步长过大,开关瞬态波形严重变形

TAB是高频开关拓扑,50kHz开关周期只有20μs。如果仿真步长设置成10μs,一个周期只有两个采样点,方波和电流畸变得几乎不可用。离散求解器下,我建议最小步长设置在0.5μs左右,即每开关周期至少40个步点。虽然仿真速度会慢一些,但波形可靠,尤其是后续要观察死区效应和软开关特性,步长不够大根本看不出细节。连续求解器虽然步长自适应,但在开关瞬态也会因为高频动作导致计算开销飙升,我反而更推荐固定步长离散仿真,结果可重复性好控制。

5.4 代数环问题:瞬时功率反馈导致闭环发散

闭环控制里如果直接把瞬时功率信号送进PI调节器,Simulink在某些配置下会报代数环或出现高频振荡。因为瞬时功率含有开关纹波分量,PI输出又在逐周期影响开关相位,形成了一个快速的信号环路。解决办法是控制反馈量只取均值,方法包括:用均值模块(Mean)、一阶惯性环节(Transfer Function with small time constant)、或零阶保持器在开关周期整数倍时刻采样。我习惯在电池电流反馈通道里加一个截止频率远低于开关频率的低通滤波器,既能平滑反馈,又能保证控制环路稳定。

5.5 电池模型选择不当导致高倍率下电压暴跌

第一次用简化的理想电压源+固定内阻模拟电池,充电功率稍大时端口电压掉得厉害,导致母线侧和电池侧折算电压匹配关系破坏,移相角和功率之间的关系不再符合理论公式,看着波形一头雾水。后来换成带OCV-SOC曲线和动态内阻的Battery模块,电压特性才合理。如果用的Simulink版本没有完整电池模型,至少要把内阻按电池特性分段设置,不要太理想化。做行为验证可以简单,做充电过程分析就必须把电池SOC、电压、内阻随充放电状态变化的特征带进来,否则后面的CC-CV切换逻辑测试没有意义。

6. 从仿真到样机可复用的控制改进想法

基础模型跑通之后,如果你和我一样还想往前推一步,最值得投入的方向是调制策略和软开关范围优化。单移相控制下TAB面临的核心困境是:轻载时开关管ZVS范围收窄,回流功率上升——通俗说就是有一部分能量在端口之间来回搬运,增加了通态损耗和电流应力。此时不计算有功功率,只看电流有效值就会发现,同样的输出功率,轻载电流反而偏大,这就是回流功率在捣乱。

于是可以考虑扩展移相控制,比如双移相(DPS)或三移相(TPS),即在每个桥内部加入桥臂间的移相(使桥输出电压出现阶梯状,不再是标准50%方波),通过调节内部移相角和外部移相角的组合,来降低回流功率并扩大ZVS范围。在Simulink里做这种扩展,PWM生成部分就要用到我前面提到的方式二或方式三,调制波不再是固定相位差,而是由控制器实时计算内部移相角、外部移相角。控制律的标定公式可以从两端口DAB的TPS推导扩展到三端口,但要注意三端口相互耦合,不能简单叠加两个独立DAB的结果。

如果只是做毕设或预研,不需要做得太细,可以用参数扫描把基础模型的移相角、负载、电池SOC等关键变量全部扫描一遍,画出功率/效率与移相角的关系曲面。这个工作本身就能形成非常有价值的图表,而且直接告诉决策者"这台变换器的可控调节范围到底有多大"。Simulink的Parameter Sweep或脚本化仿真很适合干这个,跑几十个工况点,把数据导出来画成2D/3D曲线,比单纯给一两个典型波形有说服力得多。

我自己做这个项目时还有个额外心得:仿真模型结构从一开始就要面向复用设计。变压器参数、电感值、PI参数全部放到模型工作区变量或脚本里,不直接写死在模块里,后续调整参数只需要改一个脚本文件,跑仿真、扫参数、做对比都方便很多,也便于把同样的模型改造成三端口以外的四端口甚至多端口架构。只要保持"星形等效+移相调制"这个核心思路不变,加一个端口无非是多一组全桥、多一个绕组、多一个移相通道而已。

如果你也是刚接触隔离型多端口变换器,建议先别急着上复杂控制,把主电路和单移相跑透,看懂波形里电流为什么会那样走,再一步步往上加东西。这个基础打牢了,后面无论是写论文、发文章,还是做工程样机,都会顺手很多。

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

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

立即咨询