- Python 62.9%
- MATLAB 24%
- TeX 13.1%
| data | ||
| docs | ||
| matlab | ||
| messdaten | ||
| protocol | ||
| scripts | ||
| src/praktikum_rg_gui | ||
| tests | ||
| .gitignore | ||
| Praktikum_Regelguete.spec | ||
| PROJECT_CONTEXT.md | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
| run_gui_entry.py | ||
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.jsonsowie 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
- Programm starten.
- Tab
Labor-Schnelleingabeverwenden. T11,T12undTIinmseintragen oderReferenzwerte laden.- Die Phasenreserve bleibt standardmaessig auf dem Entwurfswert
65.5 deg; optional kann der HilfsrechnerPhasenreserve aus Oszi-Messungverwendet werden. Beide berechnenklicken.KR Bild 2undKR Bild 3am Versuchsaufbau einstellen.- Fuer das Fuehrungsverhalten
w = 1 Vaufschalten undx_endvom Oszilloskop eintragen. - Fuer das Stoerverhalten
z = 1 Vaufschalten undx_endvom Oszilloskop eintragen. Aktuelle Werte fuer Protokoll merkenklicken.- Am Ende
Protokolldaten speichernklicken.
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.jsonund LaTeX-Generierung aus Messreihen erzeugen
Matlab-Voraussetzungen
- Standardmaessig ist Matlab nicht noetig, um
KRim 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
matlabimPATHerreichbar sein oder ueberMATLAB_COMMANDgesetzt werden. - Fuer
rg_simulate_all.mist dieControl System Toolboxnoetig. - 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.jsondata/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.texprotocol/sections/06_auswertung_generated.texprotocol/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.tabBild2Führung.tabBild3Führung.tabBild1Störung.tabBild3Störung.tabprotocol_data.jsonals 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.jsondata/processed/measurement_results.csvprotocol/figures/messung_01_*.pngbismessung_05_*.pngprotocol/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_VFuehrungsverhalten:t_s,w_V,x_VStoerverhalten: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.