首页 / 资讯中心 / 文章详情

DAB变换器仿真建模全解析:从拓扑原理到Simulink闭环控制

DAB变换器仿真建模全解析:从拓扑原理到Simulink闭环控制 ★ FEATURED ARTICLE
做DAB仿真这么久我最大的感受是它的拓扑结构不难懂真正难的是把Simulink里的每个模块参数、每个控制环节都搭对让波形和数据都对得上。网上关于双有源全桥DAB变换器的资料其实不少但要么只讲原理不讲建模要么只给模型不解释参数怎么来新手照着搭一遍波形不对也不知道问题出在哪。这篇文章我把自己从拓扑拆解、参数计算、Simulink建模到电压电流闭环控制的完整过程梳理了一遍踩过的坑、试错的经验、调参的心得都会写出来希望能给正在做DAB仿真或者准备做高频隔离DC-DC项目的朋友一些参考。1. DAB变换器的工作原理与仿真思路1.1 为什么DAB成为高频隔离DC-DC的主流选择在研究DAB之前我在各种隔离型DC-DC拓扑里纠结了很久。反激适合小功率LLC谐振变换器在宽电压范围和高功率密度上表现优秀但这两者都属于单向变换器能量只能从原边流向副边。而DAB双有源全桥不一样它的原副边各有一个全桥电路中间用高频变压器耦合天然支持能量的双向流动。这个特性在电动汽车双向充电机、电池储能系统、直流微电网这些需要能量来回收放的场景里是刚需。除了双向性DAB还有两个优势非常突出。一个是软开关能力通过合理设计移相控制和电感参数开关管可以在零电压条件下开通ZVS大幅降低开关损耗这也是它能做高频化的基础。另一个是模块化程度高两个结构完全对称的全桥加上一个变压器和一个电感控制变量只有一个移相角数学模型清晰动态响应快。我当时选DAB做仿真还有一个务实的考虑它的控制自由度虽然相对简单单移相控制下只有一个变量但很适合练手闭环控制。从单移相到双移相再到三重移相控制策略层层递进每一步的仿真验证都可以逐步叠加变量不会一上来就被多变量耦合搞晕。1.2 高频变压器隔离的逻辑与能量传输的本质DAB的工作原理用一句话概括就是两个全桥把直流电压斩波成高频方波施加在变压器两侧通过调节两个方波之间的相位差来控制功率的大小和方向。我最初看DAB的功率传输公式总觉得抽象后来换了个类比才彻底想明白想象两个人在打羽毛球一个人抛球的节奏定了另一个人接球和回球的节奏错开不同的时间差球在两者之间的能量传递就不同如果两个人节奏完全相反球就飞不出去。DAB里原边H桥和副边H桥产生的方波就是这两个人它们之间的相位差移相角决定了高频变压器两侧电压的相位关系相位差越大在电感上形成的电压差持续时间越长传输的功率也就越大。功率传输的核心表达式是P (n × V₁ × V₂ × D × (1 - D)) / (2 × f_s × L)其中n是变压器变比V₁和V₂是两侧直流电压D是移相比移相角占半个开关周期的比例f_s是开关频率L是串联电感。这个公式我每次建模前都会重新手推一遍因为它决定了所有参数的设计逻辑什么电压等级、什么功率等级、需要多大的电感都从这里面来。1.3 仿真模型的整体架构规划搭建Simulink模型之前我习惯先在纸上画一遍系统的信号流而不是直接打开MATLAB盲搭。DAB的仿真模型主要分两大部分功率主电路和控制电路。功率主电路包括直流源或电池模型、原边H桥4个开关管、高频变压器、串联电感可以集成在变压器漏感里、副边H桥、输出滤波电容和负载。控制电路则包括电压/电流采样模块、PI控制器、移相角生成逻辑、PWM脉冲发生器和死区时间设置。这里有一个关键的设计决策——变压器的漏感怎么处理。实际DAB中串联电感往往由变压器的漏感承担一部分或全部仿真中我建议在变压器模型旁边单独加一个外置电感元件这样方便单独修改电感值观察它对功率传输和ZVS范围的影响。把电感藏在变压器内部参数里后续调试时反而看不清变量。从Simulink库的选择来说我习惯用Simscape Electrical库以前叫SimPowerSystems来搭功率电路用普通Simulink库搭控制逻辑。两者的接口通过电流电压测量模块和受控电压源/开关信号来衔接。这个组合比纯模块化框图更贴近物理电路行为也比完全用元件级模型计算更快。2. 功率电路搭建与关键参数计算2.1 开关管的选型与模型参数设定H桥里开关管的建模是很多新手容易糊弄过去的地方。Simulink里的开关管模型有三种选择理想开关、带导通电阻的开关、以及带完整开关动态特性的器件级模型比如MOSFET或IGBT的详细模型。我做电压电流闭环控制的时候用的是带导通电阻和线性开关特性的MOSFET简化模型。原因很简单闭环控制参数整定阶段关注的是系统级的动态响应如果用器件级模型每个开关的寄生电容、反向恢复特性都会拖慢仿真速度而且控制环和开关暂态的耦合会让PI参数调起来一头雾水。开关管参数设置有几个关键项导通电阻Ron根据实际器件的导通电阻设置我一般取10mΩ左右太大开关损耗失真太小仿真可能出现数值刚性二极管导通压降和正向电阻反向并联的二极管的参数直接影响死区时间内的续流行为如果设置不合理软开关效果在波形上根本看不出来缓冲电路SnubberSimulink里开关模型默认有这个参数务必关注它的数值。缓冲电阻电容会影响电压尖峰的仿真真实性纯理想模型建议把缓冲电路设置为none否则会在某些工况下拖慢仿真甚至导致ode求解失败。2.2 高频变压器与串联电感的参数推导变压器模型参数是整个仿真中我花时间最多的部分因为变压器两侧的电压关系、匝比、以及漏感串联电感直接决定了系统能够传输的功率范围和输出电压能达到的水平。以我参考的一个某车载充电机项目指标为例输入侧电压V₁400V输出侧目标电压V₂300V最大传输功率P_max10kW开关频率f_s100kHz匝比nN₁/N₂1:1为了方便分析先取1:1后续再优化。根据功率公式匝比n1时最大功率传输发生在D0.5处P_max (n × V₁ × V₂) / (8 × f_s × L)代入数值10000 (1 × 400 × 300) / (8 × 100000 × L) L (1 × 400 × 300) / (8 × 100000 × 10000) 120000 / 8000000000 15µH也就是说串联电感取15µH左右可以达到10kW的最大功率能力。实际中我会留一点裕量取12~15µH之间因为电感和匝比相互还有配合关系。如果想要更宽的输出电压范围往往还要把匝比设计成V₁/V₂附近的值这属于系统级优化在仿真初期不必急着做先把单移相跑通再说。变压器本身在Simulink中的设置重点在磁化电感和绕组电阻。很多教程里直接把变压器模型用理想变压器替代这样做仿真跑得快但对控制策略验证有一点影响——空载或轻载时磁化电流的存在会让波形产生额外的畸变低压侧电压的相位滞后也会更明显。我在前几次仿真中吃过这个亏后来养成了习惯即使在早期阶段也要给变压器设置一个合理的磁化电感通常取串联电感的20倍以上绕组电阻按照实际铜损功率设置。2.3 直流源与负载模型的处理细节直流源的选择要看仿真验证的目标。我验证开环特性时喜欢用理想直流电压源电压恒定便于对比理论计算的功率传输曲线。但一旦进入闭环控制验证尤其是观察负载突变时的动态响应理想电压源就不够了——实际系统中输入源往往有内阻、输出端是电池或母线电容这个阻抗特性会影响系统闭环的稳定性和动态品质。我的做法是输入侧用带内阻的直流电源内阻取值根据实际系统的短路特性推算输出侧用一个大电容并联电阻负载电容值参考实际系统的稳压要求来选。如果输出是电池负载则用受控电压源来模拟电池端电压随SOC变化的特性。这一步的仿真模型复杂度的提升并不大但对闭环控制验证的真实性提升很明显。电容值的选取遵循基本的纹波电压要求。以10kW、300V输出、100kHz开关频率为例如果要求输出电压纹波不超过1%即3V输出滤波电容C_out可以由电荷平衡关系估算C_out P / (2 × f_s × ΔV × V_out) 10000 / (2 × 100000 × 3 × 300) ≈ 55µF理论上55µF就够实际工程中还要考虑电容ESR的影响我仿真中取了100µF留出足够裕量。3. 移相控制逻辑与PWM驱动信号的生成3.1 单移相控制SPS的Simulink实现逻辑DAB的控制核心在PWM驱动波形的生成这是最容易绕晕的地方。很多新手以为移相控制就是给两个全桥各触发一次相位错开就行实际要处理的细节非常多。先明确一下各桥的开关时序。以原边H桥为例A桥臂上管S1和下管S2互补导通B桥臂上管S3和下管S4互补导通。对原边全桥S1和S4在半个周期内同时导通另外半个周期S2和S3同时导通这样在变压器原边端口产生一个交流方波电压。副边全桥的导通时序除了相位要错开D×T_s/2之外其余逻辑完全相同。我的实现方法是用一个周期为T_s的锯齿波发生器作为全局时钟参考通过Compare To Constant模块比较生成两路方波一路作为原边方波的基准另一路在参考信号上叠加一个移相比D对应的延迟再经过相同的比较生成副边方波。这种数字化的实现方式比直接在Simulink里用延迟模块更容易控制因为它不用额外计算延迟时间调D的数值就等于调移相比非常直观。所有开关管的PWM信号还需要经过死区时间处理。死区是为了防止同一桥臂上下管同时导通造成直通短路。仿真中很多人省略死区直接让上下管互补导通这在理想开关模型下不会有问题但如果你想让仿真更贴近实际——尤其是观察死区对ZVS的影响——建议加一个死区时间模块死区大小按照开关周期和开关管关断特性的常规经验设置一般在开关周期的1%~5%之间。3.2 死区时间与互补导通的处理技巧死区时间的加入可以用Simulink自带的Dead Zone模块也可以自己搭一个上升沿延时逻辑。我的经验是要保证仿真波形和实际系统的一致性死区不能随便加在PWM信号的每个沿上而应该只加在关断沿、保持开通沿不变。这是因为实际中开关管的开通速度快于关断速度死区设置的核心是让同一桥臂的一个管子先完全关断后另一个管子再开通避免瞬间穿通。这个细节在高速开关下尤为重要。100kHz的开关频率半个周期只有5µs如果死区设置到500ns占了周期时间的10%忽略它会导致DAB的功率传输公式计算值和仿真结果偏差到不可忽略的程度。我在调软开关波形时发现死区时间直接影响原副边方波电压的占空比和相位关系进而影响ZVS实现的范围。死区过大开关管可能退出ZVS状态导致开通损耗急剧上升。在Simulink中我习惯用Delay模块结合逻辑门来实现死区对互补的两路PWM一路直接使用原始信号另一路经过一个脉冲延时模块再取反。这样保证桥臂上下管之间存在明确的先断后开时间窗口。验证死区设置是否正确的方法很简单——把两个驱动信号画在同一个坐标轴里观察保证任何时刻两者不同时为高。3.3 PWM触发信号与H桥桥臂的连接对应这是我在早期仿真中反复出错的地方必须严肃提醒原边H桥和副边H桥的开关信号连接顺序千万别搞反。以原边H桥为例四个开关管的位置一般标记为S1、S2、S3、S4。很多初学DAB的朋友习惯性地把S1和S3放在同一个对角线上但实际上它们是同桥臂的上下管关系。我吃过一次亏波形怎么都对不上理论波形后来逐个开关管核对驱动信号才发现问题——S1和S2是同一桥臂的互补对输出接变压器原边一端S3和S4是另一桥臂的互补对接变压器原边另一端。如果S1和S4一组、S2和S3一组那就是把对角线开关当成同组了波形当然全乱。连接顺序确认无误后我会在Scope里同时观察四个开关管的驱动脉冲和变压器的端口电压波形确保时序逻辑符合预期再继续下一步的闭环控制设计。4. 电压电流双闭环控制的实现与PI参数整定4.1 从开环到闭环为什么要加电压电流反馈当开环仿真能够稳定运行变压器和开关管的波形都正常之后下一步才是闭环控制。DAB开环运行有一个很大的问题输出电压会随负载的变化而明显波动因为单移相控制下功率传输只由移相比D决定D固定时传输功率固定负载一变输出电压就会跟着变。所以要在仿真模型中加入电压闭环实时采样输出电压与目标电压比较得到误差值经过PI控制器后输出移相比D实现负载变化→电压偏差→自动调整D→输出稳定的自动调节过程。这就是常规的电压外环单闭环。而在直流变换器中实际应用中往往还需要电流闭环。比如给电池充电需要恒流充电电压环无法直接限制电流这时候就需要电流内环来快速控制电流大小又或者为了实现电流保护、防止过流损坏器件电流内环还能提供一个快速响应。电流环加电压环一起构成电压电流双闭环电流环在内侧响应快电压环在外侧保证输出电压稳定。我搭建的双闭环流程是这样的电压外环采样输出电压和参考值比较PI输出作为电流参考值电流内环采样电感电流或输出电流和电流参考值比较PI输出移相比DD经过限幅一般限制在0~0.5之间防止超出稳定范围后送到移相调制模块。4.2 PI参数整定的实用经验和初始化策略PI参数整定在Simulink仿真中常见的一个误区是直接套用工具箱的自动整定功能。我这里说句糙话自动整定出来的参数在文本上非常漂亮但在DAB这种带离散开关、强非线性的系统里往往不能直接用跑出来的波形可能出现极限环振荡或者低温漂下的静差。手动整定的思路虽然原始但可控性强比较容易和理论推导互相印证。我的整定方法是分步法先把积分系数Ki设为零只保留比例系数Kp。从一个较小值开始比如0.001逐步增大观察输出电压的响应速度。当输出开始出现等幅振荡记下此时Kp作为临界值取它的40%~60%作为工作Kp然后把Kp固定为上述值逐步增大Ki观察静态误差的消除速度。当输出电压在负载突变后能在大约10个开关周期内恢复稳态、且超调在可接受范围内这个Ki值就基本合适最后做一组负载阶跃实验验证闭环动态性能。如果响应太慢增大Kp如果超调太大适当减小Kp或者增加限制滤波。这里特别提醒一点移相比D是有限幅的而PI控制器在输出达到限幅值时会出现积分饱和现象。D被限幅时误差持续累积积分项变得很大一旦负载恢复系统需要很长时间才能从饱和状态解包这会造成明显的超调甚至振荡。解决手段是在PI控制器后面加一个跟踪抗饱和anti-windup机制当输出饱和时冻结积分输入避免积分继续累积。Simulink的PID Controller模块本身就提供抗饱和选项但很多人默认不打开在DAB这种控制对象强非线性的环境中建议开启。4.3 关键仿真波形解读与验证方法闭环调好后我习惯在Scope里同时观察这几个关键波形来判断系统是否真正正常工作输出电压波形稳态时波动应控制在设计要求范围内动态时不应出现明显的振铃原边和副边H桥输出的方波电压观察两者的相位差是否和移相比D一致幅值是否符合变压器变比关系电感电流波形这是判断软开关和能量流动状态的最重要波形。当电感电流在开关切换时刻与开关管结电容形成谐振、实现ZVS时电流波形往往会在切换点附近呈现出特定的极性翻转特征。如果电流波形在切换时刻的极性和方向不对说明DAB没有工作在ZVS状态动态损耗会偏大变压器原副边电压电流相位关系确认电压和电流之间的相位关系是否符合功率传输方向如果电流滞后电压超过一定角度说明无功功率和回流功率偏大系统效率会下降。我调完参数后都会做一次负载突变测试在t0.1s时把负载电阻从满载变成半载观察输出电压的恢复过程和电流的动态响应。这个测试直接反映了闭环系统的带宽和阻尼状态比看稳态波形有用得多。5. 仿真中常见的坑与排查方法总结5.1 数值求解器设置不当导致的仿真发散Simulink模型搭好之后点击运行直接报错是新手最常遇到的打击之一。我遇到的最多的原因是求解器设置不当。DAB是典型的强非线性系统开关管在导通和关断之间快速切换变压器电感的电流变化速率极高。默认的变步长求解器如ode45在遇到这种快速开关时会频繁缩小步长可能导致仿真极慢甚至出现不收敛。我的处理方式是把仿真类型设为变步长但求解器选择ode23tb或者ode15s这类适用于刚性系统stiff system的求解器同时把最大步长设置为开关周期的1/20左右即1/(20×f_s)。这样既可以保证足够的仿真精度又不会因为步长过于精细导致仿真时间不可接受。这里有个细节最小步长不要设置得过于保守否则Simulink在开关切换瞬间可能会因为步长问题报Zero crossing detected之类的警告。如果遇到这类警告可以在Simulation - Parameters - Solver设置中关闭Zero Crossing Detection选项或者在开关模型里选择平滑过渡极短时间的开关特性牺牲一点波形尖锐度来换取稳定性实测下来是一个很实用的处理手段。5.2 电压源与变压器连接错误导致的直流短路这个问题我在仿真早期犯过很多次。DAB的变压器原边和副边都是通过H桥连接直流电源如果桥臂的调制时序错误同一桥臂上下管同时导通等效于电源直接短路仿真电流瞬间爆表系统直接报错。检查这个问题的第一步是观察原副边H桥的对角开关驱动波形是否互补。另一个快速验证方法把移相比D设置为0.5此时两侧桥臂输出的方波相位差最大180度功率传输也达到理论最大值。如果这个状态下的变压器电压和电流波形与理论公式计算结果基本吻合说明功率电路连接基本正确。还有一种隐性连接错误变压器的同名端方向搞反了导致副边电压相位反相功率传输极性相反。这种情况下波形看起来是对的但功率流方向不对。我排查时会用变压器两端的电压极性去和理论相位比较如果同名端接反副边电压波形会反相输出侧电压就是负的升压非常容易忽略。5.3 稳态波形正确但动态响应异常的处理遇到过一种非常头疼的情况稳态波形完全正确电压纹波、电感电流形态都和理论对得上但一做负载突变仿真输出电压就出现长时间振荡甚至发散。我排查后发现问题出在控制环的采样位置不对。我的电流内环采样的位置从输出侧电感电流取但DAB的电感电流包含大量高频纹波和开关纹波直接把这个信号作为PI控制器的反馈输入会产生高频噪声被放大器增益放大导致控制量移相比D发生高频抖动系统表现出类似谐振的不稳定行为。解决办法是在电流反馈通道中增加一个低通滤波器。但这个滤波器会引入相位延迟如果截止频率设置过低电流环的带宽会变窄动态响应变慢。我的建议是低通滤波器的截止频率设置在开关频率的1/10到1/5之间同时尽量让滤波器靠近采样点这样能滤除高频噪声又不过度损伤动态性能。这里有一个权衡电流环的响应速度越快系统动态越快但为了稳住电流采样噪声又必须让电流环响应慢于开关频率。断开开关频率噪声与控制环路的耦合是我在调动态响应时最重要的一条经验。5.4 常见问题和解决速查表问题现象可能原因解决方案仿真直接失败/发散求解器不适合刚性系统、步长过大改用ode23tb/ode15s最大步长设为开关周期的1/20变压器电压波形异常、方波无法建立H桥驱动信号时序错误或桥臂开关信号接反逐个核对开关信号连接关系确认S1/S2为同桥臂互补输出电压反向或功率流方向不对变压器同名端接反检查变压器绕组的极性方向必要时参考电感电流极性和电压相位关系确认稳态波形正确但负载突变时发散/振荡电流内环采样包含开关纹波、反馈滤波不足增加合适的低通滤波截止频率设在开关频率的1/10~1/5输出电压误差始终降不下来PI的积分作用不足或偏移导致静差增加Ki同时检查PI是否因为限幅进入积分饱和状态仿真速度极慢开关模型过于复杂、缓冲电路RC值过小简化开关模型为带导通电阻的理想开关注意缓冲电路设置软开关ZVS波形观察不到死区时间设置不当、电感参数不合适调整死区时间开关周期的1%~5%、检查串联电感值是否匹配功率需求移相比D达到限幅值后系统失控积分饱和未处理开启PI模块的抗饱和功能或设计跟踪抗饱和回路这个表格基本覆盖了我从开环调试到闭环验证阶段遇到的典型问题。最后一列的处理方案都是经过我反复验证有效的做法可以直接拿来用。6. 扩展方向多移相控制与效率优化6.1 从单移相到双移相/三重移相单移相控制SPS最大的问题是回流功率比较大在一个开关周期的某些时间段内电感电流和变压器电压的乘积为负能量从副边向原边回流这部分功率不对外做功白白增加了电流有效值和器件损耗。为了解决这个问题学者们提出了双移相控制DPS和三重移相控制TPS。DPS在单移相的基础上两个H桥内部还各自增加了桥臂间的移相相当于在一个开关周期内产生了多个电压电平让电感电流波形更接近正弦化。TPS更自由三个独立的移相变量可以同时优化多个目标比如ZVS范围最大化、有效值电流最小化。在Simulink中实现DPS或TPS并不难只需要在原来生成PWM信号的基础上增加额外的移相控制变量。我建议在完成SPS闭环调试之后再做这个扩展因为多移相控制的PI参数整定难度更大如果连SPS的稳定性问题都没处理好上来直接做DPS会非常痛苦。6.2 效率估算与软开关范围验证仿真模型搭建完成、闭环动态调好之后还有个同样重要的事——效率分析。DAB的软开关特性是它最值钱的资本之一但没有验证过ZVS范围这个优势只是纸面上的。效率验证的方法很简单在模型中添加功率测量模块Simscape Electrical中的Multimeter或仪用块分别测量输入功率和输出功率对比损耗。仿真中损耗主要来自三个地方开关管的导通及开关损耗MOSFET简化模型中的Ron、变压器的铜损绕组电阻和磁化损耗、串联电感上的电阻损耗。通过把移相比D从0.02逐步调整到0.48记录每个D值下的输入输出功率差得到效率随负载变化的曲线。如果曲线在某个区间内效率明显下降多半意味着该工作点已经脱离了ZVS范围或者在电感电流进入过小的区域开关管无法完成零电压开通。这时候就需要回头调整串联电感值或者变换器匝比让效率最高点落在系统最常用的工作区间。这个通过仿真曲线逆向优化参数的流程是我在DAB仿真中收获最大的一环。6.3 后续值得深入的方向DAB这个方向做深了后续可以继续探索的内容非常多。比如引入暂态直接控制TDC通过直接计算每一开关周期的移相角来获得更快的动态响应或者研究如何在高频变压器设计中把漏感和外置电感集成设计成一体在提升功率密度的同时保证ZVS范围又或者把DAB模型和电池模型联合起来做整个储能系统的充放电策略仿真观察在SOC变化时变换器的电压电流行为。每一步深入都能在既有的模型基础上扩展Simulink的模块化特性在这时候就是最大的优势。写在最后我实际跑DAB仿真踩过的坑比上面写出来的还要多好几轮。最大的体会是仿真不是目的理解系统行为才是。很多人沉迷于把模型调得又快又稳却忽略了去追问为什么这个参数让波形变了为什么这个工作点效率掉了而这恰恰是仿真的核心价值。DAB变换器的仿真建模绝对不是说照着文档一步步点一遍就能学会的参数的相互耦合、控制逻辑的时序细节、数值求解的工程处理都需要大量调试时长的积累。但反过来一旦把SPS跑通、闭环调稳、理解了每个模块存在的意义就会发现后续做任何变体拓扑的仿真都可以很快上手。如果你正在搭自己的DAB模型卡在某个波形问题上过不去建议先用最原始的方法逐个模块验证先确认开环下的方波和理论一致再确认移相控制逻辑没有接反最后才进入闭环调试。把每一步的基础打牢后面的路会顺得多。仿真调试本身就是一个反复假设-验证-修正的过程别怕波形乱乱反而说明你在真正触及系统的深层行为。
阅读完成 · 觉得有帮助?
咨询建站