Modenverwirbelungskammer

Die Klasse MSC unterstützt Kalibrierung, EUT-Kalibrierung, Emission und Störfestigkeit in einer Modenverwirbelungskammer. Die einzelnen Schritte erzeugen keine voneinander isolierten Ergebnisdateien. Jeder Schritt lädt die bisherige MSC-Instanz, ergänzt Messung und Auswertung und schreibt ein neues Historien-Pickle.

Messreihenfolge

Die Hauptkalibrierung beschreibt die leere Kammer und wird nur nach relevanten Änderungen der Messumgebung wiederholt. EUTCal bestimmt anschließend den Einfluss des konkreten Prüflings. Darauf bauen Emissions- und Störfestigkeitsmessungen auf:

MainCal -> EUTCal -> Immunity
MainCal -> EUTCal -> Emission
MainCal -> EUTCal -> Immunity -> Emission

Ein späterer Schritt erhält das Pickle des vorherigen Schritts über pickle_input_filename. Das neue Pickle enthält weiterhin die vollständige Vorgeschichte.

Virtueller Ablauf

Aus dem Repository-Wurzelverzeichnis kann eine vollständige Störfestigkeits- kette ohne Hardware gestartet werden:

python script/msc-maincal.py \
    script/conf/msc-immunity-virtual/conf.py
python script/msc-eutcal.py \
    script/conf/msc-immunity-virtual/conf-eutcal.py
python script/msc-immunity.py \
    script/conf/msc-immunity-virtual/conf-immunity.py

Eine anschließende Emissionsmessung verwendet die bereits aufgebaute Historie:

python script/msc-emission.py \
    script/conf/msc-emission-virtual/conf-after-immunity.py

Die Konfigurationsdateien legen die Pickle-Verweise bereits passend für diese Reihenfolge fest. Für einen einzelnen Schritt muss das erwartete Eingangs-Pickle daher vorhanden sein.

Ausgaben und Wiederanlauf

Jedes Skript schreibt typischerweise:

  • ein finales Historien-Pickle;

  • ein Autosave-Pickle während der Messung;

  • Roh- und Auswertedaten im DAT-Format;

  • ein Textlog.

Wird ein gültiges Autosave gefunden, setzt das Skript die unterbrochene Messroutine an der gespeicherten Stelle fort. Bereits vollständig gemessene Punkte werden nicht erneut aufgenommen. Nach erfolgreichem Abschluss wird das Autosave entfernt.

Bedienoberflächen

Zu den vier Textskripten existieren Qt-Varianten mit dem Namenszusatz -qt. Beide Bedienformen verwenden dieselben Messklassen und Konfigurationsdateien. RF-Off und Abbruch bleiben Teil der Messlogik und dürfen nicht ausschließlich von der Oberfläche abhängen.

EUT-Überwachung

Die normale MSC-Störfestigkeitsmessung und die Schwellwertsuche verwenden strukturierte EUT-Ereignisse. Eine manuelle Intervention über Tastatur oder GUI bleibt immer aktiv. eut_monitor kann zusätzlich einen automatischen Monitor oder eine Liste von Monitoren aufnehmen, etwa für Kommunikation, Kameraauswertung oder Prüfpegel. Blockierende Hardwarezugriffe gehören in einen ThreadedEUTMonitor.

performance_criterion wählt das Leistungskriterium A, B oder C. Für B und C kann post_exposure_timeout eine Beobachtungsphase nach dem Abschalten von RF öffnen, in der Erholung und Funktionszustand erfasst werden. eut_event_policy legt unabhängig davon fest, ob ein Ereignis die Messung fortsetzt, wiederholt oder beendet. Ein Ereignis mit safety_action="rf_off" schaltet RF unmittelbar ab.

Messung und Auswertung speichern die Informationen unter:

  • rawData_Immunity[description]["performance_criterion"];

  • rawData_Immunity[description]["eutstatus"][...]["eut_event"];

  • processedData_Immunity[description]["performance_assessment"];

  • processedData_Immunity[description]["performance_assessment_by_exposure"];

  • processedData_Immunity[description]["performance_assessment_by_frequency"].

Historische Textzustände bleiben auswertbar. Neue Messungen schreiben immer das strukturierte Ereignis zusätzlich zum kompakten Textstatus. Ereignisse unterschiedlicher Tunerpositionen werden zunächst getrennt bewertet und erst danach zusammengefasst; Erholung an einer Position kann daher keine andere Exposition nachträglich bestehen lassen.

Die anwendungsorientierte EUT-Monitoring-Anleitung enthält vollständige Parameter- und Implementierungsbeispiele.

Schwellwertsuche

ImmunityThresholdKernel erhöht die elektrische Feldstärke schrittweise, bis die EUT-Überwachung eine Beeinträchtigung meldet oder die größte konfigurierte Feldstärke erreicht ist. Der Kernel besitzt weder Geräte noch einen Messgraphen. Er erzeugt ausschließlich Kommandos; Measure_Immunity führt diese aus und schaltet bei einem EUT-Ereignis mit safety_action="rf_off" unmittelbar RF ab.

Eine lauffähige virtuelle Konfiguration liegt unter script/conf/msc-immunity-virtual/conf-immunity-threshold.py. Sie wird nach MainCal und EUTCal gestartet:

python script/msc-immunity.py \
    script/conf/msc-immunity-virtual/conf-immunity-threshold.py

Die wesentlichen Kernelparameter sind:

field_levels

Streng aufsteigende Feldstärken als Quantity(EFIELD, ...). Reine Zahlen werden als V/m interpretiert.

backtrack_levels

Anzahl der Feldstufen, um die der Startpunkt bei der nächsten Frequenz gegenüber der zuletzt geprüften Stufe zurückgesetzt wird.

dwell

Beobachtungszeit des EUT je Feldstärke und Tunerposition.

eut_monitor

Optionale automatische Überwachung. Die manuelle Intervention über keylist bleibt unabhängig davon immer verfügbar.

Die strukturierten Ergebnisse stehen im Historien-Pickle unter rawData_Immunity[description]["threshold_search"][frequency]. Ein Eintrag enthält mindestens status, field, level_index, tuner_position und gegebenenfalls das auslösende eut_event. Autosave und Wiederanlauf arbeiten auf der Kombination aus Frequenz, Tunerposition und Feldstufe; vollständig gemessene Expositionen werden nicht wiederholt.