stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 296

Tag 296 von 365 · Experte · Monat 10: Bits und Daten

Interpolieren

Zwischen zwei Stützstellen rechnen statt springen: Position und Anteil aus dem Messwert, lerp zwischen den Nachbarn und Kennlinien mit wenigen Punkten.

Lektion 18 Min. Woche 43

Das lernst du heute

  • Zwischen Stützstellen rechnen
  • lerp mit Index
  • Kennlinien

Die Tabelle von gestern hat einen Haken: Bei 25,9 °C läuft die Pumpe mit 10, bei 26,0 °C plötzlich mit 20. An jeder Stufe springt sie. Für eine Lüftung ist das laut, für eine Regelung unruhig. Besser ist eine Linie, die zwischen den Tabellenwerten interpoliert.

Zwischen Stützstellen rechnen

Die Tabellenwerte sind jetzt Stützstellen: Punkte, durch die die Kennlinie läuft. Für einen Messwert dazwischen brauchst du zwei Dinge:

  1. Welche zwei Nachbarn? Der ganzzahlige Teil der Position.
  2. Wie weit zwischen ihnen? Der Rest, ein Anteil von 0 bis 1.

Bei 27 °C ist die Position (27 − 20) / 2 = 3,5. Nachbarn sind Platz 3 (20) und Platz 4 (30), der Anteil ist 0,5. Das Ergebnis liegt in der Mitte: 25.

lerp mit Index

lerp kennst du seit Tag 61: lerp r? a b anteil rechnet a + (b − a) · anteil.

floor idx temp                # temp ist schon die Position
clamp idx idx 0 LETZTER
sub anteil temp idx           # Rest zwischen 0 und 1
get a db idx
add idx idx 1
get b db idx
lerp wert a b anteil

Der Index darf hier höchstens 6 sein, denn Platz 7 braucht keinen rechten Nachbarn mehr. Liegt der Messwert über dem letzten Punkt, wird der Anteil größer als 1 – lerp begrenzt ihn selbst auf 1. Unter dem ersten Punkt wird er negativ und lerp macht 0 daraus. Die Ränder der Kennlinie stimmen also von allein.

Kennlinien

Mit Interpolation reichen wenige Punkte für eine glatte Kurve:

Anwendungxy
LüftungTemperaturPumpenleistung
KühlkreisAußentemperaturSollwert des Kreislaufs
TankDruckFüllstand in Prozent

Wo die Kurve stark knickt, setzt du die Punkte dichter. Wo sie fast gerade ist, reichen wenige.

Achtung

Der Anteil muss vom ungerundeten Wert berechnet werden: sub anteil temp idx mit der Position vor floor. Rechnest du ihn vom gerundeten Index, ist er immer 0 und du hast wieder Stufen.

Schaubild

Der Stack mit Stapelzeiger Platz 0 10 Platz 1 20 Platz 2 30 Platz 3 Platz 4 sp = 3 nächster freier Platz push 40 pop r0 r0 = 30 zuletzt rein, zuerst raus
Der ganzzahlige Teil wählt die Nachbarn, der Rest ist der Anteil für lerp.

Übung

Aufgabe

Dieselbe Tabelle wie gestern, jetzt interpoliert: Berechne die Position (Celsius − 20) / 2, nimm Platz idx (0 bis 6) und idx + 1 als Nachbarn und schreibe lerp der beiden mit dem Anteil an die Pumpe „Abluft“. Ohne Sensor 0.

Hinweise

Hinweis 1

Position in temp behalten, floor idx temp, dann clamp idx idx 0 LETZTER.

Hinweis 2

Anteil: sub anteil temp idx.

Hinweis 3

Zwei get für die Nachbarn, dann lerp wert a b anteil.

Quiz

3 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall