[time-nuts] Conditioning Rubidium Oscillators

Attila Kinali attila at kinali.ch
Tue Mar 15 19:51:25 UTC 2016


On Mon, 14 Mar 2016 19:56:42 -0400
Jim Harman <j99harman at gmail.com> wrote:


Disclaimer: Control theory is not my strongest topic. I am pretty sure
that what I have written here is correct. But if anyone finds any
mistakes, please correct me.

> On Mon, Mar 14, 2016 at 2:37 PM, Lars Walenius <lars.walenius at hotmail.com>
> wrote:
> 
> > I read this but couldn´t understand why this is superior to the PI-loop
> > with a pre-filter?
> >
> >
> > http://ptfinc.com/wp-content/uploads/2016/03/App_37_RubContol-Rubidium-Control-%E2%80%93-A-Different-Approach.pdf
>
> > Anybody can say why? Even if regression is very useful the limitation of
> > the GPS and ionosphere will be the problem?How much better is it reasonable
> > to get??

A PID loop adapts to a step as input faster than a PI loop.
To give a rule of thumb: the D part is used to predict how fast
the error is moving. If the error is shrinking fast, there will
be an overshoot once the error reaches zero. Thus the D part is
used to make the rate of change slower once the error becomes small.
Nothing more.

The wikipedia entry on PID controllers explains these things in
some detail and should help understand it.


> I think the potential benefit of this approach is that it continuously
> predicts the long term drift of the oscillator and attempts to compensate
> for it.

Nope, the above appnote does not predict anything. It's not an adaptive
control system at all. All they do is describe an PID controller without
using the common language of the control theory people.

> If the drift is reasonably linear, this means that you can use a
> larger time constant in the control loop and thus be less sensitive to
> short term GPS timing variations, while keeping the phase error close to
> zero

If the drift is linear, then the D part of the PID control loop will
actually slightly increase the error compared to a PI controller.

Proper adaptive control systems can also model higher order (ie changes
that have components with a second or third (or higher) derivative) and
the more fancy stuff even non-linear "drift".

But the math behind that is not easy, and you need to have a good idea
what the system (including reference, "plant", "sensor" and noise sources)
looks like to build a control loop that improves on the PID controller.
It's also quite easy to botch it up and make something that performes worse
than just a P controller....

> Of course if the oscillator drift is not predictable, this won't help and
> might even make things worse.

A lot of the components of the drift of most oscillators is actually
quite predicatble. If you take a Rb vapor reference, the largest three
drift components will be aging of the cell, temperature and air pressure.
All three of them are relatively easy to model and can remove a lot
of uncertainty (how much can be removed depends highly on the make up
of the physics package).
 
> I have done some experiments with an OCXO and a controller design similar
> to the one Lars posted some time ago. I plotted the trend in the 3-hour
> average DAC values over many days and used Excel to do a least-squares fit
> to that data. As long as the oscillator is powered on continuously, this
> gives an R^2 of over 90%, so the linearity of the drift is very good. If I
> use this slope as a correction factor, i.e. adding X DAC counts per day to
> the output of the PI control algorithm, it significantly reduces the
> average TIC error at long time constants

You could use a simple, single variable Kalman filter control loop to
improve your PI controller. Just assume linear aging and let the
Kalman filter predict it. For a gentle introduction into Kalman filters
have a look at [1]. And yes this of course reduces the average TIC error,
as you are removing one of the systematics, which has a relatively high
contribution to the TIC error. The better the model of the system you
are using and thus the more systematics you compensate for, the smaller
the error will become and the more it will look like uncorrelated noise.
But as I have written above, once you start doing more complex models,
it gets harder to actually improve the output instead of detoriating it.
If you make a mistake in the model, it will predict the wrong thing
and thus correct into the wrong direction. And more often than not
the detoriation will be larger than what the total gain of a simpler
model would have been.

For further reading I recommend to have a look at [2] to get the basics
and google for "adaptive control" and "system identification".

			Attila Kinali


[1] "Kalman Filtering", by Dan Simon, 2001
http://academic.csuohio.edu/simond/courses/eec644/kalman.pdf

[2] "Feedback control of dynamic systems" by Franklin et al.

-- 
It is upon moral qualities that a society is ultimately founded. All 
the prosperity and technological sophistication in the world is of no 
use without that foundation.
                 -- Miss Matheson, The Diamond Age, Neil Stephenson



More information about the Time-nuts_lists.febo.com mailing list