
最近在做一个电池充电系统的功率变换方案——输入是一路400V直流母线电池组96V还要带一路48V的直流辅助负载。最开始的想法很朴素电网侧拿一个AC-DC电池拿一个双向Buck/Boost负载再拿一个DCDC几路拼一起。但算下来体积、损耗、控制复杂度都让人头疼尤其是电池需要双向充放电、各路之间还要电气隔离方案越来越笨重。后来把目光转到TABTriple 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·LbLa·LcLb·Lc)/Lc。这个等效值可以直接套用两端口DAB的功率公式方便做初步参数估算。2.2 单移相下端口间传输功率的计算TAB最基本的控制方式是单移相三个桥的占空比固定为50%唯一可控的是移相角即各桥方波之间的相位差。以端口1相对自身为基准端口2的方波移相δ12端口3移相δ13。当δ210时端口1向端口2传递功率反过来δ210时功率反向流动。这个移相角符号决定功率方向的特性和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:N38.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参数全部放到模型工作区变量或脚本里不直接写死在模块里后续调整参数只需要改一个脚本文件跑仿真、扫参数、做对比都方便很多也便于把同样的模型改造成三端口以外的四端口甚至多端口架构。只要保持星形等效移相调制这个核心思路不变加一个端口无非是多一组全桥、多一个绕组、多一个移相通道而已。如果你也是刚接触隔离型多端口变换器建议先别急着上复杂控制把主电路和单移相跑透看懂波形里电流为什么会那样走再一步步往上加东西。这个基础打牢了后面无论是写论文、发文章还是做工程样机都会顺手很多。