Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Daten Auslesen: Unterschied zwischen den Versionen

Aus RadioWiki
Hgz (Diskussion | Beiträge)
Hgz (Diskussion | Beiträge)
Zeile 89: Zeile 89:
=== Server-Prozess ===
=== Server-Prozess ===


Auf dem Radioiden muß eine Instanz von '''ratsche''' im Servermodus laufen, der daemon-prozess ist folgendermassen zu starten:
Auf dem Radioiden muß eine Instanz von '''ratsche''' im Servermodus laufen, der Daemon-Prozess ist folgendermassen zu starten:
   ratsche -d -x /home/hgz/svnlocal/hgz/macros
   ratsche -d -x /home/hgz/svnlocal/hgz/macros
Das Argument zum Parameter -x ist der Ort der ausführbaren Makros, wie z.b. '''rt_scan_equ''', es muß also nicht unbedingt genau obige Zeile sein, wichtig ist nur das Macro-Verzeichnis irgendeiner lokalen Kopie des SVN-Repos (im obigen Fall meine lokale Arbeitskopie) anzugeben.
Das Argument zum Parameter -x ist der Ort der ausführbaren Makros, wie z.b. '''rt_scan_equ''', es muß also nicht unbedingt genau obige Zeile sein, wichtig ist nur das Macro-Verzeichnis irgendeiner lokalen Kopie des SVN-Repos (im obigen Fall meine lokale Arbeitskopie) anzugeben.


In Zukunft (irgendwann Jan-März) werde ich ein Start-Skript für den Radioiden schreiben, das automatisch den ratsche-daemon startet, dann haben wir eine Sorge weniger. Bis dahin bitte nach Neustart Radioid obige Zeile einmalig ausführen (wenn der Daemon bereits läuft wird jedoch keine zweite Instanz gestartet, der Aufruf gibt dann eine entsprechende Info-Meldung aus).
In Zukunft (irgendwann Jan-März) werde ich ein Start-Skript für den Radioiden schreiben, das automatisch den ratsche-daemon startet, dann haben wir eine Sorge weniger. Bis dahin bitte nach Neustart Radioid obige Zeile einmalig ausführen (wenn der Daemon bereits läuft wird jedoch keine zweite Instanz gestartet, der Aufruf gibt dann eine entsprechende Info-Meldung aus).


=== Benutzung von '''RATSCHE''' ===
=== Benutzung von '''RATSCHE''' ===

Version vom 13. Januar 2011, 12:42 Uhr

Aufbau der Datenaquisition (DAQ)

Roh-Datenformat

Die bei der Messung der integralen Signalintensität im 1420MHz-Band am Detektorausgang gesampelten Daten werden im AVR-ADC-Board zunächst in einem Ringpuffer einem gleitenden Mittel unterzogen. Jeweils ein über RS232 aquirierter Messwert ist also schon ein Mittel über eine (einstellbare) Puffergröße (16-32768) und somit auch mit einer Zeitkonstanten behaftet. Das acquire_ref-Macro legt diesen Messwert zusammen mit einem Zeitstempel im ASCII-Format ab. Zusätzlich werden die horizontalen und äquatorialen Koordinaten gespeichert sowie ein Flag, das angibt, ob das Signal der Antenne oder dem Referenzkanal entstammt (dieses Flag fehlt bei Aufruf des acquire-Macros):

Date Time ADC-Wert Azimut Elevation RA Dec Controller-Temp. Ref-Flag
hh:mm:ss. Counts Grad Grad h Grad °C
2010/04/19 23:25:11.765235000 13287.5 175.2 45 15.4876 4.3297 32.5 15.8 0

Benutzung der Datenaquisitions-Tools

Beispiel für Aufruf datataker:

 bin/datataker /dev/ttyS5

Obige Zeile verbindet sich mit dem ADC und gibt die Daten mit Timestamp auf stdout aus.

Um den Zusammenhang zwischen gemessenen Intensitäten und Koordinaten auszugeben ist

 macros/acquire

aufzurufen. Dieses Script gibt in dieser Reihenfolge folgende Werte auf stdout aus: timestamp ADC-Wert Azimut Höhe Stunde Deklination Controllertemperatur


 macros/acquire_ref

erweitert die Ausgabe von macros/acquire um eine weitere Spalte

per default wird hier 19 mal der feed gemessen und danach 1 mal den Referenzkanal Es gibt hier noch 3 wichtige (Stellungs)Parameter

  • 1. Averaging Anzahl default:100
  • 2. Verhältnis Signalwerte Referenzwerte default :20 heisst 19 Signal 1 Referenz
  • 3. Gesamtzahl der auszugebenden Werte default :-1 (endlos)

Log-Datenformat

Daneben läuft ein weiterer, davon unabhängiger Prozess, der alle Sensorenwerte und andere periphere Daten in regelmäßigen Zeitabständen in einer Log-Datei speichern. Dazu gehören diverse Temperaturen, Spannungen, Ströme, andere Umweltsensoren und evtl. INDI-RT-spezifische Werte, wie Motorgeschwindigkeiten o.ä. aber auch Observablen des Steuerrechners, wie z.b. die aktuelle Präzision der ntp-gesteuerten Systemuhr. Die Identifikation und ggf. Korrelation zu den Hauptdaten erfolgt wieder durch Vergabe eines eindeutigen Zeitstempels. Bsp.:

 #date time temp1 temp2 windsensor IMot1 IMot2 U1 U2 U3 U4 ntp-err
 2010/04/19 23:25:11.765235000 28.5 43.1 15 0 3.5 11.8 5.1 24.6 0.25 2.3


DAQ - Anforderungen und Vorschläge

Steuerung von Messungen

Steuerung über bash-Skripte

Das ist die flexibelste Art, Messungen auszuführen. Für die verschiedenen Aufgaben stehen im repo-tree im Unterverzeichnis macros/ (zusätzlich zu den reinen DAQ-Skripten, s.o.) folgende Steuerskripte zur Verfügung:

rt_scan_hor ... Messung in äquidistantem Grid in Horizontalkoordinaten (mind. 5 Parameter benötigt, s. Usage-Hilfe bei Aufruf ohne Parameter)

rt_scan_equ ... Messung in äquidistantem Grid in Äquatorialkoordinaten (mind. 5 Parameter benötigt, s. Usage-Hilfe bei Aufruf ohne Parameter)


Steuerung über Task Scheduler "RATSCHE"

Das sollte ab Januar 2011 die verbindliche (einzige) Möglichkeit von Messungen sein, da hier Kollisionen ausgeschlossen sind.

Server-Prozess

Auf dem Radioiden muß eine Instanz von ratsche im Servermodus laufen, der Daemon-Prozess ist folgendermassen zu starten:

 ratsche -d -x /home/hgz/svnlocal/hgz/macros

Das Argument zum Parameter -x ist der Ort der ausführbaren Makros, wie z.b. rt_scan_equ, es muß also nicht unbedingt genau obige Zeile sein, wichtig ist nur das Macro-Verzeichnis irgendeiner lokalen Kopie des SVN-Repos (im obigen Fall meine lokale Arbeitskopie) anzugeben.

In Zukunft (irgendwann Jan-März) werde ich ein Start-Skript für den Radioiden schreiben, das automatisch den ratsche-daemon startet, dann haben wir eine Sorge weniger. Bis dahin bitte nach Neustart Radioid obige Zeile einmalig ausführen (wenn der Daemon bereits läuft wird jedoch keine zweite Instanz gestartet, der Aufruf gibt dann eine entsprechende Info-Meldung aus).

Benutzung von RATSCHE

Zum Zugriff auf den Taskmanager gibt es das systemweit bekannte tool ratsche (Option -h für Kommandozeilen-Hilfe und Auflistung aller verfügbarer Optionen). Hier nur eine kurze Beschreibung der wichtigsten Optionen:

 ratsche -l

listet alle definierten Tasks auf. Die Bedeutung der einzelnen Werte ist aus dem ebenfalls ausgegebenen Header ersichtlich.

 ratsche -a <tasklist>

fügt die in der datei <tasklist> definierten Tasks hinzu. Eine Beispieldatei ist zu finden im SVN-Repo in macros/dummy_task. Am besten man legt sich eine lokale Kopie dieser Datei an, so dass es bei Veränderung dieser nicht zu SVN-Konflikten kommt, z.B. mit

 cp dummy_task tasklist

Die Datei tasklist ist dann beliebig editierbar. für alle möglichen Task-Typen ist mind. ein Beispiel angegeben. Wenn der Task von ratsche übernommen werden soll, muß natürlich die entsprechende Zeile auskommentiert sein, i.e. das führende "#" zu entfernen. Das genaue Spaltenformat ist in der Beispieldatei erläutert.

Hinweis: Momentan werden die Werte von Priority und Alt-Period noch nicht berücksichtigt. Wird in Zukunft noch implementiert (ist auf meiner ToDo-Liste irgendwo mittendrin ;)

Systemtechnik und Zeitkonstanten

Kompendium der Usage

  • Vergesslichkeit etc. zu bekämpfen ...
    • Allanplot: root # .L allanplot.C++ # allenplot() ... tatsächlich mit e, nicht a
    • Macros: (zB)
      • <makro>.C (zuvor <file> einsetzen): # root -l <makro>.C
      • oder # root -> .x <makro.C
    • 2dfft siehe Changeset 497 for trunk

Verfahren bei zeitkonstanten Signalen

Vorbehaltlich einer grafischen Darstellung. Die Einzelschritte sind für eine rise time gerechnet, die eine Amplitude von 90% auf der Flanke ergibt [[1]]. Keine Totzeiten eingerechnet.

  • analoge Tiefpassfilterung resp. Integration im Detektor: τDet
    • 400ns für einen Anstieg von 10% auf 90% gem. Datenblatt AD8307
  • zeit- und wertdiskrete Tiefpassfilterung im Analog-Digital-Konverter (ADC): τADC
    • Der ADC sampelt mit 20kHz, d.h. der Puffer ist in 50ms einmal durchgeschoben, je nach Firmware kann sich ein Faktor 2 oder gar 4 zu diesem Wert ergeben. Also 10...200ms
  • zeit- und wertdiskrete Tiefpassfilterung (resp. Integration) per Software (precision:double): τSW
    • (Beispiel). 50 Samples von 2,5 Dauer eines Timestamps, sind (hier) 75s

Die 0,9-Zeitkonstante ergibt sich hier zu τDet2+τADC2+τSW276s. Es ist ersichtlich dass die Zeitkonstante via Suche nach dem rms-Minimum ganz überwiegend von der Software bestimmt wird.

  • Der Schwenk zum nächsten Punkt dauert ebenfalls mehrere Sekunden, sind hier alles in allem 80s.
  • Unterstellt man einmal, dass
    • die 5° breite "ideale" Keule mit 3dB Abfall in 1/5-Schritten noch akzeptable Werte bringt (sind 1°) und
    • ein 1h in RA / 15° in Dec grosses Feld interessiert, so wären
    • für diesen Scan 5h anzusetzen.
    • ideale Wetterbedingungen vorausgesetzt
  • Abhängig von der Deklination der Quelle sind hier Zu- und Abschläge möglich. Horizontprobleme, Messungen unter 30° Elevation sind in der Regel wertlos oder nicht möglich.