discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] question about advance_loop function in gri_contr


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] question about advance_loop function in gri_control_loop.cc
Date: Thu, 13 Jun 2013 09:21:02 -0400

On Thu, Jun 13, 2013 at 8:02 AM, adream <address@hidden> wrote:
> hello,
> the function of advance_loop and update_gain is defined as follow in
> gri_control_loop.cc
>
> void gri_control_loop::update_gains()
> {
>   float denom = (1.0 + 2.0*d_damping*d_loop_bw + d_loop_bw*d_loop_bw);
>   d_alpha = (4*d_damping*d_loop_bw) / denom;
>   d_beta = (4*d_loop_bw*d_loop_bw) / denom;
> }
>
> void gri_control_loop::advance_loop(float error)
> {
>   d_freq = d_freq + d_beta * error;
>   d_phase = d_phase + d_freq + d_alpha * error;
> }
>
> Is there any paper explains why the d_freq and d_phase is calculated in such
> equation?
>
> Thanks

It's just the classic second order control loop:
http://www.trondeau.com/blog/2011/8/13/control-loop-gain-values.html

You can probably also get this from Gardner's book(s).

Tom



reply via email to

[Prev in Thread] Current Thread [Next in Thread]