我通过WEBENCH计算电路参数并仿真得到以下伯德图
将WEBENCH给出的电路参数带入传递函数用MATLAB画出下面伯德图(蓝色为主功率传函,黄色为补偿后闭环传函),其截至频率只有6.5KHZ,不是仿真中的19KHZ;相位图线完全不一致。
我是按照以下TI教程进行计算,由于占空比小于0.5未考虑斜率补偿。
以下是MATLAB代码
clear all syms s Avi ESR Co Ro syms Rz Cz Cp Rup Rlow gm wz=1/(ESR*Co) wp=1/((Ro+ESR)*Co) Goc=Avi*Ro*(1+s/wz)/(1+s/wp) SYMS1=[Avi ESR Co Ro] %添加上参数K SYMS2=[12 3E-3 47E-6 5/1.5] Goc2=subs(Goc,SYMS1,SYMS2) wcz=1/(Rz*Cz) wcp=(Cz+Cp)/(Rz*Cz*Cp) Gc0=-Rlow*Rup*gm*Cz/((Rlow+Rup)*(Cz+Cp)) Gc=Gc0*(1+wcz/s)/(1+s/wcp) SYMS3=[Rz Cz Cp Rup Rlow gm] %添加上参数K SYMS4=[23.2E3 2700E-12 10E-12 10.2E3 1.96E3 92E-6] Gc2=subs(Gc,SYMS3,SYMS4) P = bodeoptions; P.Grid='on'; P.PhaseVisible = 'on'; P.FreqUnits = 'Hz'; %P.PhaseWrapping='on'; P.XLim={[10,1E8]}; P.XLabel.FontSize=14; P.YLabel.FontSize=14; P.TickLabel.FontSize=14; P.Title.String=''; [num,den]=numden(Goc2) %提取分子分母 Goc2=tf(sym2poly(num),sym2poly(den)) %从符号中提取多项式系数 bode(Goc2,P); [num,den]=numden(Gc2) %提取分子分母 Gc2=tf(sym2poly(num),sym2poly(den)) %从符号中提取多项式系数 bode(Gc2,P); bode(Goc2,P) hold on bode(Goc2*Gc2,P) hold off
请问我哪里计算错了?或是传递函数不对?