Zum Inhalt springen

Virtuelle Sensorsysteme und simulierte Maschinendaten programmieren

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

Virtuelle Sensorsysteme und simulierte Maschinendaten programmieren

QR-Code



Einleitung

Du entwickelst ein lokales, vollständig simuliertes Prüf- und Wartungslabor für fiktive Variantenbauteile. Das Lernprodukt ist ein Seed-basierter Sensordaten-Simulator: Er erzeugt Temperatur- und Schwingungswerte, überträgt sie als CSV-Daten und unterstützt die Unterscheidung von normaler Streuung, Sensorausfall und langsamem Drift. Mit identischem Seed und identischen Parametern erhältst du dieselbe Datenfolge. Du prüfst einen Ausfall und begründest einen Driftbefund selbst.

Zielgruppe: Auszubildende im 3. Ausbildungsjahr. Voraussetzung: A1 und A2 sowie fachliche Grundlagen des Modellfalls; grundlegende Python-Kenntnisse, Dateien und Messgrößen. Die vorhandene Kursgrundlage dient als Einstieg: Aktiviere daraus Begriffe zu Variante, Prüfung und Dokumentversion in fünf Minuten. Ihr konkreter Seiteninhalt konnte am 22.10.2026 technisch nicht ausgelesen werden; es werden deshalb keine unbelegten Aussagen darüber gemacht.

Arbeitsmittel: Python 3 mit Standardbibliothek, Texteditor und Tabellenprogramm; alles offline und ohne bezahltes KI-Konto möglich. Grenze: ausschließlich synthetische Daten; keine Verbindung zu echten Maschinen, kein Steuerbefehl, keine Schutzfunktion, keine Sicherheitsfreigabe. Unabhängiges Bildungsangebot, keine offizielle Zertifizierung durch Liebherr oder eine IHK. Lernweg: verstehen → geführtes Programm → Tests → eigene Erweiterung → begründete Diagnose.


Vom Sensor zum überprüfbaren Datenmodell


Signal, Messwert und virtuelle Messstelle

Ein physischer Sensor wandelt eine physikalische Größe in ein Signal um. Hier entsteht der Messwert ausschließlich rechnerisch: virtueller Sensor bedeutet in diesem Lernprodukt ein Softwaremodell, das plausible Beispieldaten ausgibt; es behauptet nicht, eine reale Maschine zu messen. Ein Datensatz besteht aus Zeitindex, Messstellenname, Wert, Einheit, Qualitätskennzeichen und Modellversion. Abtastrate heißt Zahl der erfassten Werte pro Zeit; Rauschen bezeichnet zufällige Streuungen um ein Modell; Drift ist eine systematische, über mehrere Zeitpunkte zunehmende Abweichung.

Blockdiagramm eines intelligenten Sensors mit Eingang, Verarbeitung und Ausgang

Bild 1: Sensor und Verarbeitung. Übertrage das Blockbild gedanklich auf simulierte Werte: Eingangsgröße = Modellparameter; Verarbeitung = Python-Funktion; Ausgang = CSV-Zeile. Ohne Bild: Eingabe → Messwertgenerierung → Datenformat → Auswertung.

Ein schematischer Sensor mit Schwelle und Differenzausgang

Bild 2: Eine Schwelle ist eine Modellentscheidung, kein eigenständiger Beweis für einen technischen Defekt. Ohne Bild: Ein beobachteter Wert wird mit einer vereinbarten Vergleichsregel geprüft.


Versionierter Modellfall

Das fiktive Labor heißt Variantenlabor Nord. Es prüft ausschließlich erfundene Bauteilvarianten VB-A und VB-B. Beispiel-Dokumente: modellfall_v1.0.txt (Annahmen, Größen und Einheiten), schema_v1.0.csv (Spalten), szenarien_v1.0.txt (normal, ausfall, drift), tests_v1.0.txt (Sollkriterien). Die Namen bezeichnen selbst angelegte Beispieldokumente; sie sind weder reale Werksunterlagen noch Normblätter.

Feld Beispiel Bedeutung
index 12 deterministischer Zeitschritt, noch kein echter Zeitstempel
variant VB-A frei erfundener Variantenbezeichner
temp_C 45.72 simulierte Temperatur in Grad Celsius
vibration_mm_s 2.07 simulierte Schwinggeschwindigkeit als Modellwert
quality ok oder missing Datenqualität, nicht die Sicherheit der Maschine
scenario drift absichtlich gewählte Fehlerart

Wichtig: Alle Zahlen sind didaktische Modellannahmen, keine zulässigen Betriebsgrenzen. Für VB-B darfst du später einen anderen Grundwert modellieren. Dokumentiere jede Änderung unter einer neuen Versionskennung.


Sensorwerte mit Seed reproduzierbar erzeugen


Basissignal und kontrollierter Zufall

Das Basismodell verwendet 45 °C als Temperaturstartwert, eine kleine zeitliche Erwärmung von 0,05 °C je Schritt und Rauschen. Für die simulierte Schwingung gelten 2,0 mm/s und ein eigenes Rauschen. Die Funktion random.Random(seed) erzeugt eine deterministische Folge pseudozufälliger Zahlen. Gleicher Seed plus identische Reihenfolge der Zufallsaufrufe und identischer Code ergeben reproduzierbare Ergebnisse; Plattform und Algorithmusversion sollten bei Langzeitvergleichen mitdokumentiert werden. Ein Seed erzeugt keine echte Zufälligkeit und ist kein Geheimnis.

Glockenkurve einer Normalverteilung mit markierten Bereichen

Bild 3: Die Glockenkurve veranschaulicht eine idealisierte Rauschverteilung. Modellierte Werte müssen nicht in jeder kurzen Stichprobe glockenförmig aussehen. Ohne Bild: Kleine Abweichungen sind häufig, große Abweichungen seltener; die Modellannahme bleibt prüfpflichtig.

Animation einer zeitlich veränderlichen Sinuskurve

Animation: Periodik als möglicher späterer Zusatz zu Schwingungssignalen. Ohne Animation: Eine Sinusschwingung kehrt mit gleicher Periode zum Ausgangszustand zurück; unser Startmodell nutzt bewusst zunächst kein periodisches Signal.


Geführte Implementierung ohne externe Bibliotheken

Speichere diesen vollständigen Beispielcode als simulator_v1_0.py und führe ihn lokal aus. Zwei Spalten enthalten simulierte Messwerte, eine Zeile entspricht genau einem Zeitschritt. Alle Daten sind eigens erfunden und reproduzierbar.

import csv
import random

VERSION = "1.0"
VARIANT = "VB-A"

def simulate(seed, scenario="normal", n=20):
    if scenario not in {"normal", "ausfall", "drift"}:
        raise ValueError("Unbekanntes Szenario")
    rng = random.Random(seed)
    rows = []
    for i in range(n):
        temp = round(45.0 + 0.05 * i + rng.gauss(0, 0.2), 2)
        vib = round(2.0 + rng.gauss(0, 0.1), 2)
        quality = "ok"
        if scenario == "drift" and i >= 10:
            temp = round(temp + 0.4 * (i - 9), 2)
        if scenario == "ausfall" and i == 12:
            temp = None
            quality = "missing"
        rows.append({
            "index": i,
            "variant": VARIANT,
            "version": VERSION,
            "scenario": scenario,
            "temp_C": temp,
            "vibration_mm_s": vib,
            "quality": quality
        })
    return rows

def save_csv(rows, filename):
    with open(filename, "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=rows[0].keys())
        writer.writeheader()
        writer.writerows(rows)

normal = simulate(seed=2026)
save_csv(normal, "messwerte_normal_v1_0.csv")

Codehilfe: None kennzeichnet ein fehlendes Temperaturfeld, nicht null Grad. Das CSV-Feld bleibt beim Schreiben leer; quality=missing macht die Bedeutung explizit. n muss mindestens 1 sein, wenn gespeichert wird; ergänze dazu später eine Eingabeprüfung. Verwende Dateinamen mit Versionsnummer und exportiere niemals echte Anlagenkennungen.


Messdaten lokal übertragen und eindeutig kennzeichnen


CSV als Transportformat

In diesem Kurs meint übertragen die lokale Übergabe aus dem Simulator an eine CSV-Datei oder an ein getrenntes Auswertungsprogramm. Es werden keine Netzwerkpakete an Industrieanlagen verschickt. CSV (Comma-Separated Values) transportiert Tabellenwerte als Text; ein Schema legt Trennzeichen, Spalten, Einheiten, Encoding, Dezimalzeichen, fehlende Werte und Reihenfolge fest. Das Programm schreibt Kommas und Dezimalpunkte. Beim Import in ein deutsches Tabellenprogramm kann eine entsprechende Import-Einstellung erforderlich sein.

Schematische Darstellung serieller Datenübermittlung

Bild 4: Schematische Übertragung in zeitlicher Folge. Ohne Bild: Sender erzeugt geordnete Datensätze; Empfänger liest sie mit demselben vereinbarten Schema. Die Abbildung zeigt keine reale Verbindung unseres Labors.


Validieren, protokollieren und Versionen trennen

Prüfe beim Einlesen: existiert die Datei, stimmen alle sieben Feldnamen, ist der Zeitindex eindeutig, ist der Seed im Laufprotokoll festgehalten, liegen unplausible Einheiten oder fehlende Werte vor? Eine leere Temperaturzelle darf nicht stillschweigend in 0 verwandelt werden. Ergänze im laufprotokoll_v1.0.txt: Datum des Tests, Python-Version, Seed, Szenario, Skriptversion, Zahl der Datensätze, Prüfergebnis. Zum Vergleich zweier Läufe verwende dieselbe Modellversion, denselben Seed und dieselben Parameter.

Vertiefung: Für digitale Zwillinge beschreibt die Industrial Digital Twin Association die Asset Administration Shell (AAS) als standardisierte Austauschstruktur. Die aktuellen Downloads zu IDTA 02029-1 Sensor 4.0: Measurement Value, IDTA 02008-1-1 Time Series Data und IDTA 02005-1-0 Provision of Simulation Models sind fachliche Orientierung, jedoch keine verbindliche Implementierungsvorgabe für dieses Offline-Lernbeispiel. Unterscheide Datenformat von Industrieprotokoll, Semantik und echter Anlagenkopplung.


Seltene Fehler gezielt simulieren und vergleichen


Ausfall und Drift: zwei unterschiedliche Mechanismen

Ein Ausfall führt in unserem Modell genau bei Index 12 zu einer fehlenden Temperaturmessung und quality=missing. Eine Drift fügt ab Index 10 eine langsam wachsende Temperaturabweichung hinzu; die Werte bleiben vorhanden und quality=ok, obwohl sie fachlich auffällig werden können. Ein einzelner hoher Wert ist dagegen noch kein Beweis für Drift. Beide Szenarien wirken auf die bereits gezogenen Grundwerte. So kann man die Abweichung vom Normalverlauf bei identischem Seed isoliert untersuchen.

Lauf Index 9 Index 12 Index 19 Erwartete Diagnose
normal, Seed 2026 Wert vorhanden Wert vorhanden Wert vorhanden modellübliche Schwankung
ausfall, Seed 2026 wie normal Temperatur fehlt wie normal Datenlücke am definierten Index
drift, Seed 2026 wie normal Temperatur über normal Temperatur um 4,0 °C über normal über mehrere Schritte wachsender Abstand

Die 4,0 °C am Ende ergeben sich aus 0,4 × (19 − 9). Wegen der identischen Zufallsfolge ist genau die Zusatzabweichung gegenüber dem Normallauf reproduzierbar; die absolute Temperatur ist nicht 4,0 °C. Der Ausfallfall ist eine vereinfachte Modellentscheidung; andere Ausfallarten, etwa konstante Fehlwerte, benötigen eigene Szenarien.


Drei Pflichtprüfungen als ausführbare Tests

Füge diesen zweiten Block unten in simulator_v1_0.py ein. Er überprüft die drei geforderten Erfolgskriterien ohne reale Sensoren:

a = simulate(seed=2026, scenario="normal")
b = simulate(seed=2026, scenario="normal")
assert a == b, "Gleicher Seed muss dasselbe Ergebnis liefern"

loss = simulate(seed=2026, scenario="ausfall")
assert loss[12]["temp_C"] is None
assert loss[12]["quality"] == "missing"
assert all(r["temp_C"] is not None
           for j, r in enumerate(loss) if j != 12)

drift = simulate(seed=2026, scenario="drift")
assert drift[9]["temp_C"] == a[9]["temp_C"]
assert drift[12]["temp_C"] > a[12]["temp_C"]
assert round(drift[19]["temp_C"] - a[19]["temp_C"], 2) == 4.0

assert loss[12]["temp_C"] is None
assert drift[12]["temp_C"] is not None
print("Reproduktion, Ausfall und Drift unterschieden.")

Bewertung: Ein bestandener Test zeigt nur, dass die selbst gesetzten Modellregeln eingehalten werden. Er beweist weder Realitätsnähe noch Sicherheitskonformität. Für einen überprüfbaren Gegenversuch ändere den Seed auf 2027: Der Normallauf verändert sich; bei gleichen Parametern bleiben die definierten Ausfall- und Driftregeln erhalten. Erkläre, warum ein Fehlerfall im Modell auftritt, und unterscheide dabei beobachtetes Symptom, eingefügte Ursache und diagnostische Schlussfolgerung.


Daten auswerten, Grenzen erkennen und transferieren


Einfache Auswertung und Fehlinterpretationen

Vergleiche zuerst zeitlich passende Werte unter gleichem Seed, danach Fenster von fünf Schritten. Gleitender Mittelwert glättet Rauschen, kann aber einen kurzen Ausfall verbergen. Residual heißt beobachteter Wert minus Modellreferenz. Ein fehlender Wert wird als Lücke behandelt und aus einem einfachen Durchschnitt ausgeschlossen; ihn durch null zu ersetzen würde den Verlauf verfälschen. In der Realität fehlt meist ein exakt bekannter, identisch verrauschter Normalverlauf. Dann brauchst du dokumentierte Referenzbedingungen, Unsicherheitsangaben und unabhängige Tests.

def mean_valid(rows):
    values = [r["temp_C"] for r in rows
              if r["temp_C"] is not None]
    return sum(values) / len(values) if values else None

print("Normal:", round(mean_valid(a), 2))
print("Ausfall:", round(mean_valid(loss), 2))
print("Drift:", round(mean_valid(drift), 2))

Vertiefung – Datenleckage: Trenne Training, Parametereinstellung und Testdaten, bevor du aus Beispieldaten eine automatische Fehlererkennung ableitest. Laut scikit-learn, Common pitfalls führen inkonsistente Vorverarbeitung und Data Leakage zu überoptimistischen Ergebnissen. Wenn viele überlappende Fenster desselben künstlichen Laufs zufällig über Training und Test verteilt werden, kann die Evaluation irreführend sein. Teste stattdessen unter anderem auf bislang ungesehenen Seeds und Varianten. Ein Klassifikator ist optional; der komplette Pflichtkurs braucht keine zusätzliche Bibliothek.


Transfer zum Variantenlabor und verantwortlicher Umgang

Entwirf für VB-B ein neues, versioniertes Temperaturgrundmodell, ohne VB-A rückwirkend zu überschreiben. Plane einen vierten Fehlertyp, etwa einen sporadischen Ausreißer oder einen dauerhaft eingefrorenen Sensorwert. Lege vor der Programmierung fest: Wo tritt er auf? Welche Kennzeichen verändern sich? Was bleibt im Normallauf identisch? Wie erkennt ein Mensch die Fehlerursache und wie können ähnliche Symptome verwechselt werden? Erstelle eine kleine Verwechslungsmatrix Normal/Ausfall/Drift, aber behaupte keine industrielle Diagnoseleistung.

Audio zum Beobachten statt Steuern: Veröffentlichtes Commons-Hörbeispiel eines Elektromotors bei unterschiedlichen Drehzahlen. Das Audio ist kein Datensatz des fiktiven Labors und wird nicht für automatische Sicherheitsentscheidungen verwendet. Ohne Audio: Beschreibe textlich, dass Klang mit der Drehzahl variieren kann; aus einem Höreindruck folgt kein kalibrierter Schwingungswert.

Ausblick: Seltene Fehler lassen sich gezielt generieren, obwohl keine echte Anlage erreichbar ist. Ihr Nutzen liegt in nachvollziehbaren Testfällen und sicherer Didaktik; die Übertragbarkeit auf tatsächliche technische Fehler muss gesondert belegt werden. Die schriftliche Begründung einer falsch positiven Meldung gehört deshalb zum Lernprodukt.

Interaktive Aufgaben


Quiz: Wissen und Entscheidungen

Beantworte alle zehn Fragen direkt im interaktiven Quiz. Die korrekte Option wird beim Bearbeiten ausgewertet; die darunter stehenden Rückfragen verraten die Lösung nicht vorab. Bei Unsicherheit gehe zum Beispielcode zurück.

Wozu dient der Seed in diesem Simulator? (Er macht die Folge pseudozufälliger Werte bei gleichem Programmablauf reproduzierbar) (!Er misst die Temperatur einer realen Anlage) (!Er verschlüsselt automatisch alle Messwerte) (!Er garantiert realistische Schadenshäufigkeiten)



Rückmeldung zur Selbstkontrolle: Achte auf identische Parameter und die Reihenfolge der Zufallsaufrufe.

Was kennzeichnet den Ausfall bei Index zwölf? (Ein fehlender Temperaturwert mit dem Qualitätsmerkmal missing) (!Ein Temperaturwert von genau null Grad) (!Eine stetige Zusatzabweichung ab dem ersten Index) (!Eine automatische Abschaltung einer Produktionsmaschine)



Rückmeldung zur Selbstkontrolle: Prüfe, ob fehlende Daten und ein niedriger gemessener Wert dasselbe sind.

Was ist Drift im vorgegebenen Modell? (Eine nach mehreren Schritten wachsende systematische Zusatzabweichung) (!Ein einmaliger zufälliger Messaussetzer) (!Ein Wechsel von CSV zu JSON) (!Ein zufälliger Seed ohne gespeicherten Wert)



Rückmeldung zur Selbstkontrolle: Beziehe den zeitlichen Verlauf in die Interpretation ein.

Weshalb wird None nicht in null umgewandelt? (Weil eine fehlende Messung etwas anderes als ein gemessener Nullwert ist) (!Weil null immer ein Softwarefehler ist) (!Weil CSV nur ganze Zahlen kennt) (!Weil Rauschen dadurch grundsätzlich verschwindet)



Rückmeldung zur Selbstkontrolle: Beachte die Semantik des Felds quality.

Was muss zu einem reproduzierbaren Vergleich neben dem Seed feststehen? (Der gleiche Programmcode sowie gleiche Parameter und Zufallsaufrufe) (!Die zufällige Wahl eines neuen Modelltyps) (!Eine aktive Verbindung mit der Anlage) (!Eine geänderte Anzahl von Messstellen)



Rückmeldung zur Selbstkontrolle: Überlege, wodurch die Reihenfolge einer Pseudozufallsfolge verschoben werden kann.

Was beschreibt das Feld version sinnvollerweise? (Die verwendete Version des synthetischen Modells und Schemas) (!Den Lebenszyklus einer realen Serienmaschine) (!Eine Sicherheitsfreigabe für Produktionsanlagen) (!Die Identität eines echten Auszubildenden)



Rückmeldung zur Selbstkontrolle: Versioniere Modellregeln getrennt von erfundenen Variantenbezeichnungen.

Welche Aussage zur CSV-Datei stimmt? (Die Feldbedeutungen und Einheiten müssen zwischen Erzeugung und Auswertung vereinbart sein) (!CSV überträgt grundsätzlich nur verschlüsselte Daten) (!CSV beweist die Kalibrierung eines Sensors) (!CSV hat immer dieselben Dezimaltrennzeichen in jedem Importprogramm)



Rückmeldung zur Selbstkontrolle: Prüfe sowohl den Inhalt als auch seine maschinenlesbare Repräsentation.

Warum sind unabhängige Tests mit anderen Seeds nützlich? (Sie prüfen, ob ein Verfahren mehr als nur einen bekannten Verlauf erkennt) (!Sie beseitigen automatisch jeden Fehlalarm) (!Sie ersetzen die Dokumentation einer Modellannahme) (!Sie machen virtuelle Daten zu industriellen Originalmessungen)



Rückmeldung zur Selbstkontrolle: Überlege, wie die Trennung von Entwicklung und Bewertung gelingt.

Welcher Befund trennt den modellierten Drift am besten vom Ausfall? (Bei Drift sind Werte vorhanden und ihr Abstand zur Referenz nimmt zu) (!Bei Drift fehlt grundsätzlich der Wert am zwölften Index) (!Beim Ausfall erhöht sich der Temperaturwert vier Grad) (!Beide Fehler müssen dieselbe Qualitätskennzeichnung haben)



Rückmeldung zur Selbstkontrolle: Vergleiche Vollständigkeit der Zeitreihe und zeitliche Abweichungsform.

Welche Einsatzgrenze gilt für das Lernprodukt? (Es bleibt offline und darf keine echte Maschine steuern oder freigeben) (!Es ersetzt eine vorgeschriebene Sicherheitsprüfung) (!Es liefert zertifizierte Wartungstermine für beliebige Maschinen) (!Es muss direkt mit dem Produktivnetz verbunden werden)



Rückmeldung zur Selbstkontrolle: Trenne Modelltests strikt von Entscheidungen über reale technische Sicherheit.


Memory

Ordne Fachbegriffe den treffenden Erklärungen zu. Jedes Paar ist eindeutig.

Seed Startwert für eine reproduzierbare Pseudozufallsfolge
Drift Systematisch zunehmende Abweichung eines vorhandenen Messwerts
Ausfall Nicht verfügbarer Wert einer Messstelle
Residual Differenz zwischen Beobachtung und Referenz
CSV Textformat mit spaltenweise vereinbarten Datenfeldern
Schema Festlegung der Felder samt Typen und Einheiten





Drag-and-Drop

Ordne den fünf Prüfhandlungen ihre Funktion im Labor zu.

Passenden Begriff zuordnen Prüfsituation
Reproduktion Zwei identische Normalläufe mit demselben Seed vergleichen
Fehlwertprüfung Leere Temperaturzelle und Qualitätskennzeichen kontrollieren
Trendprüfung Wachsenden Abstand zur Normalreihe prüfen
Schemasichtung Feldnamen und Einheiten im Export abgleichen
Versionskontrolle Modellstand des Prüflaufs festhalten





Kreuzworträtsel

Gesucht sind sechs einzelne Fachwörter.

Sensor Erfasst in einer realen Umgebung eine physikalische Größe
Rauschen Zufällige Streuung um einen modellierten Grundwert
Drift Langsam zunehmende systematische Abweichung
Ausfall Fehlen einer vorgesehenen Messung
Schema Vereinbarung über Aufbau und Felder einer Datendatei
Residual Unterschied zwischen beobachtetem Wert und Referenz





LearningApps

Passende öffentlich zugängliche LearningApps suchen. Die Suchergebnisse sind kein vorgeprüfter Einzelkurs; wähle eine App zur Zuordnung von Sensordaten und Fehlertypen. Ohne externe App: Nutze die obigen Zuordnungstabellen auf Papier.


Lückentext

Trage die jeweils passende Bezeichnung ein; jede Aussage hat genau eine Lücke.

Ergänze die Begriffe zum Simulator.
Der Startwert des Pseudozufallsgenerators heißt

.
Eine zeitlich zunehmende systematische Abweichung nennen wir

.
Eine vollständig fehlende Temperaturmessung wird als

modelliert.
Der Eintrag für eine fehlende Python-Messung lautet

.
Die lokale Tabellendatei nutzt das Format

.
Eine vereinbarte Beschreibung aller Datenfelder heißt

.
Die Differenz zwischen Beobachtung und Referenz ist das

.
Die Sammlung zeitlich geordneter Messungen ist eine

.



Offene Aufgaben

Die Aufgaben können einzeln und ohne Internet durchgeführt werden. Nutze ausschließlich synthetische Modellwerte.


Leicht

  1. Sensor: Zeichne auf Papier den Weg von der virtuellen Messstelle bis zur CSV-Auswertung und beschrifte sechs Felder.
  2. Pseudozufallszahl: Erzeuge zwei Normalläufe mit Seed 2026, vergleiche die Datensätze und dokumentiere das Ergebnis.
  3. Messreihe: Suche die Messung bei Index 12 in einer Ausfall-Datei und erkläre, warum sie nicht als null Grad interpretiert werden darf.
  4. Datenqualität: Erstelle eine Tabelle der Variantenkennungen, Messgrößen, Einheiten und Qualitätskennzeichen aus dem Modellfall.


Standard

  1. Python (Programmiersprache): Schreibe das Beispielprogramm ab, führe die drei Tests aus und dokumentiere Fehlermeldungen mit Screenshot oder Textprotokoll.
  2. Zeitreihenanalyse: Berechne für Normal- und Driftlauf Mittelwerte der ersten und letzten fünf Zeitpunkte und erläutere die Beobachtung.
  3. Softwaretest: Ergänze eine Eingabeprüfung für n größer gleich eins sowie einen dazu passenden negativen Test.
  4. Datenformat: Importiere die CSV lokal in ein Tabellenprogramm und kontrolliere Trennzeichen, Dezimaldarstellung und leere Felder.


Schwer

  1. Modellbildung: Entwirf für VB-B eine neue Sensorcharakteristik und dokumentiere Abweichungen gegenüber der unveränderten Version VB-A.
  2. Anomalieerkennung: Programmiere einen vierten Fehlerfall mit vorab definierter Testregel und begründe einen möglichen Fehlalarm.
  3. Validierung: Teste drei ungesehene Seeds und entwerfe eine Verwechslungsmatrix; beschreibe Unsicherheiten der Fehlerklassifikation.
  4. Digitaler Zwilling: Skizziere eine versionierte Datenschnittstelle nach dokumentierten Feldsemantiken und erkläre ausdrücklich, warum sie keine reale Anlagenanbindung oder Freigabe darstellt.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

Bearbeite mindestens diese fünf Aufgaben schriftlich und mit nachvollziehbaren Nachweisen.

  1. Reproduzierbarkeit: Lege beide Ausgaben desselben Seeds vor, erläutere alle Voraussetzungen für Bytegleichheit und benenne einen Fall, der sie verhindert.
  2. Fehlersimulation: Weise den künstlichen Ausfall an Index 12 anhand eines Datensatzes, des Qualitätsfelds und einer Assertion nach.
  3. Zeitreihenanalyse: Belege die Drift gegenüber dem Normallauf für die Indizes 9, 12 und 19 und erkläre, warum ein Einzelwert nicht ausreicht.
  4. Fehlerdiagnose: Begründe einen selbst erstellten Fehlerfall mit beobachtetem Symptom, im Code gesetzter Ursache und einer alternativen Erklärung.
  5. Transfer: Plane das VB-B-Modell, führe einen Test auf einem ungesehenen Seed durch und beschreibe zwei Risiken falscher Übertragbarkeit.
  6. Datenethik: Erkläre, warum simulierte Messwerte niemals die Sicherheitsfreigabe einer echten Maschine ersetzen.


Lernnachweis

Abzugeben: simulator_v1_0.py, mindestens drei CSV-Läufe (normal, ausfall, drift), modellfall_v1.0.txt, schema_v1.0.csv, szenarien_v1.0.txt, tests_v1.0.txt, ein Laufprotokoll mit Seed und Python-Version sowie eine zweiseitige fachliche Interpretation.

Kriterium Nachweis Qualitätsmaßstab
Gleicher Seed reproduziert Vergleich von zwei Ausgaben und Assertion gleiche Parameter und vollständig identische Datensätze
Ausfall wird erzeugt Zeile 12 mit Leerwert und missing Fehlerabsicht, Feld und Programmtest stimmen überein
Drift wird unterschieden Vergleich der Schritte 9, 12 und 19 steigende Zusatzabweichung wird im Unterschied zur Datenlücke begründet
Ursache erklärt Fehlerbericht mit Gegenthese Ursache, Symptom, Datenqualität und Unsicherheit getrennt beschrieben
Transfer dokumentiert versionierte VB-B-Erweiterung alte Version unverändert, unabhängiger Test, Grenzen genannt

Selbsteinschätzung: Was wird vom Code bewiesen? Was ist nur eine Modellannahme? Welche Beobachtung würde deine Diagnose widerlegen? Führe eine begründete Fehlentscheidung als Beispiel an. Kein Ergebnis berechtigt zu realer Maschinensteuerung, Sicherheitsfreigabe oder einer offiziellen Berufsabschlusszertifizierung.


OER und Wikipedia

Recherche- und Versionsstand: 22.10.2026. Der Kurscode ist ein eigens erstelltes synthetisches didaktisches Beispiel, Version 1.0. Dokumentation und Beispiele werden nicht als Industriestandard ausgegeben. Externe Angebote, Versionen und Einbettungen können sich ändern.

Primär- und Fachquellen:

  1. Industrial Digital Twin Association – Downloads: Sammlung von AAS-Spezifikationen und Vorlagen, unter anderem IDTA 02029-1 Sensor 4.0, IDTA 02008-1-1 Time Series Data, IDTA 02005-1-0 Provision of Simulation Models; Stand der online gelisteten Versionen bei Recherche, keine Konformitätsaussage.
  2. scikit-learn – Common pitfalls and recommended practices: Abschnitte zu inkonsistenter Vorverarbeitung, Data Leakage und kontrollierter Zufälligkeit; online als scikit-learn 1.9.1 angezeigt. Das Pflichtbeispiel selbst benötigt kein scikit-learn.
  3. Python-Dokumentation – random: Pseudozufallszahlen, Generatorinstanzen und Hinweise zur Reproduzierbarkeit; die hier benutzte Schnittstelle gehört zur Python-3-Standardbibliothek.
  4. Python-Dokumentation – csv: csv.DictWriter und strukturierter Export; die tatsächliche Python-Unterversion muss im Laufprotokoll stehen.
  5. Fraunhofer IOSB – Digitale Zwillinge für Industrie 4.0: vertiefende Einordnung der Verwaltungsschale und offener Werkzeuge.
  6. Kursgrundlage auf MOOCwiki: Verknüpfung zum vorausgesetzten Modellfall; beim Abruf 22.10.2026 technisch nicht verifizierbar, daher keine Detailübernahme.

Geprüfte Wikimedia-Commons-Dateiseiten und Rechte (22.10.2026): Dateien können sich ändern; Urheber- und Lizenzangaben beziehen sich auf die genannten Dateiseiten. Bildunterschriften und Alternativtexte stehen unmittelbar bei den eingebundenen Medien.

Datei Commons-Dateiseite Urheber Lizenz laut Dateiseite
File:Smart sensors.jpg Dateiseite Tejashs CC BY-SA 3.0
File:Sensor Diagram.jpg Dateiseite Baango CC BY-SA 4.0
File:Standard Normal Distribution-en.svg Dateiseite Д.Ильин CC0 1.0
File:Sine animation.gif Dateiseite Rainrider Gemeinfrei gemäß Dateiseite
File:Serial communication.svg Dateiseite mpan CC BY-SA 4.0
File:Akkuschrauber – Cordless Screwdriver.ogg Dateiseite Maximilian Schönherr CC BY-SA 4.0

Audio-Alternative: Eine schriftliche Beschreibung unterschiedlicher Motordrehzahlen genügt; es ist kein Hören notwendig. Animation-Alternative: Eine Periode ist eine vollständige wiederkehrende Schwingung. Bei fehlenden Commons-Vorschauen helfen die Dateiseiten oder die unmittelbar beschriebenen Konzepte.

Öffentliche YouTube-Lernvideos, deutschsprachig (am 22.10.2026 über öffentlich sichtbare Video-Metadaten nachgewiesen): Vollständige Abspielbarkeit, regionale Sperren und spätere Verfügbarkeit ließen sich nicht unabhängig durch Abspielen verifizieren. Die Videos sind nicht als OER lizenziert; Rechte bleiben bei den jeweiligen Anbietern. Keine Videopflicht zur Bearbeitung des Kurses.

MINTucation: Python Tutorial – Zufallszahlen (random), Veröffentlichung 13.06.2024. Ohne Video: Lies den Abschnitt zum Seed und führe die deterministischen Tests aus.

Programmieren mit Chris: CSV-Daten mit Python sortieren und schreiben, Veröffentlichung 28.05.2021. Ohne Video: Nutze die dokumentierten CSV-Felder und das lokale Codebeispiel.

Medienkennung Quelle Anbieter Rechte/Verfügbarkeit
https://www.youtube.com/watch?v=WRoAD18qi1c Videoseite MINTucation Standard-YouTube-Nutzung; keine freie Lizenz behauptet; öffentliche Metadaten gesichtet
https://www.youtube.com/watch?v=0IfstHDOulo Videoseite Programmieren mit Chris Standard-YouTube-Nutzung; keine freie Lizenz behauptet; öffentliche Metadaten gesichtet

Wikipedia – fachlicher Überblick: Sensor, Zeitreihenanalyse und Pseudozufallszahl. Wikipedia ergänzt den Kurs, ersetzt aber weder die Versionsangaben noch die Prüfdokumentation.


Verknüpfte Lernbereiche

Modellieren und Analysieren

  1. Sensor und virtuelle Messstellen
  2. Python (Programmiersprache) und Pseudozufall
  3. CSV (Dateiformat) und Datenqualität
  4. Zeitreihenanalyse und Anomalieerkennung
  5. Softwaretest und Reproduzierbarkeit
  6. Digitaler Zwilling und verantwortlicher Transfer


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte









MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...