DSPRelated.com
Forums

PLL loop bandwidth analysis

Started by jacobfenton March 14, 2012
Suppose you have a classical 2nd order PLL, but instead of having a linear
error curve, with a slope you can determine, you have essentially a slope
of 0, which means that you can detect error, but only the same value is put
out of the detector (with sign changes), perhaps this is what people call
bang-bang style. So can you approximate this error gain so you can still
use a classical approach to modeling the loop and getting transfer
functions and bode plots?
On Wed, 14 Mar 2012 10:24:10 -0500, jacobfenton wrote:

> Suppose you have a classical 2nd order PLL, but instead of having a > linear error curve, with a slope you can determine, you have essentially > a slope of 0, which means that you can detect error, but only the same > value is put out of the detector (with sign changes), perhaps this is > what people call bang-bang style. So can you approximate this error gain > so you can still use a classical approach to modeling the loop and > getting transfer functions and bode plots?
Not unless there's some random action going on in the system that -- at least statistically -- softens the curve near zero error. Otherwise you're doomed to a system where the concept of "bandwidth" is meaningless. (or you can intentionally dither your controller output, which will -- statistically -- soften your detector response). -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
On Mar 14, 11:24�am, "jacobfenton"
<jacob.fenton@n_o_s_p_a_m.gmail.com> wrote:
> Suppose you have a classical 2nd order PLL, but instead of having a linear > error curve, with a slope you can determine, you have essentially a slope > of 0, which means that you can detect error, but only the same value is put > out of the detector (with sign changes), perhaps this is what people call > bang-bang style.
I think you mean the slope or gain is infinity not zero. The most common bang bang system is the thermostat in your home. To analyze this consider slew rate instead of bandwidth and also you need to look at the hysteresis. Mark
On Wed, 14 Mar 2012 10:24:10 -0500, jacobfenton wrote:

> Suppose you have a classical 2nd order PLL, but instead of having a
linear
> error curve, with a slope you can determine, you have essentially a
slope
> of 0, which means that you can detect error, but only the same value is
put
> out of the detector (with sign changes), perhaps this is what people
call
> bang-bang style. So can you approximate this error gain so you can still > use a classical approach to modeling the loop and getting transfer > functions and bode plots?
I don't know your application, but I sometimes implement that sort of phase detector with the "half full" output of a FIFO. The VCO clocks data into (or out of) the FIFO, and the clock that we're trying to track clocks data out of (or into) the FIFO. Feedback will keep the FIFO around the threshold point. As Tim pointed out, the concept of bandwidth in such a non-linear system is meaningless. I deal with that by simulating the behaviour in the time domain with a variety of input (jitter) amplitudes. Also (again pointed out by Tim) any noise - in this case jitter on the clock we're trying to track - will soften the curve and you can perform a linear analysis provided that the amplitude of the signals you're interested in is less than the noise. For large input signals the noise has no effect and you're back to the full non-linear analysis. For the logic designers: using feedback in this way keeps the FIFO roughly half full and it may be possible to avoid having to implement full and emtpy flags. In my experience, FIFO full and empty flags in a two-clock FIFO are a fertile source of bugs. Cheers, Allan
On Mar 15, 4:24&#4294967295;am, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com>
wrote:
> Suppose you have a classical 2nd order PLL, but instead of having a linear > error curve, with a slope you can determine, you have essentially a slope > of 0, which means that you can detect error, but only the same value is put > out of the detector (with sign changes), perhaps this is what people call > bang-bang style. So can you approximate this error gain so you can still > use a classical approach to modeling the loop and getting transfer > functions and bode plots?
Sounds like rubbish. Explain what you mean. In my world the PLL is essentially a linear feedback system. The phase detector (a multiplier) acts like an error detector. (approximately over small changes) The VCO is like an integrator and the filter is the compensation network of the look. Don't make it more complicated than it is. hardy
>On Mar 15, 4:24=A0am, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> >wrote: >> Suppose you have a classical 2nd order PLL, but instead of having a
linea=
>r >> error curve, with a slope you can determine, you have essentially a
slope
>> of 0, which means that you can detect error, but only the same value is
p=
>ut >> out of the detector (with sign changes), perhaps this is what people
call
>> bang-bang style. So can you approximate this error gain so you can
still
>> use a classical approach to modeling the loop and getting transfer >> functions and bode plots? > >Sounds like rubbish. Explain what you mean. In my world the PLL is >essentially a linear feedback system. >The phase detector (a multiplier) acts like an error detector. >(approximately over small changes) The VCO is like an integrator and >the filter is the >compensation network of the look. Don't make it more complicated than >it is. > > >hardy >
It is surely not rubbish. The phase detector might not always have a linear error curve depending on the type of detector used.
On Thu, 15 Mar 2012 09:51:19 -0500, "jacobfenton"
<jacob.fenton@n_o_s_p_a_m.gmail.com> wrote:

>>On Mar 15, 4:24=A0am, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> >>wrote: >>> Suppose you have a classical 2nd order PLL, but instead of having a >linea= >>r >>> error curve, with a slope you can determine, you have essentially a >slope >>> of 0, which means that you can detect error, but only the same value is >p= >>ut >>> out of the detector (with sign changes), perhaps this is what people >call >>> bang-bang style. So can you approximate this error gain so you can >still >>> use a classical approach to modeling the loop and getting transfer >>> functions and bode plots? >> >>Sounds like rubbish. Explain what you mean. In my world the PLL is >>essentially a linear feedback system. >>The phase detector (a multiplier) acts like an error detector. >>(approximately over small changes) The VCO is like an integrator and >>the filter is the >>compensation network of the look. Don't make it more complicated than >>it is. >> >> >>hardy >> > >It is surely not rubbish. The phase detector might not always have a linear >error curve depending on the type of detector used.
Something that happens once in a while is that a phase detector with a sawtooth response gets hooked up backwards, so that it locks on the discontinuity in the curve rather than on the zero in the middle of the slope. It behaves as expected in that the loop response is what would be computed with a very high Kd instead of the lower Kd that it was supposed to have. So what you're describing is just a detector that is *supposed* to have a very high Kd, and it'll behave accordingly. As Tim has said and others confirmed, the slope is never really infinite, anyway, it's usually something less than that and reduces as noise and natural other perturbations get injected. I always use some sort of fudge factor to account for this natural slope reduction in the loop analysis, and if you do the same you'll have a reasonably linear, and probably pretty accurate, method of analyzing your loop with the usual mathematical methods. It's worked for me, anyway, but my experience is limited to mostly 2nd-order loops in comm synchronization applications. Eric Jacobsen Anchor Hill Communications www.anchorhill.com
On Thu, 15 Mar 2012 15:52:25 +0000, Eric Jacobsen wrote:

> On Thu, 15 Mar 2012 09:51:19 -0500, "jacobfenton" > <jacob.fenton@n_o_s_p_a_m.gmail.com> wrote: > >>>On Mar 15, 4:24=A0am, "jacobfenton" >>><jacob.fenton@n_o_s_p_a_m.gmail.com> wrote: >>>> Suppose you have a classical 2nd order PLL, but instead of having a >>linea= >>>r >>>> error curve, with a slope you can determine, you have essentially a >>slope >>>> of 0, which means that you can detect error, but only the same value >>>> is >>p= >>>ut >>>> out of the detector (with sign changes), perhaps this is what people >>call >>>> bang-bang style. So can you approximate this error gain so you can >>still >>>> use a classical approach to modeling the loop and getting transfer >>>> functions and bode plots? >>> >>>Sounds like rubbish. Explain what you mean. In my world the PLL is >>>essentially a linear feedback system. The phase detector (a multiplier) >>>acts like an error detector. (approximately over small changes) The VCO >>>is like an integrator and the filter is the >>>compensation network of the look. Don't make it more complicated than >>>it is. >>> >>> >>>hardy >>> >>> >>It is surely not rubbish. The phase detector might not always have a >>linear error curve depending on the type of detector used. > > Something that happens once in a while is that a phase detector with a > sawtooth response gets hooked up backwards, so that it locks on the > discontinuity in the curve rather than on the zero in the middle of the > slope. > > It behaves as expected in that the loop response is what would be > computed with a very high Kd instead of the lower Kd that it was > supposed to have. > > So what you're describing is just a detector that is *supposed* to have > a very high Kd, and it'll behave accordingly. As Tim has said and > others confirmed, the slope is never really infinite, anyway, it's > usually something less than that and reduces as noise and natural other > perturbations get injected. > > I always use some sort of fudge factor to account for this natural slope > reduction in the loop analysis, and if you do the same you'll have a > reasonably linear, and probably pretty accurate, method of analyzing > your loop with the usual mathematical methods. > > It's worked for me, anyway, but my experience is limited to mostly > 2nd-order loops in comm synchronization applications.
There are loops where you couldn't count on noise to save you in that circumstance -- locking to video comes to mind; the frame-frame jitter is generally very small, so in that case you'd have to find a deterministic, zero-mean way to jitter the reference to the phase detector if you needed a (statistically) smooth response. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
On Mar 16, 3:51&#4294967295;am, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com>
wrote:
> >On Mar 15, 4:24=A0am, "jacobfenton" <jacob.fenton@n_o_s_p_a_m.gmail.com> > >wrote: > >> Suppose you have a classical 2nd order PLL, but instead of having a > linea= > >r > >> error curve, with a slope you can determine, you have essentially a > slope > >> of 0, which means that you can detect error, but only the same value is > p= > >ut > >> out of the detector (with sign changes), perhaps this is what people > call > >> bang-bang style. So can you approximate this error gain so you can > still > >> use a classical approach to modeling the loop and getting transfer > >> functions and bode plots? > > >Sounds like rubbish. Explain what you mean. In my world the PLL is > >essentially a linear feedback system. > >The phase detector (a multiplier) acts like an error detector. > >(approximately over small changes) The VCO is like an integrator and > >the filter is the > >compensation network of the look. Don't make it more complicated than > >it is. > > >hardy > > It is surely not rubbish. The phase detector might not always have a linear > error curve depending on the type of detector used.
I think anything can be difficult if it is incorrectly designed.