尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

LLC谐振变换器闭环设计:Plecs仿真与PI参数整定实战

LLC谐振变换器闭环设计:Plecs仿真与PI参数整定实战 做LLC谐振变换器闭环设计这块我是从被PI参数折磨开始的。开环仿真跑得飞起增益曲线画得漂亮一旦把反馈环接上要么输出电压振荡要么负载突变直接跌落一大截调了一下午PI参数最后发现根本不是参数问题而是对LLC这种变频控制的理解有问题。后来在Plecs里用AC Sweep把小信号特性摸清楚整个闭环设计才真正走上正轨。这篇文章把我整个流程写下来包括怎么在Plecs里搭闭环、怎么用扫频结果算PI参数、怎么把动态响应调稳适合正在做LLC仿真、或者被变频电源闭环折腾的工程师和学生参考。文中的参数我固定用一组半桥LLC的实例来贯穿照着抄作业也能跑通。1. 为什么选Plecs做LLC闭环仿真1.1 开环仿真到闭环设计的断层是怎么出现的很多人做LLC都是从开环仿真入手的用Plecs搭一个半桥放上谐振电感、谐振电容、变压器、整流二极管然后扫频看增益曲线。这个阶段基本没什么难度因为开环系统是稳定的你给定一个开关频率输出就是对应的电压剩下的无非是看波形、算增益。但闭环不一样。闭环需要你把输出电压采样回来跟基准比较经过PI调节器再映射成开关频率。这里面有好几个环节是开环仿真里根本不会碰到的采样电路的延迟、PI输出到频率的压控转换、软启动逻辑、频率上下限限制。这些环节任何一个出了问题整个环路的稳定性都会垮掉。我见过不少同学直接在Simulink里搭LLC闭环主电路用分立的MOSFET模型控制环路里加调制器仿真步长一微妙跑一个负载阶跃要五分钟起步调试效率低到怀疑人生。后来我把整个系统搬到Plecs里仿真速度提升了一个量级。原因在于Plecs的核心处理方式是电路分段线性化开关管被当成理想开关而不是复杂的非线性微分方程来解所以在跑闭环控制的调试迭代时速度优势特别明显。1.2 Plecs主电路与控制同框建模的真正价值Plecs里主电路和控制环路可以在同一个模型里搭这一点对LLC闭环设计来说价值非常大。LLC是PFM调频控制也就是PI的输出控制的是开关频率而不是占空比所以你必须在同一个仿真环境里同时看到主电路谐振电流波形和控制器内部的状态量比如误差信号、PI输出、VCO的频率指令才能定位问题出在哪儿。举个很简单的例子输出电压跌了到底是环路增益不够导致PI输出没跟上还是频率已经顶到上限导致增益曲线落到右侧没法抬升这两种情况的表现波形非常像但处理方式完全不同。在Plecs里你把PI输出和开关频率两个量拉出来看一眼就能分辨如果是PI输出已经饱和但频率到上限了那是频率限幅的问题如果PI输出还在正常变化但输出电压就是回不去那才是增益不够的问题。另外Plecs自带的AC Sweep功能是我做小信号分析最依赖的工具。传统的LLC小信号建模要用扩展描述函数法推导过程繁琐而且一旦参数变动就要重新推一遍。在Plecs里可以直接在控制端口中加入小信号扰动用AC Sweep把控制到输出的幅频特性和相频特性扫出来整个过程都是可视化的比手推公式省太多时间。后文PI参数整定部分我会详细讲这个操作。1.3 本文实例的硬件参数与设计目标为了让后续的PI整定和动态响应优化有一个明确的对象下面全文参数都固定为一组480W半桥LLC的实例输入电压400V典型PFC母线输出输出电压48V额定功率480W满载电流10A变压器匝比nNp/Ns4谐振电感Lr60μH谐振电容Cr42nF励磁电感Lm180μH即mLm/Lr3谐振频率fr96.4kHz输出滤波电容Co470μF设计目标包括三条稳态输出精度在48V±1%以内满载到半载的负载阶跃恢复时间小于2ms过冲小于3%启机过程软启动不出现输出过压和母线过流。这套参数里Fr算出来是96.4kHz实际设计会让开关频率在80k到130kHz之间变化覆盖满载重载到轻载的增益需求。你如果自己手头有别的参数不一定要完全照搬但整个设计流程和方法是一样的后面每一步我都会说明计算依据方便你替换成自己的数值。2. 摸透LLC的增益特性是闭环设计的前提2.1 半桥LLC的拓扑结构与三种工作模式在做闭环设计之前至少要清楚半桥LLC的核心结构。半桥逆变部分由两个MOSFET构成上下管互补导通输出一个方波电压到谐振腔。谐振腔由Lr、Cr、Lm这三个元件组成其中Lm是变压器的励磁电感但它参与了谐振过程所以LLC才叫多谐振变换器——Lr和Cr串联谐振产生一个谐振频率Lr、Lm、Cr共同谐振又产生另一个谐振频率这两个频率的表达式分别是fr1 1 / (2π × sqrt(Lr × Cr))fr2 1 / (2π × sqrt((Lr Lm) × Cr))代入本例参数fr1 1 / (2π × sqrt(60μH × 42nF)) ≈ 96.4kHzfr2 1 / (2π × sqrt((60μH 180μH) × 42nF)) ≈ 55.5kHz工作区间就按照开关频率fs跟这两个谐振频率的关系来划分。当fs在fr2到fr1之间时励磁电感参与谐振流过Lm的电流是三角波Lr上的电流是正弦波两者之差就是送到变压器原边的电流。这一段的特征是原边开关管可以实现ZVS副边整流二极管可以实现ZCS也就是零电流关断整流管的反向恢复损耗基本消失。当fs接近fr1时励磁电感基本不参与谐振系统呈现出SRC串联谐振的特性。当fs高于fr1时系统工作在降压谐振区增益小于1更适合输入电压偏高的场合。理解这一点对闭环设计非常重要因为你的PI输出控制频率不同的频率区间对应的被控对象特性不一样如果整定参数时把工作点选在了某个区间但实际动态切换时跑到了另一个区间环路的相位裕度很可能会变化。2.2 增益曲线怎么看控制裕度LLC的输出电压增益可以用基波近似法来估算。把方波电压只保留基波分量通过谐振网络的阻抗分压关系推导出增益表达式最后得到增益是开关频率、负载品质因数Q、电感比m这三个变量的函数。增益曲线大致呈钟形在fr1附近增益接近1频率越低增益越高频率越高增益越低但在fr2以下会进入容性区域增益曲线反转继续降低频率增益反而下降。做闭环设计时我们只工作在感性区域也就是增益曲线单调下降的那一段。因为只有这一段增益对频率的响应方向是确定的输出电压偏低时PI要降低频率来提高增益输出电压偏高时PI要提高频率来降低增益。如果你不小心让工作点落到容性区同样的PI作用方向就会反过来环路变成正反馈系统直接发散这在闭环仿真里是很容易看到的振荡现象。在Plecs里验证的方法很简单不需要手算增益公式。你把半桥LLC主电路搭好后给门极驱动用Plecs自带的PWM发生器把频率设成扫描变量扫完就能得到一条增益对频率的曲线。扫的时候注意负载状态要固定因为不同负载下的Q值不一样曲线形态会有差异。我一般会扫三个负载点满载、半载、10%轻载看整条工作频率范围内是否有足够的增益调节空间。2.3 满载和轻载的工作点差异LLC有个独特的地方就是负载越轻Q值越低增益曲线峰值越高。这意味着在轻载条件下你只需要很小的频率变化就能把输出电压调回来环路的被控对象增益会变大。如果你按满载的工作点来整定PI参数可能在轻载时环路增益偏高造成输出振荡反过来按轻载整定满载时又会响应偏慢。所以我在做闭环设计时会先看两个极端工作点的增益特性确定PI参数在这两个点都有足够的稳定裕度再在中间负载点微调。这个思路在Plecs里验证起来特别方便因为改负载就是改一个电阻的值跑一遍负载阶跃就能看到两个工作点之间的过渡是否稳定。后面第4章动态响应优化的时候我会展示不同负载点下的响应波形差异。3. 在Plecs里搭闭环并整定PI参数3.1 反馈控制环路的整体结构LLC的闭环结构跟普通的PWM变换器不同它没有占空比PI输出直接映射为开关频率。在Plecs里我习惯把整个控制链路拆成这样几段每一段单独验证输出电压采样用增益模块把48V的电压等比缩小到2.5V基准附近这个采样增益就是2.5/48约等于0.052误差放大器把采样电压跟基准2.5V做差得到误差信号PI调节器对误差信号做比例积分运算压控振荡器VCO把PI输出的电压信号转换成实际的开关频率也就是PFM调制。VCO是整个控制链路里比较关键的一个环节。LLC的工作频率范围是80k到130kHz所以VCO的输入电压要映射到这个频率范围内。我在Plecs里用一个一阶惯性环节加增益模块来模拟VCO的响应特性比如输入电压0到5V对应频率80k到130kHz那么增益就是130k - 80k/ 5 10k Hz/V再加上一个中心频率偏置。这里的响应速度不能设置得太快否则VCO本身的延迟就被忽略了实际硬件里VCO是模拟电路响应速度是有限的。采样环节我也加了RC低通滤波来模拟实际采样电路的带宽限制。采样滤波的截止频率我设在20kHz左右这个值不能选得太低否则会引起额外的相位延迟。很多人在Plecs里做闭环仿真时参数都整定了但加了个滤波就振荡往往就是采样滤波的截止频率选低了把环路相位裕度吃掉了一大截。3.2 用AC Sweep扫描得到控制到输出的Bode图PI参数整定我最不推荐的做法是一上来就试凑。调试过程看起来直观你调Kp和Ki然后看波形但花的时间往往是值得用十分钟扫频来避免的。在Plecs里做小信号扫频能得到控制到输出的传递函数这个函数可以直接指导PI参数的设计。具体操作步骤是这样的先把控制链条断开给VCO的控制输入端加一个直流偏置电压让系统稳定工作在某个开关频率下比如95kHz附近。然后在Plecs的仿真设置里选择AC Sweep分析把扰动信号叠加在偏置电压上频率范围可以从10Hz扫到1MHz。Plecs会自动在稳态工作点附近做小信号线性化输出控制量到输出电压的幅频和相频曲线。这份Bode图就是整个闭环设计的核心依据。我从图上能读出两个信息一是增益过零频率也就是控制到输出的带宽二是相位曲线在这个频率附近的相位值这个值决定了系统还能有多少相位裕度给PI调节器用。以一个典型的LLC工作点为例满载情况下控制到输出的传递函数在低频段表现为一个近似积分环节相位大概是-90度到了谐振频率附近会出现一个谐振峰相位进一步下降。如果你不加PI直接把环路闭合系统是有可能稳定的但稳态精度不够因为积分环节虽然能提供高低频增益但是电压采样和基准之间的增益有限。所以PI的积分部分是必须的它保证了直流误差被无限放大稳态误差趋近于零。3.3 PI参数的计算过程与具体数值PI调节器的传递函数是C(s) Kp Ki / s设计思路是用PI的零点来抵消被控对象在低频段的极点然后在目标穿越频率处设置足够的相位裕度。基于扫频得到的Bode图我按下面的步骤来计算参数第一步确定目标穿越频率fc。这个频率决定了闭环的响应速度。LLC的开关频率在100kHz左右穿越频率一般取开关频率的1/10到1/20也就是5k到10kHz。太接近开关频率数字控制延迟和采样滤波的影响会变得不可控相位裕度很难保证。我这里取fc 5kHz作为设计目标。第二步确定PI的零点位置。PI的零点应该低于穿越频率通常取fc的1/5到1/10这样在穿越频率附近PI的相位贡献大约在70度到80度之间。我取fz 800Hz对应的Ki / Kp 2π × 800。第三步根据穿越条件确定Kp。在穿越频率处环路增益的幅值必须为1。从AC Sweep扫到的Gdq曲线里读出5kHz处的增益幅值如果是A dB那么Kp的设计值就是满足Kp × A 1的那个值也就是让增益补偿到0dB。假设扫频结果显示5kHz处控制到输出的增益为-20dB也就是0.1那么Kp就取10左右。再根据Ki / Kp 2π × 800算出Ki ≈ 50265。我把这一组参数直接填进Plecs里跑闭环仿真验证结果会发现稳态精度没问题但动态响应可能还有优化空间具体怎么调我会在第4章展开。当然AC Sweep扫出来的是小信号特性实际系统在负载大范围变化时工作点会移动Gdq曲线也会发生变化。所以整定完PI参数之后我还会在不同的负载点各扫一次Bode图确认穿越频率和相位裕度都没有跌到危险范围。3.4 PI参数在Plecs里的两种验证手段参数计算完之后不能光看时域波形就说参数没问题。我一般会在Plecs里同时做两种验证分别对应小信号稳定性和大信号稳定性。第一种是环路的Bode图验证。把PI调节器的传递函数跟被控对象Gdq直接相乘得到环路增益看穿越频率和相位裕度。如果相位裕度在45度以上小信号稳定性基本是有保证的。如果低于30度即使时域波形看起来稳定实际在参数漂移或负载变化时很容易振荡。第二种是时域的负载阶跃验证。在Plecs里给负载电阻加一个阶跃变化比如从10A跳到5A再跳回来观察输出电压的过渡过程。重点看两个指标恢复时间和过冲量。恢复时间是从负载突变开始到输出电压回到稳态误差带内的时间过冲量是输出电压偏离稳态值的最大幅度。我在实际调试中还发现一个规律如果时域波形表现为低频振荡幅度缓慢衰减那多半是PI的积分增益太大如果表现为高频振铃过冲很大但频率很高那多半是采样滤波的相位延迟太大或者穿越频率压得太高。针对不同表现做对应的调整比盲目调Kp和Ki有效得多。4. 动态响应优化的几个关键手段4.1 负载阶跃测试与PI参数微调负载阶跃是检验LLC闭环动态响应最直接的方式。我在Plecs里做阶跃测试时会把负载电阻设成阶跃源比如在0.02秒时刻从满载切到半载再在0.04秒时刻切回满载同时用Scope记录输出电压和谐振电流波形。第一次跑完阶跃测试我发现输出电压的过冲非常大达到了6%超出了设计目标的3%。观察波形可以发现PI输出很快就冲到了频率上限但输出电压还是有一个明显的跌落谷底然后才慢慢恢复。这说明系统的穿越频率偏低环路响应速度跟不上负载突变的速度。处理方法有两个方向一是提高穿越频率把fc从5kHz拉升到8kHz这需要同步调整Kp和Ki二是降低采样滤波的延迟把RC滤波的截止频率从20kHz提高到30kHz。两个方向同时调整之后过冲降到了2.8%恢复时间大约1.5ms达到了目标要求。不过这里有个陷阱要说明一味提高穿越频率有可能引发稳定性问题。我在一次测试中把fc拉到了12kHz结果在轻载阶跃测试时出现了明显的高频振荡。原因在于轻载时LLC的增益幅值比满载时大同样的PI参数在轻载下让穿越频率进一步抬高相位裕度跌到了20度以下。所以最终我采用了变参数方案满载时用较快的PI参数轻载时稍微降低环路增益让整个负载范围内都有足够的稳定裕度。4.2 软启动逻辑在Plecs里的实现LLC闭环设计里最容易忽略的是启动过程。如果你直接让PI调节器工作在2.5V基准上启动瞬间输出电容电压是0误差放大器直接饱和PI输出会打到最大对应的开关频率会偏向频率下限。这种情况下谐振电流非常大很容易超过MOSFET的额定电流甚至导致仿真发散。软启动的逻辑是让输出电压基准从0开始以一定斜率上升到目标值或者直接限制PI输出的变化速率让开关频率从最高频率逐步下降到正常工作点。我在Plecs里实现的是后一种方式在VCO输入前面加一个速率限制模块把PI输出的变化率限制在固定值相当于把频率变化速度限制在一个安全范围内。软启动时间我设置为5ms。这个时间太短起不到限流作用太长又会让人觉得系统响应太慢。你可以观察谐振电流的峰值来调整这个参数只要启机瞬间谐振电流峰值不超过满载电流的1.5倍这个软启动时间就是合理的。启动过程中还要注意避免进入容性区域。在软启动阶段开关频率从高频往低频扫如果频率扫得太低低于fr2系统就会进入ZCS失效的区域。Plecs里可以通过设置VCO的最小频率来防止这一点我在这个实例里把最小频率设成了75kHz留了一个缓冲。4.3 频率限幅与抗饱和处理LLC的PI输出会直接映射到频率所以频率限幅就是PI的饱和限幅。Plecs里PI模块自带输出饱和限制上限对应最高开关频率130kHz下限对应最低开关频率75kHz这个限幅必须加而且必须加上抗饱和逻辑。不加抗饱和的后果是当负载突变引起PI输出饱和时积分项还在持续累积等到负载恢复PI输出不能立刻退出饱和表现为输出电压长时间偏离目标值甚至出现大的过冲。在Plecs里PI模块有一选项是back calculation也就是积分器的状态在饱和时会根据实际输出和内部计算的差值进行修正我建议这个选项务必打开。我实测过打开和关闭抗饱和两种情况的差别关闭抗饱和时满载到轻载的阶跃输出电压过冲达到了8%恢复时间6ms打开之后过冲降到3%以内恢复时间缩短到1.8ms。这个效果非常明显属于那种不试不知道、一试吓一跳的细节。另外频率限幅的数值本身也需要根据增益曲线来定。最高频率定太高可能在轻载时进入增益过低的区域输出电压调控能力下降最低频率定太低可能进入容性区域。比较稳妥的做法是把频率范围限定在增益曲线单调区域并且留10%左右的裕量。4.4 环路带宽与相位裕度的平衡取舍LLC闭环设计的本质是在响应速度和稳定性之间找平衡。穿越频率越高负载阶跃恢复越快但相位裕度会下降强干扰下稳定性变差。我自己常用的经验值是把相位裕度控制在45度到60度之间穿越频率大概在开关频率的1/10。如果你在Plecs里跑仿真发现相位裕度够但响应速度不够可以先把采样滤波的滞后减小再考虑调整PI参数因为采样环节带来的相位滞后往往是被忽略的隐患。如果相位裕度够但波形上有高频振铃可以先看看是不是开关频率跟穿越频率太接近适当降低穿越频率反而能改善。还有一个容易被忽视的点输出电容的ESR会引入一个零点对相位有抬升作用但这个作用只在某个频段有效。如果你的输出电容ESR很低比如用了固态电容这个零点跑到很高的频率对环路稳定性的帮助就很有限了。在Plecs里建立电容模型时保留ESR参数而不是用理想电容前提是你要清楚ESR对环路的影响方向。5. 常见问题与排查技巧实录5.1 仿真不收敛或者步长反复报错Plecs虽然比一般的电路仿真器稳健但LLC闭环仿真中还是会遇到不收敛的情况我碰到最多的原因是两种。第一种是谐振电容初始值把模型推到了极端状态。比如你在稳态工作点下启动仿真但谐振电容初始电压为0励磁电感电流也为0系统要经过很长一段瞬态过程才能进入稳态这时候PI输出可能已经饱和整个环路在初始阶段表现异常。解决办法是在Plecs里给谐振电容和谐振电感设置合理的初始条件。具体值可以通过开环仿真先在稳态下跑一遍然后把稳态值作为闭环仿真的初值填进去。第二种是AC Sweep扫频时的收敛问题。扫频需要在每个频点做稳态工作点计算如果工作点本身是振荡的比如工作频率处于容性区域扫频结果就会很乱。我遇到过一次扫出来的曲线带有周期性毛刺检查后发现是MOSFET死区时间设置得太短引起谐振电流畸变把工作点稳定之后扫频结果就正常了。5.2 输出电压振荡但频率并没有饱和我调试时遇到过一个比较难定位的问题输出电压在几十赫兹的固定频率上振荡但PI输出并没有打到限幅。用Plecs把环路里各点的波形都抓出来看最后发现是采样滤波和PI零点之间存在一个比较隐蔽的交互。现象是这样的采样RC低通的截止频率是20kHzPI的零点我原本设置在800Hz看起来两者距离很远不应该互相影响。但是实际电路里采样RC滤波之后还有一级隔直电容再把信号送入误差放大器这个隔直电容和输入电阻构成一个高通滤波器截止频率在500Hz左右。它把低频的误差信号给衰减了一部分等效于PI的积分增益被削弱环路在中低频段出现了一个意料之外的相位滞后点导致振荡。这个问题的排查方法在Plecs里其实很快把隔直电容和后续电路一起建模进控制环路重新做AC Sweep就能看到环路增益的相频曲线上在500Hz附近出现了一个下凹这就是振荡的根源。去掉隔直电容改用直接耦合或者把高通截止频率设计得足够低问题就解决了。这类问题在纯理论设计阶段非常难发现但仿真里一旦真实地建模控制链路问题就暴露无遗。这也是我一直强调控制链路要尽量完整建模的原因。5.3 采样噪声引起的误动作Plecs里的理想电压采样没有噪声但你在闭环仿真中如果加入了PWM开关纹波的影响低频控制环路对高频纹波的抑制能力是有限的纹波会通过采样通道进入PI调节器在输出端造成额外的频率抖动。这个问题在轻载时尤其突出因为轻载时LLC的谐振电流很小输出电压纹波的形状跟满载时不一样含有更多的高频分量。我在Plecs里的处理办法是在采样信号后面加一个低通滤波截止频率设在30kHz左右只在采样路径上滤除高频纹波不影响主环路在几kHz内的特性。这样操作之后PI输出频率的抖动明显减小。另外要提一下Plecs里数字控制延迟也是一个会在动态响应里体现的因素。如果你后续做的是数字控制也就是DSP或MCU实现PI算法那么一拍延迟带来的相位滞后在穿越频率处是不能忽略的。我建议在Plecs里加一个离散化的Zero-Order Hold模块来模拟采样保持过程这样仿真结果跟实际硬件会更接近。模拟控制跟数字控制在环路延迟上的差异会在穿越频率高的时候显著拉开差距这一点做数字电源的工程师应该深有体会。5.4 快速排查清单最后把我常用的排查顺序整理成一个清单按这个顺序排查大多数LLC闭环问题都能定位到具体环节检查稳态工作点是否在感性区域频率是否在设定范围内检查PI输出是否经常饱和抗饱和功能是否打开检查采样滤波的截止频率确认没有引入额外相位延迟检查VCO的增益和响应时间常数确认没有变成额外滞后环节用AC Sweep重新测量环路增益确认穿越频率和相位裕度对比不同负载点的Bode图确认全负载范围内稳定性一致排查时最好的习惯是每次只改一个变量记录波形变化。在Plecs里修改参数非常方便可以直接在线调参边调边看波形这个特性让排查效率大大提高。我见过有人一口气改了三个参数结果波形变好了也不知道是哪个参数起了作用后面一碰到新问题又得从头试这是最浪费时间的方式。Plecs做LLC闭环设计最大的价值是让控制环路里的每个环节都变得可见、可测量、可调整。主电路的谐振波形、PI内部状态、VCO频率变化全部拉出来放到同一张图上对比问题出在哪个环节一目了然。整套流程走下来我最深的体会有两点一是PI参数的整定必须有工具支持AC Sweep扫频得到的Bode图就是最可靠的依据纯靠试凑不仅慢而且根本没法解释为什么振荡二是动态响应的优化要放在整个环路里看采样滤波、频率限幅、抗饱和这些细节对最终指标的影响往往比Kp和Ki本身更大。把这两个点想透LLC闭环设计就不再是玄学而是有章可循的工程实践。
返回列表