The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design >> Analog Design >> How to simplify the Opamp/LDO transfer function (denominator) https://designers-guide.org/forum/YaBB.pl?num=1355456007 Message started by wandola on Dec 13th, 2012, 7:33pm |
Title: How to simplify the Opamp/LDO transfer function (denominator) Post by wandola on Dec 13th, 2012, 7:33pm Hi guys, I have been working on 3-stage LDO design. I found that in the papers, the transfer functions have been simplified. But when I was trying to derive the transfer function, the denominator ends up in a very complicated form. For example, most paper shows a very simple TF with three poles (1+s/Wp1)*(1+s/Wp2)*(1+s/Wp3). But when I was trying to derive the transfer function with Matlab symbolic calculation, the denominator always becomes something like 1+ A*s + B*s^2 + c*s^3+D*s^4+E*s^5. My question is, is there a better way to derive the TG? Or, how to simplify the 5th-order poly into a closed-form like those in the paper. Can anybody help? Thanks a lot.! |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by raja.cedt on Dec 14th, 2012, 12:23am hello, you can you use the following doc. http://www.ee.iitm.ac.in/~nagendra/E6316/current/handouts/approximations.pdf prof nagi has given expressions for Quadratic, but you can extend it for any order. But please cross check weather poles are far away from each other after the simplification. Few people calculate poles at all node and simply forma then TF, this is more intutive away. Try to post the schematic. Thanks, Raj. |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by buddypoor on Dec 14th, 2012, 1:32am raja.cedt wrote on Dec 14th, 2012, 12:23am:
Hi Raj, as you recommend to "extend it for any order" - may I ask you if YOU have done something similar already? I have some doubts regarding such an "extension". Answer to wandola: I suggest to use a symbolic calculator to determine the pole distribution and to group the poles according to the classical scheme (s-sp). |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by raja.cedt on Dec 14th, 2012, 3:24am Hello buddy poor, Please find doc, which explains extension of this approx for 4th order. Please note that this very vague, however people use a lot with appropriate care. I forgot, few year back there was good pap in JSSC abut regulator in that they have used this approx. regarding symbolic calculator, it gives result but some times you don't get any info out of it, you can't find intuition out of it. Thanks, Raj. |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by wandola on Dec 14th, 2012, 6:49pm Thanks to Raj and Buddy. The schematic is shown below. I am actually trying to derive the LDO TF from the paper titled as "Pole-Zero Analysis of Low-Dropout (LDO) Regulators: A Tutorial Overview" presented in 2012 Int' Conf on VLSI design. In the paper, it is a three stage LDO with two feedback paths. I assume at least u will have 5 poles. And this is verified with MaTLAB. To Buddy, I did use the MATLAB symbolic calculation. And the denominator is a 5-th order polynomial. But in the paper, the final TF is approximated to a 3-pole system. I didn't know how to simplify the TF. If u have matlab on hand, u can try my script to see the TF. %------- My script. % ---- The voltage V1 is Vp in my sript, V2 is Vq in my script. syms Z1 Z2 Z3 >> eq6='R1/(1+s*C1*R1)=Z1' >> eq7='R2/(1+s*Cgs*R2)=Z2' >> eq8='Ro/(1+s*Co*Ro)=Z3' >> syms ic1 ic2 Vx Vy Vo Vp Vq >> eq9='s*Cc1*(Vo-Vx)=ic1' >> eq10='s*Cc2*(Vq-Vy)/(1+s*Cc2*Rc2)=ic2' >> eq1='(gm1*Vs-gmBU*Vx+gmCG*Vy)*Z1=Vp' >> eq2='(-gm2*Vp-ic2)*Z2=Vq' >> eq3='(-gmp*Vq-ic1)*Z3=Vo' >> eq4='ic1/gmBU=Vx' >> eq5='ic2/gmCG=Vy' >> [ic1 ic2 Vo Vp Vq Vx Vy Z1 Z2 Z3]=solve(eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,ic1, ic2,Vo,Vp,Vq,Vx,Vy,Z1,Z2,Z3) Note: [ic1 ic2 Vo Vp Vq Vx Vy Z1 Z2 Z3]<-- the variables in the bracket must be in alphabetic order. Otherwise the results will be in wrong order and u don't which one is which. Vo = -(R1*R2*Vs*gm1*gm2*(gmCG + Cc2*s + Cc2*Rc2*gmCG*s)*(gmBU + Cc1*s + Cc1*Co*Ro*s^2 + Cc1*Ro*gmBU*s + Co*Ro*gmBU*s))/(gmBU*gmCG + Cc2*gmBU*s + Cc1*gmCG*s + Cc1*Cc2*s^2 + C1*R1*gmBU*gmCG*s + Cc2*R2*gmBU*gmCG*s + Cgs*R2*gmBU*gmCG*s + Cc2*Rc2*gmBU*gmCG*s + Cc1*Ro*gmBU*gmCG*s + Co*Ro*gmBU*gmCG*s + C1*Cc1*Cc2*R1*s^3 + Cc1*Cc2*Cgs*R2*s^3 + Cc1*Cc2*Co*Ro*s^3 + C1*Cc2*R1*gmBU*s^2 + C1*Cc1*R1*gmCG*s^2 + Cc1*Cc2*R2*gmCG*s^2 + Cc2*Cgs*R2*gmBU*s^2 + Cc1*Cgs*R2*gmCG*s^2 + Cc1*Cc2*Rc2*gmCG*s^2 + Cc1*Cc2*Ro*gmBU*s^2 + Cc2*Co*Ro*gmBU*s^2 + Cc1*Co*Ro*gmCG*s^2 + C1*Cc1*Cc2*R1*R2*gmCG*s^3 + C1*Cc2*Cgs*R1*R2*gmBU*s^3 + C1*Cc1*Cgs*R1*R2*gmCG*s^3 + C1*Cc1*Cc2*R1*Rc2*gmCG*s^3 + C1*Cc1*Cc2*R1*Ro*gmBU*s^3 + C1*Cc2*Co*R1*Ro*gmBU*s^3 + C1*Cc1*Co*R1*Ro*gmCG*s^3 + Cc1*Cc2*Cgs*R2*Rc2*gmCG*s^3 + Cc1*Cc2*Cgs*R2*Ro*gmBU*s^3 + Cc1*Cc2*Co*R2*Ro*gmCG*s^3 + Cc2*Cgs*Co*R2*Ro*gmBU*s^3 + Cc1*Cgs*Co*R2*Ro*gmCG*s^3 + Cc1*Cc2*Co*Rc2*Ro*gmCG*s^3 + C1*Cc2*R1*R2*gmBU*gmCG*s^2 + C1*Cgs*R1*R2*gmBU*gmCG*s^2 + Cc1*Cc2*R1*R2*gm2*gmCG*s^2 + C1*Cc2*R1*Rc2*gmBU*gmCG*s^2 + C1*Cc1*R1*Ro*gmBU*gmCG*s^2 + C1*Co*R1*Ro*gmBU*gmCG*s^2 + Cc2*Cgs*R2*Rc2*gmBU*gmCG*s^2 + Cc1*Cc2*R2*Ro*gmBU*gmCG*s^2 + Cc1*Cgs*R2*Ro*gmBU*gmCG*s^2 + Cc2*Co*R2*Ro*gmBU*gmCG*s^2 + Cgs*Co*R2*Ro*gmBU*gmCG*s^2 + Cc1*Cc2*Rc2*Ro*gmBU*gmCG*s^2 + Cc2*Co*Rc2*Ro*gmBU*gmCG*s^2 + C1*Cc1*Cc2*Cgs*R1*R2*s^4 + C1*Cc1*Cc2*Co*R1*Ro*s^4 + Cc1*Cc2*Cgs*Co*R2*Ro*s^4 + Cc2*R1*R2*gm2*gmBU*gmCG*s + C1*Cc1*Cc2*Cgs*Co*R1*R2*Ro*s^5 + C1*Cc1*Cc2*Cgs*R1*R2*Rc2*gmCG*s^4 + C1*Cc1*Cc2*Cgs*R1*R2*Ro*gmBU*s^4 + C1*Cc1*Cc2*Co*R1*R2*Ro*gmCG*s^4 + C1*Cc2*Cgs*Co*R1*R2*Ro*gmBU*s^4 + C1*Cc1*Cgs*Co*R1*R2*Ro*gmCG*s^4 + C1*Cc1*Cc2*Co*R1*Rc2*Ro*gmCG*s^4 + Cc1*Cc2*Cgs*Co*R2*Rc2*Ro*gmCG*s^4 + Cc1*R1*R2*Ro*gm2*gmBU*gmCG*gmp*s + C1*Cc2*Cgs*R1*R2*Rc2*gmBU*gmCG*s^3 + C1*Cc1*Cc2*R1*R2*Ro*gmBU*gmCG*s^3 + C1*Cc1*Cgs*R1*R2*Ro*gmBU*gmCG*s^3 + C1*Cc2*Co*R1*R2*Ro*gmBU*gmCG*s^3 + C1*Cgs*Co*R1*R2*Ro*gmBU*gmCG*s^3 + C1*Cc1*Cc2*R1*Rc2*Ro*gmBU*gmCG*s^3 + Cc1*Cc2*Co*R1*R2*Ro*gm2*gmCG*s^3 + C1*Cc2*Co*R1*Rc2*Ro*gmBU*gmCG*s^3 + Cc1*Cc2*Cgs*R2*Rc2*Ro*gmBU*gmCG*s^3 + Cc2*Cgs*Co*R2*Rc2*Ro*gmBU*gmCG*s^3 + Cc1*Cc2*R1*R2*Ro*gm2*gmBU*gmCG*s^2 + Cc1*Cc2*R1*R2*Ro*gm2*gmBU*gmp*s^2 + Cc2*Co*R1*R2*Ro*gm2*gmBU*gmCG*s^2 + C1*Cc1*Cc2*Cgs*Co*R1*R2*Rc2*Ro*gmCG*s^5 + C1*Cc1*Cc2*Cgs*R1*R2*Rc2*Ro*gmBU*gmCG*s^4 + C1*Cc2*Cgs*Co*R1*R2*Rc2*Ro*gmBU*gmCG*s^4 + Cc1*Cc2*R1*R2*Rc2*Ro*gm2*gmBU*gmCG*gmp*s^2) %---------------- From above expression, I could simplify the denominator with the usual assumptions: Cc1, Cc2 >> C1, Cc1, Cc2 << Co, CgsPass, CgdPass << Vo, gm(x)*R(x)>>1. However, i still got a 5-th order poly. As suggested by Raj using the approximation, what happen if two poles are close and in the same order?? Thank you guys! Let's open this for discussion. |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by Bilgotidia Fertiganed on Jan 7th, 2013, 9:41pm What if there are complex poles? Is there any way to get a transfer function in that case too. This would mean that two poles are at the same location. |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by Lex on Jan 8th, 2013, 2:35am I suggest to draw the root locus as in my opinion it gives more insight. |
Title: Re: How to simplify the Opamp/LDO transfer function (denominator) Post by raja.cedt on Jan 8th, 2013, 4:04am Hello Bilgotidia Fertiganed, it will work only for well separated, real poles. Refer above pdf i mentioned. |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |