Ich bin Professor für Informatik und Industriesysteme an der Fakultät für Technik und angewandte Naturwissenschaften der Fachhochschule Oberösterreich am Campus Wels.
Ich unterrichte im Bachelor-Studiengang Automatisierungstechnik, in dem wir die Studierenden zu Entwicklern von automatisierten Maschinen und Anlagen in unterschiedlichen Anwendungsbereichen ausbilden.
Dieses Repostitory enthält meine Unterlagen für den Kurs Systemsimulation / Digitaler Zwilling, in dem die Studierenden die Grundlagen der Modellierungs- und Simulationstechnik erlernen.
Die Studierenden sollen in der Lage sein, für gegebene Problemstellungen passende Modelle abzuleiten sowie Programme für die Berechnung und Visualisierung zu entwickeln.
Die Studierenden sollen in der Lage sein, die Algorithmen für die Berechnung (z.B. Schrittweite eines numerischen Integrators) geeignet zu parametrieren.
Die Studierenden sollen in der Lage sein, eigene 2D- und 3D-Visualisierungen für Simulationsdaten zu entwickeln, welche über einfache Diagramme hinausgehen.
Im Kurs betrachten wir sowohl statische als auch dynamische Modelle. Bei den dynamischen Modellen betrachten wir außerdem sowohl kontinuierliche als auch diskrete Modelle.
Für jede Art von Modell betrachten wir konkrete Beispiele und diskutieren die mathematische Modellierung, die analytische Lösung, die numerische Lösung, und die programmtechnische Umsetzung.
Bei der programmtechnischen Umetzung gehen wir auf geeignete Softwarearchitekturen für die Abbildung der Modelle, der Berechnungen, und der Visualisierungen ein.
Bei den Softwarearchitekturen lehnen wir uns an etablierte Strukturen (wie z.B. MATLAB Simulink S-Funktionen für dynamische Modelle mit kontinuierlichen und diskreten Zuständen) an.
Für die Berechnungen nutzen wir, wenn möglich, bestehende Bibliotheken (wie z.B. Math.NET Numerics für die Lösung von linearen Gleichungssystemen).
Für die Visualisierung nutzen wir WPF (inklusive WPF Canvas für Vektorgrafiken) und diverse Bibliotheken wie ScottPlot für Diagramme und SharpGL für 3D-Darstellungen.
Für die Präsentationsfolien (bzw. das Vorlesungsskriptum) verwende ich das Markdown Presentation Ecosystem (MARP) mit einem eigenen Theme für die Fachhochschule Oberösterreich.
Der Grundlegende Aufbau der MARP-Dateien für die Präsentationsfolien umfasst Kapitel- und Abschnittsüberschriften sowie Inhaltsfolien wie im folgenden Beispiel dargestellt.
---
marp: true
theme: fhooe
header: Kapitelüberschrift
footer: Dr. Georg Hackenberg, Professor für Informatik und Industriesysteme
paginate: true
math: mathjax
---
<!-- Platzhalter für Kapitelbildbeschreibung -->

# Kapitel N: Kapitelüberschrift
Dieses Kapitel umfasst die folgenden Abschnitte:
- N.1: Abschnittsüberschrift 1
- N.2: Abschnittsüberschrift 2
- ...
---
<!-- Platzhalter für Abschnittsbildbeschreibung -->

## N.M: Abschnittsüberschrift
Dieser Abschnitt umfasst die folgenden Inhalte:
- Inhalt 1
- Inhalt 2
- ...
---
### Inhaltsfolienüberschrift
Inhaltsfolientext
...Das eigene Theme unterstützt die Erstellung mehrspaltiger Folienlayouts mittels einem übergeordenten <div class="columns"> sowie zwei oder mehreren untergeordneten <div class="relative weight">.
<div class="columns">
<div class="one|two|three|four|five|six">
Inhalt der ersten Spalte
</div>
<div class="one|two|three|four|five|six">
Inhalt der zweiten Spalte
</div>
...
</div>Der Inhalt einer Folie oder Folienspalte kann ein Text (inklusive Listen und Formeln), eine Tabelle, ein Programmcode, oder eine Referenz auf eine Bilddatei mit Beschreibung der Bildinhalte sein.
<div class="columns">
<div class="one|two|three|four|five|six">
Folientext (inklusive Listen und Formeln)
</div>
<div class="one|two|three|four|five|six">
| Spalte A | Spalte B | ... |
|-|-|-|
| Inhalt 1 | Inhalt 2 | ... |
| ... | ... | ... |
</div>
<div class="one|two|three|four|five|six">
```Programmiersprache
Quelltext
```
</div>
<div class="one|two|three|four|five|six">

</div>
</div>Die Bilder selbst können als Fotografie und Screenshot oder mit Nano Banana, Tikz, und Mermaid.js erstellt werden. Die Quelldateien von Tikz- und Mermaid.js Diagrammen werden in Visual Studio Code mittels RunOnSave automatisch in SVG-Dateien kompiliert.
Dieses Repository ist nach folgendem Schema aufgebaut:
- Der Ordner
./Folienenthält die Foliensätze - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]enthält den Foliensatz für KapitelXX - Die Datei
./Folien/[XX_Kapitel_Bezeichnung]/Titelbild.jpgist das Titelbild zum Kapitel (mit Nano Banana generiert) - Die Datei
./Folien/[XX_Kapitel_Bezeichnung]/Folien.mdenthält den MARP-Markdown für den Foliensatz des Kapitels - Die Datei
./Folien/[XX_Kapitel_Bezeichnung]/Notizen.mdenthält Notizen zum Foliensatz (z.B. größere TODOs) - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]/Diagrammeenthält die Tikz- und Mermaid-Diagramme - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Diagramme/[Diagrammname].tikz.texenthält den Quelltext einer Tikz-Grafik - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Diagramme/[Diagrammname].tikz.svgenthält die kompilierte SVG-Datei für eine Tikz-Grafik - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Diagramme/[Diagrammname].mmdenthält den Quelltext einer Mermaid.js-Grafik - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Diagramme/[Diagrammname].svgenthält die kompilierte SVG-Datei für eine Mermaid.js-Grafik - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]/Illustrationenenthält mit Nano Banana generierte Illustrationen - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Illustrationen/[Illustrationsname].jpgist eine spezielle Illustration - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]/Screenshotsenthält Screenshots von selbst entwickelten Simulationsprogrammen - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Screenshots/[Screenshotname].jpgist ein spezieller Screenshot - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]/Tafelbilderenthält Fotografien von Tafelbildern, die während dem Unterricht entstanden sind - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Tafelbilder/[Tafelbildname].jpgist ein spezielles Tafelbild - Der Ordner
./Folien/[XX_Kapitel_Bezeichnung]/Fotografienenthält alle sonstigen Fotografien von Personen, Gegenständen, und Situationen - Der Datei
./Folien/[XX_Kapitel_Bezeichnung]/Fotografien/[Fotografiename].jpgist eine spezielles Fotografie - Der Ordner
./Quellenenthält die zugehörigen C#-Implementierungen nach Semester und Thema geordnet - Der Ordner
./Quellen/[WSXX]enthält die C#-Implementierung aus dem WintersemesterXX - Der Ordner
./Quellen/[SSXX]enthält die C#-Implementierung aus dem SommersemesterXX - Der Ordner
./Quellen/[WS|SSXX]/[Projektname]enthält die C#-Implementierung aus einem speziellen Semester und zu einem spezifischen Thema - Der Ordner
./Vorlagenenthält Vorlagen für Tikz- und Mermaid.js-Grafiken