LLC环路计算与仿真分析——手动放置零极点计算(运放+光耦)
时间:2022-11-01 18:00:00
上期通过K因子法介绍了LLC如何实现快速闭环模拟,以及相位提升计算和传递函数的详细推导过程和分析,详见《LLC环路计算与模拟分析——K因子法》。
然而,使用这种方法有许多局限性。如果您需要自己放置零极点,如何根据功率级波特图计算所需的穿越频率和相位裕度,如K因子?
下面通过运放 光耦反馈补偿逐一介绍:
1、获取功率级波特图
快速闭环后,在最大增益满载时设计获取功率级波特图,预计闭环时穿越频率4k,读取此时的增益和相位。
2.计算补偿器增益和相位提升
功率级在4k时增益和相位分别为3.54和16.94度。
所以补偿器是4k时增益应为-3.54。
相位应首先减去功率级16.94度,再加上预期相位裕度45度,即补偿器44度k时相位应为28.06度。
由于补偿器为正反馈,初始相位为-90度,此时实际提升相位应增加90度,即补偿器提升相位裕度为:
-16.94° 90° 45°=118.06°
这和上介绍的一样,这里只有补偿器才能理解。
PM(期望相位裕度)、PS(穿越频率处的功率级相位)。boost(需要提升相位)
boost=PM-PS 90°
3.选择补偿器并构建正确的逻辑
提升相位>90°需要两个零点(最大提升180度),这里使用运放 光耦三型补偿。
首先选择运放是推光耦合还是拉光耦合,因为它可以兼容电压环电流环的双环竞争,这里使用动放拉光耦合。
本文VCO逻辑:VFB输出频率越大,输出频率越高。
根据压制振荡器的逻辑选择光耦:Vout ↑,Vop ↓,IF ↑,Ic ↑,VFB ↑ ,fsw ↑,负反馈逻辑是正确的,所以VFB接在光耦射极上。
4.补偿器传输函数推导
根据补偿器推导传递函数:
运放部分:
光耦部分:
光耦合边缘和副边缘有两种连接方式,运输推或拉,反馈脚接收电极或射极,但由于交流信号分析中电流源开路,电压源短路,只有符号不同,感兴趣的可以模拟验证。
5、求解RLEDmax
输出最低电压时光耦合的二极管侧必须有足够的电流在饱和区域工作。
光耦的上下拉电阻和C8形成极点。
6.解光耦的射极外置电容
首先用k因子计算零极点的位置
假设(凑)上拉电阻10k时间耦极点为12kHz,可以在光耦内找到等效电容
如果光耦与下拉电阻形成的极点相同,则光耦电容应为:
光耦内部等效电容大于配置极点所需的电容:
因此,K因子无法通过配置零极点来适应K因子的计算极点,需要手动放置和重新计算。
7.手动零极点放置计算
首先放置两个极点和一个零点,第一个极点介绍光耦:
第1个零点放1k,第2个极点放50k,这只是介绍原理,参数是收集的。
相位提升计算方法参考上期《LLC环路计算与模拟分析——K因子法》:
第二个零点是根据上面和第二点计算的增益和相位计算的:
根据这些零极点,可以满足预期的穿越频率和相位裕度。
8.计算电阻电容参数
请参考上期的计算方法《LLC环路计算与模拟分析——K因子法》
补偿器波特图(蓝色是手动零极点,橙色是K因子):
从波特图可以看出,手动放置计算值和K因子计算值在穿越频率fc处的增益与相位相同,但k因子计算的相位最大值正好在fc处。
9、仿真验证
光耦参数按前文计算值设置
补偿后的波特图符合预期值,计算正确。
与计算波特图一致的补偿器波特图。
计算与模拟一致。
10、F11窗口公式
*VCO参数设置
.GLOBALVAR Fswmin=2*55k * the LLC network will see half this value *
.GLOBALVAR Fswmax=2*160k * the LLC network will see half this value *
.GLOBALVAR DT=420n * this is clock pulse width for DT generation *
.GLOBALVAR VFBmax=3.3 * this is the maximum feedback voltage to get Fswmax *
*
.GLOBALVAR Ct=10p
.GLOBALVAR Vswing=2.7 * Timing capacitor final swing *
.GLOBALVAR IFMIN=Ct*Vswing/((1/Fswmin)-DT) * charging current when VFB = 0 V *
.GLOBALVAR IDT=-(IFMIN-Ct*Vswing/DT)/5
.GLOBALVAR G2=-(IFMIN Ct*Vswing/(DT-(1/Fswmax)))/VFBmax
*输入输出设置
.simulator DEFAULT
.VAR Vin = 380
.VAR Pout = 500
.VAR Vout = 26
.VAR RL = Vout^2/Pout
.VAR VREF = 2.5
.VAR R1 = 21.5K
.VAR Rlower = VREF*R1/(Vout-VREF)
*电压环求解
.VAR fc = 4k
.VAR Gfc = 3.59
.VAR PS = 16.94
.VAR PM = 45
.VAR boost = PM-PS 90
.VAR G = 10^(-Gfc/20)
.VAR CTR = 0.48
.VAR Rpulldown = 10k
.VAR RLED = 2K
.VAR fp_opto = 11.1587k
.VAR fp1 = 50k
.VAR fz1 = 1k
.VAR fp2 = fp_opto
.VAR fz2 = fc/(tan(boost*(pi/180)-atan(fc/fz1) atan(fc/fp1) atan(fc/fp2)))
.VAR G1 = CTR*Rpulldown/RLED
.VAR R2 = (G/G1)*R1*(sqrt(1 (fc/fp1)^2))*(sqrt(1 (fc/fp2)^2))/((sqrt(1 (fz1/fc)^2))*(sqrt(1 (fc/fz2)^2)))
.VAR C1 = 1/(2*pi*fz1*R2)
.VAR C3 = (fp1-fz2)/(2*piR1*fp1*fz2)
.VAR R3 = R1*fz2/(fp1-fz2)
*参数计算结果查询
*** Print out values to use in step 2
*** Run simulation. From menu, select
*** Simulator >> Edit Netlist (after preprocess)
{'*'} k = {k}
{'*'} G = {G}
{'*'} Rlower = {Rlower}
{'*'} R2 = {R2}
{'*'} R3 = {R3}
{'*'} C1 = {C1}
{'*'} C3 = {C3}
{'*'} G1 = {G1}
{'*'} wp1 = {wp1}
{'*'} wp2 = {wp2}
{'*'} wz1 = {wz1}
{'*'} wz2 = {wz2}
{'*'} fz2 = {fz2}
11、F11窗口计算结果
与MATHCAD计算结果一致。
12、总结
环路计算的资料太多了,但万变不离其宗,主要弄清传递函数推导与相位提升计算,其他的基本就能举一反三了,而且学习环路计算最简单的方法还是得计算加仿真一起,simplis对环路仿真学习非常友好。
- 更多分享关注我↓