Das Repo für alle Assets die im Praktikum 3 benötigt werden
  • Python 62.9%
  • MATLAB 24%
  • TeX 13.1%
Find a file
2026-06-15 13:51:59 +02:00
data feat: harden qa workflow and polish gui 2026-05-29 14:45:17 +02:00
docs Complete protocol with measured oscilloscope data 2026-06-09 21:51:54 +02:00
matlab Finalize Regelguete protocol and simulation updates 2026-06-15 13:51:59 +02:00
messdaten Complete protocol with measured oscilloscope data 2026-06-09 21:51:54 +02:00
protocol Finalize Regelguete protocol and simulation updates 2026-06-15 13:51:59 +02:00
scripts Redesign GUI for oscilloscope quick entry workflow 2026-05-29 19:00:42 +02:00
src/praktikum_rg_gui Complete protocol with measured oscilloscope data 2026-06-09 21:51:54 +02:00
tests Complete protocol with measured oscilloscope data 2026-06-09 21:51:54 +02:00
.gitignore Finalize Regelguete protocol and simulation updates 2026-06-15 13:51:59 +02:00
Praktikum_Regelguete.spec Redesign GUI for oscilloscope quick entry workflow 2026-05-29 19:00:42 +02:00
PROJECT_CONTEXT.md Finalize Regelguete protocol and simulation updates 2026-06-15 13:51:59 +02:00
pyproject.toml feat: scaffold regelguete project 2026-05-29 11:26:03 +02:00
README.md Finalize Regelguete protocol and simulation updates 2026-06-15 13:51:59 +02:00
requirements.txt feat: scaffold regelguete project 2026-05-29 11:26:03 +02:00
run_gui_entry.py Redesign GUI for oscilloscope quick entry workflow 2026-05-29 19:00:42 +02:00

Praktikum 3 Regelungstechnik - Regelguete [RG]

Dieses Projekt unterstuetzt das Praktikum Regelungstechnik I, Versuch Regelguete [RG]. Der Hauptworkflow ist jetzt auf den echten Laborbetrieb mit Oszilloskop-Handeingabe ausgelegt: wenige charakteristische Werte eintragen, KR sofort berechnen, Endwerte bewerten und Ergebnisse direkt fuer das Protokoll merken.

Projektziel

  • schneller Labor-Workflow fuer Oszilloskop-Handeingaben
  • Python-GUI fuer Vorbereitung, Schnellbewertung und Protokollexport
  • optionale Matlab-Kontrolle fuer Rechenweg, zusaetzliche Referenzsimulation und ausfuehrliche Messauswertung
  • erweiterter Nebenmodus fuer Tabellen, CSV und komplette Messreihen
  • Export nach protocol_data.json sowie LaTeX-Protokollpaket

Installation

py -3.10 -m venv .venv-win310
.\.venv-win310\Scripts\python.exe -m pip install -r requirements.txt

Tests:

.\.venv-win310\Scripts\python.exe -m unittest discover -s tests -v

Start der GUI

.\.venv-win310\Scripts\python.exe scripts\run_gui.py

Alternativ:

.\.venv-win310\Scripts\python.exe -m praktikum_rg_gui.main

Schnellworkflow im Labor

  1. Programm starten.
  2. Tab Labor-Schnelleingabe verwenden.
  3. T11, T12 und TI in ms eintragen oder Referenzwerte laden.
  4. Die Phasenreserve bleibt standardmaessig auf dem Entwurfswert 65.5 deg; optional kann der Hilfsrechner Phasenreserve aus Oszi-Messung verwendet werden.
  5. Beide berechnen klicken.
  6. KR Bild 2 und KR Bild 3 am Versuchsaufbau einstellen.
  7. Fuer das Fuehrungsverhalten w = 1 V aufschalten und x_end vom Oszilloskop eintragen.
  8. Fuer das Stoerverhalten z = 1 V aufschalten und x_end vom Oszilloskop eintragen.
  9. Aktuelle Werte fuer Protokoll merken klicken.
  10. Am Ende Protokolldaten speichern klicken.

Erweiterter Modus fuer Tabellen / CSV

Der Tab Erweiterte Messdaten / CSV bleibt fuer diese Faelle erhalten:

  • komplette Sprungantworten als Messreihe erfassen
  • CSV importieren
  • Mock-Live-Daten testen
  • Matlab-Messauswertung fuer vollstaendige Zeitverlaeufe starten
  • protocol_data.json und LaTeX-Generierung aus Messreihen erzeugen

Matlab-Voraussetzungen

  • Standardmaessig ist Matlab nicht noetig, um KR im Labor zu berechnen.
  • Die KR-Berechnung ist direkt in Python implementiert.
  • Matlab dient optional zur Kontrolle, fuer die im Projekt hinterlegte Referenzsimulation und zur ausfuehrlichen Messauswertung.
  • Matlab muss ueber matlab im PATH erreichbar sein oder ueber MATLAB_COMMAND gesetzt werden.
  • Fuer rg_simulate_all.m ist die Control System Toolbox noetig.
  • Wenn Matlab fehlt, startet die GUI trotzdem und der Schnellworkflow bleibt voll nutzbar.

Beispiel:

$env:MATLAB_COMMAND = "matlab"
.\.venv-win310\Scripts\python.exe scripts\run_matlab_prepare.py

Export fuers Protokoll

  • Schnellspeichern erzeugt:
    • data/processed/protocol_quick_results.json
    • data/processed/protocol_quick_results.csv
    • aktualisiert zusaetzlich data/processed/protocol_data.json
  • Vollstaendiger Protokollexport nutzt protocol_data.json.
  • Das LaTeX-Paket entsteht mit:
.\.venv-win310\Scripts\python.exe scripts\create_protocol_package.py

Dabei werden unter anderem generiert:

  • protocol/sections/05_messwerte_generated.tex
  • protocol/sections/06_auswertung_generated.tex
  • protocol/tables/*.tex

Wenn Werte aus der Schnelleingabe stammen, wird im Protokoll explizit vermerkt, dass sie direkt am Oszilloskop abgelesen und in die Software eingetragen wurden.

Auswertung fertiger Oszilloskopdaten

Wenn bereits vollstaendige Oszilloskopmessungen vorliegen, koennen sie direkt im Projektordner messdaten/ abgelegt werden. Fuer das in diesem Projekt vervollstaendigte Protokoll wurden folgende Dateien ausgewertet:

  • Bild1Führung.tab
  • Bild2Führung.tab
  • Bild3Führung.tab
  • Bild1Störung.tab
  • Bild3Störung.tab
  • protocol_data.json als Programmausgabe mit den verwendeten Parametern

Die Matlab-Auswertung erfolgt mit:

$env:MATLAB_COMMAND = "C:\Program Files\MATLAB\R2023b\bin\matlab.exe"
& $env:MATLAB_COMMAND -batch "cd('C:/.../Praktikum_3_Reglungstechnik/matlab'); rg_run_measurement_batch"

Dadurch werden unter anderem erzeugt:

  • data/processed/measurement_results.json
  • data/processed/measurement_results.csv
  • protocol/figures/messung_01_*.png bis messung_05_*.png
  • protocol/tables/messdaten_auswertung.tex

Anschliessend kann das Protokoll mit einer lokalen TeX-Installation gebaut werden:

cd protocol
pdflatex -interaction=nonstopmode main.tex
pdflatex -interaction=nonstopmode main.tex

Das fertige PDF liegt danach unter protocol/main.pdf.

Windows-EXE bauen

.\.venv-win310\Scripts\python.exe -m pip install pyinstaller
.\.venv-win310\Scripts\python.exe scripts\build_windows_exe.py

Die fertige Anwendung liegt anschliessend unter:

dist\Praktikum_Regelguete\Praktikum_Regelguete.exe

Der komplette Ordner dist\Praktikum_Regelguete muss zusammenbleiben.

Git-Hinweise

  • generierte Dateien in data/processed/ werden nicht versioniert
  • generierte Messfiguren und LaTeX-Tabellen bleiben ausserhalb von Git
  • vor Commits lohnt sich:
git status --short

Troubleshooting

GUI startet, aber Matlab fehlt

Die Anwendung bleibt nutzbar. Der Labor-Schnellworkflow rechnet direkt in Python.

KR-Werte sehen falsch aus

Pruefen, ob T11, T12, TI wirklich in ms eingetragen wurden und ob die Phasenreserve zwischen 0 deg und 90 deg liegt.

Matlab-Pruefung schlaegt fehl

Die Python-Berechnung bleibt gueltig. Matlab ist nur Kontrolle. Fehlende Control System Toolbox blockiert vor allem die optionale Matlab-Referenzsimulation.

CSV-Import schlaegt fehl

Je nach Versuchstyp gelten diese Spalten:

  • Parameterermittlung: t_s, u_V, x_V
  • Fuehrungsverhalten: t_s, w_V, x_V
  • Stoerverhalten: t_s, z_V, x_V

LaTeX baut nicht

Zuerst scripts/create_protocol_package.py ausfuehren. Falls latexmk lokal nicht verfuegbar ist, direkt zweimal pdflatex -interaction=nonstopmode main.tex im Ordner protocol/ ausfuehren.

Weitere Dokumente