Virtueller AmplifierTest-Ablauf =============================== Das Skript ``amplifier-test.py`` kann mit virtuellen Gerätekonfigurationen ohne Laborhardware ausgeführt werden. Das ist für Entwicklung, Fehlersuche und Regressionstests gedacht. Die Standardkonfiguration bildet einen im Messrack eingebauten Verstärker mit Vorwärts- und Rückwärtsleistungsüberwachung ab. Aus dem Verzeichnis ``script`` wird der virtuelle Verstärkertest so gestartet: .. code-block:: console python amplifier-test.py conf/amplifier-test-virtual/conf.py Ein isolierter Verstärker mit direkt am Verstärkerausgang angeschlossenem Leistungsmesser wird durch die Direct-Konfiguration abgebildet: .. code-block:: console python amplifier-test.py conf/amplifier-test-direct-virtual/conf.py Diese Konfiguration setzt ``measurement_setup = "direct"``. Ihr Names-Mapping verwendet ``pm_out`` für den direkten Ausgangs-Leistungsmesser anstelle der Rack-Setup-Keys ``pm_fwd``, ``pm_bwd`` und ``output``. Die Direct-Konfiguration definiert Korrekturen für Ausgangskabel und Dämpfungsglied als passive Knoten im Graphen und referenziert sie auf den DOT-Kanten mit den üblichen Attributen ``dev`` und ``what``. Der virtuelle Direct-Ablauf nutzt zwei Kantenkorrekturen zwischen ``amp_out`` und ``pm_out`` und enthält dabei ein 40-dB-Ausgangsdämpfungsglied. Im Direct-Setup prüft ``AmplifierTest`` zusätzlich einen optionalen Leistungsmesser-Sicherheitskanal namens ``MAXIN``, bevor ein Pegel am Signalgenerator gesetzt wird. Die Prüfung schätzt den Leistungsmessereingang aus dem angeforderten Signalgeneratorpegel und der Graphkorrektur von ``sg`` nach ``pm_out``. Die virtuelle Direct-Konfiguration und die R&S-NRP-Z21-Konfiguration stellen einen solchen ``MAXIN``-Kanal bereit. Fehlt er in der ausgewählten Leistungsmesserkonfiguration, steht dieser zusätzliche Leistungsmesserschutz nicht zur Verfügung. Dieselbe Konfiguration kann über die Qt-Oberfläche gestartet werden: .. code-block:: console python amplifier-test-qt.py conf/amplifier-test-virtual/conf.py Die Konfigurationen verwenden virtuelle Treiber für Signalgenerator, Verstärker und Leistungsmesser sowie virtuelle 0-dB-Pfadkorrekturen. Ausgabedateien werden jeweils in das ``output``-Verzeichnis der Konfiguration geschrieben. Die virtuelle Konfiguration deaktiviert die Kompressionsauswertung mit ``do_evaluation = False``. Die virtuellen Leistungsmesserdaten sind deterministisch und eignen sich für Messablauf, Logging und Pickle-Workflow, bilden aber keine realistische Kompressionskennlinie ab. Die reale Direct-Konfiguration unter ``conf/amplifier-test-direct`` ist ein erster hardwareorientierter Stand mit R&S SMF100A, BLMA-Verstärkerkonfiguration und einer R&S-NRP-Z21-Leistungsmesserkonfiguration. Ihre Korrekturknoten für direktes Ausgangskabel und Dämpfungsglied verwenden zunächst lokale 0-dB-Platzhalterdaten. Für reale Messungen müssen diese durch die gemessenen Korrekturdaten ersetzt werden. Das ist auch nötig, damit die ``MAXIN``-Abschätzung den tatsächlichen Leistungsmessereingang beschreibt. Das Skript schreibt: .. list-table:: :header-rows: 1 * - Datei - Zweck * - ``amplifier-test-virtual.p`` - Finales ``AmplifierTest``-Pickle mit der gemessenen Historie. * - ``amplifier-test-virtual-after-measure-.p`` - Zwischen-Pickle nach dem Messschritt. * - ``amplifier-test-virtual.log`` - Textlog des Messlaufs. Der hardwareunabhängige Pfad wird durch ``test_amplifier_test_script.py`` abgedeckt. Der fokussierte Test kann aus dem Repository-Wurzelverzeichnis gestartet werden: .. code-block:: console PYTHONPATH=src:../scuq/src python -m pytest test/test_amplifier_test_script.py