Guida per l’astronomo

In questa sezione viene descritto come interagire con il DewarPositioner tramite la sua console di operator input. Per avviare tale console, si esegua il comando operatorIpunt specificando come target RECEIVERS/DewarPositioner:

$ operatorInput RECEIVERS/DewarPositioner

Esecuzione del setup

Il DewarPositioner gestisce tutti i derotatori alla stessa maniera, per cui in fase di setup è necessario indicare il codice del derotatore che si intende utilizzare. Il setup viene eseguito con il comando derotatorSetup:

> derotatorSetup=CODE

I codici sono i medesimi che vengono utilizzati per effettuare il setup dell’antenna. Ad esempio, se si vuole utilizzare il derotatore del ricevitore in banda K di SRT:

> derotatorSetup=KKG

Al termine del setup il derotatore sarà pronto per essere utilizzato. Il comando derotatorGetActualSetup restituisce il setup attuale, mentre il comando derotatorIsReady ci dice se il derotatore è pronto per essere movimentato:

> derotatorGetActualSetup
KKG
> derotatorIsReady
True

Durante il setup al derotatore viene comandata la posizione 0, che è quella scelta per l’allineamento iniziale. Ad esempio, per il il derotatore del ricevitore in banda K di SRT, la posizione iniziale è quella in cui i tre feed 3, 0, 6 sono paralleli all’orizzonte, con il feed 3 a est.

Possiamo verificare la posizione con il comando derotatorGetPosition:

> derotatorGetPosition
0.0084d

La d sta ad indicare che il valore numerico rappresenta un angolo espresso in gradi decimali.

Note

Il valore restituito potrebbe essere diverso da zero, per qualche cifra decimale, come nell’esempio appena mostrato. Questo è normale, ed è dovuto al fatto che il movimento del motore avviene a step, per cui i valori di posizionamento sono discreti.

Il setup infine imposta i valori di default per la configurazione e la modalità di riavvolgimento:

> derotatorGetConfiguration
FIXED
> derotatorGetRewindingMode
AUTO

Parleremo delle configurazioni e del riavvolgimento nelle prossime sezioni.

Configurazione

Il DewarPositioner ha sette configurazioni: fixed, best space coverage, bsc optimized, custom, custom optimized, aligned e aligned optimized. Il comando derotatorSetConfiguration consente all’utente di impostare la configurazione desiderata, mentre il comando derotatorGetConfiguration di leggerla:

> derotatorSetConfiguration=FIXED
> derotatorGetConfiguration
FIXED
> derotatorSetConfiguration=CUSTOM
> derotatorGetConfiguration
CUSTOM

Le configurazioni aligned e aligned_opt non sono al momento disponibili:

> derotatorSetConfiguration=ALIGNED
Error - configuration ALIGNED not available

Vediamo ora nel dettaglio le varie configurazioni, suddividendole in statiche e dinamiche.

Configurazioni statiche

Nelle configurazioni statiche la posizione del derotatore non cambia al variare della posizione dell’antenna o dell’asse di scansione.

Configurazione fixed

In questa configurazione, che è quella che viene impostata per default dal setup, la posizione del derotatore viene mantenuta fissa al variare della posizione dell’antenna, e questo è il motivo per cui le è stato assegnato il codice identificativo FIXED.

Nella configurazione FIXED è possibile impostare la posizione del derotatore utilizzando il comando derotatorSetPosition:

> derotatorSetConfiguration=FIXED
> derotatorSetPosition=30d
> derotatorGetPosition
30d

Se il derotatore si trova in una certa posizione \(P_x\) e viene impostata la modalità FIXED, viene tenuta la posizione \(P_x\). Il derotatore quindi non viene riportato in posizione di zero:

> derotatorGetPosition
50d
> derotatorSetConfiguration=FIXED
> derotatorGetConfiguration
FIXED
> derotatorGetPosition
50d
> derotatorSetPosition=10d
> derotatorGetPosition
10d

Configurazioni dinamiche

Nelle configurazioni dinamiche, a differenza di quelle statiche, il DewarPositioner aggiorna la posizione del derotatore in funzione della posizione dell’antenna, al fine di compensare l’angolo parallatico (più un eventuale contributo del galactic parallactic angle, a seconda dell’asse di scansione).

Nelle configurazioni dinamiche la posizione del derotatore è data dalla seguente equazione:

\[P(az, el) = P_{is} + P_{ip}(az_0, el_0) + P_{dp}(az, el)\]

dove az ed el sono rispettivamente l’azimuth e l’elevazione dell’antenna, mentre:

  • \(P_{is}\) è la initial static position, ovvero una posizione (letta dal Configuration Data Base, CDB) che non dipende dall’azimuth ed elevazione dell’antenna ma solamente dall’asse di scansione

  • \(P_{ip}\) è la initial parallactic position, ovvero il valore dell’angolo parallatico ad inizio scansione: questo dipende sia dall’asse di scansione (vale 0 per gli assi HOR_LON e HOR_LAT) sia dal dal puntamento (azimuth, elevazione e settore)

  • \(P_{dp}\) è il delta di angolo parallatico rispetto a \(P_{ip}\)

Nelle configurazioni ottimizzate (BSC_OPT e CUSTOM_OPT) si ha \(P_{ip} = 0\). Queste configurazioni sono utili quando si utilizza un derotatore con un limitato range di escursione (ad esempio, quello del ricevitore S-Band di SRT).

Oltre al fatto che sia ottimizzata o meno, ciò che differenzia una configurazione dinamica dall’altra è il valore della posizione iniziale \(P_{ip}\), perchè la funzione di compensazione dell’angolo parallatico non cambia, e vale 0 quando l’asse di scansione è HOR_LAT o HOR_LON, è il risultato della funzione getParallacticAngle() quando l’asse di scansione è TRACK, EQ_LON, EQ_LAT o GCIRCLE:

def getParallacticAngle(latitude, az, el):
    p = atan2(-sin(az), tan(latitude)*cos(el) - sin(el)*cos(az))
    return degrees(p)

mentre è dato dalla funzione getGalacticParallacticAngle() quando l’asse è GAL_LON o GAL_LAT:

def getGalacticParallacticAngle(latitude, az, el, ra, dec):
    p = PosGenerator.getParallacticAngle(latitude, az, el)
    g = PosGenerator.getGalacticAngle(ra, dec)
    return p + g

def getGalacticAngle(ra, dec):
    # North celestial pole coordinates - (j2000)
    # ncp = ('12 51 26.28', '27 07 41.7')
    ra0 = 3.3660332687500043
    dec0 = 0.47347728280415174
    g = atan2(sin(ra-ra0), cos(dec)*tan(dec0) - sin(dec)*cos(ra-ra0))
    return degrees(g)

Quando viene impostata una configurazione, la posizione del derotatore non viene aggiornata, visto che non è ancora noto l’asse di scansione. L’aggiornamento viene comandato nel momento in cui DISCOS avvia lo scan.

Configurazione best space coverage

Il codice associatò a questa configurazione è BSC:

> derotatorSetConfiguration=BSC
> derotatorGetConfiguration
BSC

In questa configurazione il valore della posizione iniziale \(P_{ip}\) viene letto da un database di configurazione ed è tale da garantire che i feed vengano disposti in modo da avere la miglior copertura spaziale della sorgente durante la scansione.

Note

Tipicamente la miglior copertura viene ottenuta equispaziando, quando possibile, i beam nella direzione ortogonale a quella di scansione (se si sta facendo una scansione in azimuth i feed vengono equispaziati in elevazione, in modo da ottimizzare la scansione dell’area osservata).

Quando è impostata la modalità BSC, all’utente non è consentito il posizionamento del derotatore:

> derotatorSetConfiguration=BSC
> derotatorSetPosition=50d
Error - setPosition() not allowed in BSC configuration

In questa modalità l’insieme dei feed posizionati in modo da garantire la massima copertura spaziale sono stabiliti a priori (ad esempio per il banda K sono i feed 3, 0 e 6, con il 3 a est).

Configurazione BSC optimized

Questa configurazione è analoga alla best space coverage ma a differenza di quest’ultima, come abbiamo detto nella sezione Configurazioni dinamiche, il valore dell’angolo parallatico iniziale \(P_{ip}\) non viene preso in considerazione. Questa configurazione è identificata dal codice BSC_OPT:

> derotatorSetConfiguration=BSC_OPT
> derotatorGetConfiguration
BSC_OPT

Analogamente alla BSC, all’utente non è consentito il posizionamento del derotatore:

> derotatorSetConfiguration=BSC_OPT
> derotatorSetPosition=50d
Error - setPosition() not allowed in BSC_OPT configuration

Configurazione custom

In questa configurazione la posizione iniziale statica \(P_{is}\) viene impostata dall’utente, e per tale motivo a questa configurazione è stato assegnato il codice identificativo CUSTOM.

Configurazione custom optimized

Analogamente a quanto abbiamo visto per la configurazione BSC_OPT, anche in questo caso ciò che differezia la CUSTOM_OPT dalla CUSTOM è la mancanza del contributo dell’angolo parallattico iniziale \(P_{ip}\).

Interrompere l’aggiornamento

Se si vuole interrompere l’aggiornamento della posizione, si deve impostare la configurazione fixed. In questo caso il derotatore si fermerà all’ultima posizione comandata.

Riavvolgimento

Il derotatore ha una corsa limitata, per cui la sua posizione ha un limite massimo e uno minimo. Ad esempio, per il derotatore del ricevitore in banda K di SRT la massima posizione raggiungibile è 125.23 gradi, mentre la minima è di -85.77 gradi:

> derotatorSetup=KKG
> derotatorGetMaxLimit
125.2300d
> derotatorGetMinLimit
-85.7700d

Quando il derotatore sta aggiornado la sua posizione per tener conto dell’angolo parallattico, è quindi possibile che si arrivi a fine corsa. In questo caso, per default il derotatore viene riavvolto in modo automatico, e l’effetto del riavvolgimento è che il feed più vicino al fine corsa viene rimpiazzato da un altro, in modo da garantire che il derotatore abbia (durante il proseguo dello scan) la massima corsa.

Durante il riavvolgimento, la console dei ricevitori indicherà che il derotatore è in fase di riavvolgimento, e il campo rewindingOffset della medesima console riporterà l’offset che avrà la posizione al termine del riavvolgimento.