简介:基于Saber仿真的改进型半桥LLC变换器闭环电路设计资源,针对LLC变换器小信号建模困难、闭环补偿电路设计复杂及过流保护问题,提出利用Saber时域仿真结合TDSA模块获取开关频率到输出电压的传递函数,并采用双零点双极点补偿器完成闭环电路设计。内容涵盖改进型拓扑的原理(谐振电容Cr拆分为Cr1、Cr2并接入钳位二极管实现过流保护)、工作区域划分、环路稳定性分析、补偿网络参数计算,以及一款400V输入、48V输出、1200W半桥LLC变换器的完整仿真验证过程,包括Lr=10μH、Lm=58μH、Cr1=Cr2=110nF等关键参数与仿真波形分析;文中还给出了补偿器的Z域变换方程与差分格式,方便在DSP数字控制系统中实现。资源以PDF格式提供,共1个文件,压缩包约303KB,适合电力电子方向的工程师、研究生以及从事开关电源设计的读者参考。目前已有598人学习,该PDF可直接用于理解Saber在LLC变换器闭环设计中的具体实施方法,对实际工程中的环路调试和过流保护设计具有较高参考价值。
1. 半桥LLC闭环设计的难点:小信号模型拿不到,Saber时域仿真给出了另一条路
LLC谐振变换器做闭环,最难的不是画主功率拓扑,而是拿不到从开关频率到输出电压的准确小信号传递函数。它是个强非线性系统,工作模态随负载和频率一直在变,教科书上的状态空间平均法在PFM模式下基本失效,扩展描述函数法建模又需要很强的数学功底和边界条件假设。很多工程师做完开环样机后,闭环补偿电路只能靠炸管子攒经验,或者在MATLAB里反复试凑,试一次改一次参数,效率很低。
这篇笔记拆的是一个很实用的思路:利用Saber仿真平台里的TDSA频率响应分析仪模块,直接在时域电路上注入扫频小信号,测出控制量(开关频率)到输出电压的波特图,把黑匣子打开一个口子,然后基于实测幅频相频曲线设计双零点双极点补偿器。配套的1200W半桥LLC实例给出了完整参数,谐振电容拆分并接钳位二极管的改进拓扑也顺带解决了过流保护问题。适合正在做LLC样机调试、被补偿网络折磨的电源工程师,以及想验证LLC控制环路设计方法的研究者。
2. 改进型半桥LLC拓扑:谐振电容Cr1/Cr2拆分与钳位二极管的自限流原理
2.1 为什么要把谐振电容拆成两个:输入电流纹波和EMI的双重改善
传统半桥LLC的谐振电容是单一电容Cr,串在谐振腔里。改进型的改动看起来很小——把Cr拆成Cr1和Cr2两个电容,并在每个电容上反向并联一只钳位二极管。这个改动不起眼,但对电路的电气行为影响很大。
先看电流路径。谐振电容在正常工作时分担谐振电流的交流分量,拆成两份之后,输入电流纹波被分散,谐振电流波形更接近正弦。这点对EMI设计有直接好处,差模噪声的频谱能量会下降,滤波器设计可以略微放宽。更关键的是钳位二极管:当负载过重或启动瞬间,谐振电容两端电压会被二极管钳制在二极管导通压降附近,电容电压不能继续充高,谐振电流自然被限制住。这个自限流机制不依赖额外的控制电路,响应速度比采样-比较-关断的保护链路快得多。
实测开环仿真里,满载启动时谐振电流峰值被压在合理范围内,没有出现尖峰。这就是改进拓扑在保护方面的核心价值——把过流保护从控制层下沉到功率层,让保护动作先于控制环路反应过来。
2.2 基波分析法下的三区划分:为什么必须让电路工作在Ⅱ区
用FHA(基波分析法)看半桥LLC,直流增益曲线随开关频率变化呈单调趋势,按负载和频率组合可以划分三个工作区。Ⅰ区是感性区,原边开关管能实现ZVS,但副边整流二极管电流连续,不能自然过零,属于硬关断;Ⅱ区同为感性区,但副边整流二极管电流断续、可以自然过零,ZVS和ZCS同时实现;Ⅲ区是容性区,电流超前电压,开关管失去ZVS条件。
设计闭环时,工作点必须落在Ⅱ区,这是整个控制设计的先决条件。稳态设计时把额定满载的开关频率定在谐振频率附近偏上限,确保轻载到满载范围内都不越过容性边界。改进型LLC由于谐振电容拆分,等效谐振参数会略有偏移,需要重新核算增益曲线边界,不能直接套标准半桥的公式。
2.3 实例电路的关键参数清单
最终仿真模型用的参数如下表所示,这个表是后续所有仿真和补偿设计的出发点:
| 参数 | 数值 | 说明 |
|---|---|---|
| 额定输入电压 | 400V | DC |
| 额定输出电压 | 48V | DC |
| 额定功率 | 1200W | 输出25A |
| 额定开关频率 | 100kHz | 工作于Ⅱ区 |
| 谐振电感Lr | 10μH | 与Cr谐振 |
| 励磁电感Lm | 58μH | 决定增益曲线形状 |
| 谐振电容Cr1/Cr2 | 110nF/110nF | 拆分后等效约55nF |
| 输出滤波电容Co | 4000μF | ESR影响零点 |
| 变压器匝比 | 2.5:1 | 原边:副边 |
| 控制方式 | PFM | VCO模块实现压控变频 |
注意等效谐振电容值:两个110nF串联,等效电容约55nF,这个值才是计算谐振频率用的。Lr=10μH、Creff=55nF对应的谐振频率约214kHz,额定开关频率100kHz低于谐振频率,落在Ⅱ区。动手做模型时不要用单个110nF去套标准LLC设计公式,否则工作点直接偏到Ⅲ区。
3. Saber TDSA小信号测量法:在时域电路里硬测频响曲线
3.1 TDSA模块的接入方式:output注入扫频信号,input取反馈点
Saber里做小信号分析的标准流程是:先搭建完整的开环时域仿真电路,然后在控制到输出的通道上接入TDSA模块。TDSA就像一个虚拟的网络分析仪,output端子在控制节点注入小幅度正弦扫频信号,input端子接到被测量对象的输出端。模块内部逐频点比较两端信号的幅值比和相位差,扫描结束后直接给出波特图。
对LLC电路而言,TDSA的output端子不能直接接开关管的栅极,因为栅极信号是PWM脉冲,不是模拟电压。正确做法是把output信号叠加到VCO模块的控制电压输入端。VCO把电压映射为频率,控制电压上的小信号扰动就转化成了开关频率的微小变化,频率变化再通过谐振腔和变压器传递到输出端。这样得到的从控制电压到输出电压的响应,本质上就是频率到输出的传递函数,串联了VCO的电压-频率增益系数。
3.2 VCO压控振荡器设置:扫频信号怎么变成变频扰动
VCO模块的输入输出关系可以近似为:f_out = f_center + kvco × V_ctrl。f_center是中心频率,对应开环工作点的开关频率;kvco是压控灵敏度,单位是Hz/V。设置要点:kvco不能太大,否则扫频扰动信号会造成明显的开关频率偏移,破坏小信号假设;也不能太小,否则输出响应幅值过低,TDSA测出的频响曲线信噪比差。
经验做法是将kvco设为1000Hz/V量级,TDSA注入的扫频正弦幅值设为0.1V量级,对应的频率扰动只有100Hz左右,相对100kHz的载波频率是小信号状态,符合线性化条件。仿真瞬态步长要足够小,建议设置最大步长不高于载波周期的1/50,即0.2μs,否则高频段的相位测量会失真很大。
3.3 开环波特图读数:相位起点100°带来的一系列补偿约束
TDSA扫描完成后,得到的是从开关频率到输出电压的传递函数P(s)波特图。开环仿真结果显示:幅频特性低频段斜率约为-10dB/dec,中频段为-40dB/dec,高频段出现较明显的相位振荡;相频曲线起点在100°附近,较宽频率范围内相位超前。
相位起点100°这件事要从控制方向理解:开关频率增大,输出电压反而减小,所以控制量到输出量的相位天然有约180°的反向偏移,叠加谐振网络的相位响应后,起始点落在100°附近。这直接导致开环系统相位裕度过大,如果不做补偿,系统会对高频噪声特别敏感。低频段增益偏小会影响稳态精度,需要补偿器提供低频增益提升;高频段的相位振荡则要求补偿器在高频处快速衰减增益,压制噪声。
3.4 TDSA测量时的仿真终止条件与收敛问题
TDSA扫描过程中,每个频点都需要等待电路进入稳态后才能采样。Saber里对应的做法是设置足够的稳定时间,或者使用TDSA模块自带的“等待稳态”功能选项。常见问题:如果仿真总时长不够,低频点(如10Hz~100Hz)根本来不及建立稳态,测出来的低频增益会偏差很大;如果模型里输出滤波电容Co=4000μF起步,时间常数很大,必须把低频点仿真时间拉长。
建议低频起始频率不要低于10Hz,否则单点扫描时间可能达到数百毫秒仿真时长,计算量急剧膨胀。实际项目中可以把TDSA的扫频范围设为10Hz到1MHz,频点密度选择每十倍频程20个点左右,这样既保证曲线分辨率,又不会让仿真跑十几个小时。
4. 双零点双极点补偿器设计:从波特图到差分方程
4.1 为什么选双零点双极点而不是Type-Ⅱ或Type-Ⅲ
真实系统的开环传递函数包含输出电容ESR形成的零点、谐振相关的低频极点、双重极点,三区切换时极点位置还会移动。Type-Ⅱ补偿器只有一个零点两个极点(含一个积分极点),应对这种多点分布的高阶系统力不从心;Type-Ⅲ补偿器在特定频率段有优势,但参数计算复杂,且高频增益衰减不够陡,对LLC高频段相位振荡的压制不足。
双零点双极点补偿器的优势在于:两个零点可以抵消低频主极点和ESR零点的影响,两个极点可以配合压低中高频增益,积分环节保证稳态精度,高频快速滚降抑制开关噪声。同时它的离散化形式非常干净,适合DSP实现。这个补偿网络的结构是典型的“滞后-超前”组合,滞后部分负责低频增益,超前部分负责相位裕度。
4.2 传递函数与零极点位置的工程设定
补偿器传递函数为:
H(s) = k × (1 + s/ωz1)(1 + s/ωz2) / [s × (1 + s/ωp1)(1 + s/ωp2)]
工程设计时,零极点位置按以下逻辑确定:
| 参数 | 设定规则 | 本例目标值 |
|---|---|---|
| ωz1 | 抵消输出电容ESR零点,放在ESR零点频率附近 | 约2kHz |
| ωz2 | 抵消低频极点,放在低频极点附近略靠前 | 约300Hz |
| ωp1 | 压低中频增益,放在穿越频率附近 | 约20kHz |
| ωp2 | 高频滚降,压制开关噪声 | 约80kHz |
| k | 调节增益曲线,使穿越频率达到目标值 | 初设后微调 |
补偿后的目标:穿越频率在3kHz到5kHz之间,相位裕度45°到75°。由于原系统相位起点在100°附近,相位裕度天然偏大,补偿器的主要任务不是补相位而是降增益、提低频增益、压制高频振荡。
4.3 从模拟补偿器到DSP差分方程的实现代码
设计完成后,把H(s)做双线性变换离散化,可以得到标准二阶IIR滤波器形式:
// 双零点双极点补偿器差分方程实现,采样率fs=40kHz // u[k] = b0*e[k] + b1*e[k-1] + b2*e[k-2] - a1*u[k-1] - a2*u[k-2] // 参数来自双线性变换后的离散化结果 // 电压误差e[k] = Vref - Vout_adc float b0 = 0.85f; float b1 = -1.40f; float b2 = 0.62f; float a1 = -1.20f; float a2 = 0.50f; float u_prev1 = 0.0f; float u_prev2 = 0.0f; float e_prev1 = 0.0f; float e_prev2 = 0.0f; float compensator_step(float error) { float output = b0 * error + b1 * e_prev1 + b2 * e_prev2 - a1 * u_prev1 - a2 * u_prev2; // 更新历史值 e_prev2 = e_prev1; e_prev1 = error; u_prev2 = u_prev1; u_prev1 = output; return output; }这段代码对应的是离散化后的IIR滤波器,采样率需要足够高,保证补偿器的相位特性在穿越频率附近不因为离散化而明显恶化。参数b0、b1、b2、a1、a2的具体数值由采样频率和零极点位置决定,不同采样率下的系数不能直接套用。代码里的系数只是示例,实际使用时需要重新根据设计好的H(s)做双线性变换,再代入系数。每次计算输出后,补偿值需要做限幅处理,防止积分饱和导致频率指令超出VCO线性范围。
4.4 补偿后的闭环验证:满载1200W与半载切换的动态波形
补偿器设计完成后,把差分方程接入仿真环路:输出电压采样 → 与参考值比较得到误差 → 补偿器计算控制量 → 控制量送入VCO → VCO输出对应频率的驱动信号。满载1200W闭环仿真时,输出电压波形收敛后稳定在48V附近;从满载切换到半载(0.025s时刻),输出电压出现短暂跌落然后恢复,动态响应过程没有发散振荡,说明了补偿器参数设计是可行的。
对比开环仿真波形:开环满载启动时输出电压超调量接近20%,闭环后超调明显减小。这点说明了补偿器对LLC的动态性能改善起着关键作用。
5. 磁集成与过流保护的避坑指南:从Saber仿真到实际工程的接地气教训
5.1 谐振电容拆分后等效参数变化导致的工作点偏移
现象:按原半桥LLC设计公式计算的谐振频率,套到改进型拓扑上,仿真发现增益曲线整体偏移,满载工作点跑到了容性区,原边开关管硬开关发热严重。
原因:这属于拆分谐振电容带来的等效谐振参数变化,传统半桥LLC的谐振网络等效电容是简化后的单一容量,拆分电容后等效电容值计算错误,谐振频率偏移,工作点随之偏移。
解决:拆分电容Cr1、Cr2后,等效电容按串联公式计算:Ceq = Cr1×Cr2/(Cr1+Cr2)。使用本实例参数即110nF×110nF/220nF=55nF。重新核算谐振频率和增益曲线,确认额定工作点仍然落在Ⅱ区后,再开始做闭环设计。如果不确认这一点,后续TDSA测出来的波特图全是错的,补偿器设计就是空中楼阁。
5.2 相频曲线起始100°导致相位裕度误判
现象:看完开环波特图后,发现相位裕度远超75°,直接判定系统很稳定,后面加补偿器时没有认真处理相位。
原因:这是对LLC控制方向的理解错误。变换器频率增大输出电压减小,控制量到输出有固有反向增益,相位起点在100°附近是正常现象,并不代表系统稳定性好。真正的隐患在高频段相位振荡和低频增益不足。
解决:正确理解相位起点意义后,把关注重点放在低频增益提升和高频衰减上。补偿器设计以幅频特性为主要调整对象,相位裕度只要落在45°到75°区间即可。不要为了追求标准“教科书形状”的波特图而强行改变相位特性,那反而会把系统搞得不稳定。
5.3 TDSA低频扫描不收敛导致低频增益读数错误
现象:开环波特图低频段(低于100Hz)的幅值曲线毛刺多,读数明显偏低,导致补偿器低频增益设计不准确。
原因:LLC变换器输出滤波电容Co=4000μF,与负载电阻构成的时间常数很大,低频扫频信号需要很长时间才能建立稳态。TDSA扫描每个频点时如果没有等待足够长的时间,采到的幅值就是非稳态的。
解决:把TDSA仿真参数里的“每个频点稳定时间”设为至少100ms以上。如果仿真速度太慢,可以提高最低扫频频率到20Hz,并且降低低频段的频点密度,换取可接受的仿真时间和精度。
5.4 离散化系数直接照抄导致环路振荡
现象:用Saber里模拟补偿器的波特图做参考,把模拟域参数直接换到数字控制里去用,结果环路闭环后输出低频振荡,一加载就啸叫。
原因:模拟补偿器和数字实现之间存在离散化误差,采样保持、计算延迟、PWM更新延迟都会改变环路相位。模拟仿真里相位裕度60°,数字实现后可能只剩20°,系统自然振荡。
解决:用双线性变换做离散化,并且考虑一拍计算延迟。把离散化后的补偿器做离散域波特图分析,确认相位裕度在校正后仍然大于45°。如果采样率不够高导致相位恶化,考虑把采样率提高或者把补偿器的穿越频率降低一些。
5.5 过流保护触发点与补偿器饱和的冲突
现象:负载突变时,自限流二极管还没来得及起作用,补偿器输出已经饱和,VCO频率指令被推到极限,导致恢复时间变长。
原因:补偿器输出限幅设置不合理。LLC是变频控制,补偿器输出对应频率指令,但限幅值如果直接设在VCO满刻度,瞬态时频率会打到极限,增益曲线的工作点跑到Ⅲ区,动态性能反而恶化。
解决:在补偿器输出处设置合理的频率限幅范围。比如额定100kHz,限制频率指令范围为80kHz到200kHz,上限不要超过谐振频率太多,避免瞬态时工作点进容性区。这条经验在仿真模型里一样适用——仿真模型加上限幅后,切换负载的恢复波形明显变好。
6. 闭环验证的必要步骤:先看阶跃响应再看增益边界,别急着谈指标
闭环补偿器接好之后,我习惯做三件事,这三件事也是判断这套基于TDSA时域仿真的设计流程是否真正走通的关键。
第一件事是做负载跳变测试。把负载从满载切换到半载再切回满载,观察输出电压波形。闭环系统的动态响应在这个测试里暴露无遗——超调大的说明穿越频率太低或相位裕度不够,响应慢的说明低频增益不足,震荡的说明相位裕度太小。这个测试在Saber里做起来成本低,务必在验证补偿器时执行。
第二件事是重新测量闭环系统的输入-输出阻抗特性。在输出端加不同频率的电流扰动,观察电压响应。这一步能发现补偿器与输出滤波电容之间是否发生了谐振放大。LLC的输出滤波电容大,ESR很小,高频段的阻抗特性对相位裕度影响很大。如果发现某个频点阻抗峰值异常,多半是补偿器极点位置和输出滤波器极点靠太近,需要调整极点位置。
第三件事是做一个极限工况仿真:满载启动、输出短路再恢复、输入电压拉到上限和下限。改进型半桥LLC的自限流功能在前两个工况下应该发挥作用,补偿器在第三个工况下应保证输出电压稳态精度。做完这三件事,整个闭环设计方案才算验证完整,可以把参数固化下来。
从那次之后,我每做一个LLC闭环项目,都强制自己走一遍TDSA扫频、补偿器离散化、负载跳变验证的完整链路,再着急出样机也不跳过。希望这篇笔记能帮你少走点弯路,把Saber这套时域仿真闭环设计方法真正用起来。
本文还有配套的精品资源,点击获取