dijous, 2 d’agost de 2012

GPSDO (VIII) : Primers intents de sincronització

Després de l'època d'exàmens de juny he començat les primeres proves de sincronització entre el mòdul GPS i l'oscil·lador de rubidi.

Per tal d'arribar a aquest punt he hagut de definir funcions que em permeten comunicar-me amb l'oscil·lador de rubidi i modificar la seva freqüència d'eixida, i desenvolupar una funció de filtrat digital per eliminar el soroll del senyal procedent del mòdul GPS.

El prototip que estic analitzant mesura el temps que transcorre entre l'aparició del senyal del mòdul GPS, sincronitzat amb el segon atòmic dins d'un límit estret, i el procedent de l'oscil·lador principal, comptant cicles d'un tercer rellotge intern utilitzant un comptador integrat al microprocessador, interpreta les dades i les transmet a l'ordinador a través del port sèrie amb el protocol RS-232.

Per començar les proves vaig programar l'oscil·lador amb un "offset" arbitrari de -1000, i vaig deixar que el sistema evolucionara sense cap tipus de realimentació:



L'eix vertical representa la diferència de temps entre els senyals expressada en nanosegons (10^-9 segons), i les mesures s'efectuen cada segon, aplicant un filtrat de segon ordre amb una constant de temps de 15 minuts per tal d'eliminar el soroll a curt termini. A la gràfica s'aprecia que la diferència de temps es redueix, per tant podem deduir que un offset de -1000 fa que l'oscil·lador genere una freqüència lleugerament superior als 10 MHz.

Provem augmentant l'offset a -1500, i repetim l'experiència en bucle obert i amb les mateixes condicions:



Intencionadament he representat la gràfica a la mateixa escala que l'anterior per poder distingir millor les diferències entre experiències. En aquest cas, l'offset de -1500 implica una freqüència lleugerament menor als  10 MHz que vull obtenir. Sabent que el sistema d'ajustament de la freqüència és lineal, interpolem fins trobar un valor d'offset que ens dóne el valor de freqüència consigna, i el resultat és -1396:


Aquest darrer valor d'offset és bo a llarg termini (l'oscil·lador està perdent 3,7 picosegons per segon, una milèsima de segon cada 10 anys aproximadament), però l'objectiu últim és minimitzar les "ondulacions" de la diferència de fase i estabilitzar-la en un valor consigna, i per tal d'aconseguir-ho haurem d'implementar un sistema en bucle tancat que actualitze el valor de l'offset en continu.

La primera prova l'he portada a terme implementant un controlador tipus P, amb un guany de 1000:


El controlador tipus P facilita el control de l'error, però es pot observar que introdueix correccions molt elevades que posteriorment ha de contrarestar utilitzant una correcció més elevada i de signe contrari. És per això que hauré de programar un sistema de control més evolucionat, em decantaré per un controlador tipus PI o PID, del qual hauré de determinar els paràmetres per tal d'optimitzar la dinàmica de correcció i d'evitar les possibles sobrecorreccions.

El primer intent de controlador PI va donar els següents resultats:


Podem apreciar clarament l'acció de control, que presenta una sobreoscil·lació important, i que porta el sistema al valor consigna de 500 000 nanosegons després d'uns 10 minuts de maniobra, actualitzant el valor d'offset de l'oscil·lador principal cada 10 segons.

Si observem més detalladament el comportament en la zona estabilitzada podrem determinar la bondat del controlador:

La diferència entre els valors extrems és de l'ordre de 200 nanosegons, intentaré rebaixar aquest valor canviant els paràmetres del controlador en pròximes entrades.