discos
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
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.
Il DewarPositioner
ha sette configurazioni: fixed <fixed>
, best space coverage <bsc>
, bsc optimized <bsc_opt>
, custom <custom>
, custom optimized <custom_opt>
, 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 <statics>
e dinamiche <dynamics>
.
Nelle configurazioni statiche la posizione del derotatore non cambia al variare della posizione dell'antenna o dell'asse di scansione.
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 Px e viene impostata la modalità FIXED
, viene tenuta la posizione Px. Il derotatore quindi non viene riportato in posizione di zero:
> derotatorGetPosition
50d
> derotatorSetConfiguration=FIXED
> derotatorGetConfiguration
FIXED
> derotatorGetPosition
50d
> derotatorSetPosition=10d
> derotatorGetPosition
10d
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) = Pis + Pip(az0, el0) + Pdp(az, el)
dove az
ed el
sono rispettivamente l'azimuth e l'elevazione dell'antenna, mentre:
- Pis è 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
- Pip è 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
eHOR_LAT
) sia dal dal puntamento (azimuth, elevazione e settore) - Pdp è il delta di angolo parallatico rispetto a Pip
Nelle configurazioni ottimizzate (BSC_OPT
e CUSTOM_OPT
) si ha Pip = 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 Pip, 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.
Il codice associatò a questa configurazione è BSC
:
> derotatorSetConfiguration=BSC
> derotatorGetConfiguration
BSC
In questa configurazione il valore della posizione iniziale Pip 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).
Questa configurazione è analoga alla best space coverage <bsc>
ma a differenza di quest'ultima, come abbiamo detto nella sezione dynamics
, il valore dell'angolo parallatico iniziale Pip 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
In questa configurazione la posizione iniziale statica Pis viene impostata dall'utente, e per tale motivo a questa configurazione è stato assegnato il codice identificativo CUSTOM
.
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 Pip.
Se si vuole interrompere l'aggiornamento della posizione, si deve impostare la configurazione fixed <fixed>
. In questo caso il derotatore si fermerà all'ultima posizione comandata.
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.