TAB三有源桥Simulink建模与移相控制:电池充电隔离变换器仿真实践

📅 发布时间:2026/10/8 5:44:42
TAB三有源桥Simulink建模与移相控制:电池充电隔离变换器仿真实践
前阵子做一套储能电池充电方案时甲方给了一个硬性约束输入输出必须电气隔离电池侧要支持能量双向流动同时还得额外拖一路48V辅助电源给散热风扇和控制系统供电。我最初的想法是那就在前端放一个DAB再并一个DAB后来评估了一圈体积、成本和磁性器件数量还是改成了TABTriple Active Bridge三有源桥——一个高频三绕组变压器加三个全桥把三路功率全部整合进去并用Simulink完成了系统级的仿真验证。这篇文章就是把这个项目的建模思路、控制策略和踩坑过程复盘一遍给正在入手隔离型多端口变换器仿真、准备用Simulink做TAB/三端口电池充电系统研究的朋友做个参考。TAB的仿真并不复杂但它和DAB最大的不同在于三端口功率是强耦合的三个桥之间两两都有移相角动其中一个角会同时影响另外两条功率通路。这个耦合特性决定了仿真模型该怎么搭、控制环该怎么分层、参数又该怎么整定。下面我按自己的实际项目顺序来拆。1. 为什么电池充电场景里我会选TAB而不是两个DAB拼出来先说回项目需求。这套系统的拓扑要求是一路400V直流母线连接前端AC-DC变换器一路电池端口额定200V动力电池组支持充电和放电再加一路48V辅助输出。三路之间必须高频变压器隔离。这种多输入/多输出双向隔离的三端口结构放在三年前我大概率直接用两个DAB并联解决——一路DAB负责电池充放电另一路DAB负责辅助电源两套变换器各干各的。但双DAB方案有一个很难受的问题磁性元件和功率器件都是双份的。两个高频变压器、两组全桥器件、两套控制电路成本和体积直接翻倍。而且两个DAB各自独立控制在动态切换时比如电池从充电瞬间切换为放电两个变换器之间的功率协调必须靠外部调度响应速度天然慢半拍。更重要的是双DAB一共要占四个端口实际却只有三个端口需要接设备另一个端口和对应的磁性绕组等于浪费。TAB的价值就在于用一个多绕组变压器把三个端口绑在一起。三端口之间只有唯一的高频磁路任意两个端口的功率交换都是通过第三个端口进行平衡功率器件和磁性器件都被大幅压缩。整个系统的功率路由关系在拓扑层面就天然完成不需要额外通信。下表是我当时做的方案对比方案高频隔离双向能力磁性元件数量功率协调方式体积与成本三个独立DAB有全端口双向2个变压器4组电感外部调度高非隔离多路Buck/Boost无部分单向或半桥双向无本地控制低但无隔离TAB有全端口双向1个三绕组变压器等效串联电感磁路自然耦合低选TAB还有一个电池充电场景特有的理由电池端口电压是宽范围变化的而TAB天然适合处理大范围电压波动。磷酸铁锂/三元锂整组电池从亏电到满电端口电压会有20%~30%的变化幅度这在充电机设计中非常头疼。TAB通过移相角调节可以让变压器端口间的电压差异转化成可控的功率传输电压匹配条件比DAB更宽松——后续的移相调压能力正好覆盖电池电压的变化区间。不过也要说清楚TAB不是银弹。三端口完全耦合导致控制自由度变少电磁设计上对三绕组变压器的漏感参数更敏感这些都是实际工程中需要接受的代价。仿真阶段如果这些特性处理不好后面实验阶段大概率会反复改板子所以我这篇文章会花较大篇幅讲仿真里怎么把耦合特性复现出来以及怎么通过控制策略让耦合不再是问题。2. 三个桥的功率调配移相角才是核心控制变量2.1 从DAB的移相逻辑说起DAB双有源桥的功率控制很简单原副边两个H桥都用50%占空比的方波驱动两个方波之间错开一个移相角φ功率传输大小和方向就完全由这个φ决定。正向调大φ功率从原边流向副边增大反向调φ功率反向流动。工程上常用的稳态功率公式可以简化写成P (V1 × V2) / (2 × π × fs × L) × φ × (1 - |φ| / π)其中V2是副边电压折算到原边的值L是变压器漏感与外加电感的等效串联感值fs是开关频率。这个公式虽然是在忽略电阻、忽略高次谐波的条件下得到的但用来估计功率容量和选漏感特别直观——漏感小了电流冲击大漏感大了同样移相角下功率传不过去。2.2 TAB的三端口耦合到底是什么TAB比DAB多了一个桥三个桥的方波之间就有三个相对相位差φ12桥1与桥2、φ13桥1与桥3、φ23桥2与桥3。但注意三个相位差之间满足约束关系φ23φ13-φ12所以真正独立可调的控制变量只有两个。三绕组变压器在做等效分析时通常把三个端口的漏感折合成一个星形Y形耦合电感网络。在这个等效模型下每个端口的功率等于该端口电压与其他各端口电压相位差的贡献之和。也就是说P1 k12×φ12 k13×φ13 P2 -k12×φ12 k23×φ23 P3 -k13×φ13 - k23×φ23其中k系数与电压幅值、频率、等效电感有关。从这个式子可以清楚看到TAB的本质问题调整φ12会同时改变P1和P2但P3也会跟着变因为φ23等于φ13减φ12。三个端口的功率像连通器一样动一个角所有端口都会受影响。2.3 我采用的功率路由策略虽然耦合听起来麻烦但反过来利用它其实可以简化控制。我的策略是端口1作为功率平衡端口不直接参与闭环端口2电池充电电流/电压和端口348V辅助电压作为两个受控端口由两个独立控制环分别输出φ12和φ13。工作逻辑是这样当电池需要加大充电功率时电流环输出更大的φ12这个动作会让功率从端口1向端口2流动同时端口3的电压会因为耦合略微波动电压环会自行微调φ13来补偿。端口1的功率不设独立控制环其输入功率自动等于端口2和端口3功率之和——从物理角度看直流母线侧电源天然会自动补充总功率缺口。这种两个指头按下第三个指头跟着弹起的控制方式在实际硬件上避免了三个环互相打架的问题。2.4 移相角边界与回流功率问题移相控制最忌讳的是移相角超过一定范围。从DAB功率公式看φ在0到π之间时功率在φπ/2附近达到最大超过π/2后功率反而下降同时回流功率比例增大电流应力飙升。我在控制环里给两个移相角都做了限幅默认限制在±60度电角度以内约π/3既保证有足够功率传输能力又不会让回流功率占过大比例。这个限制在仿真模型里就是一个Saturation模块的事但它能救命——不加限制的PI控制器在启动和负载突变时很容易把移相角推过头。3. Simulink建模关键步骤与参数选型3.1 建模策略平均模型先行开关模型验证TAB的Simulink建模最忌讳一上来就搭完整的开关级模型——三个H桥、高频变压器、十二个开关管再加上控制环路仿真速度会非常感人。我的做法分两步第一步用平均模型把控制策略跑通。在Simulink里平均模型不需要IGBT/MOSFET开关管直接用受控电压源模拟每个H桥输出的基波方波通过移相角改变各个受控源之间的相对相位。这样跑一次稳态仿真只需几秒钟电压环和电流环的PI参数可以在这里快速粗调。第二步再做开关级模型验证。开关级模型里保留实际全桥开关管、三绕组变压器和二极管用来验证电流纹波、ZVS条件和启动冲击这类细节问题。两个模型共用同一套控制逻辑和PI参数只是被控对象的电气描述精度不同。3.2 高频三绕组变压器的建模细节三绕组变压器是TAB仿真里最容易出错的地方。Simulink的Simscape Electrical里有一个Three-Winding Transformer模块直接设置各绕组变比、漏感和磁化电感即可但它内部默认的电压电流参考方向和实际电路搭接容易搞混。我更推荐的做法是拆开建模用理想变压器受控电压源受控电流源组合作为电压变换核心然后在每个端口串联一个等效漏感L1、L2、L3。这样每个端口的感值都能独立调整后续观测端口电流也更直观。变压器变比按端口额定电压匹配端口1为400V、端口2为200V、端口3为48V因此变比设为N1:N2:N3 8.33:4.17:1也就是主变比近似8:4:1。实际设置时我按800:400:100匝数比设方便计算。漏感值按额定功率反推。项目目标功率2kW、开关频率20kHz仿真用、直流母线400V、电池端折算后电压约400V额定移相角取30度约π/6带入DAB功率公式算出的等效漏感约280μH。这个值我分配在端口1、端口2各140μH端口3辅助端口漏感较小设为约50μH。当然实际样机开关频率会远超20kHz漏感可以大幅缩小但仿真里只要频率和感值配比等效验证的控制逻辑就是有效的。3.3 全桥与移相PWM生成三个H桥我都用Universal Bridge模块实现桥臂配置选全桥模式开关器件选IGBT/Diode。Universal Bridge的好处是内部已包含反并联二极管和续流路径不用手动搭死区逻辑适合系统级仿真。移相PWM的生成是整个模型的关键。我用一个统一三角载波源频率设为20kHz三个桥的A、B桥臂驱动信号在同一载波上比较。给每个桥设置一个移相角度参考Simulink里用角度信号控制脉冲延迟桥1的移相基准是0桥2的移相基准是φ12桥3的移相基准是φ13。每个H桥内部A桥臂和B桥臂之间再错开半个开关周期即50%占空比方波的互补关系。这样三个桥输出的方波就带上了期望的相对相位差。这里要说一个我踩过的小坑Simulink的移相角度单位是rad载波频率对应的时间周期是50μs移相角给多少rad就必须换算成对应的时间延迟。如果用Pulse Generator模块里的Phase delay参数单位其实是秒不是角度我当初在这个单位换算上花了半小时才反应过来。3.4 电池模型怎么选Simulink自带Battery模块在Simscape Electrical库中支持锂电池模型可设置额定电压、容量、SOC初始值、内阻等。我直接用它建了一个额定电压200V、容量50Ah、初始SOC 30%的锂离子电池模型。但自带电池模型有个问题默认内阻偏小充电时端口电流纹波会全部压在电池端波形看起来特别毛糙。解决方法是给电池端口额外串联一个小电感约1mH模拟实机中电池线束和滤波电感的寄生感值。如果只关心功率变换侧行为可以用一个更简单的Thevenin等效模型受控电压源SOC开路电压串联一个内阻R0并联RC网络极化效应。这种模型在平均模型阶段用起来更快SOC计算可以后面再补。两种方式我都试过结论是系统级控制验证用Thevenin模型就够了开关级详细波形分析用自带Battery模块更省事。4. 电池充电的CC-CV控制两个闭环如何配合4.1 充电流程为什么要分恒流恒压两段锂电池充电不能一直大电流充到满电否则过压会损坏电池。标准充电曲线是先恒流CC电池电压低于设定值时以固定电流比如10A充电当电池电压上升到充电上限本项目设为228V时切换为恒压CV保持电压不变充电电流自然逐渐减小当电流降到0.5A左右时认为充电完成。这套CC-CV流程本身很简单但在TAB这种多端口拓扑里实现关键在于电流环和电压环之间怎么平滑切换。4.2 两个闭环的控制结构我的控制结构如下端口2电流环采样电池端口直流电流与CC阶段电流设定值10A做误差输出移相角φ12。PI控制器输出经过限幅±60度电角度后直接作用于桥2移相基准。端口3电压环采样48V辅助端口电压与48V参考值做误差输出移相角φ13同样限幅后作用于桥3。模式切换逻辑检测电池端口电压低于228V时切换开关指向电流环CC模式高于228V时切换开关指向电压环CV模式。CV模式下电流环并不停掉电压环输出的φ12也在不断缩小从而让充电电流平滑下降。为避免切换瞬间电流突变我给模式切换加了一个斜坡逻辑不是瞬间从10A切到电压闭环而是让电流参考值在200ms内按照设定的电压闭环电流预测值斜坡递减实测效果很好电池端电压没有任何尖刺。4.3 PI参数整定的实操参考TAB的PI参数没有精确公式工程上给一组可用的起始参考值再微调就好。我用的小信号法整定思路是把移相角到电池电流之间的传递函数近似成一阶惯性环节带宽按开关频率的1/10即2kHz来取。实际起始参数如下控制环Kp起始值Ki起始值输出限幅说明电池电流环0.120±60度电流环响应快Ki大胆给辅助电压环0.055±60度电压环动态要求低Kp不应过大这个参数在平均模型里可以直接用换到开关级模型时需要稍作微调——因为开关级模型里有PWM延迟和电流纹波Kp过大会造成振荡。我在开关级模型里最终把电流环Kp降到0.05Ki保持20系统才稳定下来。提示如果仿真中出现持续振荡先不要盲目调PI先检查移相角是否频繁触碰到限幅值。如果限幅值顶满说明功率传递能力不足需要增大等效漏感或提高直流母线电压而不是继续加大Kp。4.4 电池端口的反馈量选哪个端口2的充电电流有两种采样位置变压器端口侧的交流电流和电池直流侧的直流电流。我强烈建议采样直流侧电流作为闭环反馈原因有两个一是电池充电工况关心的是实际注入电池的直流电流交流侧电流包含了无功分量并不直接等效于充电功率二是直流侧电流纹波相对小给PI控制器带来的压力也小得多。代价是需要增加一个采样延时补偿我在反馈路径上加了一个一阶低通滤波截止频率5kHz用于滤除开关频率附近的毛刺。5. 从仿真发散到稳态正常我踩过的坑5.1 代数环问题这是我第一次跑TAB开关级模型时直接卡死的元凶。现象是仿真一开始就报Algebraic loop detected然后整个模型计算速度慢到无法忍受甚至在特定条件下直接发散。原因在于PWM信号的发生依赖输出电流的测量值而电流测量值又由PWM信号决定两者之间形成了瞬时反馈回路。解决方式有三种在测量信号链上插入一个极小的惯性环节比如1e-6秒的一阶低通打破瞬时回路在电流采样反馈路径上加Unit Delay模块牺牲一个采样周期换取解耦在求解器设置里允许Simulink自动代数环求解。我在实际项目中前两种都用过。开关级模型用第一种惯性环节效果最自然平均模型用第二种单位延迟因为平均模型没有高频开关噪声一个周期的延迟对几十ms级动态响应几乎无影响。5.2 启动冲击电流与软启动第一次闭环启动时电池电流瞬间冲到40A直接把仿真数值拉爆。原因很简单三个桥同时启动且移相角直接给到目标值变压器端口电压之间相位突变等效电感上会产生巨大的电流冲击。解决办法是软启动启动时移相角从0开始以斜坡方式在20ms内缓慢上升到PI控制器输出的目标值。同时直流母线侧电容和电池侧电容都有预充电过程需要在仿真最初阶段让三个桥先以零移相角运行几个开关周期等电容充到接近额定电压后再切入闭环。这个方法放在实际样机上也同样适用——我在实验里就是照抄这个软启动时序。5.3 三绕组变压器漏感折算方向如果你直接用Simscape的Three-Winding Transformer一定要注意漏感参数究竟标注在哪个绕组基准下。这个模块的漏感单位是百分比标幺值基准选择不同实际感值会差好几倍。我在第一次建模时按百分值1%设置端口1到端口2的漏感结果功率传输能力只有预期的一半后来才反应过来标幺基准和我实际算出来的感值对不上。更稳妥的替代方案就是前面说的分解建模法理想变压器各端口独立串联电感。这样每个端口的感值都以Henry为单位直接设即使以后要改参数逻辑也更清楚。强烈建议仿真新手用这种模块组合。5.4 电压匹配条件检查TAB运行时各端口电压折算到同一基准后的幅值越接近系统内的无功环流越小。我在开环调试时测过一个工况端口2电池电压跌到160V低压保护点但端口3是48V稳压输出按变比折算后端口2折算电压和端口3折算电压差异较大结果变压器绕组里的环流明显增大端口1输入电流峰值比正常工况高了近一倍。这说明仿真调试的第一步不是调控制器而是先做电压匹配检查。用开环仿真测一下各端口在额定工况下的折算电压如果不匹配就调整变压器变比或者适当增加相应端口的串联电感来吸收电压差。控制环只在电压匹配合理的基础上才有意义。5.5 仿真速度的取舍20kHz开关频率、50μs开关周期如果仿真时长设1秒步长上限至少要取1μs量级那就是100万步——笔记本电脑跑一次要几分钟。我的实际做法是分段仿真控制参数整定用平均模型步长1e-5秒跑0.2秒就够开关级模型只仿真几个关键工况片段每个工况0.1~0.3秒主要用来截取波形和确认纹波特性。开关级模型里把Powergui的求解器设为离散模式采样时间取1e-6秒在精度和速度之间取平衡。注意仿真结果里如果出现电流波形糊成一团先别急着怀疑拓扑先看Powergui求解器是不是设成了连续模式并且仿真步长过大。连续模式下的变步长求解器在开关切换点会反复逼近能慢到让你怀疑人生。6. 仿真结果怎么判读确认模型没做错的方法6.1 第一关功率平衡校验TAB模型做出来后第一个要校验的就是功率平衡端口1输入功率应当等于端口2充电功率加上端口3辅助功率再加上系统损耗。我在模型里用积分器分别计算三个端口的瞬时功率平均值然后看P1 P2 P3是否接近0。如果三个端口的功率和明显不为零那说明变压器绕组连接方向或功率采样符号出错了。这个校验看似基础但它能快速定位一大类接线错误。我第一次搭模型时端口3的辅助功率符号反了功率校验显示P1 P2 P3等于两倍端口3功率一下就知道问题出在哪路。6.2 第二关充电工况波形判读稳态充电工况下需要观察三个关键波形电池端口电流恒流阶段应当稳定在10A附近纹波峰峰值不超过额定值的10%恒压阶段电流应缓慢下降不能出现振荡。三个H桥输出的方波电压桥1和桥2之间的相对相位差应当稳定在PI控制器输出值附近桥2与桥1的方波前沿对齐关系一目了然。端口3电压稳定在48V±1%以内且切换瞬间超调小于5%。有一次我看到电池电流波形有周期性的小尖峰检查后发现是移相角在PI输出值和限幅值之间反复碰撞导致的次谐波振荡把限幅角从60度改回45度后波形立刻干净了。这类问题只有在波形层面才能暴露控制环路的Bode图分析往往看不到。6.3 第三关动态工况验证充电系统不能只看稳态。我设置了三个动态工况工况1CC阶段启动观察软启动过程中的电流冲击和电压过冲工况2CC模式向CV模式切换观察切换点是否有电流振荡工况3端口3负载从0突加到500W观察辅助电压恢复时间和电池充电电流受影响程度。TAB的端口耦合特性在工况3中最明显端口3加负载瞬间电池端口充电电流会出现一个短暂的小扰动这正是耦合导致的电压环补偿后应该在50ms内回到充电设定值。如果你的仿真里这个扰动完全不存在反而要怀疑是不是耦合建模出错了——真正的TAB不可能完全不解耦。6.4 从仿真到实验前的差距清单仿真跑通之后我还会做一份仿真与硬件差异清单提醒自己实验阶段可能出现的偏差开关管死区时间会造成实际移相角偏小变压器实际漏感容差会导致功率传输能力和仿真值有偏差电池的实际内阻和极化特性与模型不完全一致还有线束寄生电感带来的额外电压尖峰。这些差异大多可以靠控制环的裕量吸收但如果你在仿真阶段就把漏感、电容等参数贴着边界取值实验阶段就会非常被动。最后再说两句我的体会整套TAB仿真调下来最深刻的感受是这个拓扑真正的难点不是拓扑本身而是三端口天然耦合这个特性在整个开发流程里无处不在。建模时要考虑耦合对功率平衡的影响控制设计时要靠两个环一个自然平衡端口的策略避开耦合对抗波形调试时又要靠端口间扰动关系来反推建模是否正确。这和做DAB很不一样——DAB调好一个闭环就基本完事TAB始终要有三端口是一体的这个全局视角。如果后续要做类似方向我会建议在现有模型上继续扩展两步一是把端口1换成光伏输入或电网整流后的不稳定直流母线研究功率波动时电池端口的响应二是把移相控制从单移相升级为双移相或三角波调制对比不同调制策略下的回流功率和ZVS范围。Simulink这套模型已经把这些扩展的接口都留好了改起来不会伤筋动骨后面哪个方向有进展我再单独写一篇记录。